fa
Feedback
Код и Капуста

Код и Капуста

رفتن به کانال در Telegram

Авторский канал с интересными ссылками про разработку на Go, Rust, Godot, Flutter, Android, iOS, Aurora. Все ссылки тут https://kodikapusta.ru/ Читать канал в max https://vk.cc/cVOWSP Для связи @akovardin Поддержать канал https://boosty.to/kodikapusta

نمایش بیشتر
1 638
مشترکین
+1024 ساعت
+107 روز
+1330 روز
جذب مشترکین
ژوئن '26
ژوئن '26
+30
در 1 کانال‌ها
مه '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 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
16 ژوئن+1
15 ژوئن+10
14 ژوئن+3
13 ژوئن+2
12 ژوئن+1
11 ژوئن+1
10 ژوئن0
09 ژوئن+2
08 ژوئن+1
07 ژوئن+1
06 ژوئن+1
05 ژوئن0
04 ژوئن+1
03 ژوئن+1
02 ژوئن+3
01 ژوئن+2
پست‌های کانال
boring #tools #golang boring - консольный менеджер SSH-туннелей, который просто работает. Поддерживает локальный, удаленный п
boring #tools #golang boring - консольный менеджер SSH-туннелей, который просто работает. Поддерживает локальный, удаленный проброс портов и SOCKS5, автоматически переподключается при обрывах, читает ~/.ssh/config и умеет работать с Unix-сокетами. Настройка через TOML, есть группировка туннелей и автодополнения для bash/zsh/fish. Устанавливается через Homebrew, готовым бинарником или можно собрать из исходников https://kodikapusta.ru/tools/2-boring Поддержать проект на boosty и читать в MAX

