
Надоело каждый раз подставлять TOTP на сайтах и у вас есть yubikey? Тогда добро пожаловать под кат. Поделюсь самописным расширением, которое позволяет автоматизировать эту рутину.
Искусство создания компьютерных программ
Надоело каждый раз подставлять TOTP на сайтах и у вас есть yubikey? Тогда добро пожаловать под кат. Поделюсь самописным расширением, которое позволяет автоматизировать эту рутину.
Когда мозг отказывается вспомнить пароль от Wi-Fi, это не просто досадная мелочь. За этой банальной ситуацией стоят сложнейшие механизмы памяти, работы нейронных сетей и биохимических процессов. В статье я попробую объяснить, почему мы забываем такие вещи, что реально происходит в мозге и как это можно смоделировать в коде.
API — это не просто техническая прослойка. Это продукт. Его пользователи — другие разработчики. И, как у любого продукта, у него может быть ужасный или превосходный пользовательский опыт. Плохой API — это источник постоянной боли, багов и потраченного времени. Хороший API интуитивно понятен, предсказуем и прощает ошибки. Он становится продолжением мыслей разработчика.
Почти тридцать лет назад, когда Google только выходил на свою победную тропу, у её основателей почти не было железа.
Компания, сначала известная как Backrub и работающая на кампусе Стэнфорда, держала свой первый экспериментальный сервер в коробе из кубиков Duplo. Сервер вмещал 40 гигабайт данных. Позже удалось перейти на скромную серверную стойку. А в 2025 году весь поиск Google уже невозможно уместить даже в одном дата‑центре — и так давно.
И всё же, если включить смекалку и вложить немало труда, можно собрать нечто почти сравнимое с современным Google — на машине, по размеру близкой к тому самому первому серверу. И даже разместить её… в собственной прачечной.
13 сентября в России отмечают День программиста. Рассказываем, как появился этот праздник и что никогда не стоит дарить, если вы искренне хотите порадовать программиста.
В качестве одного из своих увлечений я помогаю людям восстанавливать данные со старых ленточных кассет, например QIC-80, которые в 90-е годы часто применялись для резерв��ого копирования. Ими пользовались отдельные люди, компании, операторы досок объявлений и не только. К ленточным кассетам я испытываю очень тёплые чувства. Есть нечто особое в том тактильном ощущении, которое возникает, когда держишь эту кассету в руках. Нечто такое, что делает сам процесс её использования приятным несмотря на все огрехи дизайна, которыми славилась технология QIC. Причём, если вникнуть в процесс и воссоздать все необходимые условия, то данные на этих лентах, даже спустя столько времени, вполне можно восстановить.
Если вы автоматически пишете mvn clean install
при сборке проекта, то вы такой точно не один — эта команда прочно укоренилась в привычке Java-разработчиков. Но действительно ли она всегда необходима? Что, если вместо неё использовать verify
?
В новом переводе от команды Spring АйО мы погрузимся в детали жизненного цикла Maven, поведение реактора, инкрементные сборки и подводные камни использования clean
и install
. А главное — попробуем понять, когда можно (и нужно) обойтись без install
и clean
, чтобы ускорить сборку и сократить расходы памяти.
Привет, мы делаем doma.ai - это open source платформа для рынка ЖКХ, нами пользуется сейчас больше 4 000 юрлиц, а на сервера прилетает до 1 000 rps в пиковые моменты.
Расскажу историю нашего open source, что это дало компании и куда мы хотим развивать open source часть. Посмотреть код и поставить ⭐️ можно на GitHub.
Привет Хабр! Я Дима, DevOps-инженер в IT-компании.
Эпик-фейлы бывают разные. Можно забыть закоммитить config.json. А можно так упаковать новый эндпоинт, что всё апи ляжет костьми в час-пик и будет тихо плакать под лавиной реквестов. Ручные нагрузочные тесты — это как проверять тормоза на уже летящем с горы автомобиле. Сегодня говорим о том, как автоматизировать эту магию — вшивать проверку производительности прямо в CI/CD, чтобы не краснеть перед продом и спокойно спать по ночам.
Запускайте свои пайплайны, щупальцы в руки — погнали!
Команда AI for Devs подготовила перевод статьи о том, как Continue обучила Instinct — открытую модель Next Edit для предсказания следующей правки кода. Разработчики собрали тысячи реальных правок, внедрили алгоритм SeleKT для обучения и показали, что их модель работает в 6,4 раза быстрее ручного редактирования.
Привет, Хабр!
Каждому аналитику знакомо: при анализе A/B-тестов важно выжимать максимум информации из данных. Но высокая дисперсия шума часто заставляет нас наращивать выборку и затягивать эксперименты. Как ускорить получение результата и повысить чувствительность теста? Один из способов – сократить разброс метрики без изменения ее среднего. Классическая формула размера выборки показывает, что количество данных N прямо пропорционально дисперсии σ². Получается, уменьшая σ², мы автоматически уменьшаем нужный объем данных или можем детектировать меньший эффект при тех же N.
Поэтому методы снижения дисперсии в A/B-тестах становятся очень востребованными. В индустрии известны разные приемы: стратификация, бутстреп, сложные байесовские тесты, и, конечно же, ковариатный подход (CUPED/CUPAC и т.д.). Мы остановимся на одном из самых простых и эффективных приемов – CUPED (Controlled-experiment Using Pre-Experiment Data). Его суть проста и понятна: перед экспериментом у каждого пользователя была определенная метрика (скажем, прошлые покупки), и мы можем использовать эту информацию, чтобы скорректировать итоговую метрику и снизить шум.
Я — идеал��ный программист. Не помню себя таким, чтобы не хотел быть программистом. Задачки с двумя звёздочками, уроки информатики, олимпиады, домашний ПК раньше, чем у остальных — всё шло к моей профессии. Я был твёрдо убеждён в необходимости базового математического образования и получил его. Для меня программирование — это не ремесло, а искусство, помноженное на математику. Каждое утро я читаю Хабр и спецификации языков программирования. Пока чищу зубы, пролистываю профессиональные телеграм‑каналы.
Devhands.io провели очередное нагрузочное тестирование балансировщиков, и надеюсь, сделали в этот раз всё правильно: не просто взяли готовый докер, но сравнили и поставили одинаковыми все наиболее критичные конфигурационные параметры. После проведения тестов мы сделали стрим, в котором поделились результатами. Видео этой часовой встречи можно посмотреть на Youtube, а ниже публикуем расшифровку со слайдами и всеми исходниками.
Регулярные выражения (или regex) — это особые текстовые строки, используемые для описания поискового шаблона. В PostgreSQL regex становится незаменимым инструментом, особенно при работе с большими объёмами неструктурированных строковых данных.
Возможно, у кого‑то есть вопрос: «А для чего нам регулярные выражения в БД?» И мы вам ответим:
Регулярные выражения (regex) позволяют описать сложные текстовые шаблоны компактно и гибко.
Команда Python for Devs подготовила перевод статьи о том, какой фреймворк выбрать для веб-разработки на Python: Django, Flask или FastAPI. Django берёт надёжностью и готовой функциональностью, Flask — гибкостью и минимализмом, FastAPI — скоростью и современными возможностями. А какой из них ближе вам?
Сбор, обработка и перемещение данных — ключевые процессы в IT. Но что, если они нарушатся из-за коварных багов в коде? Рассказываем об ошибках, найденных статическим анализатором в проекте Apache NiFi.
Команда Go for Devs подготовила перевод статьи о релизе Genkit Go 1.0 — open source AI-фреймворка от Google для экосистемы Go. Теперь можно быстро и безопасно создавать продакшен-ready AI-приложения с типобезопасными флоу, поддержкой RAG, вызова инструментов и богатым локальным тулчейном.
Совсем скоро (в конце сентября) выйдет PostgreSQL 18. Релиз готовит важные обновления — от асинхронного I/O до EXPLAIN с показателями CPU и WAL.
Довольно громкая новинка — нативная поддержка UUIDv7, нового стандарта уникальных идентификаторов, идеально подходящих для B-tree индексов.
В новом переводе от команды Spring АйО рассказывается, почему это важно, как работает UUIDv7 и чем он лучше UUIDv4 для современных распределённых систем.
Python щедро раздаёт нам удобные абстракции. Создаёшь список, словарь или строку — и не думаешь, где под это выделилась память и как она потом освободится. Но внутри интерпретатора работает довольно сложный механизм, и он устроен не так, как в C или других языках.
Идея сделать приложение-визуализатор пришла после чтения книги CPython Internals. Там подробно объясняется, как устроены арены, пулы и блоки. Но пока читаешь текст, всё это воспринимается слишком абстрактно. Захотелось увидеть механику своими глазами: как память выделяется, как освобождается и почему иногда остаётся занята. Так и появился MemoryMonitorApp, а вместе с ним — эта статья.
Вы когда-нибудь задумывались, что поиск футболки в шкафу — это O(N), а приготовление ужина — многопоточный процесс с I/O blocking?
Мы пишем код, но забываем, что алгоритмы могут оптимизировать не только сервисы, но и повседневность. В этой статье вы найдете 6 алгоритмов, которые позволят превратить быт в систему: от порядка в шкафу до быстрого выбора хлеба в магазине.
Станьте архитектором не только кода, но и своей жизни!