Обновить
1024K+

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

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

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

Открыл бету AI-Мастера для D&D. Главная проблема оказалась не в кубиках, а в памяти

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

Я уже несколько месяцев в свободное время пилю одну штуку — Telegram-бота, который водит тебя по D&D 5e в одиночку. Нейросеть тут за Мастера: генерит историю, описывает сцены, ведёт бой по правилам, тянет кампанию. Играешь прямо в Telegram, лист персонажа и инвентарь — в мини-приложении.

Сразу честно, без «заходите, всё готово»: это активная стройка. Релиза не было. А 13 июня я впервые открыл её для людей — то самое открытое бета-тестирование. До этого бот варился в узком кругу, теперь зайти и поломать может любой.

Я готовился защищать механику. А первым посыпалось совсем другое. Но обо всём по порядку.

D20 на прочтение

LazyWeb: бесплатный MCP на 257 тысяч экранов, который чинит говнодизайн агентов и их хозяев

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

Когда агент рисует интерфейс «из головы», он выдаёт усреднённое из обучающих данных: безопасные цвета, layout, который вы видели тысячу раз. Я устал это разгребать и подключил LazyWeb — бесплатный MCP-сервер на 257 тысяч реальных экранов приложений и сайтов. Теперь агент сначала ищет, как это сделали живые продукты, и только потом проектирует. Свежий пример: UX админки для большого облачного проекта он собрал с первого раза — удобно, современно, функционально. Я был готов к паре итераций, их не понадобилось. Внутри — честная замерка: что под капотом (полез в health-check — Voyage, Cohere, vision-модели), главный рабочий приём «сделай 3-5 вариантов», и где инструмент реально косячит — кривые и устаревшие референсы, перекос в западные приложения, каша из 27 тысяч категорий. Плюс к статье — PDF с готовым промтом и чек-листом для агента.

Читать далее

AI‑ассистент пишет код: 8 антипаттернов, из‑за которых он падает в проде

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

Разобираем восемь антипаттернов, которые ловят даже сеньоров: от галлюцинированных зависимостей и slopsquatting до context rot и архитектуры, которая по кускам деградирует в God Service. На каждый — симптом, причина, последствия и конкретное исправление. Плюс готовый чек‑лист ревьюера AI‑кода, который можно забрать и повесить рядом с шаблоном PR.

Читать далее

Какие страхи мешают разработчикам перейти на Cloud IDE и как мы их закрывали архитектурно

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

Обычно разработчики пользуются локальными IDE вроде VS Code или IDE от JetBrains со своим набором плагинов, настроек и собранным под себя окружением. Иногда — удалённой машиной. Но есть третий вариант, который пока многим непривычен и потому вызывает настороженность, — Cloud IDE, или CDE. 

Закономерно возникают вопросы: а точно ли мои данные в безопасности? Есть ли в CDE все нужные компоненты для полноценной работы или это просто способ быстро заглянуть в код?

Читать далее

Remoded: разбираем демо-эффекты (часть 2)

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

И снова приветствую всех любителей олдскула, демосцены и олдскульной демосцены. Это вторая часть разбора DOS-демки "Remoded" и соответственно эффектов, основанных на аппаратных особенностях видеоадаптера VGA. Сегодня мы продолжим разбираться с аппаратным скроллингом, узнаем, что такое "xorfill" и как его правильно готовить, как эмулировать 12 тысяч цветов в 256-цветном режиме, а также познакомимся с другими технологиями прошлого столетия.

MOV AX, 13h; INT 10h

Сколько стоит вирусный ролик на нейросетях: разбираем экономику на примере 40 видео

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

Я занимаюсь маркетинговыми коммуникациями в СИБУРе. Мы продвигаем готовые решения из полимеров (называем их инициативами): поликарбонат для строительства, кабели, бочки, поддоны, упаковочные решения, рукава для хранения зерна, трубы для пожаротушения и многое другое. Каждое направление – это отдельная инициатива со своей аудиторией. Больше половины продуктов — глубокий B2B, про который обычный человек никогда не задумывается. При этом всё нужно объяснять рынку: что такое полимерный стакан, зачем нужен рукав для зерна, и что в проводах тоже есть полимеры.

Читать далее

Заглядываем внутрь ESE: от B+ деревьев до артефактов Windows

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

Меня зовут Григорий Гришаев. Я работаю младшим специалистом в департаменте комплексного реагирования на киберугрозы в экспертном центре безопасности Positive Technologies (PT ESC) и занимаюсь разработкой парсеров различных файловых артефактов.

