Обновить

Разработка

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

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

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

Привет! Меня зовут Саша Михеев, и я работаю в Авито над развитием персонализации пользователей. Делаю так, чтобы покупатели видели объявления, которые могут их заинтересовать. В статье рассказываю, как мы внедряли «трансформеры», чтобы улучшить рекомендации для пользователей.

Статья будет полезна data scientist-ам, ML-инженерам, ML-Ops-специалистам и продакт-менеджерам.

Читать далее

Новости

Как мигрировать кусочек Яндекс Такси с PostgreSQL на YDB и перестать считать подключения к шардам

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

Привет, Хабр! Меня зовут Игорь Березняк, и мы с командой делаем Техплатформу Городских сервисов Яндекса. Я уже писал на Хабре про архитектуру платформы, рассказывал на «Хайлоаде» (и на Хабре) про шардирование и миграцию на YDB.

Эта статья написана по мотивам последнего доклада. В ней я рассказываю не о самой миграции (ну мигрировали и мигрировали, этим сейчас никого не удивишь), а о её причинах.

Дело в том, что PostgreSQL — потрясающая система. Инженерное чудо, позволяющее сейчас нескольким разработчикам собирать системы, для которых всего пару десятков лет назад потребовалась бы команда архитекторов и контракт с вендором.

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

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

Читать далее

Этот уникальный японский веб-дизайн

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

В 2013 году на Randomwire была опубликована интересная статья. В ней автор указал на интересные особенности японского дизайна. Японцы известны своим минимализмом, но в случае сайтов у них, почему-то, всё наоборот. Страницы пестрят всевозможными цветами, что уже нарушает 3 принципа дизайна, плюс на них используются мелкие иконки и мно-о-о-о-го текста.  Да вы и сами видите пример этого буйства фантазии на скриншоте выше, сделанном в ноябре 2022 года.

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

И вот мне стало интересно, как обстоят дела сейчас, и можно ли как-то количественно оценить дизайн японских сайтов? Собственно, этим я и занялся.

Читать далее

Литания: создаем свой язык программирования с лексером, парсером и интерпретатором

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

В наше время программирование стало очень доступным из-за развития инструментов и языков. Написать «привет, мир» может практически каждый, а количество фреймворков для JavaScript уже воспевается в шутках. Теперь, чтобы выделиться и впечатлить друзей и коллег, нужно спускаться глубже. Придумаем свой язык шуточный программирования! 

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

Это упрощенная статья, которая расширит ваш кругозор, а у некоторых вызовет интерес и любопытство погрузиться в тему.

Читать далее

Первые отечественные электронные лифты. УЛЖ-10

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

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

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

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

25 этаж

Подсказка вместо мышления: как автогенерация кода меняет junior и middle за один год

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

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

Читать далее

Постмортем: как мы опубликовали ИИ-фейк и какие выводы сделали

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

Недавно в нашем блоге вышел материал об ИИ-деде, который 31 минуту троллил мошенников. Статья собрала отличные охваты, но вызвала справедливые подозрения у комьюнити. 

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

Читать далее

Documentation-Driven Development: как мы генерируем Go-код из OpenAPI-спецификаций

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

Привет, Хабр. Я Матвей Лихота, старший Go-разработчик из МТС Web Services. По моему опыту, документация, которую пишут руками отдельно от кода, устаревает уже в момент следующего коммита. Из-за этого мы в команде тратили до 20% времени на поддержание актуальности swagger-документации в десятке микросервисов. И когда ошибки интеграции уже стали привычным фоном, мы все-таки решились и перевернули всё с ног на голову: внедрили Documentation-Driven Development (DDD) — подход в разработке, когда процесс начинается с документации. 

Что за подход и что он дал в итоге, зачем понадобилась утилита oapi-codegen и как мы генерируем Go-код из OpenAPI-спецификаций — подробно рассказал и показал под капотом. 

Читать далее

Суверенный интернет стучится в наши двери

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

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

Получается парадоксальная ситуация: людям, которые просто хотят посмотреть котиков на YouTube или спросить ChatGPT о какой-нибудь ерунде, снова начинают вставлять палки в колёса.

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

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

Читать далее

Разработка аркадной гонки на Rust с нуля. Ошибки и успехи

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

