Обновить
1024K+

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

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

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

Circuit breaker на Go: пишем свой за 100 строк и разбираем, почему gobreaker работает иначе

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

Когда один зависимый сервис начинает отвечать медленнее, проблема быстро перестает быть локальной: горутины ждут, соединения заканчиваются, таймауты разъезжаются по всей цепочке. Circuit breaker помогает остановить этот каскад до того, как он положит соседние части системы. В статье разберем, как написать простой breaker на Go примерно за 100 строк, где у такой реализации границы применимости и почему production‑библиотека gobreaker устроена гибче.

Читать далее

45 мегабайт сессий Claude Code, которые ты не видишь

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

У меня несколько аккаунтов Claude Code. Не из любви к роскоши, а потому что у Anthropic есть недельные ограничения на использование, и когда активный аккаунт упирается в них, я просто переключаюсь на следующий.

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

Можно ли его сделать так, чтобы старые сессии не терялись из видимости? Хотя бы найти где они физически живут.

То что я нашла, оказалось интереснее ожиданий. На жёстком диске 48 мегабайт истории работы с Claude, разбитой по шести папкам. В окне приложения у меня видно 69 сессий из 715. Остальные на диске, доступны для cat/grep/Python, но через приложение полностью невидимы.

Что под капотом, где они лежат, как вернуть, и почему любой инструмент миграции сейчас имеет срок годности.

Читать далее

LOTIS, «Шпионка» и кризис среднего возраста

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

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

В одно время между парами по актерскому и сценречью у нас образовался перерыв в несколько часов, и зумерши притащили небезызвесную игру «Шпион». Реализована она была на минималках даже для web-а из 90-х: нужно было внести список играющих, а потом передавать смартфон по кругу для получения персональной инфы. Интерфейс текстовый.

Кто не знает правила, напомню: все, кроме одного игрока (шпиона) узнают некое слово, место, историческое событие. В процессе общения нужно задавать друг-другу вопросы, чтобы вычислить того, кто не имеет представление, о чем речь, поймать шпиона. А шпион должен вести себя так, чтобы его не заподозрили, и по этим всем разговорам постараться угадать, о чем все знают и говорят. В общем, выигрывает либо шпион, правильно угадавший общий секрет, либо добропорядочные граждане.

Вопросы могут быть самыми разными: Это на улице или в помещении? Это для детей или взрослых? Можно ли на этом ездить? Это едят? И т. д.

«Шпион», при всей кажущейся его простоте забавлял нас много дней. Но мне, как айтишнику со стажем большим, чем те, с кем я учусь, было дико видеть, как для игры, явно претендующей на сетевую, нужно передавать чей-то смартфон из рук в руки. Так получилось, что я в это время активно работал над своим LOTIS, о котором писал здесь уже. И вот в какой-то из вечером я сделал сетевого шпиона, чем несказанно удивил своих коллег, будущих актеров. Заодно и протестировал LOTIS в режиме чата.

Читать далее

Мама, я не вайб-кодер

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

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

А мой новый мир, в котором я снова создаю цифровые продукты – родился. На прошлой неделе я за несколько вечеров собрал работающий веб-сервис. Сам. Не написав ни одной строчки кода.

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

Читать далее

Как мы автоматизировали маркетинг, продажи и контроль стеком ИИ-агентов

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

В нашей компании нет отдела маркетинга. Нет руководителя продаж. Нет SMM-щика, копирайтера, аналитика и таргетолога. Есть один CEO и стек из 12 ИИ-агентов, которые ведут восемь каналов коммуникации, контролируют менеджеров по продажам, мониторят расходы на рекламу 24/7, пишут персональные письма клиентам с цитатами из их звонков, и каждое утро в 6:00 МСК сами обучаются на ночной переписке команды.

Читать далее

Как я завалил кучу собесов по Go и что из этого вынес

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

Привет! Меня зовут Александр. Некоторые могут помнить мои статьи про финансовую аналитику на Python — анализ ETF, оптимизацию портфелей. Но последние 6 лет я Senior Go Backend Engineer, специализируюсь на финтехе и трейдинге.

Эта комбинация — domain expertise в финансах + техническая экспертиза в Go — оказалась очень ценной. Но путь был тернистым.

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

Читать далее

Как дать AI‑агенту не лом, а ключ от браузера: разбираем agent‑browser от Vercel

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

Если вы в последнее время пытались прикрутить к своему любимому LLM‑агенту возможность самостоятельно гулять по интернету, дебажить веб‑приложения, и даже верстать, вы наверняка столкнулись с суровой реальностью. Оказывается, засунуть современный веб в контекстное окно нейросети — очень «дорогая» задача.

Обычно в таких случаях не глядя берут проверенные инструменты вроде Puppeteer или Playwright, которые обернуты в те самые три буквы MCP. Но ребята из Vercel недавно выкатили свою альтернативу — agent‑browser (cli‑утилиту, написанную на связке Rust и, некогда Node, но об этом позже). Зачем понадобился еще один велосипед для автоматизации, если у нас уже есть стандарты индустрии? Давайте разбираться.