В ходе расследований нашей команде регулярно приходится работать с артефактами, собранными с хостов под управлением Windows. Среди них часто встречаются базы данных в формате ESE (Extensible Storage Engine), который широко используется в экосистеме Microsoft. Мы неоднократно сталкивались с тем, что существующие инструменты для работы с этим форматом имеют ряд ограничений и не всегда корректно обрабатывают реальные данные. В результате возникла необходимость исправлять существующие решения и разрабатывать собственные средства извлечения данных из подобных файлов. 

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

Читать далее

Anthropic заблокировали Fable 5 через три дня после релиза, а SpaceX купили Cursor

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

Восемнадцатый выпуск еженедельных IT-новостей от OpenIDE.

Главная история недели: Claude Fable 5 продержался в публичном доступе три дня, после чего Anthropic получили директиву от Министерства торговли США и отключили модель для всех. На следующий день Zhipu AI выпустили open-source GLM-5.2 с прямым намёком на этот случай. Параллельно SpaceX провели крупнейшее IPO в истории и через несколько дней купили Cursor за $60 млрд.

Читать далее

Как я перешёл с React на Angular и не пожалел

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

Когда я говорю, что перешёл с React на Angular, на меня смотрят примерно так же, как если бы я сказал, что добровольно переехал из Амстердама куда-нибудь в Челябинск. С непониманием и вопросом «а зачем».

Если открыть типичный канал про разработку, там будет React, Next.js, React Native, снова React. Джуны учат его как первый фреймворк, мидлы обычно выносят в резюме жирным шрифтом. Angular воспринимается как что-то невероятно сложное, для мега-приложений масштаба «строим город на Луне» и бэкендеров, которым не повезло. Я тоже так думал. У меня за плечами был React, я понимал компонентный подход, умел работать с хуками, знал экосистему. И тут Angular.

Готовых инструкций, как перейти с React на Angular, в сети практически нет. Зато есть тысячи статей про обратный путь. Пришлось разбираться самому, и вот что из этого вышло.

Читать далее

15% прод-кода в Block пишут AI-агенты: как устроен их парк ботов в Slack — и что из этого украсть

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

Block (Square, Cash App, Tidal) рассказала, как у неё устроена разработка: внутренний Builderbot делает 200 000+ операций в день, мержит ~1500 PR в неделю и отвечает за ~15% всех изменений прод-кода. Фон невесёлый — всё это после сокращения ~4000 человек. Разбираю, что реально под капотом (Builderbot — control plane поверх открытого фреймворка Goose: Slack-тред → ветка → PR → CI-петля), и главное — что из этого может украсть обычная команда без своего фреймворка. Острый угол: на масштабе кодинг-агент — это не про модель, а про обвязку (CI, права, аудит, очереди PR), то есть чистый DevOps. Плюс честно про маркетинг в их цифрах и про 4000 человек за кадром.

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

Как мы научились видеть иерархию корутин в Android‑приложении: Coroutine Tracer в библиотеке Demeter

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

Отладка корутин в Android — задача, с которой сталкивается каждый разработчик, использующий Kotlin. На один экран могут приходиться десятки вызовов launch и async, но стандартные инструменты показывают потоки, а не корутины. В итоге, когда одна из корутин зависает, разработчик оказывается в тупике: отладчик показывает живой поток, но не показывает, какая корутина на нём выполнялась, в каком suspend‑вызове она остановилась и кто её запустил. Приходится искать причину вслепую — расставлять логи и пытаться воспроизвести проблему вручную. 

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

Читать далее

Погружение в многозадачность Python: процессы, потоки, GIL и асинхронность

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

Многозадачность кажется простой темой, пока дело не доходит до Python и GIL. В статье разбирается: чем процесс отличается от программы, зачем нужны потоки, что такое ядро процессора и в чём разница между конкурентностью и параллелизмом. Затем – специфика Python: как GIL влияет на потоки, когда стоит использовать процессы, асинхронность или корутины, и чем они отличаются от green threads. Материал сопровождается схемами, рабочими примерами кода и реальными замерами производительности для CPU-bound и I/O-bound задач, а в конце – практические выводы о том, что и когда выбирать.

Читать далее

Clean Architecture и AI: как я перестроил проект на 200К строк, чтобы агенты не ломали код

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

Агент не ломает архитектуру. Он заливается в те щели, которые ты ему оставил. Как я перестроил проект на 200К строк, чтобы границы держал линтер и CI, а не слова в CLAUDE.md. С кодом и цифрами до и после.

Читать далее

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

Как спроектировать web-приложение на годы вперед

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

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

Лет двенадцать назад создание большого монолита было обычной практикой. Семь лет назад многие подсели на микросервисную архитектуру. Причем микросервисами часто называли все подряд: и сервисно-ориентированный подход (SOA), и набор крупных сервисов, и распределенный монолит. Главное было быть в тренде.

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

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

