Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Объектные хранилища: чем заменить minio?

Уровень сложностиСредний
Время на прочтение25 мин
Охват и читатели30K

Как говорят у меня на родине: корпоративная жадность — двигатель миграций. И именно это мы сейчас можем наблюдать на примере MinIO — некогда любимого инструмента DevOps-инженеров для развёртывания S3-совместимого хранилища. В 2021 году они втихушку сменили лицензию на AGPL v3, а в 2025 году и вовсе выпилили веб-интерфейс из бесплатной версии. Ну и, наверное, можно подумать, что за такой удобный инструмент можно и заплатить. Но тогда встаёт вопрос: какова цена коммерческой лицензии? От $96 000 в год)

В этой статье мы разберём, чем можно заменить MinIO, сравним альтернативы в разных сценариях и, конечно же, развернём их руками — потому что теория без практики, как вайбкодер без гпт.

Читать далее

А король-то голый! Как написать свой Claude Code в 200 строках кода

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели26K

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

Но вот что я вам скажу: в основе этих инструментов не лежит магия. Для них достаточно примерно двухсот строк простого Python.

Давайте с нуля напишем собственный функциональный кодинг-агент.

Читать далее

Пять нестандартных портативных компьютеров: кибердеки, ретро-ноутбуки и игровые гибриды

Время на прочтение6 мин
Охват и читатели23K

Привет, Хабр! В этой подборке — пять портативных устройств, которые не укладываются в привычные категории. Это кибердеки и карманные компьютеры, ретро-ноутбук на настоящем DOS-железе, игровой смартфон с выдвижным контроллером и открытая Linux-платформа для сборки своих проектов. Предлагается все это для тех, кому важен сам формат, возможность поэкспериментировать и использовать технику под конкретные задачи. Но в целом, это все ж just for fun, так что имейте в виду. Если готовы, поехали!

Читать далее

Как обрабатывать 5 млн изменяющихся форм в минуту с SLI 99.99%

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели11K

Всем привет! Меня зовут Кирилл Грищук, я Tech Lead в команде Инфомодели в Авито. Мы занимаемся тем, что обрабатываем формы от пользователей: от 5 млн до 15 млн форм в минуту, а это более 150 тысяч в секунду. 

В этой статье на примере Авито я рассказываю, зачем мы стремимся к SLI 99.99%. Внутри — обзор и сравнение решений по доставке неизменных данных, учитывая специфику нашего сервиса. Показываю на примере форм, какие интересные доработки мы придумали, чтобы достичь этих четырёх девяток, и какие ошибки совершали по пути.

Статья будет полезна всем, кто хочет погрузиться в проблему раздачи и обработки редко изменяемых данных. 

Читать далее

Какой Может быть UART-CLI в Микроконтроллере (или Курс Молодого Бойца)

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели13K

В этом тексте я бы хотел провести курс молодого бойца по использованию CLI в микроконтроллере. Расскажу про API той CLI, которая получилась у меня.

Прежде всего CLI — это первичный лог загрузки прошивки. Инициализация микроконтроллера — это многостадийный процесс, в котором многое может пойти не по плану. Поэтому первое, что вы должны увидеть в консоли — это зеленый лог загрузки программы.

Читать далее

Верстаем сложный прогрессбар в 2026 году

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели17K

Раньше, чтобы сделать круговой прогрессбар, мы страдали с SVG. Мне до сих пор больно заглядывать в инспектор на старых реализациях. Сегодня всё кардинально упростилось.

Современный CSS позволяет собрать сложный, гибкий и красивый круговой прогрессбар буквально на одном div и на одном CSS-свойстве. И всё это — с отличной браузерной поддержкой.

В этой статье я разберу именно этот приём. Сначала — ключевую идею подхода, затем — возможности кастомизации, после этого добавлю немного визуальной «дороговизны», удобные ручки управления и экспериментальную CSS-логику. Да-да, напоследок мы немного попрограммируем на CSS!

Читать далее

Как я написал bash-скрипт и получил оффер

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели32K

Если что, это не кликбейт. История довольно проста: в один из рабочих дней (работаю экспертом по компьютерной экспертизе) мне "на стол" попал сервер на ALT. Всё стандартно:

