golang
Память в GoOS, часть 2. Нативные потоки, горутины и GC на SMP

Как я рассказывал в первой части, реализация работы с памятью - довольно непростое занятие, и в первой части я рассказывал про сравнительно лёгкую область этой работы.Пока процесс однопоточный, сборщик мусора имеет дело с одним стеком, одним набором регистров и одной точкой выполнения. Как только появляется второй поток, он уже может одновременно менять кучу на другом процессорном ядре. А после появления горутин выполнение Go-кода вообще перестаёт быть жёстко связано с одним стеком нативного по…

  • вторник, 27 октября 2026 г. в 00:00:27
golang
Excel как внешний API без контракта: безопасный импорт данных в Go и PostgreSQL

Импорт Excel-файлов обычно выглядит несложной задачей. Получили XLSX, прочитали строки, проверили обязательные поля и записали данные в PostgreSQL. Если запись существует, обновили её через ON CONFLICT DO UPDATE.Для одноразового скрипта этого часто достаточно. Проблемы начинаются, когда импорт становится частью продукта.Допустим, в SaaS есть справочник товаров, который клиенты периодически обновляют из Excel. В одном файле 30 тысяч позиций, в другом 100 тысяч. Пользователь загружает новую верси…

  • вторник, 27 октября 2026 г. в 00:00:26
javascript
Рост и вес неандертальца по одной кости: я сделал открытый калькулятор по научным формулам

В июле 2026 года в PNAS вышла статья Кевина Хаталы и соавторов про следы на берегу древнего озера в северной Кении. Около 1,4 млн лет назад там прошли восемь парантропов вида Paranthropus boisei. От этого вида до сих пор находили в основном черепа с огромными челюстями и зубами, а ниже шеи почти ничего. По отпечаткам стоп авторы оценили рост до 1,8 м и массу около 75 кг. Это заметно больше, чем получалось раньше по редким костям.Меня в этой новости зацепило не то, что парантропы оказались крупн…

  • вторник, 27 октября 2026 г. в 00:00:24
javascript
Тыквенный король: хэллоуинский босс для браузерной драки — от календаря до 2000 игроков на улице

Я в одиночку делаю Brawl Town - уличную драку в браузере в духе Final Fight: одна длинная улица, сотни бойцов, все против всех, круглые сутки. https://habr.com/ru/articles/1095682/После запуска поток игроков быстро сдулся, и стало понятно, что нужен повод вернуться в игру - и повод о ней рассказать. До Хэллоуина оставалась неделя. В статье - как я за эту неделю сделал сезонный ивент: что он должен был уметь кроме тыкв, как устроен босс, почему пришлось переделывать ему анимацию и что показал на…

  • вторник, 27 октября 2026 г. в 00:00:22
javascript
Свой тренажёр печати для детей: три ошибки и одна догадка, которая сработала

Я преподаю детям программирование и вижу одну и ту же картину: на обычных тренажёрах печати дети быстро устают, начинают отвлекаться, а некоторые просто просят выключить. Тренажёра для детей с дислексией я не нашла ни одного. Ждать, пока его кто-то придумает, я не стала и сделала свой — Клавитраж.Идея пришла не только с занятий: у меня самой дислексия, и именно клавиатура когда-то помогла мне справиться с письмом. Как я живу с этим и почему печать стала для меня спасением, расскажу в отдельной …

  • вторник, 27 октября 2026 г. в 00:00:22
github
alchaincyf / huashu-design

Huashu Design 3.0 · 在 agent 里打一句话,拿回能交付的设计:网页 / App 原型 / 可编辑 PPTX / 动画 / 信息图 · 六个候选挑三个方向 · 84 种带样张的风格库 · 越用越懂你的外观账本与设计体检 · HTML-native design skill for Claude Code, Codex, Cursor & any agent🌐 中文 · English Huashu Design 「打字。回车。一份能交付的设计。」 "Type. Hit enter. A finished design lands in your lap." 在你的 agent 里打一句话,拿回一份能交付的设计。 3 到 30 分钟,你能 ship 一段产品发布动画、一个能点击的 App 原型、一套能编辑的 PPT、一份印刷级的信息图。 不是「AI 做的还行」那种水平——是看起来像大厂设计团队做的。给 skill 你的品牌资产(logo、色板、UI 截图),它会读懂你的品牌气质;什么都不给,六张缩略图里挑出的三个真实方向 + 84 …

  • вторник, 27 октября 2026 г. в 00:00:20
github
nightly-labs / openbot

A local-first desktop workspace for persistent AI teammates. Run Codex, Claude, and Grok with dedicated workspaces, task queues, file sharing, browser control, and agent-to-agent collaboration.OpenBot OpenBot is a local-first desktop workspace for persistent AI teammates. It supports the local Codex App Server and Claude Code, plus Grok CLI, OpenCode, Gemini, Cursor CLI, and Cline CLI through ACP. It gives every agent its own workspace and conversation, and provides local queues, file transfe…

  • вторник, 27 октября 2026 г. в 00:00:12
golang
Память в GoOS, часть 1. От bump allocator к собственному heap и GC

В первой статье про GoOS я довольно подробно прошёлся по загрузке, SMP, IPC, capabilities, сети, Linux ABI и устройству сервисов. А в комментариях довольно быстро всплыл вопрос, который я тогда сознательно обошёл стороной: что в системе происходит с динамической памятью и сборщиком мусора.Вопрос этот был вполне по делу. Я пишу ОС преимущественно на Go, компилирую её TinyGo, но обычный Go runtime мне тут никто не выдаёт. Значит, фраза «Go сам разберётся с памятью» тут не работает от слова «совсе…

  • понедельник, 26 октября 2026 г. в 00:00:24
golang
Пишем высокопроизводительный rate-limiter на golang

О чём статьяНедавно я познакомился с golang и в качестве практики решил реализовать алгоритмы rate limiting'а из статьи c arxiv. В этой статье мы рассмотрим написание rate-limiter'а в виде отдельно стоящего сервиса и в виде middleware, используя in-memory кэш или Redis, добавим поддержку REST и gRPC, подключим Prometheus и поймём как добиться атомарности операций с минимальными задержками. Кому полезноНовичкам в golang или же людям, которые по какой-то причине также решили использовать…

  • понедельник, 26 октября 2026 г. в 00:00:23