golang
В 39% игр в Тайного Санту двое дарят друг другу. Считаем жеребьёвку как следует

Раздать имена в Тайном Санте — задача на пять строк: перемешал список, проверил, что никто не достался сам себе, готово. Я так и думал, пока не посчитал. При таком способе почти в четырёх играх из десяти найдутся двое, которые дарят друг другу, и это не баг реализации, а свойство случайных перестановок.Я делаю сервис для Тайного Санты (My Santa), и жеребьёвка в нём — те самые пять строк, которые разрослись до ста тридцати. Ниже — почему разрослись, как устроены и какой перекос я нашёл в собстве…

  • суббота, 17 октября 2026 г. в 00:00:12
golang
Расписание ИТМО жило в приложении, а мне нужен был календарь. Поэтому я сделал сервис

Расписание живёт в приложении ИТМО, а вся моя жизнь — в календаре: работа, секции, встречи, поездки. Каждую неделю я сверял одно с другим и почти каждый раз находил расхождение. В итоге сделал сервис, который превращает расписание в подписку: одна ссылка, и пары появляются в календаре сами. Сервис неофициальный: у ИТМО такой подписки нет, поэтому её сделал я.Как былоПроще всего объяснить на примере. Однажды я приехал на пару на Кронверкский, а она оказалась перенесена на Ломоносова. Уведомлени…

  • суббота, 17 октября 2026 г. в 00:00:11
golang
Fairway: балансировщик корпоративных прокси, который сам выясняет, какой выход лучше для какого сай…

В компании редко бывает один прокси. Обычно это пара Squid в основном ЦОДе, свои прокси в филиалах и отдельные внешние выходы для облачных сервисов. Клиенты при этом настроены просто: PAC‑файл с двумя адресами по порядку, и всё.Беда в том, что «какой прокси лучше» зависит от сайта. Партнёрский банк пускает в API только с согласованных адресов, и выход питерского филиала в этот список не попал. Зеркало пакетов через европейский выход отдаёт втрое быстрее, чем через московский. Канал в филиале уз…

  • суббота, 17 октября 2026 г. в 00:00:09
golang
NKT (NetKnownsThat): open-source замена зоопарку инфраструктурных инструментов

"Я каждый день работаю с кучей инструментов для мониторинга и управления инфраструктурой и меня сильно раздражает то, что путь от момента первого запуска до нормального использования неоправданно длинный."  - Владислав, инженерМеня зовут Александр, я один из разработчиков NKT (NetKnownsThat) — нашего первого опенсоурс проектаNKT - это один бинарник на Go (~29 МБ) с встроенным веб-интерфейсом на React+TypeScript+Ant Design. Без Python, Node.js и внешних зависимостей, всё внутри бинарника…

  • суббота, 17 октября 2026 г. в 00:00:08
golang
Разворачиваем порты VPS'а: маленькая шалость программиста

При заказе VPS/VPS (уж не знаю, для каких вам нужд) - стандартная схема - при минимальной комплектации вам дают сервер, к которому можно подключиться только по SSH, и нельзя открыть никакие другие порты. Сам порт SSH может отличаться от стардартного 22-го (обычно так и происходит в начале).За дополнительную плату можно подключить опцию “статический IP” - и тогда уже можно открывать какие угодно порты и вешать на них какие угодно сервисы, веб-серверы, прокси-серверы.В целом, деньги то есть, и ту…

  • суббота, 17 октября 2026 г. в 00:00:07
javascript
Я строил не 3D‑мир, а базовый слой под ним: три узких места в браузерном 3D

Последние месяцы я делаю 3D‑мир, который работает прямо в браузере — на Three.js: сцена, персонажи, сеть.Самое неприятное в производительности браузерного 3D — не ошибки. Ошибку видно: она в консоли, у неё есть стек и виновник. А есть второй класс проблем: всё работает, ничего не падает, просто тормозит. Консоль чистая, кадры падают, и непонятно, с чего начинать.Речь про Three.js, но большинство выводов переносится на любой WebGL‑стек.Почему речь про слой, а не про «ещё один 3D‑мир»Когда говоря…

  • суббота, 17 октября 2026 г. в 00:00:05
javascript
Giga IDE Pro больше не будет. Но это хорошая новость

Pro-сборка была важным этапом в развитии GigaIDE: она позволила быстрее развивать профессиональные инструменты, собирать обратную связь от корпоративных пользователей и проверять сценарии, которые выходят за рамки Community-версии. Но у отдельного дистрибутива есть и обратная сторона: пользователю нужно выбирать сборку, командам — отдельно управлять установками, а продукту — поддерживать лишнюю развилку там, где её уже можно убрать.Поэтому мы упростили модель поставки. На GitVerse уже вышел еди…

  • суббота, 17 октября 2026 г. в 00:00:04
javascript
React 19.3: что реально поменялось и почему это важно

Если следить за React только по крупным релизам, легко пропустить момент, когда библиотека тихо меняет направление. React 19.3 — как раз такой случай. Сам релиз вышел 9 сентября 2026 года. И я хочу поделиться парой моментов из этого обновления. Рассмотрим пару хуков это ViewTransition и Fragment Refs. Еще, что я могу выделить, это новые возможности для SSR, Server Components и работы с браузерными API. Самое интересное тут даже не в том, сколько новых API добавили. Просто React постепенно перет…

  • суббота, 17 октября 2026 г. в 00:00:03
github
android / skills

Android skills Android skills are a dedicated repository of AI-optimized, modular instructions and resources, to help agents better understand and execute specific patterns that follow the best practices and guidance on Android development from developer.android.com. Android skills follow the open-standard agent skills - markdown files (SKILL.md) that provide a technical specification of a task, and ground LLMs with information on specialized domains and workflows. Our Android skill development…

  • суббота, 17 октября 2026 г. в 00:00:01