1) делаю чек железа, дабы исключить модули аппаратного шифрования / аппаратные токены и т.д.

2) делаю диагностику всей системы на момент первого запуска, для внесения в отчёт. Данная диагностика должна включать в себя первичную информацию о: диске; памяти; сети; базовых службах (ssh, cron и тд.) и о системе в целом.

Что было дальше

Сам себе VoLTE. Запускаем сотовую сеть 4G LTE с поддержкой звонков и SMS

Уровень сложностиСложный
Время на прочтение8 мин
Охват и читатели63K

Приветствую всех!

Два года назад я уже рассказывал о том, как запустить у себя дома базовую станцию 4G LTE. Тем не менее, в той сети работал только мобильный интернет, тогда как при попытке позвонить или отправить SMS связь немедленно обрывалась.

Самое время восполнить это упущение. Сегодня мы поднимем сеть, в которой будут работать все эти функции. Заодно разберёмся, как работают звонки в LTE-сетях, как запустить такую сеть при помощи SDR и как заставить это всё работать. Как водится, будет много интересного.

Open5GS

Фитнес в VR? Добавляем свою музыку в BeatSaber

Время на прочтение7 мин
Охват и читатели12K

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

Игра Beat Saber — это впечатляющий источник домашней физической нагрузки под музыку. В этой статье разберем, как играть на треках из пользовательской библиотеки, и попытаемся создать свою карту c любимой музыкой. Спойлер: инструменты не так страшны.

Отработать салатики

Структуры данных на практике. Глава 1: Разрыв в производительности

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели18K

Часть I: Основы

«В теории теория и практика одинаковы. На практике это не так». — авторство приписывается разными специалистам по computer science

Загадка

Два часа утра. Я смотрю на совершенно нелогичные данные профилирования.

В процессе работы над загрузчиком для SoC RISC-V у нас возникла проблема с производительностью. Загрузчик должен был искать конфигурации устройств в таблице: примерно пятьсот элементов, каждый с 32-битным ID устройства и указателем на данные конфигурации. Всё просто.

Мой коллега реализовал эту систему с помощью хэш-таблицы. «Поиск за O(1), — сказал он уверенно, — лучше уже некуда».

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

Я попробовал использовать очевидную оптимизацию: заменить хэш-таблицу двоичным поиском по отсортированному массиву. Двоичный поиск занимает O(log n), что теоретически хуже, чем O(1). Так написано в учебниках. Мой преподаватель алгоритмов был бы разочарован.

Но в результате загрузчик оказался на 40% быстрее.

Как O(log n) смогло победить O(1)? Что происходит?

Читать далее

Карьерный потолок в IT: почему я перестал стремиться в менеджмент и начал делать свой продукт

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели63K

Каждый разработчик в начале пути видит перед собой ясную лестницу: Junior → Middle → Senior. Рост компетенций сопровождается ощутимым ростом зарплаты, и это даёт мощный заряд мотивации. Но что происходит, когда вы достигаете уровня Senior? Зарплата упирается в «стеклянный потолок», задачи становятся однотипными, а привычный драйв исчезает.

Читать далее

Нескучное программирование.История концептов

Время на прочтение9 мин
Охват и читатели15K

История концептов в C++ – один из самых показательных примеров того, как язык развивается не линейно, а через десятилетия экспериментов, откатов и переосмыслений. Первые идеи, которые мы сегодня называем концептами, появились ещё в конце 1990-х, когда стало очевидно, что шаблоны C++ имеют колоссальную выразительность, но практически не дают средств для описания намерений программиста. Шаблон можно было инстанцировать почти с любым типом, но ошибка проявлялась либо в виде километров сообщений компилятора, либо в виде неожиданного поведения в рантайме. Уже тогда Страуструп сформулировал проблему как «отсутствие контрактов для шаблонов», когда программист знает, что от типа требуется оператор + или ==, но язык этого не выражает.

Ранние предложения концептов были чрезвычайно амбициозными и стремились описывать не только синтаксис, но и семантику. Например, концепт EqualityComparable должен был означать не просто наличие operator==, но и выполнение математических свойств эквивалентности: рефлексивности, симметричности и транзитивности. Аналогично, концепты для упорядоченных типов предполагали строгую слабую упорядоченность, а для итераторов корректное поведение при многократном проходе. Это отражало академический взгляд на обобщённое программирование, сильно вдохновленный функциональными языками и работами Степанова.

