Обновить
1004.5

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

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

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

25 блогов о веб-разработке и веб-дизайне, которые интересно читать, даже если у тебя нет сайта + бонус

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

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

Читать далее

Как получить и использовать бесплатную лицензию PVS-Studio на практике. Часть 3: работа с отчётом и разбор срабатываний

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

Продолжаем изучать использование PVS-Studio на практике для бесплатных (и не только) проектов. В этой статье мы рассмотрим основной этап взаимодействия с инструментом — работу с отчётом! Подробно рассмотрим первый опыт разбора срабатываний, изучим интерфейс и посмотрим на ошибки в проекте osu!

Читать далее

Технологический скепсис: как отличить настоящие научные открытия от хайпа в IT

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

Каждый год мы слышим о «революциях» в IT: то квантовый компьютер «сломает» криптографию, то новый фреймворк «убьёт» всех конкурентов, то искусственный интеллект уже «почти человек». Но где проходит граница между настоящим научным прорывом и маркетинговым шумом? В статье попробуем разобраться, как развивать здоровый скепсис, не впадая в цинизм, и чем нам, инженерам, он может помочь в работе.

Вы тоже наверняка замечали: стоит выйти какой-нибудь громкой новости, и через пару дней LinkedIn, Telegram и даже сосед в чате подъезда уже уверены, что «это будущее, которое всё изменит». А потом проходит год — и оказывается, что «будущее» тихо растворилось, а мы продолжаем писать код на старом добром Python или Java, подкручивать пайплайны и чинить CI, который снова упал.

Я не раз ловил себя на мысли: почему нас, технарей, так тянет верить в магию? Может, потому что мы слишком хотим верить в простые решения. Новая база данных обещает вечную масштабируемость? Конечно, ставим в прод. Новый инструмент гарантирует, что тесты сами себя напишут? Берём! А потом наступает утро понедельника, и ты один на один с ошибками сегментации и багами в проде.

Эта статья — попытка поговорить о технологическом скепсисе: о том, как отличать реальный прогресс от пустого хайпа. Я поделюсь мыслями, примерами из практики, кусками кода и даже немного философии.

Читать далее

Redis Streams в PHP с backpressure: устойчивые consumer-группы + повторная доставка

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

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

Redis Streams давно перестали быть экзотикой для любителей CLI и стали нормальным способом гонять события между сервисами. Но у PHP есть своя специфика: один код — два способа конкурентности. Либо Amp с неблокирующим I/O и семафорами, либо Swoole с корутинами. В обоих случаях хочется одного и того же: устойчивые consumer-группы, ручной ack, автоматический claim зависших сообщений, backpressure, экспоненциальные ретраи и внятный дед-леттер.

Перейти к материалу

Структура против хаоса — элегантное решение для создания форм в React.js

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

«Ну вот, опять эти формы...» — знакомая мысль? Мы постоянно ищем способ сделать их удобными и предсказуемыми, но идеальное решение все никак не находится. В этой серии статей Артем Леванов, Front Lead в WebRise, подробно разберет, с какими сложностями мы сталкиваемся, изучим разные подходы и в итоге придем к элегантному решению: как описывать все формы на сайте, используя всего по одному компоненту для каждого типа полей.

Читать далее

Движок для Arcanum: Ретро-кодинг на ПК 1995 года как акт цифровой археологии. Глава 01 — Синопсис

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

Недавно сообщество фанатов классической RPG Arcanum: Of Steamworks and Magick Obscura потрясла новость: разработчик по имени Alex завершил титанический труд по реверс-инжинирингу оригинального движка игры. Теперь у нас есть его полнофункциональные исходные коды, которые можно компилировать под Windows, Linux и macOS с использованием современной библиотеки SDL3.

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

Так родился этот личный эксперимент. Я не буду переделывать готовый движок. Я попытаюсь с нуля написать свой движок для Arcanum так, как если бы на дворе был 1995 год.

Егог

Байткод инструментация методов в Java: когда семплирования уже мало

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

