Обновить
@resetmeread⁠-⁠only

Пользователь

Отправить сообщение

PostgreSQL для бэкендера: 10 фич, которыми мало пользуются, а зря

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

Вы храните в PostgreSQL пользователей, заказы и платежи — а потом проект обрастает Redis для очереди, отдельным поисковиком и самодельными блокировками через таблицу locks. Иногда это оправдано. Но часто типовые бэкенд-задачи закрываются прямо в базе: атомарно, транзакционно, с индексами и без лишней сетевой болтовни.

Привет, Хабр! Меня зовут Тимур Исламгулов. Я преподаватель МФТИ и ведущий вебинаров по PostgreSQL. За годы работы я насмотрелся, как разработчики поднимают лишнюю инфраструктуру там, где хватило бы самой базы, — об этом и поговорим.

Показать рабочий SQL →

Вы не знаете HTML. Мои вопросы об HTML с ответами

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

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

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

А что касается HTML, то я ничего не написал. Сегодня буду исправляться. Сразу скажу, что это не будут вопросы в стиле: «А какие HTML5-элементы вы знаете?». Мне хочется, чтобы вам было интересно и чтобы вы узнали что-то новое.

По этой причине большинство вопросов связаны с практикой. И абсолютно точно вы не ответите на все. Хотя, может, я ошибаюсь. Вот и проверим, насколько я прав.

Давайте посмотрим, что я вам подготовил.

Читать далее

Архиватор рождённый из теории предельного сжатия вселенной

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

Bounce — быстрый архиватор на чистом Rust без внешних зависимостей. Smart Routing автоматически выбирает стратегию: LZ77 для текста, Byte-Shuffle для весов нейросетей, Huffman для бинарных данных, Raw Store для уже сжатых файлов. Результат: 450 МБ .safetensors сжимается до 71.9% при декомпрессии 1.3 ГБ/с — лучше gzip и zstd. Многопоточный pipeline, пик памяти 73.6 МБ на файл в 450 МБ, размер блока через золотое сечение. Идеально для ML CI/CD, edge-деплоя LLM и смешанных датасетов.

Читать далее

Как выжать из HTML/CSS динамику, или создание IRC клиента без JS

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

Когда возникает идея создать браузерный IRC-клиент без JavaScript, приходится сталкиваться с классической проблемой фронтенда: все насколько привыкли гнать динамику через JavaScript, что перестали замечать возможности HTML/CSS с щепоткой серверной магии по реализации многих фич. HTTP Streaming существует с давних времён, а CSS эволюционировал настолько, что может справиться с логикой состояний — но мы упорно продолжаем грузить мегабайты JavaScript (и иногда даже WebAssembly) для решений, которые вполне можно реализовать иначе.

Идея создать IRC клиент без JavaScript не совсем нова (хоть это и выяснилось уже после создания такого :) ). Ещё в нулевых появился CGI:IRC — настоящий IRC клиент, который может работать полностью без JavaScript, позволяя людям общаться в реальном времени через браузер, даже если JavaScript по каким-то причинам не работал. Но это было в эру table-layouts, и когда CSS не был так развит, как сейчас. Сегодня возможностей больше, и мы воспользуемся ими, чтобы навернуть функциональность, которая не видана CGI:IRC.

Результат можно глянуть (хоть и с дополнительной стилизацией и изменениями, которые не так важны для статьи) здесь, а ещё на GitHub

Читать далее

Фронтенд 2026: что умерло, что выжило и что взлетело неожиданно

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

Я открываю старый проект 2020 года и вижу знакомые имена в package.json: create-react-app, enzyme, moment.js, axios. Пять лет назад это был золотой стандарт. Сегодня же эти технологии вызывают у коллег искреннее недоумение: «Зачем это тут?»

А ведь прошло всего пять лет.

И за эти 5 лет изменилось очень многое: SPA переживает упадок, TypeScript стал обязательным стандартом, роль фронтенд-разработчика расширяется до full-stack. А дальше что, браузеры заменят фреймворки?

Читать далее