Читать далее

Счастливые автобусные билетики. Магия чисел для советских школьников

Время на прочтение6 мин
Охват и читатели16K

В детстве каждое лето я проводил на даче. Из Ленинграда до дачи мы добирались на пригородном автобусе. Особой удачей я считал занять место напротив кассы и смотреть на то, как люди покупают себе билеты. Но не с целью контроля, а с целью наблюдения за самим процессом. И за билетами.

Очень меня интересовали эти самые билетики! Я их коллекционировал. На даче у меня был специальный дерматиновый красивый полупрозрачный конверт (от старых фломастеров), в котором я хранил все свои билеты. Номера автобусных билетов состояли из шести цифр, и я отдельно выделял те, у которых сумма первых трёх цифр была равна сумме трёх последних. Конечно, самыми ценными были бы те билеты, у которых все цифры одинаковые...

Читать далее

Ближайшие события

AI убила бизнес Tailwind CSS. Компания сократила 75% разработчиков

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели45K

Парадокс эпохи: фреймворк на пике популярности, трафик и установки растут, но доходы упали в пять раз, и компания оказалась на грани разорения — ещё чуть-чуть, и не хватило бы денег на зарплаты.

Читать далее

Нейро-дайджест: ключевые события мира AI за 1-ю неделю января 2026

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели11K

Привет, это новый выпуск «Нейро-дайджеста» — коротких и полезных обзоров ключевых событий в мире искусственного интеллекта и технологий. 

Неделя выдалась насыщенной: китайцы выкатили MiniMax-M2.1 для кодинга и агентных задач, новая мультимодальная опенсорс LTX-2 и обновлённый Qwen-Image-2512. ИИ для документаций, озвучка текста в браузере и штрафы за нейро-видео.

Всё самое важное — в одном месте. Поехали!

Читать дайджест →

Как измерили Землю без GPS: дуга Струве длиной 2820 км

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели18K

О том, что Земля имеет форму шара, знали задолго до Нового времени. Но одно дело общее представление, и совсем другое — точные измерения размеров и формы планеты.

Для этого нужны были не рассуждения, а масштабные геодезические работы: измерения углов, расстояний и сложные вычисления на тысячах километров. В XIX веке такую «линейку» создал астроном Василий Струве, построив величайшую геодезическую дугу своего времени — цепочку из 265 треугольников от Северного Ледовитого океана до Чёрного моря.

В этой статье разберёмся, как работала «Дуга Струве» и почему без неё современная геодезия выглядела бы иначе.

Читать далее

Взлом RDP в STM8/32 методом PowerGlitch

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели24K

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

«Нет никакой защиты, есть только количество времени и знаний, необходимых для достижения цели.»

Читать далее

Как я установил таксофон у себя дома

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели26K

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

Из книги Big Secrets и нескольких выпусков журнала 2600 я знал пару фактов о кредитных картах. Номера карт American Express всегда состояли из 15 цифр и начинались с тройки, а номера карт Visa состояли из 16 цифр и начинались с четвёрки. Первая пара цифр обозначала банк-эмитент, затем шёл номер счёта; последняя цифра вычислялась при помощи алгоритма Луна и использовалась как контрольная сумма всех предыдущих цифр.

Читать далее

Если ИИ не мыслит, то как он решает математические задачи?

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели59K

Самый частый вопрос к тезису о том, что языковые модели не думают - чисто практический.

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

Самым частым возражением было не философское, а практическое:

«Если это правда, то как ИИ удается заниматься арифметикой?»

Сложение, вычитание, умножение - эти процессы кажутся точными, механическими и основанными на строгих правилах. Они выглядят полной противоположностью «размытому» предсказанию языка. Поэтому естественно предположить, что где-то внутри модели спрятан калькулятор или нечто очень на него похожее.

Но его там нет. Однако происходит кое-что весьма любопытное.

Читать далее

Logitech забыла продлить сертификат разработчика — и миллионы мышек на Mac превратились в кирпичи

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели17K

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

Читать далее