2
Уровни микроархитектуры amd64 #golang Возможно вы слышали про уровни микроархитектуры. Каждый уровень включает в себя набор р
Уровни микроархитектуры amd64 #golang Возможно вы слышали про уровни микроархитектуры. Каждый уровень включает в себя набор расширений набора команд. Тулинг Go предоставляет доступ к настройке уровней через переменную окружения GOAMD64 Наши 64-битные процессоры Intel и AMD совершенствовались на протяжении десятилетий. При компиляции программы на Go компилятор по умолчанию ориентируется на набор инструкций, которому уже почти 20 лет. Полученный бинарный файл работает практически на любом чипе x64, но при этом не использует ни одну из инструкций, добавленных после 2003 года. Автор поигрался с настройкасм GOAMD64 и сравненил использование разных уровней в Go на библиотеке roaring. Получил большой прирост производительности при переходе на v2 и v3 уровни, но почти ничего от v4. Можете попробовать такой подход у себя, но перед сменой целевого уровня компиляции тестируйте CPU-нагруженный код https://kodikapusta.ru/news/1083-urovni-mikroarkhitektury-amd64 Поддержать проект на boosty и читать в MAX
607
3
mvm #golang #tools mvm - быстрая стековая виртуальная машина для Go, позволяющая запускать программы напрямую из исходников б
mvm #golang #tools mvm - быстрая стековая виртуальная машина для Go, позволяющая запускать программы напрямую из исходников без компиляции. Целиком совместима с Go, поддерживает встраивание в Go/C-приложения, имеет встроенный REPL, отладчик и тестовый движок. Распространяется как единый статический бинарник со стандартной библиотекой внутри https://kodikapusta.ru/tools/1-mvm Поддержать проект на boosty и читать в MAX
305
4
Wi-Fi данные #golang Не знаю зачем вам это может буть нужно, но мне всегда нравятся статьи по работе с сетью. Вот в этой стат
Wi-Fi данные #golang Не знаю зачем вам это может буть нужно, но мне всегда нравятся статьи по работе с сетью. Вот в этой статье про то, как добраться до данных Wi-Fi в macOS Apple удалила утилиту airport в macOS Sonoma 14.4, а ее замена wdutil скрывает BSSID и другие данные как приватную информацию о местоположении. Единственный легальный обходной путь - вынести вызов CoreWLAN в отдельное мини-приложение-бандл, подписанное Developer ID, которое запрашивает разрешение геолокации один раз и передает полученные данные в основную Go-программу через локальный сокет. Автор упаковал этот паттерн в Go-библиотеку macwifi и CLI-утилиту macwifi-cli, которые возвращают SSID, BSSID, уровень сигнала, канал и другие параметры Wi-Fi https://kodikapusta.ru/news/1082-wi-fi-dannye Поддержать проект на boosty и читать в MAX
320
5
Playdate Наколбасил для вас одной рукой большущую статью про написание приложений под Playdate и про Gopher протокол. Playdat
Playdate Наколбасил для вас одной рукой большущую статью про написание приложений под Playdate и про Gopher протокол. Playdate — это миленькая ретроконсоль с монохромным дисплеем и "крэнком", который можно крутить. И это дает интересный пользовательский опыт. Gopher — это сетевой протокол, который был еще до HTTP. И это прикольный и простой протокол. В статье покажу, как реализовать небольшой Gopher-сервер и как сделать клиент для этого сервера под Playdate. И все это на Golang. Кроме того, в статье много советов, как начать разработку под Playdate на C и Lua, как настроить VSCode и SDK. https://kodikapusta.ru/articles/28-playdate
879
6
Golang Ревью #golang Продолжение серии заметок о неочевидных и опасных поведениях Go, дополнение к первой части 2024 года. Ав
Golang Ревью #golang Продолжение серии заметок о неочевидных и опасных поведениях Go, дополнение к первой части 2024 года. Автор освещает ряд проблем: - тихие целочисленные переполнения, где тип int зависит от архитектуры, что ведёт к реальным уязвимостям вроде SQL-инъекций через библиотеки сериализации; - удаление заголовков hop-by-hop в httputil.ReverseProxy, из‑за чего можно сбросить auth-заголовки через Connection; - мутация net/url при копировании по значению, приводящая к race condition; - обход аутентификации через null-байты на границе с CGO; - невызов кастомного MarshalJSON при кодировании по значению — это вызывает утечку sensitive data из‑за reflection; - а также CSRF-уязвимости из‑за пропущенной валидации Content-Type в паре с игнорированием лишних байт encoding/json. К статье прилагаются semgrep-правила для поиска этих паттернов. https://kodikapusta.ru/news/1081-golang-rev-iu Поддержать проект на boosty и читать в MAX
937
7
mvm mvm - быстрая стековая виртуальная машина для Go, позволяющая запускать программы напрямую из исходников без компиляции.
mvm mvm - быстрая стековая виртуальная машина для Go, позволяющая запускать программы напрямую из исходников без компиляции. Целиком совместима с Go, поддерживает встраивание в Go/C-приложения, имеет встроенный REPL, отладчик и тестовый движок. Распространяется как единый статический бинарник со стандартной библиотекой внутри https://kodikapusta.ru/tools/1-mvm
1
8
Свой Max с E2E #rust Статья про кастомный клиент для Max с сквозным шифрованием и все это на Rust. Отличный хобби проект, я т
Свой Max с E2E #rust Статья про кастомный клиент для Max с сквозным шифрованием и все это на Rust. Отличный хобби проект, я теперь тоже такое хочу https://kodikapusta.ru/news/1080-svoi-max-s-e2e Поддержать проект на boosty и читать в MAX
381
9
Revo #zig #lang На эту пятницу у меня вас новый язык программирования, написанный на Zig Revo - выразительный динамически тип
Revo #zig #lang На эту пятницу у меня вас новый язык программирования, написанный на Zig Revo - выразительный динамически типизированный язык программирования, написанный на Zig. Поддерживает пайпы, сопоставление с образцом, встроенные каналы и "горутины", first-class тесты, и LSP-сервер. Имеет C API для встраивания https://kodikapusta.ru/news/1077-revo Поддержать проект на boosty и читать в MAX
422
10
Claude Code #ai Практическое руководство по продвинутому использованию Claude Code: от базовых промптов - к настройке .claude
Claude Code #ai Практическое руководство по продвинутому использованию Claude Code: от базовых промптов - к настройке .claude/ директории, CLAUDE.md, скиллов, сабэджентов, плагинов, MCP и параллельных сессий в worktree. Если вдруг вы решили не просто использовать Claude как автодополнение и начать настраивать его как программируемого агента с верификацией, изолированными контекстами и "компаундирующейся" конфигурацией, где каждый ревью улучшает правила Ну а что, такие уж времена, приходится https://kodikapusta.ru/news/1079-claude-code Поддержать проект на boosty и читать в MAX
498
11
Детектив #fun Детективная история про взлом колонки Исследователь обнаружил критические уязвимости в саундбаре Creative Sound
Детектив #fun Детективная история про взлом колонки Исследователь обнаружил критические уязвимости в саундбаре Creative Sound Blaster Katana V2X: прошивка не проверяет цифровую подпись, только SHA-256 хеш, а BLE-соединение не требует аутентификации для отправки CTP-команд. Атакующий в радиусе ~15 метров может без сопряжения загрузить кастомную прошивку, которая превращает колонку в подслушивающее устройство или эмулировать USB-клавиатуру, которая исполняет произвольные команды на подключенном ПК Отак от https://kodikapusta.ru/news/1078-detektiv Поддержать проект на boosty и читать в MAX
485
12
Как работает интернет #learn #fun Туториал объясняет, как работают TCP-серверы, начиная с теории - что такое сокеты, TCP-соед
Как работает интернет #learn #fun Туториал объясняет, как работают TCP-серверы, начиная с теории - что такое сокеты, TCP-соединения, порты, фрагментация и сборка пакетов. И заканчивая практической реализацией простого TCP-эхо-сервера и клиента на Python. Автор последовательно разбирает каждый шаг: создание сокета, привязка к адресу, перевод в режим listening, принятие соединений через accept, чтение и запись данных, а также корректное закрытие сокетов, поясняя, что скрывается за каждым системным вызовом Для многих тут не будет ничего нового, но прикольно что автор старается рассказать внутрянку https://kodikapusta.ru/news/1076-kak-rabotaet-internet Поддержать проект на boosty и читать в MAX
447
13
Эээксперименты В Go есть "экспериментальные" возможности, чтобы вы могли опробовать новые функции или изменения в поведении д
Эээксперименты В Go есть "экспериментальные" возможности, чтобы вы могли опробовать новые функции или изменения в поведении до того, как они будут окончательно зафиксированы. Но знаете ли вы, как их найти и включить или как они переходят в статус общедоступных? Алекс объясняет, как работает эта система. https://kodikapusta.ru/news/1075-eeeksperimenty Поддержать проект на boosty и читать в MAX
1 309
14
Files.md #tools Files.md — minimalistic PWA для заметок, задуманная как "тихое приватное пространство для мышления". Это loca
Files.md #tools Files.md — minimalistic PWA для заметок, задуманная как "тихое приватное пространство для мышления". Это local-first приложение, где все данные хранятся в обычных .md-файлах прямо на устройстве, без отправки на сервер. Автоматическая сортировка по папкам, поддержка Markdown, бэклинков, задач и чеклистов. А киллер-фича - это чат-интерфейс для быстрого сброса мыслей. Я джва года такого ждал Автор строил проект 5 лет и настаивает: важнее думать головой, а не коллекционировать заметки. Второй мозг без развития первого мозга — иллюзия продуктивности https://kodikapusta.ru/news/1074-files-md Поддержать проект на boosty и читать в MAX
474
15
Код руками #ai Автор 7 месяцев вайб-кодил TUI-дашборд для Kubernetes GPU-кластеров на Go с помощью Claude и в итоге переписыв
Код руками #ai Автор 7 месяцев вайб-кодил TUI-дашборд для Kubernetes GPU-кластеров на Go с помощью Claude и в итоге переписывает с нуля вручную на Rust. Проблема в том, что AI отлично генерирует отдельные фичи, но не архитектуру — каждый новый запрос добавлял очередной if в 1690-строчный model.go, где 110 веток switch и 9 ручных обнулений полей для очистки состояния предыдущего вью. В итоге получаем god-object, магические индексы ra[3] вместо типов, data race в фоновых обновлениях и расползание скоупа. Архитектуру должен писать человек и фиксировать в CLAUDE.md. Вайб-кодинг даёт иллюзию бесплатных фич, но сложность системы никуда не девается https://kodikapusta.ru/news/1073-kod-rukami Поддержать проект на boosty и читать в MAX
485
16
Prolog с покемонами #lang Автор объясняет основы Prolog на примере данных о покемонах — их типах, характеристиках, атаках и э
Prolog с покемонами #lang Автор объясняет основы Prolog на примере данных о покемонах — их типах, характеристиках, атаках и эффективности. Prolog позволяет формулировать запросы вроде "какие особые атаки, суперэффективные против любого покемона команды соперника, знает мой Tornadus?" на порядок короче и понятнее, чем аналогичный SQL или формулы в Google Sheets. Автор демонстрирует, как легко добавлять правила простым добавлением предикатов, без изменения логики, например, исключить дабл-баттл атаки, учесть способность Prankster, дающую +1 priority статусным ходам. Prolog идеален для моделирования сложных правил и отношений, а основной вызов — превратить этот DSL в веб-интерфейс, доступный не-программистам https://kodikapusta.ru/news/1072-prolog-s-pokemonami Поддержать проект на boosty и читать в MAX
466
17
Mini Micro #fun Mini Micro — десктопное приложение для Windows, macOS и Linux, симулирующее ретро-домашний компьютер на базе
Mini Micro #fun Mini Micro — десктопное приложение для Windows, macOS и Linux, симулирующее ретро-домашний компьютер на базе языка MiniScript. Такая штука будет интересна как для обучения программированию новичков, так и для разработки игр и симуляций опытными разработчиками. Mini Micro имеет на борту API для пиксельной, спрайтовой и тайловой графики, звука и музыки, текстового дисплея, работы с файлами и изображениями, а также поддержку клавиатуры, мыши и геймпадов. Приложение работает идентично на всех платформах, обеспечивая единообразную среду для разработки. Миленько https://kodikapusta.ru/news/1069-mini-micro Поддержать проект на boosty и читать в MAX
446
18
TigerFS #golang Файловая система — это просто API. А TigerFS — это файловая система, работающая поверх PostgreSQL. Файлы стан
TigerFS #golang Файловая система — это просто API. А TigerFS — это файловая система, работающая поверх PostgreSQL. Файлы становятся строками в БД, директории — таблицами, а YAML-фронтматер — колонками. Поддерживается два режима. В "file-first" монтируешь БД и работаешь с обычными файлами через vim/cp/mv с полной ACID-транзакционностью. И "data-first", когда монтируешь существующую PostgreSQL и исследуешь её как файловую систему. На Linux используется FUSE, на macOS — NFS. Автор демонстрирует блог на Markdown-файлах, в котором каждый пост — это одновременно файл и строка в tigerfs.posts с колонками title, author, tags, body. Такой подход должен быть полезен для AI-агентов, которые любят работать с файлами, но получают под капотом транзакции, конкурентность и версионирование PostgreSQL https://kodikapusta.ru/news/1063-tigerfs Поддержать проект на boosty и читать в MAX
1 418
19
MS-DOS #fun Microsoft открыла исходный код самой ранней из известных версий DOS — 86-DOS 1.00, которая предшествовала MS-DOS
MS-DOS #fun Microsoft открыла исходный код самой ранней из известных версий DOS — 86-DOS 1.00, которая предшествовала MS-DOS и была создана Тимом Патерсоном для Seattle Computer Products. Исходники не сохранились в цифровом виде — их восстановили по бумажным распечаткам участники "DOS Disassembly Group" под руководством Юфэна Гао и Рика Чини, так как современные OCR-системы не справлялись с качеством старых принтов. Код выложен в том же GitHub-репозитории Microsoft, где уже хранятся открытые версии MS-DOS 1.25, 2.0 и 4.0. Это уже настоящая программная археология https://kodikapusta.ru/news/1071-ms-dos Поддержать проект на boosty и читать в MAX
480
20
58 720 256 ключей #rust Статья о крупном инциденте в рабочем процессе LinkedIn, когда их база данных, написанная на Rust, исп
58 720 256 ключей #rust Статья о крупном инциденте в рабочем процессе LinkedIn, когда их база данных, написанная на Rust, испытывала 15-секундные зависания из-за того, что стандартная библиотечная HashMap достигла ровно 58 720 256 ключей и вызвала автоматическое изменение размера. Выделение огромного объема памяти через mmap, необходимое для расширения таблицы, блокировало всё адресное пространство процесса. Этот случай показывает, как стандартное поведение коллекций в языках программирования может создавать серьёзные системные узкие места уровня исполнения при работе на больших масштабах. Думайте головой, даже когда пишете на Rust https://kodikapusta.ru/news/1067-58-720-256-kliuchei Поддержать проект на boosty и читать в MAX
475