Pull to refresh
@resetmeread⁠-⁠only

User

Send message

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

Level of difficultyMedium
Reading time20 min
Reach and readers9.3K

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

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

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

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

Читать далее

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

Level of difficultyMedium
Reading time15 min
Reach and readers7.6K

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

Получился 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 болеет молча. Десяток запросов, чтобы это увидеть

Level of difficultyMedium
Reading time7 min
Reach and readers12K

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

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

Читать далее

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

Level of difficultyMedium
Reading time6 min
Reach and readers73K

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

Читать далее

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

Level of difficultyEasy
Reading time80 min
Reach and readers14K

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

Читать далее

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

Level of difficultyEasy
Reading time8 min
Reach and readers26K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time5 min
Reach and readers9.8K

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

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

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

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

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

Читать далее

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

Reading time22 min
Reach and readers55K

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

Читать далее

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

Level of difficultyHard
Reading time16 min
Reach and readers32K

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

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

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

Читать далее

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

Level of difficultyMedium
Reading time10 min
Reach and readers13K

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

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

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

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

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

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

Читать далее

10 настроек Claude Code, до которых большинство разработчиков не доходит

Level of difficultyEasy
Reading time15 min
Reach and readers28K

Ранее я писал про утечку исходного кода Claude Code. 512 000 строк, KAIROS, упоминания нерелизнутых моделей Opus 4.7 и Sonnet 4.8. Так вот. В актуальном Claude Code уже есть Opus 4.7. Ровно как и было в leaked‑коде. Вместе с ней появился новый уровень /effort xhigh — это мы сегодня тоже разберём.

В первой части я показал что Claude Code умеет из коробки. Типовой сценарий после этого: «понял, установил, пользуюсь». И дальше тот же потолок что у всех — Claude работает быстро, но как‑то странно. Отвечает не то, повторяет одно и то же к концу сессии, просит разрешения на каждый чих, жрёт токены как не в себя.

Это решается настройками. Конкретными. Которые лежат в двух файлах и никто до них не доходит.

Ниже десять вещей которые я настроил за полгода работы с Claude Code и которые сделали разницу между «работает» и «работает как отдел». С готовыми конфигами. Копируй, вставляй, меняй под себя.

Читать далее

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

Level of difficultyMedium
Reading time17 min
Reach and readers14K

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

Читать далее

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

Level of difficultyEasy
Reading time8 min
Reach and readers22K

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

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

Читать далее

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

Level of difficultyEasy
Reading time7 min
Reach and readers100K

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

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

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

Читать далее

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

Level of difficultyMedium
Reading time8 min
Reach and readers23K

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

Читать далее

Биологический квайн: программа из 75 букв ДНК, которая копирует сама себя

Level of difficultyHard
Reading time15 min
Reach and readers10K

Если задать гуглу вопрос «какая система счисления у ДНК», он честно скажет — четверичная. Четыре буквы (A, C, G, T) кодируют всё, что есть в живом. Каждые три подряд — кодон, итого 64 комбинации, чего хватает с запасом на любой опкод компактной стек-машины.

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

Спойлер: можно. И влезает в 75 нуклеотидов. Это меньше, чем длина среднего твита.

В этой статье я расскажу, как устроена эта штука: соберём четверичный байткод из ДНК, напишем стек-машину, которая по нему ходит, а в конце — соберём 75-нуклеотидный геном, который копирует сам себя нуклеотид за нуклеотидом. Дальше из этого вырастет 3D-симуляция тканей, эволюция и драматичная история про вымирание колонии — но это будут следующие статьи серии.

Читать далее

Почему автотесты пропускают изменения в API и как это исправить с Pydantic

Level of difficultyMedium
Reading time8 min
Reach and readers14K

Приветствую, Хабр!

Меня зовут Владислав Тимашенков, я занимаюсь автоматизацией тестирования в ГК Infowatch.

Наша команда столкнулась с популярными болями автотестов для API:

- одно изменение в API требует обновления нескольких тестов;
- проверка структуры ответа распределена по тестам и не централизована;
- валидация вложенных структур и генерируемых полей требует дополнительного кода.

И мы задались вопросом: какой инструмент для валидации контракта нам подойдёт?

В этой статье расскажем о нашем переосмыслении подхода к тестированию API с помощью внедрения Pydantic.

Читать далее

CSS для тех, кто спал и проснулся

Level of difficultyEasy
Reading time7 min
Reach and readers15K

За последние годы CSS сильно изменился: появились вложенность, новые селекторы, container queries и нормальная работа с темами. В этой статье - краткий разбор ключевых фич, которые позволяют писать меньше костылей и реже тянуть JS.

Проснуться

Работа в продуктовой команде — что это такое и зачем это нужно?

Level of difficultyEasy
Reading time8 min
Reach and readers7.1K

Привет, Хабр! Меня зовут Антон Батищев, я бэкенд-разработчик в продуктовой команде Циан. В этой статье поделюсь опытом: как устроена наша работа, какие плюсы мы видим в таком подходе и с какими проблемами сталкиваемся на практике.

Читать далее

Объяснение лямбда исчисления через Python

Level of difficultyHard
Reading time9 min
Reach and readers11K

Реализация ключевых конструкций лямбда‑исчисления на Python и объяснение их работы. Подойдёт даже тем, кто не очень знаком с Python.

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

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

Information

Rating
Does not participate
Registered
Activity