<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" 
    xmlns:atom="http://www.w3.org/2005/Atom" 
    xmlns:yandex="http://news.yandex.ru"
    xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Код и Капуста</title>
    <link>https://kodikapusta.ru/</link>
    <description>Статьи "Код и Капуста" </description>
    <generator>Код и Капуста</generator>
    <language>ru-ru</language>
    <copyright>Ковардин Артем</copyright>

    <lastBuildDate>14.04.2026</lastBuildDate>
    <atom:link href="https://kodikapusta.ru/articles/rss" rel="self" type="application/rss+xml"/>
    
    
    
    <item>
      <title>Привет Ethernet</title>
      <link>https://kodikapusta.ru/articles/27-privet-ethernet</link>
      <pubDate>Tue, 14 Apr 2026 00:00:00 &#43;0300</pubDate>
      <guid>/articles/27-privet-ethernet</guid>
      <description>Если вы читаете эту статью, то есть очень большая вероятность, что прямо сейчас вы пользуетесь Ethernet соединением где-то между вашими устройствами и хостингом, на котором размещён этот блог. Семейство технологий Ethernet - это строительные блоки для современных компьютерных сетей.</description>

    </item>
    
    <item>
      <title>RAG в Go проекте</title>
      <link>https://kodikapusta.ru/articles/26-rag-v-go-proekte</link>
      <pubDate>Fri, 03 Apr 2026 00:00:00 &#43;0300</pubDate>
      <guid>/articles/26-rag-v-go-proekte</guid>
      <description>Одна из ключевых задач для компаний, работающих с искусственным интеллектом, - обеспечить эффективный доступ к внутренним знаниям. На первый взгляд всё просто: загрузи корпоративные документы в большую языковую модель (LLM) и дай ей генерировать ответы. Но на практике такие решения часто разочаровывают - страдают от нехватки точности, низкой скорости или высокой стоимости. В общем, желаемого качества добиться трудно.</description>

    </item>
    
    <item>
      <title>Про COBOL в баре</title>
      <link>https://kodikapusta.ru/articles/25-pro-cobol-v-bare</link>
      <pubDate>Wed, 25 Mar 2026 00:00:00 &#43;0300</pubDate>
      <guid>/articles/25-pro-cobol-v-bare</guid>
      <description>В конце концов, разговор в баре навеял воспоминания о проекте под названием &#34;COBOL на инвалидной коляске&#34;. Это джаст фор фан веб-фреймворк на COBOL. Сегодня мы создадим на этом фреймворке бэкенд, который будет генерировать JSON. Такой бэкенд вполне пригодится для любого мобильного приложения. Посмотрим, как технологии прошлого работают с технологиями современными.</description>

    </item>
    
    <item>
      <title>Пишем свой BitTorrent клиент на Go</title>
      <link>https://kodikapusta.ru/articles/24-pishem-svoi-bittorrent-klient-na-go</link>
      <pubDate>Wed, 25 Mar 2026 00:00:00 &#43;0300</pubDate>
      <guid>/articles/24-pishem-svoi-bittorrent-klient-na-go</guid>
      <description>В этом посте мы реализуем BitTorrent протокол на уровне, достаточном для скачивания образа Debian. Можете сразу посмотреть исходный код и пропустить все подробные объяснения. Можете начинать с исходного кода и потом переходить к подробным объяснениям</description>

    </item>
    
    <item>
      <title>VPN это просто</title>
      <link>https://kodikapusta.ru/articles/vpn-eto-prosto</link>
      <pubDate>Fri, 20 Mar 2026 00:00:00 &#43;0300</pubDate>
      <guid>/articles/vpn-eto-prosto</guid>
      <description>Сейчас очень много говорят о VPN, mesh-сетях и других технологиях для анонимизации или создания защищенных соединений. К сожалению, я довольно далек от этой темы, но иногда нужно окунаться в неизвестную область - хорошая разминка для мозгов</description>

    </item>
    
    <item>
      <title>GigaChat и OpenCode</title>
      <link>https://kodikapusta.ru/articles/21-gigachat-i-opencode</link>
      <pubDate>Mon, 16 Mar 2026 00:00:00 &#43;0300</pubDate>
      <guid>/articles/21-gigachat-i-opencode</guid>
      <description>Вырываемся в вайбкодинг. Я прям совсем не разбираюсь в этих ваших вайбкодингах. Хайп вокруг AI напоминает мне миллиард JS-фреймворков вместе с NFT. Надеюсь, что в ближайшее время все немного поуспокоится и появится несколько лидеров, которые будут задавать темп. Одним из таких лидеров, кажется, становится Claude.</description>

    </item>
    
    <item>
      <title>Unsafe</title>
      <link>https://kodikapusta.ru/articles/22-unsafe</link>
      <pubDate>Fri, 06 Mar 2026 00:00:00 &#43;0300</pubDate>
      <guid>/articles/22-unsafe</guid>
      <description>С помощью пакета unsafe можно делать множество интересных хаков без оглядки на систему типов Go. Он дает доступ к низкоуровневому АПИ почти как в C. Но использование unsafe - это легкий способ выстрелить себе в ногу, поэтому нужно соблюдать определенные правила. При написании такого кода очень легко совершить ошибку.</description>

    </item>
    
    <item>
      <title>Распределенная постгря</title>
      <link>https://kodikapusta.ru/articles/distributed-postgres</link>
      <pubDate>Thu, 05 Mar 2026 00:00:00 &#43;0300</pubDate>
      <guid>/articles/distributed-postgres</guid>
      <description>CockroachDB - это просто &#34;клей&#34; для разных интересных библиотек. Вооружившись таким упрощённым подходом, давайте попробуем сами создать прототип распределённой PostgreSQL. Мы используем всего четыре основные внешние библиотеки: для разбора SQL, для работы с сетевым протоколом Postgres, для реализации Raft и для хранения метаданных таблиц и самих строк.</description>

    </item>
    
    <item>
      <title>Анонимные животные</title>
      <link>https://kodikapusta.ru/articles/rust-anonimus-animals</link>
      <pubDate>Sun, 11 Jan 2026 15:00:00 &#43;0300</pubDate>
      <guid>/articles/rust-anonimus-animals</guid>
      <description>Знаете эти милые аватарки с животными в общих Google-документах? Они появляются у каждого, кто открывает файл по ссылке. Выбрать себе зверюшку заранее или как-то на неё повлиять нельзя - ваш аватар назначается случайно. Чтобы узнать, в кого вы &#34;превратились&#34;, придется спросить у кого-нибудь из тех, кто в документе вместе с вами. Хочу реализовать похожую механику на kodikapusta.ru</description>

    </item>
    
    <item>
      <title>Бекенд на Rust</title>
      <link>https://kodikapusta.ru/articles/rust-web-server</link>
      <pubDate>Sun, 21 Dec 2025 15:00:00 &#43;0300</pubDate>
      <guid>/articles/rust-web-server</guid>
      <description>Создать веб-сервер на Rust не сложно. С помощью фреймворка Axum можно написать веб-сервер без лишних хлопот. На Rust решать задачи и реализовывать веб-сервисы также просто, как и на других языках, а иногда даже проще.</description>

    </item>
    
    <item>
      <title>Улучшаем VSCode плагин</title>
      <link>https://kodikapusta.ru/articles/vscode-go</link>
      <pubDate>Mon, 24 Nov 2025 15:00:00 &#43;0300</pubDate>
      <guid>/articles/vscode-go</guid>
      <description>VSCode — отличный инструмент для разработки. Я пользуюсь им уже много лет, и он меня полностью устраивал для работы с Go. Расширение vscode-go просто замечательное: оно поддерживает всё необходимое — от сниппетов до отладки через Delve. Но оно кривовато.</description>

    </item>
    
    <item>
      <title>Первая игра на Ebitten</title>
      <link>https://kodikapusta.ru/articles/first-game-ebitten</link>
      <pubDate>Fri, 24 Oct 2025 15:00:00 &#43;0300</pubDate>
      <guid>/articles/first-game-ebitten</guid>
      <description>Желание писать игры подтолкнуло меня к программированию 20 лет назад. Я стал делать это своей профессией, хотя и создал несколько небольших игр с использованием различных технологических стеков. Но я решил продолжить заниматься программированием игр, и для меня это самый увлекательный вид программирования.</description>

    </item>
    
    <item>
      <title>Билдеры с помощью Podman и Go</title>
      <link>https://kodikapusta.ru/articles/builder-with-podman-go</link>
      <pubDate>Mon, 14 Jul 2025 15:00:00 &#43;0300</pubDate>
      <guid>/articles/builder-with-podman-go</guid>
      <description>Для моего пет-проекта потребовалось запускать сборку документации с помощью Hugo. Использовать бинарник показалось не самым удобным вариантом — хотелось большей универсальности. Здесь на помощь приходят контейнеры. 