14 месяцев назад я начал разрабатывать гонку. Идея была простой — с дедлайном 4 месяца сделать простую игру без пафоса. Ну, любой разработчик знает, что произошло дальше: без пафоса не вышло.

Читать далее

От микроменеджмента до автопилота: 4 стадии рефакторинга AI-кода на примере десктопного приложения

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

Реддит и Хабр забиты историями о том, как кто-то «написал приложение за вечер с помощью ChatGPT, вообще не зная программирования». Маркетологи называют это вайбкодингом — ты просто описываешь свои намерения, а ИИ выдает готовый продукт.

Я проверил, и вот мой спойлер: на масштабе чуть большем, чем программа на 500 строк, это не работает.

Август 2025 года. Мне понадобилась утилита со сложной логикой: конвертер выгрузок Telegram (JSON) в чистый текст для LLM. Проект десктопный, с GUI, графиками и парсингом. Вместо того чтобы писать код руками, я провел эксперимент: стать техлидом для связки актуальных на тот момент моделей (Claude 4.0 + Gemini 2.5 + Cursor).

Я заранее дал им архитектуру. Они собрали первый MVP. А затем, чтобы этот «MVP» (нет) не сложился как карточный домик через неделю, мне пришлось четырежды инициировать глобальный рефакторинг, потратить 40 часов на борьбу с галлюцинациями вокруг Matplotlib и разгребать цикличные зависимости.

Эта статья — рефлексия и разбор полётов. Это история о том, почему в 2026 году главный навык инженера — это умение видеть деревья за лесом и вовремя сказать ИИ: «Нет, твоя архитектура никуда не годится, всё переделываем».

Читать далее

От макетов до кода: как AI-прототипы упростили жизнь разработчикам и тестировщикам

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

Привет! Я — Аля, старший продакт-менеджер выделенных серверов в Selectel. Представьте, вашей команде нужно разработать новый интерфейс для продукта. Вы ставите задачу на дизайнера, а он приносит статичные картинки экранов в Figma. На встрече команда смотрит на них и понимает, что половина сценариев не продумана. Возникают вопросы: «Что будет, если пользователь нажмет на кнопку или данные не загрузятся?» И вместо того, чтобы передать задачу в разработку, вам приходится выяснять детали в комментариях и чатах.

Нам это хорошо знакомо. Долгие циклы согласований, переделки после релиза, сложности с тестированием — все это было частью нашего процесса. Чтобы решить эти проблемы, мы решили попробовать AI-инструменты для прототипирования. В статье расскажу, как Figma Make и другие сервисы помогли нашей команде ускорить создание прототипов и сократить количество правок. Будет полезно тем, кто устал от цикла «получить макет → найти проблему → подождать правки → повторить».

Читать далее

Как я написал оптимизатор Windows для геймеров и выложил в open source

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

Привет, Хабр! Меня зовут Sonic. Я собрал SonicBoost — бесплатную утилиту с открытым кодом, которая вытаскивает из Windows 10/11 максимум FPS. 28 твиков реестра, управление службами, блокировка телеметрии, оптимизация сети — всё в одном EXE на 65 МБ. Под капотом .NET 8, WPF UI с Mica-эффектом и ни одного подозрительного скрипта — весь код на GitHub.

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

Зачем вообще нужен ещё один твикер?

Каждый геймер знает ощущение: собрал машину за 200к, а в Valorant на ALT+TAB — фриз на 3 секунды. FPS скачет, пинг гуляет, микрофризы в самый неподходящий момент.

Проблема не в железе. Проблема в том, что Windows — это корпоративная ОС, а не игровая. По умолчанию там крутятся:

Соник, что ты сделал?

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

C++: экономим на спичках

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

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

Довольно типичный случай — у вас есть вполне себе нормальная структура, которая хранит информацию об одном объекте. Но самих объектов очень и очень много. Скажем, у вас 1000x1000 клеток террейна. А это уже целый миллион объектов! И вот ваша структура размером с несчастные 32 байта множится миллион раз и разрастается до объемов 30.5 Mб оперативной памяти.

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

Сэкономить на спичках!

Восхитительный Range Syntax в CSS

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