Как я купил кота в мешке: реверс-инжиниринг электронных ценников. Часть 1. Знакомство с nrf52832

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

Как-то давным-давно я заинтересовался дешевым железом, ибо был студентом-ардуинщиком, который очень хотел сэкономить. И как-то раз пришла идея — поработать с E-INK дисплеем. Цены на новые модули на Али кусались, поэтому я отправился шерстить Авито и нашел там объявление о продаже б/у электронных ценников из супермаркета и DNS.

О чудо! Всего 250 рублей за штуку: плата, контроллер, корпус, и оно даже работает... наверное.

Я заказал целую партию, не подозревая, что внутри меня ждет коррозия всего - чего можно, чип nRF52832 в новой партии, нестандартный протокол связи и абсолютный ноль документации. О том, как я ковырял эти платы китайским программатором, как писал в RAM через GDB, убил пару ценников, экранов и в итоге завел дисплей через Zephyr RTOS. Спойлер: фрактал Мандельброта успешно выведен! Дум не за горами

Читать далее

Как мы получили p-value < 0.001 на 10 наблюдениях в группе: ультимативный гайд по A/B на малых выборках

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

Всем привет! Я Андрей Романов, тимлид команды аналитики Sales Tech в Авито, а также преподаватель и ментор по А/B-тестированию. 

В последние годы я регулярно работаю с A/B-тестами на малых выборках: когда в группе не тысячи пользователей, а 10–40 менеджеров, регионов или других экспериментальных единиц. На этом опыте я собрал практический гайд: что можно сделать до запуска, во время дизайна и после эксперимента, чтобы выжать максимум из ограниченных данных.

В A/B-тестах на малых выборках стандартные проблемы усиливаются: MDE выше ожидаемого эффекта, метрики шумят, а эффект трудно отделить от случайности. При этом страдает не только чувствительность, но и валидность: из-за небольшого числа наблюдений любая ошибка в дизайне, балансе групп или интерпретации результата становится гораздо опаснее.

В материале дам 26 шагов, которые помогут выжать максимум чувствительности и валидности из ограниченной выборки. Хотя фокус — на A/B-тестах с малыми выборками, 90% подходов применимы и к стандартным экспериментам.

Читать далее

Я собрал Telegram-бота с лентой новостей, которая учится на твоих реакциях — и хостится за $5 в месяц

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

Хотел ленту новостей без двух вещей: дублей (одно событие из пяти каналов с разными заголовками) и потока негатива по утрам.

Получился Telegram-бот, который по умолчанию показывает только хорошие и нейтральные новости — а тяжёлый контент включается в настройках на 4 уровнях. Плюс он убирает дубли, переводит RU↔EN и подстраивает выдачу под твои реакции 🔥 ❤️ 😢.

Но самое интересное — он живёт на одной машине Fly.io за ~$5 в месяц. В статье разбираю, как:

заменил Postgres + pgvector на встраиваемый sqlite-vec и убрал отдельную БД-машину;

гоняю типизацию, перевод и оценку тональности через бесплатные LLM на OpenRouter (счёт $0–1/мес);

считаю эмбеддинги локально на fastembed/ONNX без внешних API;

собрал рекомендательное ядро на «векторе вкуса» с EWMA и анти-баблом.

И, конечно, грабли: sqlite-vec, который ломался на arm64; vec0 без INSERT OR REPLACE; fastembed, сменивший пулинг между версиями; и LLM, которая «подкручивала» оценки негатива, пока я не дал ей чёткую рубрику.

👉 Бот живой, можно потрогать: @futur_e_news_bot

Читать далее

Ваш PostgreSQL болеет молча. Десяток запросов, чтобы это увидеть

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

Пятница, вечер. Один эндпоинт начал отвечать восемь секунд вместо двухсот миллисекунд, а в Grafana всё зелёное. PostgreSQL редко падает громко — он неделями копит мёртвые строки, лишние индексы и зависшие транзакции, пока не станет совсем плохо.

