Pull to refresh
26
0
Anton Larin @AntonLarinLive

Senior Software Developer

Send message

S3-FIFO: новый эффективный алгоритм вытеснения из кэша на основе очередей FIFO

Level of difficultyMedium
Reading time18 min
Views8.5K
В этой статье я расскажу о простом и масштабируемом (Simple, Scalable) алгоритме вытеснения данных из кэша на основе трёх статических (Static) очередей FIFO (S3-FIFO). После проверки на 6594 трассировках кэшей 14 компаний мы показали, что S3-FIFO имеет меньшую частоту промахов, чем 12 лучших алгоритмов, разработанных в прошлые десятилетия. Более того, эффективность S3-FIFO устойчива — он имеет наименьший средний показатель промахов для 10 из 14 датасетов. Использование очередей FIFO позволяет S3-FIFO достичь хорошей масштабируемости с пропускной способностью в шесть раз больше по сравнению с оптимизированным LRU в cachelib на 16 потоках.

Мы пришли к выводу, что доступ к большинству объектов в смещённых нагрузках кэша выполняется только за короткий промежуток времени, поэтому критически важно быстро вытеснять их из кэша. А главная особенность S3-FIFO — это небольшая очередь FIFO, отфильтровывающая большинство объектов, не давая им попасть в основной кэш.

Иллюстрация работы S3-FIFO (с использованием порогового значения перехода из маленького в основной кэш, равного 1)
Читать дальше →
Total votes 69: ↑69 and ↓0+69
Comments5

Переход с iptables на nftables. Краткий справочник

Reading time18 min
Views130K
image

В Debian теперь нет iptables. Во всяком случае, по умолчанию.

Узнал я об этом, когда на Debian 11 ввёл команду iptables и получил “command not found”. Сильно удивился и стал читать документацию. Оказалось, теперь нужно использовать nftables.

Хорошие новости: одна утилита nft заменяет четыре прежних — iptables, ip6tables, ebtables и arptables.

Плохие новости: документация (man nft) содержит больше 3 тысяч строк.

Чтобы вам не пришлось всё это читать, я написал небольшое руководство по переходу с iptables на nftables. Точнее, краткое практическое пособие по основам nftables. Без углубления в теорию и сложные места. С примерами.
Читать дальше →
Total votes 126: ↑126 and ↓0+126
Comments46

Оптика в техническом зрении. Лекция 1: Объектив

Level of difficultyEasy
Reading time14 min
Views19K

Привет, Хабр!

Меня зовут Андрей, я – оптик и инженер-конструктор оптических приборов в одном лице.

Уже несколько лет, будучи единственным оптиком фирмы, я работаю бок о бок с отделом нейросетей, занимающихся распознаванием изображений, у меня сложилось чёткое понимание, какие именно кусочки оптических знаний непосредственно используются CV-разработчиками в их работе, а где уже зовут профильного специалиста.

Из таких кусочков, выложенных в удобном для обучения порядке, и появился этот курс. Изначально я писал его для внутреннего обучения джунов отдела нейросетей, начинающих работать с распознаванием изображений. Я поместил в него ровно то, с чем CV-разработчики сталкиваются на практике при сборке макетов и работе с объективами. Не больше и не меньше.

Читать далее
Total votes 44: ↑42 and ↓2+52
Comments84

Jira и Trello уходят из России. В какой таск-трекер перейти без боли, чтобы статусы и ответственные сохранились?

Level of difficultyEasy
Reading time8 min
Views36K

Разработчик программного обеспечения Atlassian, который владеет Trello и Jira, начнет отключать от сервисов учетные записи, зарегистрированные из России и Белоруссии. Об этом компания сообщила в рассылке для пользователей несколько дней назад. Что делать тем, чьи процессы завязаны на эти сервисы?

Всем привет! Меня зовут Саша Комбаров и недавно я перевел команду из 50 человек из Trello в отечественный аналог. Расскажу с какими проблемами мы столкнулись, какие были аналоги и почему идеальный трекер вы никогда не найдете. В общем, наш личный опыт. Кстати, именно поэтому мы разработали надстройку над трекером: систему подсчета эффективности исполнителей и проектов — Reporter.

Как это сделать?
Total votes 35: ↑22 and ↓13+15
Comments160

Мониторинг и алертинг серверов Supermicro (sensor metrics) через Prometheus

Reading time7 min
Views5.1K

Рассказываем о процессе настройки сбора метрик серверов Supermicro с помощью утилиты IPMItool и Prometheus. 

Инфраструктура нашей компании поддерживается на высоком уровне SLA, что требует от нас измерения, наблюдения и отправки отчетов, фиксирующих метрики производительности систем, в том числе серверов, которые мы предоставляем в аренду.

У нас возникла необходимость внедрения централизованного механизма опроса IPMI/iDRAC/TP-IPMI для обнаружения перегрева, проблем с системой охлаждения и т. д. и повышения качества предоставляемого оборудования в целом. Проще говоря, мы планируем внедрить систему опроса датчиков с портов управления материнских плат, чтобы оперативно обнаруживать перегрев, неработающие или частично работающие вентиляторы и другие проблемы с охлаждением (например, проверять обороты кулеров или физическое наличие вентилятора в разъеме).

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments4

Разработка кроссплатформенного приложения на Avalonia для Raspberry Pi с использованием Github Action

Reading time10 min
Views7.8K

Вступление

В связи с желанием апгрейдить свое рабочее место, появилась потребность в мониторе, на котором будут отображаться информативные виджеты, например: погода, календарь, показатели датчиков в доме -, и, так как готовые решения меня не устраивают, я решил, что сделаю свой аналог домашнего «дашбоарда».

Примерный план был такой: приобрести Raspberry PI 3 и экран, подключить его к интернету, написать приложение, повесить на стенку и пользоваться с удовольствием.

В процессе проектирования, я сразу же увидел проблему в процессе разработки – как разрабатывать на домашнем компьютере и автоматически доставлять и запускать написанное приложение на Raspberry Pi, чтобы это не было долгим и мучительным ручным процессом.

Для решения проблемы, я пообщался в чатах, почитал в интернете несколько советов и выбрал для себя оптимальный способ развёртывания десктопного кроссплатформенного приложения.

Статья будет посвящена полному циклу разработки кроссплатформенного десктопного приложения, преимущественно для использования на одноплатном компьютере Raspberry PI 3, а также, речь пойдет о его автоматическом развертывании, с описанием проблем и их решений, которые возникли в процессе разработки. В статье упор сделан на решение проблемы с доставкой, сборкой и запуском приложения на Raspberry Pi.

Выбор технологий для разработки и настройка Raspberry Pi

Для решения поставленных задач, нам потребуется ряд технологий, а именно:

-        Кроссплатформенный фреймворк для работы логики и GUI приложения;

-        ПО для автоматического развертывания приложения;

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments1

Изобретаем библиотеку vusb

Reading time27 min
Views18K

Введение


После прочтения названия может возникнуть закономерный вопрос: зачем в наше время изучать программную реализацию low-speed USB, когда существует куча дешевых контроллеров с аппаратным модулем? Дело в том, что аппаратный модуль, скрывая уровень обмена логическими уровнями, превращает протокол USB в своеобразную магию. Для того же, чтобы прочувствовать как эта «магия» работает, нет ничего лучше, чем воспроизвести ее с нуля, начиная с самого низкого уровня.


С этой целью попробуем изготовить на основе контроллера ATmega8 устройство, прикидывающееся USB-HID'ом. В отличие от распространенной литературы, мы пойдем не от теории к практике, от самого нижнего уровня к верхнему, от логических напряжений на выводах, и закончим «изобретением» той самой vusb, после каждого шага проверяя, работает ли код как ожидалось. Отдельно отмечу, что не изобретаю альтернативу этой библиотеке, а напротив, последовательно воспроизвожу ее исходный код, максимально сохраняя оригинальную структуру и названия, поясняя, для чего служит тот или иной участок. Впрочем, привычный для меня стиль написания кода отличается от стиля авторов vusb. Сразу же честно признаюсь, что помимо альтруистического интереса (рассказать другим сложную тему) имею и корыстный — изучить тему самостоятельно и через объяснение выловить для себя максимум тонких моментов. Отсюда же следует, что какой-то важный момент может быть упущен, или какая-то тема не до конца раскрыта.


Для лучшего восприятия кода я постарался выделить измененные участки комментариями и убрать оные из участков, рассмотренных ранее. Собственно, исходный код и будет основным источником информации, а текст — пояснением что и для чего делалось, а также какой результат ожидается.


Также отмечу, что рассматривается только low-speed USB, даже без упоминания, чем отличаются более скоростные разновидности.

Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments22

Интеграция с ЕСИА для .Net: запутаннее, чем кажется

Reading time15 min
Views19K

Передо мной стояла задача по интеграции нашего сервиса с госуслугами. Казалось ничего сложного не предстоит, но учитывая что наш сервис базируется на технологии ASP.NET всё было не так оптимистично. В начале были поиски.. много поисков, которые привели к множеству разрозненной и чаще всего неактуальной информации. Так же были найдены уже готовые решения, но как заявляли некоторые товарищи на форумах за такое могут и по головке погладить. Поэтому было решено писать самому.