Семплирующие профили не показывают реальное число вызовов и их длительность — а значит, мимо может пролетать важная боль. В новом переводе от команды Spring АйО на примерах показано, как включить инструментальную трассировку в async-profiler и что даёт новая фича latency: от ловли неожиданного System.gc() и источников OutOfMemoryError до точного замера «долгих» вызовов с порогом и разбором в JMC через JFR-события. 

Разбираем накладные расходы, хитрости вроде interval, практичные кейсы (почему ArrayList.contains и AbstractSet.removeAll могут внезапно стать O(N*M) и как это починить), а ещё сравниваем подход async-profiler с нововведениями в рамках JDK 25 (JEP 520), где последний имеет ряд недостатков.

Если вам нужны точные пути выполнения и реальная latency без убийства продакшена — это must-read.

Читать далее

«Русскоязычных пособий по Lua катастрофически не хватает. Мы решаем эту проблему». Читаем главу о введении в стек

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

Мы в МойОфис любим Lua. И сами активно его используем: в наших редакторах с помощью Lua работают макросы и надстройки. И помогаем разработчикам лучше узнать этот язык — при нашей поддержке вышли уже два издания классного учебника по Lua от Роберту Иерузалимски (кстати, сам автор считает, что этот язык в части задач даже более хорош, чем Си!)

А летом 2025 года мы выпустили целый трёхтомник по Lua. Первый том — новое издание книги Роберту. Второй и третий — вышедшие впервые учебники от Дмитрия Шульгина, старшего тренера по продуктам Учебного центра МойОфис.

В этой статье поделимся выдержкой из первого тома, введением в основы языка. А самых искушенных читателей в конце материала ждет «особое приглашение».

Читать далее

Компенсация сетевой задержки: как зародилась технология rollback netcode

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

Как сообщил мне GPT5, технология компенсации сетевой задержки в играх, также известная как «откат сетевого кода» (rollback netcode) впервые была применена в игре «Super Street Fighter II Turbo HD Remix» (2008). Но это не так: именно такой механизм я реализовал в «Pathway to Glory» (Nokia N-Gage, 2004) и «Warhammer 20K: Squad Command (PSP, NDS, 2007)». В этой статье кратко рассказано, как данная технология работает...

Читать далее

Топ-30 бесплатных нейросетей, которые облегчат вашу жизнь

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

Скажу честно: первое, о чем я подумал, когда услышал про эту тему, это Робо-няня из «Смешариков». В детстве она казалась мне немного тревожной, но ее способность делать все сразу впечатляла. Тогда я думал: как было бы хорошо, если бы такие технологии были у каждого.

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

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

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

Приятного чтения!

Читать далее

Flutter-дайджест сентября

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

Привет, друзья! 🌐

Сентябрь оказался по-настоящему горячим месяцем для Flutter-разработчиков — громкие релизы, свежие статьи на Хабре, видеоразборы с YouTube и целая россыпь полезных пакетов. На нашем канале FlutterPulse мы собрали всё самое интересное в одном месте, чтобы вы ничего не пропустили.

Читать далее

Откуда берётся запутанный код

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

Попробую на маленьком примере показать откуда берётся запутанный код.

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

Для упрощения написания маленькая буква будет означать что условие ложно, а большая — что истинно.

Представляем функцию в виде карты Карно, чтобы оптимизировать всё что можно:

Читать далее

Пишем Cron-задание для Sidekiq в GitLab

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

При работе с поддержкой GitLab, будь то установка из Omnibus пакета или Docker-контейнер, иногда приходится запускать руки в консоль gitlab-rails. Причин тому может быть много в зависимости от версии GitLab и задач, стоящих перед вами, например, чистка артефактов, исправление ошибок блокирующих обновление, или массовые операции с проектами/пользователями/токенами и так далее.

Некоторые такие задачи может потребоваться запускать регулярно, и как раз на примере одной из них мы и попробуем написать Cron-задание для Sidekiq.

Читать далее

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

Знакомим с командой ML

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

Запускаем серию статей, посвященных IT-специалистам в онлайн-кинотеатре Иви! Мы будем рассказывать о разных командах, их задачах, вызовах и внутренней кухне. Решено было начать с команды машинного обучения связи с предстоящим митапом, где разработчики поделятся своим опытом. В этом материале знакомим поближе с Дмитрием Русановым, руководителем группы разработки машинного обучения, и его командой.

