TGViewer
Channel Public Channel
Код и Капуста

Код и Капуста

@kodikapusta

Авторский канал с интересными ссылками про разработку на Go, Rust, Godot, Flutter, Android, iOS, Aurora. Все ссылки тут https://kodikapusta.ru/

Читать канал в max https://vk.cc/cVOWSP

Для связи @akovardin

Поддержать канал https://boosty.to/kodikapusta
Subscribers
1.67K
Photos
3.2K
Videos
68
Links
3.5K
Recent Posts 20 shown
Post #3646 160
Valen

#lang

Новый язык программирования - Valen!

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

https://kodikapusta.ru/news/1220-valen

Поддержать проект на boosty и читать в MAX
Post #3645 289
Шторм ретраев

#tech

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

Они внедрили концепцию "владения ошибкой": сервис отслеживает, возникла ли ошибка в нем самом или он ее только пробросил от нижестоящего зависимого сервиса. Если ошибка помечена как "чужая", вышестоящие сервисы не ретраят, останавливая экспоненциальный рост нагрузки.

Во время реального крупного сбоя в ноябре 2025 года система заблокировала 9,5 млн лишних запросов, сократив максимальный радиус ретрай-шторма

https://kodikapusta.ru/news/1223-shtorm-retraev

Поддержать проект на boosty и читать в MAX
Post #3644 320
БД на Zig

#zig

Автор рассказвает как они переписали свою поисковую БД с Go на Zig. Zig дал портативность, полный контроль над памятью без GC и CGO, и, главное, std.Io, который позволяет передать пакету симулированное окружение и прогонять VOPR-тестирование (сбои диска, сети, времени) в каждом модуле с первого дня. Новая версия получила собственные LSM, B+tree, Raft и HTTP/3.

Говорят. что производительность, недостижимая на Go

https://kodikapusta.ru/news/1222-bd-na-zig

Поддержать проект на boosty и читать в MAX
  • 👍 3
Post #3643 392
zedis

#rust

Нативный Redis GUI, написанный на Rust с использованием GPUI. Тот же движок рендеринга, что у Zed Editor.

В отличие от Electron-клиентов, он работает при 60+ FPS даже с миллионами ключей, потребляя минимум памяти. Поддерживает автоматическую расшифровку JSON, Protobuf, MessagePack, JWT и других форматов, работу с TLS/SSH, Cluster/Sentinel, Redis и Valkey, встроенный мониторинг, AI-ассистента и веб-версию через Docker

https://kodikapusta.ru/news/1221-zedis

Поддержать проект на boosty и читать в MAX
  • 🔥 2
  • ❤ 1
  • 👍 1
Post #3642 919
C на Go

#golang

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

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

Но! Пока непонятно как обеспечить синхронизацию binding-файлов с C-кодом и как поступить с пакетом runtime/cgo, который пока содержит C-код

https://kodikapusta.ru/news/1219-c-na-go

Поддержать проект на boosty и читать в MAX
Post #3641 1.99K
Еще неделя прошла - ии пока не заменил. Буду держать вас в курсе
  • 👍 4
  • 😁 4
  • ❤ 2
Post #3640 526
Робоутка

#rust

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

https://kodikapusta.ru/news/1217-roboutka

Поддержать проект на boosty и читать в MAX
  • ❤ 1
Post #3639 1.31K
Rune

#golang

Команда Unstable Build заопенсорсила свою нативную IDE Rune, написанную на Go.

Под капотом - GPU-ускорение, собственный терминал, REPL и расширяемое ядро, которое общается с расширениями по gRPC. Поддерживается, конечно, Go, а еще Rust и Zig.

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

Возможно, я даже попробую слезть с VS Code и наконец-то начать пользоваться хоткеями

А как она шикарно запускается!

https://kodikapusta.ru/news/1216-rune

Поддержать проект на boosty и читать в MAX
  • ❤ 1
Post #3638 492
Специализированные аллокаторы

#golang

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

Идея в том, что рантайм генерирует специализированные версии функции mallocgc для каждого span-класса, что позволяет компилятору не вычислять класс во время выполнения.

Наибольший выигрыш получают самые частые размеры - 16 и 24 байта. Например это интерфейсы, строки из двух слов и слайсы из трех

https://kodikapusta.ru/news/1215-spetsializirovannye-allokatory

Поддержать проект на boosty и читать в MAX
  • ❤ 1
  • 👍 1
Post #3637 508
Реверс самоката

#rust

Автор занимается реверс-инжинирингом своего электросамоката.

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

Он разбирает контроллер и дисплей, через SWD-порт дампит прошивки, анализирует их в Ghidra и заливает собственный код на Rust на самокат

Получается, переписал самокат на Rust?

https://kodikapusta.ru/news/1214-revers-samokata

Поддержать проект на boosty и читать в MAX
  • 😁 5
  • ❤ 1
  • 🔥 1
Post #3636 506
А такая шутка раньше была
  • 😁 5
  • 🤩 1
  • 🫡 1
Post #3635 487
Связанные списки

#learn

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