Читать далее

WebAssembly как платформа расширений для Python: ускорение, встраивание и опасные ловушки API

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

WebAssembly можно использовать как способ расширять Python без нативной сборки под каждую платформу: упаковать Wasm-модуль внутрь библиотеки, запускать его через wasmtime-py и ускорять участки, где чистый Python уже не справляется. Но за удобной схемой быстро проявляются неочевидные детали: store, линейная память, знаковые указатели, ручное копирование данных и риск записать их совсем не туда.

В статье разберёмся, где Wasm действительно полезен для Python и почему работа с таким API требует особой аккуратности.

Читать разбор

Прощайте, утилитки! ну и свечной заводик на старость…

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

Я мечтал написать полезную утилиту. Нет, ПОЛЕЗНУЮ УТИЛИТУ. Чтобы скачивали, платили, ну или в крайнем случае внизу страницы был бы батон Donate $20. А я, раскачиваясь в кресле качалке и потягивая винцо, иногда бы брал телефон посмотреть на счет — сколько там сегодня перевели? Иногда подходил бы к компьютеру, чтобы шлифануть пару раз идеальное творение или добавить крутую фичу.

Какая мечта! Тем более, что примеры всегда были под рукой. WinRAR, или почти ничего не требующий для поддержки сайтик ConnectionStrings.com — Forgot that connection string? Get it here!

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

Пришла жена с тысячей файлов на флешке и просьбой переименовать их хитрым образом. Ей на ее работе показали Multi Rename tool и конечно она попросила меня разобраться в хитром интерфейсе:

Читать далее

Пишем свой SQL query builder на Python: DSL, кеширование в Redis и защита от инъекций

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

Объектный построитель SQL-запросов без ORM и моделей. Позволяет писать сложные SQL-запросы в виде цепочек Python-методов (table[‘person’].filter(…).join(…).get()) и получать результат в виде списка словарей. Под капотом — параметризованные запросы для защиты от инъекций, продуманная система кеширования с инвалидацией по таблицам (in-memory и Redis), поддержка синхронного и асинхронного кода из коробки. Для тех случаев, когда ORM избыточна, а сырой SQL небезопасен.

Читать далее

Как мы набираем джунов из Практикума: опыт компании ProninTeam

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

Хабр, привет! Меня зовут Андрей Пронин, я руководитель «бирюзовой» студии заказной разработки ProninTeam и наставник на курсе по управлению командой разработки в Яндекс Практикуме.

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

Читать далее

Zed 1.0: эпоха Electron-редакторов — всё

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

Вчера вышел Zed 1.0. Пять лет работы, миллион с лишним строк на Rust, публичная превьюшка, которой ежедневно пользовались сотни тысяч разработчиков, и вот команда Zed Industries во главе с Натаном Собо запостила релиз 29 апреля 2026 года. Я лет пятнадцать живу в IDE от JetBrains. Пробовал VS Code. Пробовал Cursor. Гонял code-server на удалённой виртуалке. Ничего не приживалось. Zed прижился, и релиз 1.0 — нормальный повод объяснить, почему.

Если коротко: больше десяти лет любой «новый» редактор кода — это всё тот же продукт в новой обёртке. Обёртка зависит от того, что продают сегодня: AI, коллаборация, темы, новый вендор. А под обёрткой Electron. Тот же Chromium на каждое окно, тот же JavaScript на критическом пути исполнения, тот же RSS, к обеду уходящий в гигабайты. Sublime Text держал планку нативных редакторов все 2010-е, но это был закрытый продукт одного автора, без нормальной коллаборации и без AI истории. Zed стал первым за последние десять лет убедительным опенсорс-редактором с GPU-ускорением и AI на борту, который пересобрали с нуля и без всякого браузера под капотом. С релизом 1.0 эта ставка наконец сыграла.

Читать далее

Тюнинг Cursor: как я укротил AI-ассистента и радикально снизил счета за токены с помощью MCP-серверов

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

Cursor или его аналоги, здорово облегчают написание кода, когда речь идет о каких‑то не очень больших проектах. Но стоит попробовать применить их к серьезному, сложному проекту, состоящему из нескольких репозиториев, и тут же сталкиваешься с тем, что эти «чудеса» оборачиваются просто огромными счетами за токены. Я в этой статье поделюсь, как мне удалось перестать впустую сжигать миллионы токенов. Для этого пришлось собрать и запустить три MCP‑сервера по протоколу Model Context Protocol, что позволило сэкономить до 90% бюджета, при этом совершенно не потеряв в эффективности модели при работе с кодом.

Читать далее

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

Часть I. Конечные автоматы. Универсальная машина Тьюринга. Интерпретатор Brainfuck

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