Читать интервью

HeroBench: проверяем, как LLM справляются со сложным планированием в виртуальных RPG-мирах

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

Привет! Меня зовут Петр Анохин, я руковожу группой «Нейрокогнитивные архитектуры» в Институте AIRI. Недавно мы выложили в открытый доступ новый бенчмарк для долгосрочного планирования LLM под названием HeroBench. Основанный на MMORPG‑песочнице для программистов, HeroBench проверяет способность современных моделей обрабатывать комплексный контекст, выполнять декомпозицию задач и формировать детализированные многошаговые планы достижения целей.

Мы прогнали через него 25 открытых и проприетарных LLM и выявили существенные различия в производительности, редко наблюдаемые в традиционных бенчмарках для анализа логических рассуждений. Другая особенность нашей работы в том, что новый бенчмарк вырос из небольшого студенческого проекта на летней школе AIRI. 

Подробнее об этом и технических деталях — читайте в нашей статье.

Читать далее

Scala Digest. Выпуск 33

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

Привет, Хабр! Мы — Настя, Эвелина и Миша — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать. Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем дополнительные новости и собственные комментарии. Мотивацию черпаем из желания развиваться и делиться полученными знаниями.

Приветствуем любую обратную связь! (づ ◕‿◕ )づ

Читать тридцать третий выпуск

Code Review с помощью ИИ: замена лиду или помощь стажёру?

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

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

Последние пару лет часто возникает вопрос: «А может ли ИИ заменить тимлида на code review?». Вопрос созрел не на пустом месте – инструменты на базе LLM теперь умеют и подсвечивать баги, и предлагать правки к pull request. Хайп подогревают отчёты: 84% разработчиков уже используют или планируют использовать ИИ в работе. Однако доверие к таким ассистентам хромает: почти 46% инженеров активно не доверяют ответам ИИ (против 33%, кто доверяет). Получается парадокс: пользуемся – но проверяем. Давайте разберёмся, где AI-ревью реально помогает, а где лид остаётся незаменим. Спойлер: место лидов в команде пока в безопасности.

Читать далее

QR-код по запросу: знакомство с QRious

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

Недавно мне понадобилось реализовать автоматическую генерацию QR для личного проекта. Идея простая: пользователь нажимает на кнопку «Пригласить друга», а небольшая функция на JavaScript закидывает в буфер обмена реферальную ссылку.

Все было бы хорошо, но нужно было добавить попап с QR-кодом, который при сканировании перекидывает по ранее полученной ссылке. И так как писать собственное решение было сомнительной идеей, пришлось использовать библиотеку — QRious. В этой статье расскажу, как с ней работать.

Читать далее

URLPattern API как «роутер без фреймворка» (браузер + Node 24)

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

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

URLPattern дорос до того, чтобы его можно было использовать как нормальный «роутер без фреймворка». В браузерах API уже поддерживается широким набором движков, а в Node 24 он доступен глобально без импортов. Один и тот же паттерн можно матчить и в Service Worker, и в HTTP-сервере на Node.

URLPattern — это примитив платформы для сопоставления URLам по удобному паттерну. Он матчится по компонентам: protocol, hostname, port, pathname, search, hash. Есть test и exec, named groups и опции вроде ignoreCase. Важный плюс в том, что у нас есть одинаковая семантика в браузере и в рантаймах, которые его тащат из той же спеки.

В Node 24 объект доступен глобально, как URL, без require('node:url'). Сам класс появился в 23.8, в 24-й ветке он отмечен как experimental, но доступ из коробки.

По поддержке в браузерах ситуация здоровая. По Can I use, URLPattern работает в актуальных ветках Chrome, Firefox, Safari, Edge, включая мобильные.

Изучить пример

GPT-5 и API Responses: зачем нужен ещё один стандарт?

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

Команда AI for Devs подготовила перевод статьи о новом API /v1/responses от OpenAI, который объединяет простоту Chat Completions и мощь Assistants, и при этом сохраняет состояние рассуждений, мультимодальность и встроенные инструменты. Это шаг к агентам будущего — и, похоже, к новому стандарту работы с моделями OpenAI.

Читать далее

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