По сравнению с обычными списками это дает два преимущества: вдвое меньше аллокаций памяти (не нужен отдельный узел списка) и меньше промахов кэша, так как при обходе разыменовывается только следующий узел, а не узел плюс данные

https://kodikapusta.ru/news/1211-sviazannye-spiski

Поддержать проект на boosty и читать в MAX
  • ❤ 3
  • 🔥 2
Post #3634 655
Шейдеры на ebiten

#gamedev #golang

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

Автор на примерах из своих игр Roboden и Decipherism показывает пять типичных задач. Наложение маски урона для зданий, эффект "дрожащих" пикселей для рукописного шрифта, ретро-CRT-эффект терминала с глитчами, зацикленную анимацию текстур и эффект постройки здания.

Дополнительно автор объясняет основы Kage. Рассказывает про функцию Fragment(), работу с текселями и пикселями, uniform-параметры, встроенные функции вроде imageSrc0At() и подключение шейдера через DrawRectShader() вместо DrawImage()

Ну красиво же

https://kodikapusta.ru/news/1213-sheidery-na-ebiten

Поддержать проект на boosty и читать в MAX
  • 🔥 4
  • ❤ 2
Post #3633 613
И с 256 днем в году
  • ❤ 1
Post #3632 643
QCRACK.EXE

#fun

Как раз закончил перечитывать книгу "Повелители DOOM" а тут интересная статья про id Software

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

Идея казалась надежной как швейцарские часы. Но через 39 дней хакерская группа GNOMON выпустила QCRACK.EXE, который генерировал серийник автоматически. Оказалось, что серийный номер не содержал никакого секрета, а программа FLOW.EXE на самом CD умела вычислять его сама и просто сверяла с введенным пользователем.

Это было провальное издание - почти 150 000 дисков застряли на складах.

Кстати, автор статьи - Fabien Sanglard. Это оч крутой чувак и в его блоге много про внутрянку DOOM и Quake

https://kodikapusta.ru/news/1212-qcrack-exe

Поддержать проект на boosty и читать в MAX
  • 👍 3
  • ❤ 1
Post #3631 556
Как построить Diffusion Language Model

#ai

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

Статья разбирает строительные блоки современных моделей - блочную диффузию для переменной длины, энкодер-декодер архитектуру, ремаскинг для исправления ошибок, дистилляцию для ускорения, контролируемую генерацию и постобучение.

Автор описывает реальные модели вроде Mercury 2, Gemma Diffusion, Nemotron Diffusion

https://kodikapusta.ru/news/1210-kak-postroit-diffusion-language-model

Поддержать проект на boosty и читать в MAX
  • ❤ 1
Post #3630 536
Портирование на Godot с помощью LLM

#gamedev #godot

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

LLM сумел не только перенести его собственный C++-движок года в Godot за один вечер, но и разобрать оригинальные 72 758 строк ассемблера без комментариев: собрать их заново до байтовой идентичности с выпущенными бинарниками, восстановить все форматы данных и даже запустить его же редактор карт 1993 года в эмуляторе.

Конечно, без ошибок не обошлось. Например, "охрана" поражала игрока через сплошную скалу из-за неправильных проверок, а двери оказались нарисованными кодом в рантайме, а не зашитыми в карту. Автор подчеркивает, что LLM сам делал всю техническую работу, а он лишь тестировал и принимал решения

https://kodikapusta.ru/news/1209-portirovanie-na-godot-s-pomoshch-iu-llm

Поддержать проект на boosty и читать в MAX
  • ❤ 1
  • 👍 1
Post #3629 559
Агенты лучше нас

#ai

Автор утверждает, что оптимизация производительности перестала быть дорогой специализацией

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

Он считает, что будущее за "динамическим кастомным софтом", подогнанным под конкретную рабочую нагрузку

https://kodikapusta.ru/news/1207-agenty-luchshe-nas

Поддержать проект на boosty и читать в MAX
  • ❤ 1
  • 🎉 1
Post #3628 1.68K
Прокси для базы данных

#golang

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

Он реализует проксирование TCP-соединений между клиентом и MySQL: перехватывает пакеты, находит команду COM_QUERY по структуре пакета MySQL и переписывает имя таблицы. В статье объясняется структура MySQL-пакета и демонстрируются базовые принципы, на которых строятся настоящие решения для шардинга, валидации запросов, безопасности и наблюдаемости

https://kodikapusta.ru/news/1208-proksi-dlia-bazy-dannykh

Поддержать проект на boosty и читать в MAX
  • 👍 3
  • ❤ 1
Post #3627 1.63K
У нас отмена!

#golang

Статья разбирает, как пакет singleflight в Go предотвращает лавину запросов к кэшу. Он прекрасно схлопывает одинаковые запросы в одну операцию, но есть нюансы

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

https://kodikapusta.ru/news/1197-u-nas-otmena

Поддержать проект на boosty и читать в MAX
  • 👍 2
  • ❤ 1
  • 🫡 1
Older posts →

About this channel

How can I read @kodikapusta without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Код и Капуста: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Код и Капуста have?
Код и Капуста (@kodikapusta) has 1.67K subscribers on Telegram, refreshed roughly every 30 minutes.
Does Код и Капуста know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →