SVG4 — каталог векторных иконокБольше года назад я запустил SVG4 — каталог векторных иконок. Сейчас в нём больше 500 000 SVG‑файлов. Первая версия была написана на Laravel, и на тот момент выбор был вполне логичным: Laravel я хорошо знал, на нём можно было быстро собрать рабочий проект и проверить, нужен ли он вообще кому‑нибудь. Проект оказался нужен, начал расти, а вместе с ним росли база, количество страниц, поисковый трафик и нагрузка. Старая версия в итоге работала на сервере с 4 ядрами и …
У меня был доступ к последним Qwen, GLM и Sol. Рядом лежали аккаунты ко всяким Claude c Astra. Не то, чтобы все это реально требовалось для разработки эмулятора ZX-Spectrum, но остановиться было тяжело. В итоге эмулятор получился просто на загляденье и вы можете прочитать про боли и решения в реальном проекте. TL;DR: Да, за год БЯМки сильно подросли в своих умениях. Сегодня я смело могу утверждать, что по своему уровню они достигли джунов. Если убрать скорость и стоимость за скобки, то это по…
ЗадачаОдин бизнес-сценарий часто изменяет данные через несколько репозиториев. Все операции должны завершиться вместе, но передавать транзакцию аргументом каждого метода неудобно, а открывать её внутри одного репозитория недостаточно.СутьВ статье транзакция хранится в context.Context, её открывает use case, а перед каждым вложенным Transaction менеджер сначала выполняет ExtractDB.В примерах используется GORM, но идея не привязана к ORM. Аналогичный менеджер можно написать поверх database/sql, p…
В свободное время пишу на чистом Go порты CRDT-движков: Yjs с JavaScript и Loro с Rust. CRDT это структуры, на которых держится совместное редактирование, когда несколько человек правят одно и то же одновременно. Пока портировал, пришлось разобрать алгоритмы до байта, и оказалось, что главный фокус там объясняется на пальцах, без формул. Эта статья про него: как два человека правят текст в разных местах, офлайн, а потом копии сходятся в одну и ту же строку. Символ в символ, без сервера, который…
Если посмотреть на самые обсуждаемые публикации Go‑сообщества последних месяцев, можно заметить любопытную закономерность. Среди них почти нет материалов про новые конструкции языка, generics или очередные изменения синтаксиса.Зато много статей про диагностику утечек горутин, профилирование памяти, внутреннее устройство рантайма, особенности современных процессоров и эксплуатацию высоконагруженных PostgreSQL‑кластеров.В 2026 году экосистема Go значительно «повзрослела». Сама спецификация языка …
Несколько месяцев назад мне понадобилось заключить договор с водоканалом. Казалось бы, обычная бюрократическая задача: отправил документы, дождался ответа, подписал договор. На практике всё оказалось значительно веселее — ответа долго не было, сроки шли, а что делать дальше, было не совсем понятно.Юриста у меня не было, зато был AI. Я загрузил документы, описал ситуацию и начал разбираться, какие вообще есть варианты дальнейших действий. В итоге с помощью AI подготовил несколько обращений и жал…
ptah.runВ июне прошлого года я занимался разработкой проекта для собственных нужд (inventario), где заодно игрался с новыми фичами go, архитектурой кода и агентной разработкой. Благодаря этому проекту, кстати, я смог найти и зарепортить баг с имплементацией дженериков в go.Изначально простой проект разросся. Росло количество моделей и связей между ними. В какой-то момент я подумал, что неплохо бы озаботиться миграциями для моей системы. Я посмотрел, что имеется в наличии, и мне не зашло ничего.…
TLDR; https://github.com/alterfo/moex-traderЗдравствуйте, меня зовут Олег. 11+ лет опыта в архитектуре и управлении разработкой.Я как кузнец — не могу не куя, и сейчас, в меж-работье, занимаюсь своими проектами. Среди них — интерактивный нотный тренажер для игры на пианино, шифрованный личный дневник, игра по мотивам Космических Рейнджеров - Вакуумные Пройдохи и ещё штук 6, включая движок базы знаний по коду, чатам, докам и таскам и редактор IDEF0.Сейчас в фокусе проект AI-трейдинга.Мысль о зар…
Совсем недавно вышел Go 1.27. Я пошел изучать release notes и наткнулся там на следующее:Faster memory allocation The compiler now generates calls to size-specialized memory allocation routines, reducing the cost of some small (<80 byte) memory allocations by up to 30%. Improvements vary depending on the workload, but the overall improvement is expected to be ~1% in real allocation-heavy programs. This causes the binary size to increase by about 60 KB (independent of the workload). Please fi…