Эта статья о том, как выполнить интеграцию с госуслугами и не запутаться.

Читать далее
Total votes 17: ↑16 and ↓1+19
Comments10

Telegram API и библиотека TDLib для .NET платформ

Level of difficultyEasy
Reading time6 min
Views27K

image
Доброго времени суток! В Telegram существует два вида API: Telegram Bot API (обыкновенный бот с пометкой "бот") и Telegram API (клиент и юзербот, который обладает больше функционалом, чем просто бот). В этой статье пойдет речь о втором виде, а именно: что требуется для взаимодействия с Telegram API, какие средства нужны для написания кода своего юзербота на языке C#, как их правильно установить, а также каким образом использовать их.

Читать дальше →
Total votes 20: ↑18 and ↓2+25
Comments7

Дядя Фёдор и методы рационального мышления

Level of difficultyEasy
Reading time21 min
Views26K

Несколько лет назад я с удовольствием прочитал фанфик «Гарри Потер и методы рационального мышления»  Элиезера Юдковского. Несмотря на подростковую направленность книжки, она получилась интересной. И умопомрачительно смешной – особенно на контрасте с оригинальным произведением.

К сожалению, написав эту книгу, Элиезер запер избушку на клюшку – переключившись с юмористических фанфиков на серьёзные философские статьи. Которые и вполовину не так хороши, как его литературное творчество. Ну, разве что, кроме последней, в которой он предлагает бомбить дата-центры ГПТ-подобных нейронных сетей, чтоб избежать наступления апокалипсиса.

Мне очень понравился формат книги Элиезера – в которой он объяснял серьезные научные концепции на примере знакомых с детства персонажей. Читая, я задавал себе вопрос: Какими бы получились «Гарри Потер и Методы», если бы Элиезер жил в России? Какую книгу он выбрал бы для основы? Приключения Буратино заняты покойным Константином Крыловым, так что остается только Незнайка и дядя Фёдор.  При этом дядя выглядит тут предпочтительнее – Незнайка слишком оторван от окружающей нас реальности, которая требует осмысления.

Взявшись писать, я решил немного осовременить исходную книгу. Мне не нравится, что современные писатели-фантасты, вместо того чтоб отвечать на заданные социумом вопросы, попрятались в виртуальные миры и носа не кажут наружу. Поэтому моему Дяде будет четырнадцать. Это интеллигентный московский подросток из хорошей семьи, который бежит в деревню – где погружается в лютую русскую хтонь…

Читать первую главу:
Total votes 154: ↑119 and ↓35+111
Comments156

TOTP (Time-based one-time Password algorithm)

Reading time7 min
Views51K

С ростом числа угроз кибербезопасности, для разработчиков становится все более и более необходимым обновлять стандарты безопасности веб-приложений и быть при этом уверенными в том, что аккаунты пользователей в безопасности. Для этого в настоящее время многие онлайн-приложения просят пользователей добавить дополнительный уровень безопасности для своей учетной записи. Они делают это за счет включения двухфакторной аутентификации. Существуют различные методы реализации двухфакторной аутентификации, и аутентификация TOTP (алгоритм одноразового пароля на основе времени) является одним из них.

Чтобы понять, что из себя представляет TOTP и как он используется, необходимо сначала кратко рассмотреть более базовые понятия. Первое из них – двухфакторная аутентификация. Двухфакторная аутентификация (или многофакторная аутентификация) — это метод идентификации пользователя в каком-либо сервисе (как правило, в Интернете) при помощи запроса аутентификационных данных двух разных типов, что обеспечивает двухслойную, а значит, более эффективную защиту аккаунта от несанкционированного проникновения. Это означает, что после включения двухфакторной аутентификации пользователь должен пройти еще один шаг для успешного входа в систему. Стандартные шаги для входа в учетную запись – это ввод логина и ввод пароля (рис.1).

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments4

Книга «Роберт Мартин рекомендует. Код, который умещается в голове: эвристики для разработчиков»

Reading time13 min
Views19K
image Приветствуем Вас, Хаброжители!

Незаменимые практические советы по написанию кода в устойчивом темпе и по управлению сложностью, из-за которой проекты часто выходят из-под контроля. В книге описываются методы и процессы, позволяющие решать ключевые вопросы: от создания чек-листов до организации командной работы, от инкапсуляции до декомпозиции, от проектирования API до модульного тестирования. Автор иллюстрирует свои выводы фрагментами кода, взятыми из готового проекта. Написанные на языке C#, они будут понятны всем, кто использует любой объектно-ориентированный язык, включая Java, C++ и TypeScript. Для более глубокого изучения материала вы можете загрузить весь код и подробные комментарии к коммитам.
Читать дальше →
Total votes 16: ↑15 and ↓1+17
Comments15