▒▒▒▒▒▒▒▒▒█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
▒▒▒▒▒▒▒█░▒▒▒▒▒▒▒▓▒▒▓▒▒▒▒▒▒▒░█
▒▒▒▒▒▒▒█░▒▒▓▒▒▒▒▒▒▒▒▒▄▄▒▓▒▒░█░▄▄
▒▒▄▀▀▄▄█░▒▒▒▒▒▒▓▒▒▒▒█░░▀▄▄▄▄▄▀░░█
▒▒█░░░░█░▒▒▒▒▒▒▒▒▒▒▒█░░░░░░░░░░░█
▒▒▒▀▀▄▄█░▒▒▒▒▓▒▒▒▓▒█░░░█▒░░░░█▒░░█
▒▒▒▒▒▒▒█░▒▓▒▒▒▒▓▒▒▒█░░░░░░░▀░░░░░█
▒▒▒▒▒▄▄█░▒▒▒▓▒▒▒▒▒▒▒█░░█▄▄█▄▄█░░█
▒▒▒▒█░░░█▄▄▄▄▄▄▄▄▄▄█░█▄▄▄▄▄▄▄▄▄█
▒▒▒▒█▄▄█░░█▄▄█░░░░░░█▄▄█░░█▄▄█

Я практик и популяризатор языково-ориентированного программирования [1]. В нём задачи решают тройкой: доменная виртуальная машина VM, доменный язык программирования DSL и алгоритмы на нём.
В этом курсе удачными фрагментами разных заметок доступно объясним причины многообразия языков и преимущества их разработки. С теорией, историей и примерами.
Вся наша работа строится вокруг VM, DSL, EBNF, отношений и графов. Мы увидим, как эти объекты соединяют вместе, получая вычислители и программы.

Читать далее

Сейчас сделаю приложение и заработаю на нем. АХАХАХАХАХ, удачи

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

За полгода я сделал мобильное приложение, получил 2000 установок и… 8 платных подписок по $6. Причем одна из подписок — моя.

Читать далее

Scene not Graph

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

Scene not Graph. Место для запятой выбирайте сами.

Scene Graph как концепция появился в академической и промышленной среде, где компьютерная графика использовалась для CAD-систем, научной визуализации и инженерного проектирования, а потом уже пришел в игры. Задачи отрисовки мира и его объектов в CAD были совсем другие и нужно было описывать, например, сложные сборки из деталей, с шестерней в редукторе, редукторе в двигателе, двигателе в машине, и такая модель отражала физическую реальность, которая играм была нужна с приставкой "не". Причины, по которым Scene Graph пришел и остается в играх довольно банальные, этой концепции учат в университете, и многие кто пришел делать игры, естественно знакомились с ней раньше других. На курсе компьютерной графики ИТМО эту модель давали уже на втором месяце и объясняли её полгода, а остальные пять или шесть техник давали всего месяц и в конце года.

Но проблема была в том, что в CAD иерархия объектов это буквальное описание устройства изделия, и перенос этой модели в игры в целом и в игровую графику в частности был концептуальной ошибкой с самого начала. Поняли это достаточно поздно, чтобы эта модель успела поселиться в мозгах целого поколения, выпуск OpenGL в 1992 году с принципиально другой моделью (immediate mode) стал первым сигналом что играм надо двигаться в другую сторону, но инерция Scene Graph в движковой архитектуре сохраняется до сих пор.

Читать далее

Я просил Claude перестать мне льстить. 16 апреля получил. Беру свои слова назад

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

16 апреля Anthropic выкатила Claude Opus 4.7. На бенчмарках 12 побед из 14, цена та же. Через 24 часа Reddit называл его legendarily bad. И вот в чём фокус: месяц назад я сам ныл, что Claude слишком поддакивает. Anthropic исправила. Получилась спор-машина. Беру свои слова назад.

Читать далее

Спецификация, ворота, метрики: как SENAR закрывает вход и выход задачи

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

Четвёртая статья из шести про инженерный процесс для разработки с ИИ-агентами. Автор, Андрей Юмашев, много лет руководил разработкой и инфраструктурой, полтора года назад отдал весь код агентам. Первая статья про путь от первых проектов к стандарту SENAR. Вторая про то, чем агент отличается от программиста. Третья про новую роль человека и пять навыков нового рабочего режима. Эта четвёртая про внешний контур, в который эти навыки упакованы, чтобы перестать опираться на личную дисциплину.

Читать далее

Возвращение блудного программиста (ч.3)

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

Эта часть будет практической, если помните я решил углубиться в React и Flask. Поэтому при помощи ИИ начинаю. Нет, ИИ не будет делать за меня весь проект, он будет выполнять функцию наставника. Ну и иногда чернорабочего (как, например, собрать файл SQL для инициирования БД) для ускорения ручного труда.

Читать далее

10 актуальных RAG-подходов: какие реально полезны и когда их применять?

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

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

Читать далее