Новости

Post Thumbnail

Как экономить 100 TB оперативы

Cloudflare обнаружил, что их сервис балансировки нагрузки Pingora Backend Router использует 6+ GB RAM на хранение хешей для консистентного хеширования Инженеры применили два улучшения: заменили 32-битный индекс сервера на 16-битный, упаковав структуру в 6 ...

Post Thumbnail

Одна вставка руинит все

Разбор write amplification в PostgreSQL. Одна вставка строки в 40 байт на таблице с тремя индексами порождает 4 WAL-записи и ~345 байт лога - коэффициент амплификации ~8-10x. Автор показывает SQL-скрипт для замера реальной амплификации на своей БД и пр...

Post Thumbnail

Valen

Новый язык программирования - Valen! Обещают бесшовную интероперабельность с Rust. Они там такого намудоиил чтобы обойти отсутствие дженериков в C ABI, капец. Valen использует rustc как библиотеку и патчит его, добавляя колбэки для совместной мономорфизации...

Post Thumbnail

Шторм ретраев

Инженеры Uber рассказывают, как они защитили свой сервис меш от ретрай-штормов — лавинообразного размножения запросов при сбоях. Они внедрили концепцию "владения ошибкой": сервис отслеживает, возникла ли ошибка в нем самом или он ее только пробросил от ниж...

Post Thumbnail

БД на Zig

Автор рассказвает как они переписали свою поисковую БД с Go на Zig. Zig дал портативность, полный контроль над памятью без GC и CGO, и, главное, std.Io, который позволяет передать пакету симулированное окружение и прогонять VOPR-тестирование (сбои диска, сети,...

Post Thumbnail

zedis

Нативный Redis GUI, написанный на Rust с использованием GPUI. Тот же движок рендеринга, что у Zed Editor. В отличие от Electron-клиентов, он работает при 60+ FPS даже с миллионами ключей, потребляя минимум памяти. Поддерживает автоматическую расшифровку JS...

Post Thumbnail

C на Go

Интересный пропозал - добавить возможность сборки Go-пакетов, использующих cgo для взаимодействия с C-библиотеками, без установленного C-тулчейна Предлагается описывать C-интерфейс на языке Go с помощью аннотаций //cgo:binding, а cmd/cgo будет генерировать ...

Post Thumbnail

Робоутка

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

Post Thumbnail

Бенчим джейсон

Автор на реальном API с нагрузкой 50M запросов/сутки)сравнивает производительность JSON-библиотек в Go - encoding/json, encoding/json/v2 (Go 1.27), jsoniter, easyjson и sonic, Все на одном и том же пейлоадом с вложенным слайсом, map[string]interface{} и time....

Post Thumbnail

Rune

Команда Unstable Build заопенсорсила свою нативную IDE Rune, написанную на Go. Под капотом - GPU-ускорение, собственный терминал, REPL и расширяемое ядро, которое общается с расширениями по gRPC. Поддерживается, конечно, Go, а еще Rust и Zig. И еще у них...

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, что вдвое-втрое дешевле готового решения или найма строительной компании. Автор рекомендует ставить больше розеток, чем кажется необходимым, тщательно продумывать орие...