Новости

Post Thumbnail

Специализированные аллокаторы

В Go 1.27 появилась оптимизация выделения памяти для объектов размером до 80 байт. Аллокации ускоряются на 20–30%, а приложения с интенсивным выделением памяти - до 1%. Идея в том, что рантайм генерирует специализированные версии функции mallocgc для каждо...

Post Thumbnail

Реверс самоката

Автор занимается реверс-инжинирингом своего электросамоката. Через Bluetooth-приложение и осциллограф он обнаруживает скрытую шину CAN на разъеме USB-C дисплея, снимает ее трафик с помощью самодельного логгера на ESP32 и расшифровывает сообщения, управляющи...

Post Thumbnail

Связанные списки

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

Post Thumbnail

Шейдеры на ebiten

Практический разбор пиксельных шейдеров в игровом движке Ebitengine для Go, где шейдеры пишутся на языке Kage, который транслируется в GLSL/HLSL. Автор на примерах из своих игр Roboden и Decipherism показывает пять типичных задач. Наложение маски урона для...

Post Thumbnail

QCRACK.EXE

Как раз закончил перечитывать книгу "Повелители DOOM" а тут интересная статья про id Software В 1996 году id Software выпустила шареваре версию Quake на CD-ROM за $9.95. Но на самом деле на этом диске бесплатная игра занимала лишь 22 МБ, тут же лежали зашиф...

Post Thumbnail

Как построить Diffusion Language Model

Это, по сути, введение в диффузионные языковые модели, альтернативу авторегрессивным LLM, которые генерируют текст по токену слева направо. Вместо этого диффузия создает сразу всю последовательность и итеративно "денойзит" ее. Такой подход дает исправление оши...

Post Thumbnail

Портирование на Godot с помощью LLM

Автор описывает, как портировал свою игру Babylonian Twins 1993 года, написанную на 68000 ассемблере для Amiga 500, под Godot с помощью LLM. Использовал Claude Fable 5 LLM сумел не только перенести его собственный C++-движок года в Godot за один вечер, но и...

Post Thumbnail

Агенты лучше нас

Автор утверждает, что оптимизация производительности перестала быть дорогой специализацией LLM-агенты настолько удешевили сложную работу, что ее может делать любой, кто способен набрать несколько предложений. Он приводит примеры: свой regex-движок FRE, кото...

Post Thumbnail

Прокси для базы данных

Автор пишет простой такой прокси на Go в учебных целях вдохновившись статьей Figma о том, как их команда баз данных построила DBProxy для перехвата SQL-запросов и маршрутизации их по разным узлам Postgres. Он реализует проксирование TCP-соединений между кл...

Post Thumbnail

У нас отмена!

Статья разбирает, как пакет singleflight в Go предотвращает лавину запросов к кэшу. Он прекрасно схлопывает одинаковые запросы в одну операцию, но есть нюансы Автор на примере IsleDB показывает "ловушку контекста первого вызывающего": если фетч использует к...

Post Thumbnail

Офис на заднем дворе

Чувак делится опытом постройки офиса на заднем дворе. Проект обошёлся примерно в $19 478, что вдвое-втрое дешевле готового решения или найма строительной компании. Автор рекомендует ставить больше розеток, чем кажется необходимым, тщательно продумывать орие...

Post Thumbnail

DDD во времена AI

Статья утверждает, что с ростом AI-кодинга идеи Domain-Driven Design становятся еще актуальнее DDD никогда не был строго про код - главная сложность всегда заключалась в понимании предметной области и ее моделировании. Автор подчеркивает, что доменная модел...

Post Thumbnail

Введение в Racket

Нового языка на сегодня нет, но есть интересный вариант лиспа - Racket. К лиспам я вобще с трепетом отношусь, но никак не хватает времени со всем разобраться Это дружелюбное введение в язык Racket для начинающих. Статья кратко излагает историю: от Лиспа 195...

Post Thumbnail

Оптимизация DNS-кэша

Ребята из Cloudflare рассказывают, как пять последовательных оптимизаций раскладки DNS-кэша Big Pineapple сократили потребление памяти на запись на 56% - с 953 до 420 байт. Освободили около 100 терабайт ОЗУ по всем машинам, а также ускорили кэш. Они сдела...

Post Thumbnail

Конкурентный сервер на Go

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

Post Thumbnail

Горутины повсюду

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

Post Thumbnail

Исполняемы файл - это SQLite база

Куда только этот ваш SQLite не запихивали Статья рассказывает о проекте SELF - замене формата исполняемых файлов ELF на SQLite-базу данных, которую можно реально запускать через chmod +x и ./hello. ELF по сути уже является базой данных, но автор вручную...

Post Thumbnail

Интересные баги

Команда sigma star(хз кто это) нашла и исправила давнюю ошибку в рантайме Go, проявлявшуюся только на 32-битных встраиваемых Linux-системах. Приложение периодически падало с ошибкой "runtime: netpoll: eventfd ready for something unexpected". Корень проблем...

Post Thumbnail

Теория музыки

Статья объясняет теорию музыки "с нуля", отталкиваясь от физики и арифметики Автор показывает, как все это можно вывести и воспроизвести кодом на JavaScript через Web Audio API. По сути, звук - это число, меняющееся во времени. А дальше уже можно выводи...

Post Thumbnail

GopherCon UK 2026

Видосы с GopherCon UK 2026 подоспели. Много всего интересного. Девид Чейни, Билл Кеннеди и другие широко известные в узких кругах докладчики. И даже про AI есть вполне адекватные доклады

Post Thumbnail

Профилирование Rust

В статье про hotpath-rs - универсальный профайлер производительности для Rust. Автор показывает, как находить и устранять реальные узкие места на разных уровнях приложения: SQL-запросов, HTTP-вызовов и I/O до блокировок, каналов, аллокаций памяти и сэмплир...