Читать далее

Ох уж это многопоточное программирование

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

Привет, мой читатель с Хабра!

Знаешь ли ты о том, что такое многопоточное программирование? Если да, то это хорошо! Если же нет, то придётся почитать немного скучноватой теории про такую известную технологию программирования, как многопоточное программирование, а затем мы копнём эту тему глубже…

Узнать о многопоточном программировании

Как запустить бота в Max самозанятому

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

Все уже видели новость, что самозанятым теперь доступен МАХ для бизнеса? Если вдруг пропустили, то это означает, что MAX продолжает тянуться за Telegram и его тоже теперь можно начинать использовать как площадку для дополнительной коммуникации с клиентами.

Читать далее

Парадокс Open-Source: Единственный способ победить корпорации — раздать свой код бесплатно

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

Вступление: Финал эксперимента и ответ скептикам. Как мы с ИИ написали Open-Source убийцу SaaS-ботов на 280 000 строк кода, и почему я отдаю его даром.

В своих прошлых статьях я рассказывал, как научился использовать ИИ вместо команды сеньоров («Почему для одних ИИ — гений, а для других — идиот») и почему классическая команда сегодня только тормозит разработку из-за бюрократии и потери контекста («Парадокс инвестиций: Почему $1,000,000 и команда сеньоров убили бы мой стартап»).

В комментариях на меня вылили ушат холодного и вполне обоснованного скепсиса. Мне писали: «Где метрики? Кому нужен твой пет-проект?».

И знаете что? Вы абсолютно правы. ©

Открыто бороться с гигантами индустрии, пытаясь перебить их рекламные бюджеты - это чистое самоубийство для соло-разработчика. У меня нет миллионов на закупку трафика и маркетинг. Именно поэтому я принял единственное доступное мне стратегическое решение: я не буду с ними конкурировать. Я просто убью их бизнес-модель.

Читать далее

Реальный DX: как измерить опыт разработчика и не соврать самому себе

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

В прошлый раз я писал про то, что сообщение об ошибке читает уставший человек в два часа ночи. Там была одна простая мысль: ошибка должна сказать, что случилось, почему и что делать дальше. Переписали голое invalid_request в человеческий ответ, и стало лучше.

Вот только «стало лучше» — это ощущение. А ощущение нельзя положить в роадмап (или защитить перед руководством), чтобы сравнить через квартал. Улучшить то, что ты не измеряешь, нельзя: можно только верить, что улучшил.

Давайте сегодня разберёмся, как DX из набора интуиций превратился в измеримую дисциплину: с исследованиями, метриками и цифрами. И как этим пользоваться, не скатываясь в дашборд ради дашборда.

Читать далее

Работает ли Caveman? Тестируем модный скилл для экономии токенов

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

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

Что он обещает? Идея простая — скилл указывает нейронке говорить, как пещерный человек, убирать артикли, говорить коротко и думать лаконично. На первых строках README обещается экономия до 75%. При этом без потери качества!

Но работает ли все это на самом деле? Ведь 75 000 звёзд на репозитории не могут ошибаться?

Читать далее

YaFF в опенсорсе: как и зачем мы сделали zero‑copy представление для Protobuf

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

Чтение сериализованных данных — это инфраструктурный налог, который платит каждый сервис при получении информации из внешних источников, например по сети или с диска. В индустрии для схематизированных данных стандартом де‑факто стал Protobuf, и чаще всего этот налог выражается в существенных затратах CPU на его парсинг. В продвинутых случаях парсинг пытаются заменить на значительно более дешёвую, но при этом куда менее удобную работу с zero‑copy представлением FlatBuffers.

Мы открыли исходники YaFF (Yet Another Flat Format) — формата, который убирает этот налог, не заставляя отказываться от Protobuf. На масштабе Яндекса это особенно важно, потому что менять такие базовые вещи, как формат, дорого и больно. Поэтому YaFF изначально спроектирован как альтернативный wire format для существующих экосистем Protobuf (и в перспективе FlatBuffers). Это позволяет дёшево и бесшовно встраиваться в существующие проекты, не переписывая десятки тысяч строк кода.

Как это работает на практике, мы покажем на примере Яндекс Рекламы: в рекомендательной системе, где каждый из сотен тысяч запросов обрабатывает десятки тысяч объектов, нужно особое внимание к представлению данных. Благодаря YaFF мы смогли постепенно, шаг за шагом, оптимизировать систему и без дорогих рефакторингов сэкономить 10–20% CPU в масштабах крупных рантаймов.

Читать далее