Контейнеры можно применять как универсальные модули, расширяющие функциональность системы. Данные можно передать в контейнер через подключенные каталоги или файлы, а результат работы получить в других файлах. Именно поэтому контейнеры так популярны в пайплайнах сборки практически любого современного CI/CD.</description>

    </item>
    
    <item>
      <title>Медиация рекламы на Код и Капуста</title>
      <link>https://kodikapusta.ru/articles/mediation</link>
      <pubDate>Thu, 03 Jul 2025 15:00:00 &#43;0300</pubDate>
      <guid>/articles/mediation</guid>
      <description>Я продолжаю развивать свой небольшой проект рекламного сервиса ads.coffee. Сегодня я хочу добавить в сервис логику самой простой медиации из всех возможных — можно будет настраивать, какая часть трафика будет уходить на мои рекламные объявления, а какая — на Яндекс.Рекламу.  </description>

    </item>
    
    <item>
      <title>Тлента</title>
      <link>https://kodikapusta.ru/articles/tlenta</link>
      <pubDate>Thu, 26 Jun 2025 15:00:00 &#43;0300</pubDate>
      <guid>/articles/tlenta</guid>
      <description>Попробую новый формат — реализация проекта за 3 часа. #3часаКода. Что-то вроде микро-хакатона на одну конкретную тему. Надеюсь, что у меня получится пощупать много самых разных технологий и инструментов. Буду рад, если вам такой формат тоже понравится и вы найдёте что-то новое для себя.</description>

    </item>
    
    <item>
      <title>Пример использования RSA</title>
      <link>https://kodikapusta.ru/articles/primer-ispolzovaniya-rsa</link>
      <pubDate>Wed, 14 May 2025 15:00:00 &#43;0300</pubDate>
      <guid>/articles/primer-ispolzovaniya-rsa</guid>
      <description>Как вы вероятно знаете, большинство самых используемых криптографических библиотек написано на С (или С&#43;&#43;). Go весь пропитан духом C, он небольшой но весьма эффективный язык с удобной инфраструктурой и такими низкоуровневыми возможностями, как указатели. Кроме того, Go предоставляет широкий набор фичей для более высокоуровневого программирования. Меньше кода, быстрее компиляция, быстрое исполнение - это философия Go.</description>

    </item>
    
    <item>
      <title>Замыкания</title>
      <link>https://kodikapusta.ru/articles/zamykaniya</link>
      <pubDate>Mon, 12 May 2025 15:00:00 &#43;0300</pubDate>
      <guid>/articles/zamykaniya</guid>
      <description>Замыкания - это такие функции, которые вы можете создавать в рантайме и им будет доступно текущее окружение, в рамках которого они были созданы. Другими словами, функции, определенные как замыкания, &#34;запоминают&#34; окружение, в котором они были созданы.</description>

    </item>
    
    <item>
      <title>Свой балансировщик</title>
      <link>https://kodikapusta.ru/articles/load-balancer</link>
      <pubDate>Sun, 11 May 2025 15:00:00 &#43;0300</pubDate>
      <guid>/articles/load-balancer</guid>
      <description>Если вы делаете сервисы, которые должны справляться с большим объёмом трафика, то необходим механизм распределения этот трафик между серверами где запущены ваши сервисы. Для этого вам понадобиться балансировщик нагрузки. Конечно, сейчас множество балансировщиков нагрузки промышленного уровня (nginx как балансировщик, HAProxy и т. д.), но всегда полезно знать, как они устроены.

Для практики напишем простой HTTP-балансировщик нагрузки на Go с использованием стандартной библиотеки. В этой реализации для равномерного распределения входящих запросов по серверам мы будем использовать round robin(алгоритм циклического перебора).</description>

    </item>
    
    <item>
      <title>Yandex Ads SDK для игр на Godot</title>
      <link>https://kodikapusta.ru/articles/godot-yandex-ads</link>
      <pubDate>Wed, 07 May 2025 10:00:00 &#43;0300</pubDate>
      <guid>/articles/godot-yandex-ads</guid>
      <description>Давно не было статей про плагины под Godot. В движке уже даже успели поменять подход к написанию плагинов, поэтому будем разбираться походу дела. По сути, плагин Godot для Android v2 — это библиотека для Android, которая зависит от библиотеки Godot для Android и пользовательского манифеста библиотеки Android.</description>

    </item>
    
    <item>
      <title>Первая игра на Godot</title>
      <link>https://kodikapusta.ru/articles/first-game-godot</link>
      <pubDate>Wed, 07 May 2025 04:00:00 &#43;0300</pubDate>
      <guid>/articles/first-game-godot</guid>
      <description>В этой статье напишем простую казуальную игру под Android и опубликуем ее в RuStore. Эта игра нужна как пример. Я напишу обертки дляRuStore SDK(подписки, пуши, отзывы), myTracker и myTarget. И в будущем постараюсь все их использовать в этой игре. Добавлю рекламу и подписки, попробую закупить трафик. Посмотрим, сколько можно заработать на игре в RuStore.</description>

    </item>
    
    <item>
      <title>Арены своими руками</title>
      <link>https://kodikapusta.ru/articles/arena-svoimi-rukami</link>
      <pubDate>Tue, 06 May 2025 03:10:00 &#43;0300</pubDate>
      <guid>/articles/arena-svoimi-rukami</guid>
      <description>Перевод статьи &#34;Cheating the Reaper in Go&#34;. Автор рассказывает про кастомную реализацию арен (Golang memory arena) с ручным управлением памятью. Не думаю, что как Golang разработчик вы будете применять это в рабочих задачах, но это очень интересный эксперимент, который раскрывает некоторые нюансы работы GC. Читаемся и наслаждаемся этим не простым, но интересным Golang How To</description>

    </item>
    
    <item>
      <title>Пишем свой SMTP сервер на Go</title>
      <link>https://kodikapusta.ru/articles/smtp-server</link>
      <pubDate>Tue, 29 Apr 2025 20:00:00 &#43;0300</pubDate>
      <guid>/articles/smtp-server</guid>
      <description>Перевод статьи &#34;Build Your Own SMTP Server in Go&#34;. В Valyent мы разрабатываем открытое программное обеспечение для разработчиков. Как часть этой миссии мы разработали Ferdinant - наш сервис рассылки почты для разработчиков(пока в альфе).</description>

    </item>
    
    <item>
      <title>Настройка неймспейсов для libSQL</title>
      <link>https://kodikapusta.ru/articles/libsql-server</link>
      <pubDate>Tue, 29 Apr 2025 15:00:00 &#43;0300</pubDate>
      <guid>/articles/libsql-server</guid>
      <description>В одной из прошлых статей я уже восхищался PocketBase — штука действительно классная. Но знаете, что делает её ещё круче? Если заменить стандартный SQLite на libSQL. Сегодня я хочу рассказать, как можно прокачать PocketBase до нового уровня. Для этого нам понадобится свой собственный сервер libSQL, причём с “шахматами и библиотекаршами” — то есть со всеми плюшками и удобствами. </description>

    </item>
    
    <item>
      <title>Краткое руководство по реализации видео стриминга на Go</title>
      <link>https://kodikapusta.ru/articles/video-streaming</link>
      <pubDate>Tue, 29 Apr 2025 15:00:00 &#43;0300</pubDate>
      <guid>/articles/video-streaming</guid>
      <description>В 2004 году я впервые посмотрел видео в интернете. Это был клип, который я скачал через iTunes. Да, именно скачал — тогда всё было не так, как сейчас. С тех пор мы все привыкли к другому формату потребления видео: вместо загрузки теперь всё крутится через стриминг.</description>

    </item>
    
    <item>
      <title>Демистификация OTP: логика офлайн генерации токенов</title>
      <link>https://kodikapusta.ru/articles/otp</link>
      <pubDate>Tue, 29 Apr 2025 15:00:00 &#43;0300</pubDate>
      <guid>/articles/otp</guid>
      <description>Привет! Как-то вечером, возвращаясь домой, я решил проверить почтовый ящик. Самый настоящий почтовый ящик, в который почтальон кладёт бумажные письма. И, к моему большому удивлению, я нашёл там конверт с чем-то внутри! Открывая его, я несколько мгновений надеялся, что это письмо из Хогвартса, которое не приходило десятилетиями.</description>

    </item>
    
    <item>
      <title>Прототипирование на Rust</title>
      <link>https://kodikapusta.ru/articles/prototyping</link>
      <pubDate>Tue, 29 Apr 2025 15:00:00 &#43;0300</pubDate>
      <guid>/articles/prototyping</guid>
      <description>Программирование — это такая штука, где постоянно приходится переделывать и улучшать код. Как бы нам ни хотелось сразу сделать всё идеально, такое почти никогда не получается.</description>

    </item>
    
    <item>
      <title>Туториал по дженерикам в Go</title>
      <link>https://kodikapusta.ru/articles/generics</link>
      <pubDate>Thu, 23 Feb 2023 15:00:00 &#43;0300</pubDate>
      <guid>/articles/generics</guid>
      <description>Go статически типизированный язык. Это значит, что типы переменных проверяются на этапе компиляции. Встроенные типы в Go, такие как мапы, слайсы каналы, а также встроенные функции, например len и make умеют работать с разными типами. Но до версии 1.18 пользовательские типы так не умели.</description>

    </item>
    
  </channel>
</rss>