Как стать автором
Поиск
Написать публикацию
Обновить
1025.19

Программирование *

Искусство создания компьютерных программ

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

Подставляем TOTP в Chrome c помощью Yubikey

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров738

Надоело каждый раз подставлять TOTP на сайтах и у вас есть yubikey? Тогда добро пожаловать под кат. Поделюсь самописным расширением, которое позволяет автоматизировать эту рутину.

Читать далее

Новости

Как работает память: что происходит в мозге, когда мы забываем пароль от Wi-Fi

Уровень сложностиСложный
Время на прочтение4 мин
Количество просмотров4.3K

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

Читать далее

Проектирование REST API: проблемы, решения, практические рекомендации

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

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

Читать далее

С помощью ИИ этот парень запустил конкурента Google прямо у себя в кладовке

Время на прочтение8 мин
Количество просмотров3.5K

Почти тридцать лет назад, когда Google только выходил на свою победную тропу, у её основателей почти не было железа.

Компания, сначала известная как Backrub и работающая на кампусе Стэнфорда, держала свой первый экспериментальный сервер в коробе из кубиков Duplo. Сервер вмещал 40 гигабайт данных. Позже удалось перейти на скромную серверную стойку. А в 2025 году весь поиск Google уже невозможно уместить даже в одном дата‑центре — и так давно.

И всё же, если включить смекалку и вложить немало труда, можно собрать нечто почти сравнимое с современным Google — на машине, по размеру близкой к тому самому первому серверу. И даже разместить её… в собственной прачечной.

Читать далее

День программиста: готовимся к празднику и составляем список антиподарков для кодеров

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

13 сентября в России отмечают День программиста. Рассказываем, как появился этот праздник и что никогда не стоит дарить, если вы искренне хотите порадовать программиста. 

Читать далее

Модернизация древнего драйвера Linux с помощью Claude Code

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров5.7K

В качестве одного из своих увлечений я помогаю людям восстанавливать данные со старых ленточных кассет, например QIC-80, которые в 90-е годы часто применялись для резерв��ого копирования. Ими пользовались отдельные люди, компании, операторы досок объявлений и не только. К ленточным кассетам я испытываю очень тёплые чувства. Есть нечто особое в том тактильном ощущении, которое возникает, когда держишь эту кассету в руках. Нечто такое, что делает сам процесс её использования приятным несмотря на все огрехи дизайна, которыми славилась технология QIC. Причём, если вникнуть в процесс и воссоздать все необходимые условия, то данные на этих лентах, даже спустя столько времени, вполне можно восстановить.

Читать далее

Maven: verify или clean install?

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

Если вы автоматически пишете mvn clean install при сборке проекта, то вы такой точно не один — эта команда прочно укоренилась в привычке Java-разработчиков. Но действительно ли она всегда необходима? Что, если вместо неё использовать verify?

В новом переводе от команды Spring АйО мы погрузимся в детали жизненного цикла Maven, поведение реактора, инкрементные сборки и подводные камни использования clean и install. А главное — попробуем понять, когда можно (и нужно) обойтись без install и clean, чтобы ускорить сборку и сократить расходы памяти.

Читать далее

Open Source и ЖКХ

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

Привет, мы делаем doma.ai - это open source платформа для рынка ЖКХ, нами пользуется сейчас больше 4 000 юрлиц, а на сервера прилетает до 1 000 rps в пиковые моменты.

Расскажу историю нашего open source, что это дало компании и куда мы хотим развивать open source часть. Посмотреть код и поставить ⭐️ можно на GitHub.

Читать дальше

Как мы вшили нагрузочное тестирование в CI/CD, чтобы не хоронить фичи в проде глубокой ночью

Время на прочтение3 мин
Количество просмотров771

Привет Хабр! Я Дима, DevOps-инженер в IT-компании.

Эпик-фейлы бывают разные. Можно забыть закоммитить config.json. А можно так упаковать новый эндпоинт, что всё апи ляжет костьми в час-пик и будет тихо плакать под лавиной реквестов. Ручные нагрузочные тесты — это как проверять тормоза на уже летящем с горы автомобиле. Сегодня говорим о том, как автоматизировать эту магию — вшивать проверку производительности прямо в CI/CD, чтобы не краснеть перед продом и спокойно спать по ночам.

Запускайте свои пайплайны, щупальцы в руки — погнали!

Читать далее

Instinct от Continue: будущее автоматического рефакторинга

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

Команда AI for Devs подготовила перевод статьи о том, как Continue обучила Instinct — открытую модель Next Edit для предсказания следующей правки кода. Разработчики собрали тысячи реальных правок, внедрили алгоритм SeleKT для обучения и показали, что их модель работает в 6,4 раза быстрее ручного редактирования.

Читать далее

A/B-тесты на SQL с уменьшением дисперсии

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров708

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

Каждому аналитику знакомо: при анализе A/B-тестов важно выжимать максимум информации из данных. Но высокая дисперсия шума часто заставляет нас наращивать выборку и затягивать эксперименты. Как ускорить получение результата и повысить чувствительность теста? Один из способов – сократить разброс метрики без изменения ее среднего. Классическая формула размера выборки показывает, что количество данных N прямо пропорционально дисперсии σ². Получается, уменьшая σ², мы автоматически уменьшаем нужный объем данных или можем детектировать меньший эффект при тех же N.

Поэтому методы снижения дисперсии в A/B-тестах становятся очень востребованными. В индустрии известны разные приемы: стратификация, бутстреп, сложные байесовские тесты, и, конечно же, ковариатный подход (CUPED/CUPAC и т.д.). Мы остановимся на одном из самых простых и эффективных приемов – CUPED (Controlled-experiment Using Pre-Experiment Data). Его суть проста и понятна: перед экспериментом у каждого пользователя была определенная метрика (скажем, прошлые покупки), и мы можем использовать эту информацию, чтобы скорректировать итоговую метрику и снизить шум.

Читать далее

Я — идеальный программист

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров19K

Я — идеал��ный программист. Не помню себя таким, чтобы не хотел быть программистом. Задачки с двумя звёздочками, уроки информатики, олимпиады, домашний ПК раньше, чем у остальных — всё шло к моей профессии. Я был твёрдо убеждён в необходимости базового математического образования и получил его. Для меня программирование — это не ремесло, а искусство, помноженное на математику. Каждое утро я читаю Хабр и спецификации языков программирования. Пока чищу зубы, пролистываю профессиональные телеграм‑каналы.

Читать далее

Ещё одно тестирование Angie, HAProxy, Envoy, Caddy и Traefik от Devhands

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров3.7K

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

Читать далее

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

Регулярные выражения в PostgreSQL

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

Регулярные выражения (или regex) — это особые текстовые строки, используемые для описания поискового шаблона. В PostgreSQL regex становится незаменимым инструментом, особенно при работе с большими объёмами неструктурированных строковых данных.

Возможно, у кого‑то есть вопрос: «А для чего нам регулярные выражения в БД?» И мы вам ответим:

Регулярные выражения (regex) позволяют описать сложные текстовые шаблоны компактно и гибко.

Читать далее

Какой Python-фреймворк выбрать: Django, Flask или FastAPI?

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

Команда Python for Devs подготовила перевод статьи о том, какой фреймворк выбрать для веб-разработки на Python: Django, Flask или FastAPI. Django берёт надёжностью и готовой функциональностью, Flask — гибкостью и минимализмом, FastAPI — скоростью и современными возможностями. А какой из них ближе вам?

Читать далее

Баги носят данные. Проверка Apache NiFi

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров681

Сбор, обработка и перемещение данных — ключевые процессы в IT. Но что, если они нарушатся из-за коварных багов в коде? Рассказываем об ошибках, найденных статическим анализатором в проекте Apache NiFi.

Читать далее

Genkit Go 1.0: AI-фреймворк для продакшена

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

Команда Go for Devs подготовила перевод статьи о релизе Genkit Go 1.0 — open source AI-фреймворка от Google для экосистемы Go. Теперь можно быстро и безопасно создавать продакшен-ready AI-приложения с типобезопасными флоу, поддержкой RAG, вызова инструментов и богатым локальным тулчейном.

Читать далее

UUIDv7 в PostgreSQL 18

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

Совсем скоро (в конце сентября) выйдет PostgreSQL 18. Релиз готовит важные обновления — от асинхронного I/O до EXPLAIN с показателями CPU и WAL. 

Довольно громкая новинка — нативная поддержка UUIDv7, нового стандарта уникальных идентификаторов, идеально подходящих для B-tree индексов. 

В новом переводе от команды Spring АйО рассказывается, почему это важно, как работает UUIDv7 и чем он лучше UUIDv4 для современных распределённых систем.

Читать далее

Визуализация управления памятью в Python: что творится внутри?

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров5.1K

Python щедро раздаёт нам удобные абстракции. Создаёшь список, словарь или строку — и не думаешь, где под это выделилась память и как она потом освободится. Но внутри интерпретатора работает довольно сложный механизм, и он устроен не так, как в C или других языках.

Идея сделать приложение-визуализатор пришла после чтения книги CPython Internals. Там подробно объясняется, как устроены арены, пулы и блоки. Но пока читаешь текст, всё это воспринимается слишком абстрактно. Захотелось увидеть механику своими глазами: как память выделяется, как освобождается и почему иногда остаётся занята. Так и появился MemoryMonitorApp, а вместе с ним — эта статья.

Читать далее

Алгоритмы в повседневной жизни

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

Вы когда-нибудь задумывались, что поиск футболки в шкафу — это O(N), а приготовление ужина — многопоточный процесс с I/O blocking?

Мы пишем код, но забываем, что алгоритмы могут оптимизировать не только сервисы, но и повседневность. В этой статье вы найдете 6 алгоритмов, которые позволят превратить быт в систему: от порядка в шкафу до быстрого выбора хлеба в магазине.

Станьте архитектором не только кода, но и своей жизни!

Не кликайте, если любите хаос

Вклад авторов