В статье — пять SQL-запросов из моего queries.sql, которыми я реально пользуюсь: bloat и dead tuples, топ тяжёлых запросов по pg_stat_statements, неиспользуемые индексы, висящие транзакции и блокировки. Работают на голом PostgreSQL 13+

Читать далее

Мой первый контейнер без Docker

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

Технологии контейнеризации, возможно, как и у большинства из нас, плотно засели в моей голове. И казалось бы, просто пиши Dockerfile и не выпендривайся. Но всегда же хочется узнавать что‑то новое и углубляться в уже освоенные темы. По этой причине я решил разобраться в реализации контейнеров в ОС на базе ядра linux и в последствие создать свой «контейнер» через cmd.

Читать далее

Как бы я рассказал про линейную регрессию (если б меня кто-то спросил)

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

Привет, Хабр! Если вам когда‑либо хотелось разобраться в том как работает линейная регрессия, или хочется освежить в памяти основные моменты без необходимости продираться через разрозненные источники, то прошу под кат. Это не статья "от начинающего для начинающих". Экстра лонгрид — писал больше года. Статья концептуальная, а концептов пять: 1) ключевой повествовательный компонент — визуализации (их около сотни), текст — вспомогательный; 2) анимации везде где только можно (их всего 34); 3) простота — достаточно знаний со школьного курса математики чтобы начать читать; 4) воспроизводимость — подавляющее большинство медиаматериалов сгенерированы при помощи Python а исходный код выложен в open‑source и, самый главный, 5) фокус на практике, — например, если упоминается векторная запись метода наименьших квадратов, значит она в нарративе решает возникшую боль читателя

Читать далее

Научись говорить ртом

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

Всем привет, меня зовут Макс. Я TeamLead Backend, автор YouTube-канала PyLounge, бывший преподаватель классического университета и просто человек, который много общается с другими людьми. Нам всем в современном мире так или иначе необходимо общаться с людьми. Даже если вы программист, вы не просто пишете код, вы постоянно с кем-то коммуницируете, причём много. И многие люди с большим трудом будут добиваться успеха в карьере, в отношениях, если не научатся одной простой вещи – говорить ртом.

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

По моим наблюдениям, человек, который освоил этот навык, выделяется на фоне 99% людей. Поэтому в этом материале я расскажу, почему важно говорить ртом, зачем это нужно и почему стоит начать делать это уже сейчас. Я надеюсь, что этот текст наберёт много просмотров не для моего успеха и популярности, а для того, чтобы больше людей научились говорить ртом и сделали так свою жизнь и жизнь окружающих ещё лучше. Это моя философия, которую я пропагандирую и на работе, и в жизни.

Читать далее

Как я научил Алису петь: генерация музыки по голосовой команде

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

Мы живём в Мельбурне. Дочь растёт в русскоязычной семье, и мне хочется, чтобы русский был для неё не только «языком, на котором разговаривают дома», но и языком, на котором происходит что‑то прикольное.

Я купил Яндекс Алису Макс и Алису Про. Для русского языка альтернатив толком нет: Amazon Echo, Apple HomePod, Google Nest, всё это про русский знает в лучшем случае на троечку. Яндекс другое дело: русская речь, русская музыка, русские команды, всё работает из коробки.

Но если зайти в Яндекс Диалоги и посмотреть, что там за навыки, становится грустно. Математические задачки, ролевые игры, сказки. Мёртвый продукт из эпохи до ChatGPT. Я смотрел на это и думал: ну ребята, можно же сделать что‑то живое.

Так появилась идея навыка генерации музыки. Говоришь «создай песню про море», ждёшь минуту, и Алиса её играет.

На всё ушло два вечера. У меня уже был готовый шаблон инфраструктуры и пара похожих pet‑проектов, так что я не начинал с нуля.

Читать далее

Выжать больше из локальных LLM. Ollama медленнее llama.cpp в 3 раза. UD_Q4_K_XL лучше чем Q4_K_M, а вес тот же и т.д

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