Помните сказку про мальчика, который кричал «волки»? Примерно так же в 2025 году случилось с «программированием на CSS». Вышла функция if(). Блогеры преждевременно хайпанули: всё, теперь у нас условия в CSS. Разработчики пошли читать спецификации, попробовали — и довольно быстро выяснилось, что внутри условного выражения style() возможностей почти нет. Многие разочаровались и похоронили идею.

В конце 2025 года Chrome выкатил революционный Range Syntax For Style Container Queries. Обновлённый style() научился сравнивать переменные между собой и поддерживать диапазонные выражения. Мы наконец‑то получили мощную условную логику в CSS, но мало кто это заметил.

В этой статье мы попытаемся реанимировать идею программирования на CSS. На примере интерфейсного паттерна — «выделение диапазона дат в календаре» — разберём, как обычная JS‑логика превращается в CSS‑логику (спойлер: очень просто).

Заинтригованы? Поехали

Учим Linux: Файлы, навигация и поиск

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

Начинаю серию «Linux Base» из 11 частей — структурированная база для DevOps, DevSecOps и всех, кто работает с Linux.

Часть 1 — Файлы, навигация и поиск: разбираем структуру каталогов (/etc, /proc, /var и др.), навигацию, работу с файлами, просмотр содержимого и поиск через grep, awk, sed.

в конце также вас ждет Linux commands cheatsheet!

Читать

Хакинг бытовой техники: от реверса стиралки к созданию открытого сервисного ПО

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

«Однажды у нашей старенькой стиралки где-то нарушилась логика, и она решила, что отжим нам не нужен. Вопреки нашим ожиданиям, вместо полусухих вещей мы получили мокрые». 

С этой поломки началось исследование Северина фон Внук-Липински и Хайо Нёренберга, в ходе которого им удалось восстановить работу диагностического протокола стиральной машины Miele, получить доступ к скрытым функциям и извлечь прошивку платы управления.

В этой статье разберем их доклад Hacking Washing Machines с конференции 39C3 и проследим, как мелкая бытовая неисправность привела к полноценному реверсу стиралки, а затем — к созданию свободной утилиты, которая заменяет закрытый фирменный софт для ремонта техники Miele.

Читать далее

Я два месяца платил 300к человеку, который тихо скармливал мои задачи в ChatGPT

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

Осенью 2025-го у нас ушёл мидл. Типичная история — нашёл +80к в каком-то финтехе, ему там обещали «плоскую структуру и свободу принятия решений» (спойлер: через три месяца он написал мне что хочет вернуться, но мы уже наняли замену). Замену, кстати, нашли не быстро. Провели штук двадцать собесов, может больше, я со счёта сбился после пятнадцатого.

Рынок такой: половина не может обход дерева написать (я серьёзно, я уже думал может я что-то не так спрашиваю, но нет), трое врали про опыт настолько плохо что мне неловко было за них, и один спросил можно ли работать из Бали при условии что созвоны в девять утра. Нельзя, у нас on-call.

Короче, появился кандидат. Назову его Дима.

Читать далее

Как бы выглядел интернет, если бы Adobe не убила Flash

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

Вспомните нулевые — браузерные страницы мигали баннерами и интерактивными элементами, игры запускались прямо во вкладке, а Flash Player был знаком почти всем. Но в 2020 году Adobe завершила его поддержку и начала блокировать Flash-контент. Так и закончилась эта история, а что было бы, если всё пошло иначе? Историю Flash и альтернативный сценарий разбираю в статье. 

Читать

SoC Design Challenge 2026: собираем подводные камни 2025 года и анонсируем новый трек хакатона

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

Ежегодный хакатон YADRO и МИЭТ набирает обороты. Апрель, Зеленоград, четыре трека… нет, пять! Пятый SoC Design Challenge — пять треков, красивое совпадение. К топологии, RTL, UVM- и системной верификации присоединился трек DFT, Design for Testability. На кону по-прежнему кое-что интересное: fast track на летнюю стажировку YADRO Импульс, дополнительные баллы при поступлении в магистратуру МИЭТ, FPGA- и RISC-V-платы, логические анализаторы, полезная периферия, мерч. И конечно — приятная смесь из чувства собственного удовлетворения и одобрения от однокурсников.

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

И что там такого интересного?
1
23 ...