Код и Капуста
Открыть в Telegram
Авторский канал с интересными ссылками про разработку на Go, Rust, Godot, Flutter, Android, iOS, Aurora. Все ссылки тут https://kodikapusta.ru/ Читать канал в max https://vk.cc/cVOWSP Для связи @akovardin Поддержать канал https://boosty.to/kodikapusta
Больше1 675
Подписчики
Нет данных24 часа
+27 дней
+1130 день
Загрузка данных...
Похожие каналы
Облако тегов
Входящие и исходящие упоминания
---
---
---
---
---
---
Привлечение подписчиков
июль '26
июль '26
+44
в 2 каналах
июнь '26
+66
в 1 каналах
Get PRO
май '26
+31
в 1 каналах
Get PRO
апрель '26
+42
в 2 каналах
Get PRO
март '26
+33
в 2 каналах
Get PRO
февраль '26
+54
в 2 каналах
Get PRO
январь '26
+36
в 1 каналах
Get PRO
декабрь '25
+43
в 2 каналах
Get PRO
ноябрь '25
+41
в 2 каналах
Get PRO
октябрь '25
+54
в 1 каналах
Get PRO
сентябрь '25
+36
в 2 каналах
Get PRO
август '25
+34
в 3 каналах
Get PRO
июль '25
+42
в 2 каналах
Get PRO
июнь '25
+39
в 2 каналах
Get PRO
май '25
+111
в 5 каналах
Get PRO
апрель '25
+55
в 1 каналах
Get PRO
март '25
+72
в 2 каналах
Get PRO
февраль '25
+62
в 1 каналах
Get PRO
январь '25
+73
в 3 каналах
Get PRO
декабрь '24
+37
в 1 каналах
Get PRO
ноябрь '24
+53
в 1 каналах
Get PRO
октябрь '24
+75
в 2 каналах
Get PRO
сентябрь '24
+96
в 2 каналах
Get PRO
август '24
+75
в 2 каналах
Get PRO
июль '24
+57
в 4 каналах
Get PRO
июнь '24
+41
в 3 каналах
Get PRO
май '24
+33
в 2 каналах
Get PRO
апрель '24
+46
в 2 каналах
Get PRO
март '24
+41
в 1 каналах
Get PRO
февраль '24
+38
в 2 каналах
Get PRO
январь '24
+70
в 2 каналах
Get PRO
декабрь '23
+57
в 2 каналах
Get PRO
ноябрь '23
+68
в 3 каналах
Get PRO
октябрь '23
+30
в 4 каналах
Get PRO
сентябрь '23
+6
в 0 каналах
Get PRO
август '23
+5
в 0 каналах
Get PRO
июль '23
+26
в 0 каналах
Get PRO
июнь '23
+25
в 0 каналах
Get PRO
май '23
+42
в 0 каналах
Get PRO
апрель '23
+27
в 0 каналах
Get PRO
март '23
+62
в 0 каналах
Get PRO
февраль '23
+38
в 0 каналах
Get PRO
январь '23
+76
в 0 каналах
Get PRO
декабрь '22
+42
в 0 каналах
Get PRO
ноябрь '22
+31
в 0 каналах
Get PRO
октябрь '22
+49
в 0 каналах
Get PRO
сентябрь '22
+31
в 0 каналах
Get PRO
август '22
+21
в 0 каналах
Get PRO
июль '22
+9
в 0 каналах
Get PRO
июнь '22
+32
в 0 каналах
Get PRO
май '22
+16
в 0 каналах
Get PRO
апрель '22
+223
в 0 каналах
| Дата | Привлечение подписчиков | Упоминания | Каналы | |
| 31 июля | 0 | |||
| 30 июля | 0 | |||
| 29 июля | +1 | |||
| 28 июля | +1 | |||
| 27 июля | 0 | |||
| 26 июля | +3 | |||
| 25 июля | +1 | |||
| 24 июля | 0 | |||
| 23 июля | +1 | |||
| 22 июля | +1 | |||
| 21 июля | 0 | |||
| 20 июля | 0 | |||
| 19 июля | +3 | |||
| 18 июля | 0 | |||
| 17 июля | +1 | |||
| 16 июля | +1 | |||
| 15 июля | +3 | |||
| 14 июля | +4 | |||
| 13 июля | +2 | |||
| 12 июля | +1 | |||
| 11 июля | +1 | |||
| 10 июля | +5 | |||
| 09 июля | +3 | |||
| 08 июля | +5 | |||
| 07 июля | +1 | |||
| 06 июля | +3 | |||
| 05 июля | 0 | |||
| 04 июля | 0 | |||
| 03 июля | +1 | |||
| 02 июля | 0 | |||
| 01 июля | +2 |
Посты канала
GDPatch
#rust #godot
GDPatch - это новый универсальный загрузчик модов для Godot 4.x, написанный на Rust, который вместо патчинга движка или игровых файлов перехватывает системные вызовы файловой системы, подменяя .pck-файлы и перенаправляя чтения на модифицированный контент. Такой подход позволяет работать с любым билдом Godot без модификации исполняемого файла, а внутренний парсер и токенизатор GDScript обеспечивают roundtrip между байткодом и исходным текстом, давая моддерам возможность патчить скрипты через Lua как простой заменой строк, так и через AST.
Все это звучит капец как сложно и меня такие статьи оч мотивируют поглубже разобраться в теме
https://kodikapusta.ru/news/1143-gdpatch
Поддержать проект на boosty и читать в MAX
| 2 | G#
#lang
Новый прикольный пятничный язык программирования
G# - это новый язык для платформы .NET, сочетающий эргономику Go, Kotlin и Swift: пакеты и импорты, объявления через func, дата классы nullable-типы с if let, структурную конкурентность через scope и async/await, а также явные числовые типы вроде int32 и float64. Работает через обычный инструмент dotnet build/dotnet run.
Язык ориентирован на тех, кто хочет учить или использовать .NET с более современным и лаконичным синтаксисом, не начиная с C#
https://kodikapusta.ru/news/1140-g
Поддержать проект на boosty и читать в MAX | 175 |
| 3 | moonBASIC
#golang #tools #fun
Это современный BASIC с компилятором в байткод и встроенным рантаймом для 2D/3D-графики, физики и сети. Не интерпретатор, а прям настоящий компилятор. Исходники .mb компилируются в .mbc и исполняются на VM, интегрированной с Raylib, Jolt, Box2D и ENet через CGO.
Поставляется в трех вариантах:
- IDE-бандл в виде редактор + компилятор + рантайм + документация
- полный рантайм moonrun - одной командой компилирует и запускает игру
- compiler-only для CI/тулчейнов.
Есть VS Code-расширение с LSP и дебаггером, стандартная библиотека покрывает тайловые карты, спрайты, атласы, частицы, звук, освещение, шейдеры. Написан на Go, распространяется
Окей. Но зачем?
https://kodikapusta.ru/tools/31-moonbasic
Поддержать проект на boosty и читать в MAX | 245 |
| 4 | Не то время
#learn #code
Вторая статья автора в серии "Beyond Happy Path Engineering". Автор разбирает, как наивное обращение со временем в продакшене приводит к багам.
Разработчики часто используют now() и wall-clock там, где нужны монотонные часы для измерения длительности, guarded-транзиции состояния вместо сравнения таймстемпов для истечения срока, и явные часовые пояса/календари вместо голого UTC для пользовательских дат.
Автор на примере резервирования товара при покупке показывает, как дрейф часов между машинами вызывает преждевременное освобождение брони, сравнение таймстемпов не доказывает порядок событий, просроченный cron-воркер при наверстывании создает лавину обновлений, а отсутствие монотонного времени приводит к отрицательным измерениям производительности.
А надо явно разделять время на четыре категории: длительность, момент, порядок, бизнес-календар. Подробности в статье
Непростое время
https://kodikapusta.ru/news/1145-ne-to-vremia
Поддержать проект на boosty и читать в MAX | 260 |
| 5 | Кодим чат
#golang
Автор просто час пишет чат. Никаких слов, никакого хайпа. Просто час кодинга под музычку
https://kodikapusta.ru/news/1146-kodim-chat
Поддержать проект на boosty и читать в MAX | 281 |
| 6 | freeink
#tools
Free Ink - это сборизе энтузиастов, коотрые создаюют программное обеспечение, прошивки и аппаратную платформу для устройств на электронных чернилах. Ребята публикует в открытом доступе как софт, так и хардварных спецификации, чтобы любой желающий мог взять, доработать и сделать свою собственную читалку.
Моя следующая читалка точно будет опенсорсной. На каком-нибудь ESP32
https://kodikapusta.ru/tools/30-freeink
Поддержать проект на boosty и читать в MAX | 386 |
| 7 | 768 серверов Postgres
#db
Статья рассказывает, как PlanetScale заставляет 768 серверов Postgres, хранящих петабайт данных, выглядеть для приложения как одна монолитная база. 768 серверов это 256 шардов, каждый с мастером + 2 реплики.
Ключевой компонент - прокси-слой, который парсит SQL, понимает топологию данных через JSON-конфигурацию , хеширует ID и направляет записи и чтения в нужные шарды, агрегируя результаты при запросах, затрагивающих несколько шардов. Сверху балансир распределяет подключения между десятками прокси, а приложение видит единый хост mydb.pscale.com.
Получается, что вся сложность шардирования скрыта за привычной строкой коннекта
https://kodikapusta.ru/news/1142-768-serverov-postgres
Поддержать проект на boosty и читать в MAX | 315 |
| 8 | Хранение паскеев
#golang
Автор предлагает формат для паскеев спеуиальный формат. Что похожее на интероперабельную, непрозрачную строку для хранения паскей-записей, по аналогии с PHC-строками для паролей.
Зачем это нужно? Приложения смогут обращаться с паскеями как с хешами паролей, не привязываясь к конкретной схеме БД или библиотеке. На основе этого формата он набросал небольшое Go API crypto/passkey. Библиотека генерирует JSON, а приложение отвечает только за хранение passkey-записей, привязанных к пользователю, и кеширование challenge'ов
Отличная идея, кмк
https://kodikapusta.ru/news/1139-khranenie-paskeev
Поддержать проект на boosty и читать в MAX | 318 |
| 9 | chatto
#golang #tools
Chatto - полнофункциональный self-hosted чат для команд и сообществ с поддержкой скриншеринга, видео- и голосовых звонков. Бекенж написан на Go
Ну что, настало время своих собственных серверов с чатами
https://kodikapusta.ru/tools/27-chatto
Поддержать проект на boosty и читать в MAX | 445 |
| 10 | Zig на примерах
#zig
Это интерактивное введение в язык Zig через примеры программ, оформленное в стиле известного проекта Go by Example. Этоя прям ностальгические вайбы, в свое время Go by Example прям очень выручал
Сайт покрывает версию Zig 0.16 и разбит на разделы: базовые типы, функции и ошибки, управляющие конструкции ( составные типы, стандартную библиотеку, comptime-метапрограммирование, асинхронный I/O, работу с C, систему сборки и написание CLI-программ - каждая тема иллюстрируется коротким компилируемым примером с пояснениями
Это мы используем
https://kodikapusta.ru/news/1141-zig-na-primerakh
Поддержать проект на boosty и читать в MAX | 331 |
| 11 | Арены жалко
#golang
Go отказался от экспериментальных Memory Arenas - механизма, позволявшего выделять память крупными пулами в обход GC для снижения накладных расходов в высоконагруженных сценариях.
Автор считает это стратегической ошибкой. Формальной причиной стали проблемы безопасности, когда можно попытаться использовать память после ее освобождения. И еще никому не понравилась несовместимость с интерфейсами - пришлось бы добавлять аргумент *Arena в сигнатуры функций, и это раскололо бы экосистему на стандартный и arena-миры, подобно тому как context.Context когда-то "инфицировал" весь Go.
Но, по мнению автора, реальная опасность в том, что Go добровольно ограничил свой потолок производительности в момент, когда быстрые интерпретируемые языки догоняют его сверху, а системные языки вроде Rust и Zig становятся проще снизу. Go рискует остаться застывшим в "среднем" сегменте, став COBOLом облачной эпохи
https://kodikapusta.ru/news/1137-areny-zhalko
Поддержать проект на boosty и читать в MAX | 852 |
| 12 | Kutta
#tools #golang
Это 2D-аэродинамическая труба, написанная на Go с Ebitengine,
Ага, прям настоящая аэродинамическая труба, которая симулирует обтекание профиля крыла методом Lattice-Boltzmann и визуализирует поле скоростей, завихрения, линии дыма и векторы подъемной силы/сопротивления.
Это не валидированная CFD-модель. Она правильно передает форму потока, но не точные числа
Но как красиво!
https://kodikapusta.ru/tools/28-kutta
Поддержать проект на boosty и читать в MAX | 452 |
| 13 | SIMD для всех
#zig
Митчелл Хашимото утверждает, что SIMD незаслуженно считается сложным.
Он на примере из своего терминала Ghostty показывает, что "обработка N значений за раз" всегда сводится к одному и тому же шаблону из пяти шагов: размножить константы в вектор, загружать по одному вектору за итерацию, выполнить операцию сразу над всеми линиями, свернуть векторный результат в скаляр и дообработать остаток обычным циклом. Звучит просто, неправда ли?
Он демонстрирует это на сканировании массива. 12 строк SIMD-кода дают ускорение до 5×, при этом компиляторы плохо справляются с авто-векторизацией таких циклов.
Каждый разработчик должен узнавать ситуации, где применим SIMD, и не бояться его, потому что типовой паттерн осваивается быстро и не требует знания ассемблера или конкретных инструкций процессора
А ты уже используешь SIMD?
https://kodikapusta.ru/news/1138-simd-dlia-vsekh
Поддержать проект на boosty и читать в MAX | 349 |
| 14 | 687 ГБ аллокаций
#golang
Автор профилировал свою многопоточную реализацию Redis на Go и обнаружил, что одна строка кода s.kvList[k] = append(v[popped:], s.kvList[k]...) за время бенчмарка суммарно аллоцировала 687 ГБ памяти. Реально приложение держало в памяти лишь около 4,58 МБ. В чем прикол?
Проблема была в том, что LPUSH каждый раз создавал новый массив и копировал весь существующий список, давая O(n²) по аллокациям, тогда как RPUSH использовал штатную стратегию роста слайсов с амортизированным O(1).
Замена на deque с двумя индексами, растущий от середины в обе стороны, ускорила LPUSH в 33 раза, а аллокации упали с 715 ГБ до 27 ГБ
Нужно быть внимательным
https://kodikapusta.ru/news/1136-687-gb-allokatsii
Поддержать проект на boosty и читать в MAX | 941 |
| 15 | Кста, канал в MAX теперь публичный и есть ссылка https://max.ru/channel_kodkapusta | 411 |
| 16 | HTMX с Go
#golang
Автор детально описывает свои паттерны интеграции HTMX с Go. Почитайте, там много всего интересного.
Но мне весь это веб всё еще не нравится. Любой HTML - это в первую очередь ебля со стилями. Я хотел бы, чтобы уже сделали как во Flutter или Qt, чтобы было очевидно, как выравнивать и форматировать блоки. А не вот это всё
https://kodikapusta.ru/news/1135-htmx-s-go
Поддержать проект на boosty и читать в MAX | 1 077 |
| 17 | Запускаем юникловскую футболку
#fun
Автор обнаружил на футболке Uniqlo из коллекции Akamai "Peace for All" обфусцированный bash-скрипт. На спине напечатан небэнг и base64-закодированная строка, подаваемая в eval.
После трудоемкого OCR и выверки расшифрованный скрипт оказался очень милой пасхалкой: бесконечная синусоидная анимация текста ♥PEACE♥FOR♥ALL♥ с цветовым градиентом от циана к оранжевому, бегущая по терминалу.
Футболка отсылает к эпохе раннего интернета и Linux как "open-source языку интернета". Немножко компьютерной ностальгии для гиков и отличная рекламная кампания для Uniqlo
https://kodikapusta.ru/news/1133-zapuskaem-iuniklovskuiu-futbolku
Поддержать проект на boosty и читать в MAX | 428 |
| 18 | GALA
#golang #tools
GALA (Go Alternative LAnguage) - статически типизированный функциональный язык, транспилирующийся в Go, который приносит в экосистему Go sealed-типы с исчерпывающим паттерн матчиг, монадический стек, иммутабельные коллекции и do-нотацию с накоплением ошибок через Validated и конкурентным выполнением через Future. Уже даже есть примеры проектов на GALA
Кароче, ребята решили SCALA написать на Go
https://kodikapusta.ru/tools/24-gala
Поддержать проект на boosty и читать в MAX | 1 138 |
| 19 | Виртуальная память
#learn
Масштабное погружение в виртуальную память от самых основ. Туториал прикольно написан как диалог двух приятелей - процесса по имени Аллока и Ядра.
Раскрывается множество тем: зачем нужна виртуальная память, раскладка адресного пространства, 4-уровневые иерархические таблицы страниц, роль MMU и TLB в ускорении трансляции адресов, ленивое выделение памяти через page faults, copy-on-write для fork() и разделяемой памяти, mmap, типы памяти, swap, эффекты NUMA-топологии, производительность data-intensive систем и наблюдаемость. И это я еще не все перечислил
https://kodikapusta.ru/news/1134-virtual-naia-pamiat
Поддержать проект на boosty и читать в MAX | 414 |
| 20 | Agda
#lang
Пятничный язык программирования
Agda - это функциональный язык программирования с зависимыми типами, основанный на интуиционистской теории типов Пер Мартин-Лёфа и разрабатываемый группой Logic and Types в Чалмерском технологическом университете.
Язык поддерживает индуктивные семейства, параметризованные модули, mixfix-операторы, Unicode-символы и интерактивный Emacs-интерфейс. А еще язык используется для доказательства корректности программ
https://kodikapusta.ru/news/1118-agda
Поддержать проект на boosty и читать в MAX | 420 |
