Обновить
512K+

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

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

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

Код еще никогда не был так дешев. И еще никогда так дорого не обходился

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

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

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

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

Читать далее

Новости

Claude Code на Windows: что я прописал агенту, чтобы он перестал спотыкаться

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

Большая часть материалов про Claude Code написана под macOS и Linux. У меня часть задач завязана на Windows, в первую очередь браузерная автоматизация с живыми профилями Chrome, поэтому агент работает прямо в нативном окружении, без WSL. Сам Claude Code под Windows ведёт себя стабильно. Проблемы возникают на стыке с окружением: PowerShell 5.1, кодировки, имена процессов, PATH.

Каждую такую мелочь я в итоге записывал агенту в память, чтобы он больше не наступал туда же. Набралось пять штук, плюс блок для CLAUDE.md в конце, который можно забрать себе целиком. Если вы тоже на Windows и без WSL, возможно, это сэкономит вам пару вечеров.

Читать далее

Проблема ворот

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

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

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

В стратегиях у ботов обычно есть обычно очень простая задача пройти через какие-нибудь ворота-узкое место, обойти стену и оказаться во дворе, и пока у нас один солдат, который идёт по пустой карте, никакой особой проблемы не возникает. А стоит вам добавить на карту десять, пятьдесят, сто, двести солдат и одни ворота, через которые физически способны одновременно протиснуться всего несколько юнитов, как выясняется они этого не делают, хотя алгоритме поиска пути (вроде A*) прекрасно отработал. Отработал, то отработал, а солдатики на месте тупят, и выясняется что мы пытаемся заставить его решать задачу, на которую он не рассчитан.

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

Читать далее

Чёрная магия C++: Быстрый кольцевой буфер

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

Однажды у меня возникла потребность в кольцевом буфере на C++ для хранения довольно объёмных потоковых данных. Проблема заключалась в том, что мне было необходимо поддерживать непрерывность и упорядоченность данных в памяти, чтобы в любой момент времени я мог считать все элементы буфера одним бесшовным куском в порядке поступления элементов.

Как правило, кольцевой буфер реализуется через списки, вроде std::list или std::deque, либо через плоские массивы, вроде std::vector или boost::circular_buffer. Но ни одна реализация не гарантирует непрерывность и упорядоченность одновременно. В данной статье я расскажу про реализацию буфера через трюк с виртуальной памятью, сохраняющую упорядоченность элементов в непрерывной ограниченной области памяти.

Читать далее

Платёж списывается дважды. Найдите причину в коде, который прошёл ревью

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

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

Проверить решение

Собака, которой нет: как я учил робота Pin бегать рысью, не купив ни одного сервопривода

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

У моей собаки Pin двенадцать сервоприводов, десять килограммов веса и ни грамма железа: она живёт в браузере. Тем не менее она трусит рысью со скоростью 35 см/с, держит курс по гироскопу и однажды села на хвост, когда я попробовал научить её прыгать.

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

Читать далее

С системой, которую нельзя менять, не интегрируются. Её можно только зеркалить

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

Ты не владеешь источником — значит, не владеешь временем. Как поллер по updated_at молча теряет строки, почему exactly-once это свойство твоей записи, и почему сверка важнее потока.

Читать далее

Как дать Claude Code документацию, которую он прочтёт: импорт в CLAUDE.md молча ломается в пути на пробеле

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

Если в пути импорта в CLAUDE.md есть пробел, Claude Code обрывает путь на нём, файл не грузится, а ошибки нет. Так у меня ни разу не загрузились два общих справочника, на которые ссылался CLAUDE.md. Я собрал пустой проект, разложил по файлам кодовые слова и спрашивал агента, какие слова он видит, запретив ему читать файлы. Вышло, что ссылка на документ в CLAUDE.md ещё не значит, что агент его прочтёт: у каждого способа ссылки свои правила загрузки.

Читать далее

Создаём DSL на C#: генерация кода, BlackSilence и Hot Reload

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

Пам пам пам пам, пара пам пам пам, кхм кхм, к сути, вот и все заключительная часть о том как создать свой dsl на c#.

Читать далее

Почему не стоит писать AI-агента с нуля: что скрывается внутри harness

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

У вас есть модель, API к ней и идея продукта с агентом. Кажется, осталось написать цикл: отправить запрос, получить tool call, выполнить его и отправить результат обратно. Можно приступать к интерфейсу?

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

Привет, Хабр! Меня зовут Игорь Цупко. Этот текст вырос из моего доклада о внутреннем устройстве агентных систем. Я буду сознательно упрощать детали: реализации у Codex, Claude Code, OpenCode и других различаются, но основные инженерные задачи удивительно похожи. Мой главный совет звучит резко: не начинайте с разработки собственного ядра агента. Ближе к концу объясню, что делать вместо этого и когда исключение всё-таки оправдано.

Погружаемся в harness

Claude Max против ChatGPT Pro: почему «в 5 раз выгоднее» — не совсем то, чем кажется

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

На днях SemiAnalysis опубликовали исследование с довольно убийственным для OpenAI выводом: подписка Claude якобы дает более чем в пять раз больше ценности, чем сопоставимая подписка ChatGPT.

Но как обычно бывает, всё не так однозначно....

Читать далее

Make Perl Great Again! Поиски простоты в программировании

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

Программирование само по себе очень сложная штука, и поэтому программировать надо как можно проще. Именно поиску простых способов программирования и посвящена эта статья.

Давайте я возьму какую‑то простую практическую задачу и решу ее, но не просто так, а как можно проще. Итак...

Читать далее

Go 1.25 сам читает лимит CPU, а automaxprocs молча это выключает

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

Обновили Go до 1.25 и оставили привычный automaxprocs? Пустой импорт теперь может отключить встроенное управление GOMAXPROCS и изменить поведение сервиса под CPU‑квотой. Разбираемся, как новый рантайм работает с cgroup, откуда берётся разница на дробных лимитах и что проверить перед удалением старой зависимости.

Проверить GOMAXPROCS

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

Jev от TypeSafe: модель, с которой нельзя поговорить

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

TypeSafe AI открыла ранний доступ к Jev — модели, которая не генерирует текст, а отвечает на заранее описанные вопросы типизированными значениями с вероятностями. Разбираю, что она умеет, сколько стоит по словам вендора, что показал первый публичный тест и где цифры из документации с ним не сошлись.

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

Как подключить Claude Code через шлюз и какие модели поддерживают агентный цикл

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

Привет, Хабр! На связи команда Just AI. Сегодня хотим поговорить про Claude Code. Он умеет работать не только с моделями Anthropic: если направить его запросы в совместимый API-шлюз, можно оставить привычный клиент, но при этом менять провайдера, модель и способ работы с API.

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

Читать далее

Общая память проекта для Claude Code и Codex

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

Мне хотелось, чтобы Claude Code и Codex работали с одними и теми же знаниями о проекте.

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

Читать далее

Генеративные тесты — «серебряная пуля» или бесполезный костыль: что говорят разработчики и ученые

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

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

Мы решили посмотреть, какие мнения есть относительно генеративных тестов в ИТ-индустрии, и что говорит на их счет наука — разобрали свежие исследования по теме. А в конце статьи сделали подборку из открытых инструментов, которые помогут оценить возможности пары «нейросеть + юнит-тесты» самостоятельно.

Читать далее

Экран перестал обновляться, и виноват оказался не ваш код

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

Экран получил первое состояние и застыл: запросы проходят, исключений нет, а в дебаге проблема вообще не воспроизводится. Разбираемся, почему StateFlow может «замолчать», как отличить особенности его семантики от реального бага и при чём здесь R8 в релизной сборке Android‑приложения.

Разобраться в StateFlow

Разбор заданий ZeroNights HackQuest 2026

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

30 сентября мы провели конференцию по информационной безопасности ZeroNights 2026. Спасибо всем, кто решил поучаствовать! Без вас не было бы ни классных докладов, ни мерча, ни веселой суеты вокруг всего этого. Скоро начнём выкладывать материалы на сайт, там будут доступны презентации и видеозаписи докладов.

А пока хотим поделиться райтапами на задания HackQuest этого года. Это традиционное соревнование в формате CTF, которое мы проводим до начала конференции.

Под катом разбор заданий на веб-уязвимости, DeFi, крипту, написание читов и форенсику японской магнитолы!

Читать далее

Вайбкодинг. Стадии принятия

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

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

Читать далее