Про метрики: как эффективно управлять несколькими проектами

Level of difficultyMedium
Reading time7 min
Views14K

Вы тимлид, и у вас полный порядок с проектом. А если проектов будет несколько? Сможете сохранить контроль?

У Delivery Manager-а уже не один проект, приходится гораздо меньше погружаться в каждый. Контекст не тот, времени меньше, да еще и управлять приходится не самому, а руками тимлида.

В такой ситуации нужна хорошая система контроля. И лучше всего с этой задачей справляются данные – метрики. Про выбор метрики и их эффективность предлагаю почитать в этой статье.

Читать далее
Total votes 14: ↑9 and ↓5+7
Comments3

Книга «Карьера продакт-менеджера. Все что нужно знать для успешной работы в технологической компании»

Reading time10 min
Views4.2K
imageПривет, Хаброжители!

Познакомьтесь с исчерпывающим руководством по профессии продакт-менеджера от авторов бестселлера «Карьера программиста»!

Фреймворки и лучшие практики, описанные в книге, не превратят вас в одночасье в крутого продакт-менеджера и не гарантируют, что ваши продукты будут безупречны. Но они помогут вам избежать распространенных ошибок и проблем и дадут основу для самостоятельных экспериментов, размышлений и совершенствования.

Вы научитесь проектировать качественные продукты, которые нравятся пользователям и решают их насущные задачи; разрабатывать и доставлять продукты быстро, беспроблемно и эффективно; создавать продуктовое видение и стратегии, позволяющие понимать, куда двигаться дальше в долгосрочной перспективе; управлять людьми и влиять на них, не имея формальных полномочий; развивать молодых PM, создавать успешные команды и эффективные продуктовые организации; управлять собственной карьерой, делать так, чтобы ваши усилия были замечены и оценены.

В качестве обзора книги мы предлагаем вам ознакомится с переводом статьи автора Jackie Bavaro.
Читать дальше →
Total votes 10: ↑9 and ↓1+15
Comments1

«Клей. Стань незаменимым в любом проекте»: обзор книги Ань Дао Фам про роль и навыки менеджера проекта

Level of difficultyEasy
Reading time6 min
Views5.5K

Ежегодно выходят сотни книг, посвященных управлению проектами и навыкам менеджера проектов. Недавний перевод книги "Клей. Стань незаменимым в любом проекте" Ань Дао Фам заинтересовал меня не только своей здоровой практичностью и минимумом теоретических выкладок, но и человечным подходом к проектной работе: автор считает приоритетом не соблюдение стандартов и правил, а здоровый климат и психологический комфорт команды. Именно это и является задачей проджект-менеджера. Под катом - подробный обзор книги.

Читать далее
Total votes 10: ↑8 and ↓2+10
Comments3

Как управлять тимлидами

Level of difficultyMedium
Reading time6 min
Views9.1K

Управление тимлидами сильно отличается от управления инженерами. Это логично, ведь перед вами теперь руководители, а не обычные сотрудники. Тимлиды не любят излишний менеджмент и контроль. И зачастую, сами знают как сделать ту или иную задачу. Поэтому подход должен быть иным.

В статье поделюсь своим мнением о том, как это делать и какие инструменты использовать.

Читать далее
Total votes 16: ↑15 and ↓1+19
Comments2

Enterprise проекты: что нужно знать разработчику?

Level of difficultyEasy
Reading time10 min
Views13K

Поговорим о том, что такое enterprise разработка, какие у enterprise проектов могут быть нюансы, и какие навыки нужно обрести для успешной работы в разрезе .NET стека. 

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments11

Как решать конфликты с уважением к себе и оппонентам? Гайд по ненасильственному общению

Reading time6 min
Views24K

Хотелось бы, чтобы в рабочей коммуникации все понимали друг друга с полуслова, не совершали ошибок и дарили окружающим исключительно положительные эмоции — но это что-то на сказочном. Какими бы классными ни были ваши корпоративные отношения, конфликты и сбои в диалоге будут случаться. О том, как общаться и вести себя в непростых ситуациях, рассказываем под катом.
Читать дальше →
Total votes 64: ↑60 and ↓4+76
Comments26
2

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity

Specialization

Software Developer, Database Developer
Lead
.NET
C#
Visual Studio
.NET Core
Microsoft SQL Server
Delphi
Database
SQL
Git