Код и Капуста https://kodikapusta.ru/ Статьи "Код и Капуста" Код и Капуста ru-ru Ковардин Артем 11.01.2026 Анонимные животные https://kodikapusta.ru//articles/rust-anonimus-animals Sun, 11 Jan 2026 12:00:00 +0000 /articles/rust-anonimus-animals Знаете эти милые аватарки с животными в общих Google-документах? Они появляются у каждого, кто открывает файл по ссылке. Выбрать себе зверюшку заранее или как-то на неё повлиять нельзя - ваш аватар назначается случайно. Чтобы узнать, в кого вы "превратились", придется спросить у кого-нибудь из тех, кто в документе вместе с вами. Хочу реализовать похожую механику на kodikapusta.ru Бекенд на Rust https://kodikapusta.ru//articles/rust-web-server Sun, 21 Dec 2025 12:00:00 +0000 /articles/rust-web-server Создать веб-сервер на Rust не сложно. С помощью фреймворка Axum можно написать веб-сервер без лишних хлопот. На Rust решать задачи и реализовывать веб-сервисы также просто, как и на других языках, а иногда даже проще. Улучшаем VSCode плагин https://kodikapusta.ru//articles/vscode-go Mon, 24 Nov 2025 12:00:00 +0000 /articles/vscode-go VSCode — отличный инструмент для разработки. Я пользуюсь им уже много лет, и он меня полностью устраивал для работы с Go. Расширение vscode-go просто замечательное: оно поддерживает всё необходимое — от сниппетов до отладки через Delve. Но оно кривовато. Первая игра на Ebitten https://kodikapusta.ru//articles/first-game-ebitten Fri, 24 Oct 2025 12:00:00 +0000 /articles/first-game-ebitten Желание писать игры подтолкнуло меня к программированию 20 лет назад. Я стал делать это своей профессией, хотя и создал несколько небольших игр с использованием различных технологических стеков. Но я решил продолжить заниматься программированием игр, и для меня это самый увлекательный вид программирования. Билдеры с помощью Podman и Go https://kodikapusta.ru//articles/builder-with-podman-go Mon, 14 Jul 2025 12:00:00 +0000 /articles/builder-with-podman-go Для моего пет-проекта потребовалось запускать сборку документации с помощью Hugo. Использовать бинарник показалось не самым удобным вариантом — хотелось большей универсальности. Здесь на помощь приходят контейнеры. Контейнеры можно применять как универсальные модули, расширяющие функциональность системы. Данные можно передать в контейнер через подключенные каталоги или файлы, а результат работы получить в других файлах. Именно поэтому контейнеры так популярны в пайплайнах сборки практически любого современного CI/CD. Медиация рекламы на Код и Капуста https://kodikapusta.ru//articles/mediation Thu, 03 Jul 2025 12:00:00 +0000 /articles/mediation Я продолжаю развивать свой небольшой проект рекламного сервиса ads.coffee. Сегодня я хочу добавить в сервис логику самой простой медиации из всех возможных — можно будет настраивать, какая часть трафика будет уходить на мои рекламные объявления, а какая — на Яндекс.Рекламу. Тлента https://kodikapusta.ru//articles/tlenta Thu, 26 Jun 2025 12:00:00 +0000 /articles/tlenta Попробую новый формат — реализация проекта за 3 часа. #3часаКода. Что-то вроде микро-хакатона на одну конкретную тему. Надеюсь, что у меня получится пощупать много самых разных технологий и инструментов. Буду рад, если вам такой формат тоже понравится и вы найдёте что-то новое для себя. Пример использования RSA https://kodikapusta.ru//articles/primer-ispolzovaniya-rsa Wed, 14 May 2025 12:00:00 +0000 /articles/primer-ispolzovaniya-rsa Как вы вероятно знаете, большинство самых используемых криптографических библиотек написано на С (или С++). Go весь пропитан духом C, он небольшой но весьма эффективный язык с удобной инфраструктурой и такими низкоуровневыми возможностями, как указатели. Кроме того, Go предоставляет широкий набор фичей для более высокоуровневого программирования. Меньше кода, быстрее компиляция, быстрое исполнение - это философия Go. Замыкания https://kodikapusta.ru//articles/zamykaniya Mon, 12 May 2025 12:00:00 +0000 /articles/zamykaniya Замыкания - это такие функции, которые вы можете создавать в рантайме и им будет доступно текущее окружение, в рамках которого они были созданы. Другими словами, функции, определенные как замыкания, "запоминают" окружение, в котором они были созданы. Свой балансировщик https://kodikapusta.ru//articles/load-balancer Sun, 11 May 2025 12:00:00 +0000 /articles/load-balancer Если вы делаете сервисы, которые должны справляться с большим объёмом трафика, то необходим механизм распределения этот трафик между серверами где запущены ваши сервисы. Для этого вам понадобиться балансировщик нагрузки. Конечно, сейчас множество балансировщиков нагрузки промышленного уровня (nginx как балансировщик, HAProxy и т. д.), но всегда полезно знать, как они устроены. Для практики напишем простой HTTP-балансировщик нагрузки на Go с использованием стандартной библиотеки. В этой реализации для равномерного распределения входящих запросов по серверам мы будем использовать round robin(алгоритм циклического перебора). Yandex Ads SDK для игр на Godot https://kodikapusta.ru//articles/godot-yandex-ads Wed, 07 May 2025 07:00:00 +0000 /articles/godot-yandex-ads Давно не было статей про плагины под Godot. В движке уже даже успели поменять подход к написанию плагинов, поэтому будем разбираться походу дела. По сути, плагин Godot для Android v2 — это библиотека для Android, которая зависит от библиотеки Godot для Android и пользовательского манифеста библиотеки Android. Первая игра на Godot https://kodikapusta.ru//articles/first-game-godot Wed, 07 May 2025 01:00:00 +0000 /articles/first-game-godot В этой статье напишем простую казуальную игру под Android и опубликуем ее в RuStore. Эта игра нужна как пример. Я напишу обертки дляRuStore SDK(подписки, пуши, отзывы), myTracker и myTarget. И в будущем постараюсь все их использовать в этой игре. Добавлю рекламу и подписки, попробую закупить трафик. Посмотрим, сколько можно заработать на игре в RuStore. Арены своими руками https://kodikapusta.ru//articles/arena-svoimi-rukami Tue, 06 May 2025 00:10:00 +0000 /articles/arena-svoimi-rukami Перевод статьи "Cheating the Reaper in Go". Автор рассказывает про кастомную реализацию арен (Golang memory arena) с ручным управлением памятью. Не думаю, что как Golang разработчик вы будете применять это в рабочих задачах, но это очень интересный эксперимент, который раскрывает некоторые нюансы работы GC. Читаемся и наслаждаемся этим не простым, но интересным Golang How To Пишем свой SMTP сервер на Go https://kodikapusta.ru//articles/smtp-server Tue, 29 Apr 2025 17:00:00 +0000 /articles/smtp-server Перевод статьи "Build Your Own SMTP Server in Go". В Valyent мы разрабатываем открытое программное обеспечение для разработчиков. Как часть этой миссии мы разработали Ferdinant - наш сервис рассылки почты для разработчиков(пока в альфе). Краткое руководство по реализации видео стриминга на Go https://kodikapusta.ru//articles/video-streaming Tue, 29 Apr 2025 12:00:00 +0000 /articles/video-streaming В 2004 году я впервые посмотрел видео в интернете. Это был клип, который я скачал через iTunes. Да, именно скачал — тогда всё было не так, как сейчас. С тех пор мы все привыкли к другому формату потребления видео: вместо загрузки теперь всё крутится через стриминг. Настройка неймспейсов для libSQL https://kodikapusta.ru//articles/libsql-server Tue, 29 Apr 2025 12:00:00 +0000 /articles/libsql-server В одной из прошлых статей я уже восхищался PocketBase — штука действительно классная. Но знаете, что делает её ещё круче? Если заменить стандартный SQLite на libSQL. Сегодня я хочу рассказать, как можно прокачать PocketBase до нового уровня. Для этого нам понадобится свой собственный сервер libSQL, причём с “шахматами и библиотекаршами” — то есть со всеми плюшками и удобствами. Прототипирование на Rust https://kodikapusta.ru//articles/prototyping Tue, 29 Apr 2025 12:00:00 +0000 /articles/prototyping Программирование — это такая штука, где постоянно приходится переделывать и улучшать код. Как бы нам ни хотелось сразу сделать всё идеально, такое почти никогда не получается. Демистификация OTP: логика офлайн генерации токенов https://kodikapusta.ru//articles/otp Tue, 29 Apr 2025 12:00:00 +0000 /articles/otp Привет! Как-то вечером, возвращаясь домой, я решил проверить почтовый ящик. Самый настоящий почтовый ящик, в который почтальон кладёт бумажные письма. И, к моему большому удивлению, я нашёл там конверт с чем-то внутри! Открывая его, я несколько мгновений надеялся, что это письмо из Хогвартса, которое не приходило десятилетиями. Туториал по дженерикам в Go https://kodikapusta.ru//articles/generics Thu, 23 Feb 2023 12:00:00 +0000 /articles/generics Go статически типизированный язык. Это значит, что типы переменных проверяются на этапе компиляции. Встроенные типы в Go, такие как мапы, слайсы каналы, а также встроенные функции, например len и make умеют работать с разными типами. Но до версии 1.18 пользовательские типы так не умели.