Самый просто способ запустить локальную LLM - это установить ollama или LM Studio. Это быстро и просто, но вы теряете и в скорости, и в качестве. Почему UD_Q4_K_XL лучше при том же размере, почему квант Q3 может быть медленнее чем Q4. Хорошая ли идея взять REAP для вырезания ненужных экспертов из MoE. Кто быстрее, Linux или Windows. В общем как выжать больше из локальных LLM на домашнем железе.

Читать далее

Реверс-инжиниринг Xiaomi Smart Band 10

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

У носимых устройств есть парадокс: браслет измеряет ваши пульс, сон и активность, но готового открытого API для интеграции этих данных в сторонние системы (например, домашний мониторинг или локальную БД) производитель не предоставляет. Официальное приложение Xiaomi Mi Fitness показывает красивые графики, но данные остаются «запертыми» внутри мобильной экосистемы.

Изначальная задача была чисто прикладной: настроить автоматический сбор данных о здоровье в локальную SQLite-базу и выводить отчеты в семейный Telegram-бот. Поскольку браслет синхронизируется с приложением, а то в свою очередь с облаком Xiaomi, данные гарантированно передаются по сети. Нужно было понять, в каком формате они передаются и как их забрать.

Эта статья - технический разбор пути от анализа сетевого трафика и настройки доверия к собственному CA до реверс-инжиниринга RC4-протокола Xiaomi, расшифровки AES/CBC-объектов из хранилища FDS и парсинга проприетарного бинарного формата сна.

Читать далее

Геометрические фигуры в CSS-анимации

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

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

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

По моим ощущениям, сейчас их стало меньше. Все ушли в YouTube, а теперь в ChatGPT. Но мне этот формат не подходит, поэтому я пришёл сюда, к вам.

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

В этой статье я хочу рассказать весь процесс создания, начиная с самых базовых моментов. Сразу предупреждаю, что в этой статье не будет «живых» вставок. Все эффекты смотрите в моей демонстрации на CodePen.

Давайте посмотрим, что я вам подготовил.

Читать далее

Тестируем программы для вскрытия биткойн-головоломок

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

После того как я написал статью «Головоломка на 1000 BTC» мне стали писать в личку авторы программ для их решения. В этой статье я расскажу о целом семействе таких программ и протестирую все те, что попали мне в руки, на скорость.

Читать далее

Рабочее место не-вайбкодера по методу Spec-Driven Development: запускаем Claude Code

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

Привет, Хабр! Меня зовут Даниил Подольский, я программист и архитектор, разрабатываю программное обеспечение и спецификации для создания ПО в YADRO. Вот уже девять месяцев я использую методологию Spec-Driven Development (SDD) в работе и управляю AI-агентами, которые пишут код. При этом я не считаю себя вайбкодером, потому что мой подход к работе более комплексный, чем просто «общение с AI».  

Это первая статья из цикла об оборудовании рабочего места SDD-кодера. Я расскажу о базовой настройке AI-агента Claude Code: что делать, если вы хотите оперативно и без перезагрузки переключать используемые модели и делать это для каждого проекта отдельно.

Читать далее

Началось: РКН запустил автоматический бот по сайтам — проверки ужесточили, предпринимателям массово шлют предписания

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

Осенью 2025 года заработал новый закон о персданных. Ввели новые требования и штрафы, достигающие 15 000 000 рублей.

И если в ноябре того года «письма счастья» были единичными, то теперь РКН запустил автоматический бот и проверки стали массовыми.

Я как юрист уже успел насмотреться всякого от РКН. Давайте на примере реальных предписаний разберем, как проверить себя и свою компанию, чтобы не влететь.

Читать далее

Claude Code это инициативный junior с памятью золотой рыбки. 5 правил контроля для production

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

За месяц в одиночку написал production-систему анализа цен и продуктов конкурентов с Claude Code. До этого пятнадцать лет управлял командами и бизнесами, код руками открывал раз в три года. Главный вывод: Claude Code это инициативный junior с памятью золотой рыбки. 5 правил контроля, без которых он разваливает любую систему сложнее MVP за две сессии.

Читать далее
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность