Forwarded from GitHub Open Sauce
Retro AIM Server
Соскучились по ICQ? Вот реализация AIM Server сервера с которым могут работать классические клиенты AIM и ICQ клиенты.
Вернуться в 2007 и получить 6ти знак
#golang
https://github.com/mk6i/retro-aim-server
Соскучились по ICQ? Вот реализация AIM Server сервера с которым могут работать классические клиенты AIM и ICQ клиенты.
Вернуться в 2007 и получить 6ти знак
#golang
https://github.com/mk6i/retro-aim-server
👍2🔥2❤1
Zip бомбы
Думаю, большинство читателей еще помнят про zip бомбы в почте - бесконечно распаковывающиеся архивы. Автор рассказывает как применять такой метод для обороны ваших серверов от парсинга AI агентами
Главное чтоб колени были целы
#kod #fun
https://kodikapusta.ru/news/j189-zip-bomby
Думаю, большинство читателей еще помнят про zip бомбы в почте - бесконечно распаковывающиеся архивы. Автор рассказывает как применять такой метод для обороны ваших серверов от парсинга AI агентами
Главное чтоб колени были целы
#kod #fun
https://kodikapusta.ru/news/j189-zip-bomby
🔥2😁1
DDD, CQRS, Clean Architecture
Использование DDD, CQRS и чистой архитектуры даже по отдельности могут принести много всего полезного, они лучше всего работают вместе. Как "Могучие рейнджеры". К сожалению, их нелегко использовать вместе в реальном проекте. В этой статье автор расскажет, как подключить DDD Lite, CQRS и Clean Architecture наиболее прагматичным и эффективным способом.
#golang
https://kodikapusta.ru/news/50rc-ddd-cqrs-clean-architecture
Использование DDD, CQRS и чистой архитектуры даже по отдельности могут принести много всего полезного, они лучше всего работают вместе. Как "Могучие рейнджеры". К сожалению, их нелегко использовать вместе в реальном проекте. В этой статье автор расскажет, как подключить DDD Lite, CQRS и Clean Architecture наиболее прагматичным и эффективным способом.
#golang
https://kodikapusta.ru/news/50rc-ddd-cqrs-clean-architecture
👍3
Ретро программирование
Небольшой плейлист с видосами по программированию игры на чистом Си. Чувак пишет игру под Agon Light - не самая распространенная система в наших краях, но все еще интересно
#gamedev #fun
https://kodikapusta.ru/news/94kv-retro-programmirovanie
Небольшой плейлист с видосами по программированию игры на чистом Си. Чувак пишет игру под Agon Light - не самая распространенная система в наших краях, но все еще интересно
#gamedev #fun
https://kodikapusta.ru/news/94kv-retro-programmirovanie
🔥2👍1
Браузер на SMS
Воу! Как насчет веб-браузера, который работает только на SMS? C TxtNet Browser
- вам не нужен мобильный интернет, только возможность получать SMS
SMS используется в качестве способа передачи HTTP-запросов на сервер, где предварительно обработанный HTML-ответ сжимается с помощью алгоритма Brotli от Google и кодируется в пользовательском формате Base-114 (основанном на Basest). Всё медиа-содержимое, JavaScript и CSS удаляются со страницы. Реализованы только HTTP GET-запросы.
Хочу такое под iOS
#kod #android #mobile
https://kodikapusta.ru/news/xs2i-brauzer-na-sms
Воу! Как насчет веб-браузера, который работает только на SMS? C TxtNet Browser
- вам не нужен мобильный интернет, только возможность получать SMS
SMS используется в качестве способа передачи HTTP-запросов на сервер, где предварительно обработанный HTML-ответ сжимается с помощью алгоритма Brotli от Google и кодируется в пользовательском формате Base-114 (основанном на Basest). Всё медиа-содержимое, JavaScript и CSS удаляются со страницы. Реализованы только HTTP GET-запросы.
Хочу такое под iOS
#kod #android #mobile
https://kodikapusta.ru/news/xs2i-brauzer-na-sms
🔥7
Как работает Flutter
Подборка видео по внутреннему устройству работы Flutter. Всего должно быть 6 видосов, сейчас уже вышло два ролика. В первом рассказывают про архитектуру, во втором про дерево виджетов
#flutter
https://kodikapusta.ru/news/9ce3-kak-rabotaet-flutter
Подборка видео по внутреннему устройству работы Flutter. Всего должно быть 6 видосов, сейчас уже вышло два ролика. В первом рассказывают про архитектуру, во втором про дерево виджетов
#flutter
https://kodikapusta.ru/news/9ce3-kak-rabotaet-flutter
🔥2
Обработка сигналов
Автор рассказывает как обрабатывать сигналы операционной системы. Основное внимание на SIGHUP, зачем он был нужен раньше и как стал использоваться для обновления конфигурации. Неплохо разобран механизм сигналов в целом
Демонология
#golang
https://kodikapusta.ru/news/r68q-obrabotka-signalov
Автор рассказывает как обрабатывать сигналы операционной системы. Основное внимание на SIGHUP, зачем он был нужен раньше и как стал использоваться для обновления конфигурации. Неплохо разобран механизм сигналов в целом
Демонология
#golang
https://kodikapusta.ru/news/r68q-obrabotka-signalov
👍4
Метроид на Godot
Курс на 6 часов по написанию своего метроида. Автор отлично рассказывает, приятно слушать. В этом небольшом курсе рассматривает даже тему с ауди и партиклами в игре
Кстати, не забывайте заглядывать на каналы в ВК видео - там я постоянно много всего интересного посчу
#godot #gamedev
https://kodikapusta.ru/news/5751-metroid-na-godot
Курс на 6 часов по написанию своего метроида. Автор отлично рассказывает, приятно слушать. В этом небольшом курсе рассматривает даже тему с ауди и партиклами в игре
Кстати, не забывайте заглядывать на каналы в ВК видео - там я постоянно много всего интересного посчу
#godot #gamedev
https://kodikapusta.ru/news/5751-metroid-na-godot
👍5🔥2❤1
Зеленый чай
Маркирующий сборщик в среднем 85% времени работы тратит на основной цикл обхода графа (scan loop), а более 35% процессорных циклов в этом loop'е уходит просто на ожидание доступа к памяти (без учёта косвенных эффектов). Ожидается, что эта проблема будет только усугубляться с ростом числа ядер и распространением неоднородных архитектур памяти.
Green Tea — алгоритм параллельной разметки, который, если и не является полностью ориентированным на память, то хотя бы учитывает её, стараясь обрабатывать близко расположенные объекты вместе.
Уже можно попробовать
#golang
https://kodikapusta.ru/news/vi6c-zelenyi-chai
Маркирующий сборщик в среднем 85% времени работы тратит на основной цикл обхода графа (scan loop), а более 35% процессорных циклов в этом loop'е уходит просто на ожидание доступа к памяти (без учёта косвенных эффектов). Ожидается, что эта проблема будет только усугубляться с ростом числа ядер и распространением неоднородных архитектур памяти.
Green Tea — алгоритм параллельной разметки, который, если и не является полностью ориентированным на память, то хотя бы учитывает её, стараясь обрабатывать близко расположенные объекты вместе.
Уже можно попробовать
#golang
https://kodikapusta.ru/news/vi6c-zelenyi-chai
🔥3
Void
Опенсорсная альтернатива для курсора. Редактор построен на базе VSCode(ну а как иначе) и поддерживает интеграцию с самыми разными агентами. Кмк, просто обвешанный плагинами вскод. Может кто юзал уже?
#ai #opensource #kod
https://kodikapusta.ru/news/478s-void
Опенсорсная альтернатива для курсора. Редактор построен на базе VSCode(ну а как иначе) и поддерживает интеграцию с самыми разными агентами. Кмк, просто обвешанный плагинами вскод. Может кто юзал уже?
#ai #opensource #kod
https://kodikapusta.ru/news/478s-void
👎2❤1
RSS ридер
Наконец нормальный RSS ридер. Селфхостед и еще и на Go написанный. Выглядит топ, работает отлично. Ставим, наслаждаемся, радуемся
#golang
https://kodikapusta.ru/news/3d41-rss-rider
Наконец нормальный RSS ридер. Селфхостед и еще и на Go написанный. Выглядит топ, работает отлично. Ставим, наслаждаемся, радуемся
#golang
https://kodikapusta.ru/news/3d41-rss-rider
🔥2❤1
Ассемблер на Go
Avo упрощает написание, проверку и поддержку высокопроизводительного ассемблерного кода в Go.
Пакет avo дает удобный интерфейс который ускоряет разработку ассемблерного кода без потери производительности:
- Используйте Go-конструкции для генерации ассемблера - программы avo это обычные Go-программы.
- Автоматическое распределение регистров - пишите функции с виртуальными регистрами, а avo назначит физические.
- Загрузка аргументов и сохранение результатов - корректные смещения в памяти даже для сложных структур.
- Генерация stub-файлов для интеграции с вашим Go-пакетом.
#golang #opensource
https://kodikapusta.ru/news/j9j5-assembler-na-go
Avo упрощает написание, проверку и поддержку высокопроизводительного ассемблерного кода в Go.
Пакет avo дает удобный интерфейс который ускоряет разработку ассемблерного кода без потери производительности:
- Используйте Go-конструкции для генерации ассемблера - программы avo это обычные Go-программы.
- Автоматическое распределение регистров - пишите функции с виртуальными регистрами, а avo назначит физические.
- Загрузка аргументов и сохранение результатов - корректные смещения в памяти даже для сложных структур.
- Генерация stub-файлов для интеграции с вашим Go-пакетом.
#golang #opensource
https://kodikapusta.ru/news/j9j5-assembler-na-go
❤1
sudo rust
В Ubuntu теперь по умолчанию используется sudo-rs - утилита, написанная на языке Rust.
Это решение является частью масштабной инициативы Canonical по повышению устойчивости и удобства сопровождения ключевых системных компонентов.
sudo-rs разрабатывается Фондом Trifecta Tech (TTF) — некоммерческой организацией, которая создаёт безопасные открытые строительные блоки для инфраструктурного программного обеспечения.
#rust
https://kodikapusta.ru/news/pubd-sudo-rust
В Ubuntu теперь по умолчанию используется sudo-rs - утилита, написанная на языке Rust.
Это решение является частью масштабной инициативы Canonical по повышению устойчивости и удобства сопровождения ключевых системных компонентов.
sudo-rs разрабатывается Фондом Trifecta Tech (TTF) — некоммерческой организацией, которая создаёт безопасные открытые строительные блоки для инфраструктурного программного обеспечения.
#rust
https://kodikapusta.ru/news/pubd-sudo-rust
👍4❤1😱1
Change Data Capture
Реализация паттерна Change Data Capture (CDC) на Go. Этот паттерн позволяет отслеживать изменения в базе данных в реальном времени, что критически важно для событийно-ориентированных систем (event-driven), аналитических пайплайнов или синхронизации микросервисов.
В этом руководстве мы разберём реализацию PostgreSQL CDC на Go с использованием: встроенной логической репликации PostgreSQL и драйвера pgx.
#golang
https://kodikapusta.ru/news/6ukx-change-data-capture
Реализация паттерна Change Data Capture (CDC) на Go. Этот паттерн позволяет отслеживать изменения в базе данных в реальном времени, что критически важно для событийно-ориентированных систем (event-driven), аналитических пайплайнов или синхронизации микросервисов.
В этом руководстве мы разберём реализацию PostgreSQL CDC на Go с использованием: встроенной логической репликации PostgreSQL и драйвера pgx.
#golang
https://kodikapusta.ru/news/6ukx-change-data-capture
👍5❤1
Быть креативным
Эпистемическая тревожность — это чувство беспокойства, напряжения и озабоченности, когда вы хотите узнать правду. Вы переживаете, что ваши знания неполные и/или ошибочны
Представьте, что вы сидите на совещании на работе. Обсуждается план, который ваша команда разработала в прошлом квартале, и анализируются результаты. Данные искажаются и подгоняются под ту версию реальности, которую хочет видеть команда. Вы сидите там и видите, что это фарс.
Отличный лонгрид про то, как оставаться креативным в современном мире
#learn #fun
https://kodikapusta.ru/news/yxq7-byt-kreativnym
Эпистемическая тревожность — это чувство беспокойства, напряжения и озабоченности, когда вы хотите узнать правду. Вы переживаете, что ваши знания неполные и/или ошибочны
Представьте, что вы сидите на совещании на работе. Обсуждается план, который ваша команда разработала в прошлом квартале, и анализируются результаты. Данные искажаются и подгоняются под ту версию реальности, которую хочет видеть команда. Вы сидите там и видите, что это фарс.
Отличный лонгрид про то, как оставаться креативным в современном мире
#learn #fun
https://kodikapusta.ru/news/yxq7-byt-kreativnym
❤1
roons
Это механический компьютер с потрясающим дизайном. Точнее, это даже набор для создания механических компьютеров, типа "настоящий Minecraft redstone".
Можно объединять логические элементы, состояния и другие миниатюрные компоненты, чтобы создавать свои собственные устройства — транзисторы, память, процессоры, программы и многое другое.
Яб купил
#learn #fun
https://kodikapusta.ru/news/b7uc-roons
Это механический компьютер с потрясающим дизайном. Точнее, это даже набор для создания механических компьютеров, типа "настоящий Minecraft redstone".
Можно объединять логические элементы, состояния и другие миниатюрные компоненты, чтобы создавать свои собственные устройства — транзисторы, память, процессоры, программы и многое другое.
Яб купил
#learn #fun
https://kodikapusta.ru/news/b7uc-roons
❤6🔥1
Singleflight
Малюсенькая статья про пакет и паттерн singleflight. Очень удобно когда вы из разных потоков запрашиваете данные по ключу, которые редко меняются
#golang #learn
https://kodikapusta.ru/news/djn7-singleflight
Малюсенькая статья про пакет и паттерн singleflight. Очень удобно когда вы из разных потоков запрашиваете данные по ключу, которые редко меняются
#golang #learn
https://kodikapusta.ru/news/djn7-singleflight
❤1
Graceful Shutdown
Корректное завершение работы в любом приложении, как правило, должно удовлетворять трём минимальным условиям:
- Закрытие точки входа. Остановка приёма новых запросов или сообщений из источников (HTTP, pub/sub систем и т.д.). При этом исходящие подключения к сторонним сервисам (БД, кэшам) остаются активными
- Ожидание завершения текущих запросов. Обработка всех выполняющихся операций, а если запрос выполняется слишком долго — возврат корректной ошибки
- Освобождение критических ресурсов: закрытие подключений к БД, снятие файловых блокировок, освобождение сетевых сокетов, выполнение финальных очищающих операций
#golang
https://kodikapusta.ru/news/8592-graceful-shutdown
Корректное завершение работы в любом приложении, как правило, должно удовлетворять трём минимальным условиям:
- Закрытие точки входа. Остановка приёма новых запросов или сообщений из источников (HTTP, pub/sub систем и т.д.). При этом исходящие подключения к сторонним сервисам (БД, кэшам) остаются активными
- Ожидание завершения текущих запросов. Обработка всех выполняющихся операций, а если запрос выполняется слишком долго — возврат корректной ошибки
- Освобождение критических ресурсов: закрытие подключений к БД, снятие файловых блокировок, освобождение сетевых сокетов, выполнение финальных очищающих операций
#golang
https://kodikapusta.ru/news/8592-graceful-shutdown
👍2❤1
Netflix реклама
Netflix рассказывает как они принимают и обрабатывают кучу рекламных событий
Система обработки рекламных событий Netflix, запущенная совместно с Microsoft в 2022 году, это целый набор сервисов: Microsoft Ad Server, Netflix Ads Manager и Ad Event Handler, для эффективного управления рекламными запросами.
Для масштабируемости и постоянного роста Netflix позже внедрила Ads Metadata Registry - централизованное хранилище метаданных рекламы. Это оптимизирует производительность за счёт ссылок на метаданные вместо встраивания трекинг-информации в клиентские токены.
Реклама повсюду
#adtech
https://kodikapusta.ru/news/z4bd-netflix-reklama
Netflix рассказывает как они принимают и обрабатывают кучу рекламных событий
Система обработки рекламных событий Netflix, запущенная совместно с Microsoft в 2022 году, это целый набор сервисов: Microsoft Ad Server, Netflix Ads Manager и Ad Event Handler, для эффективного управления рекламными запросами.
Для масштабируемости и постоянного роста Netflix позже внедрила Ads Metadata Registry - централизованное хранилище метаданных рекламы. Это оптимизирует производительность за счёт ссылок на метаданные вместо встраивания трекинг-информации в клиентские токены.
Реклама повсюду
#adtech
https://kodikapusta.ru/news/z4bd-netflix-reklama
❤1🔥1
Про Rust - просто
Автор делится накопленным опытом, чтобы помочь читателям быстро освоить ключевые концепции и избежать фрагментарного понимания, с которым часто сталкиваются при изучении разрозненных материалов по Rust.
Особое внимание уделяется методике обучения: автор предлагает четкий и структурированный подход, благодаря которому каждый этап становится интуитивно понятным. Читателей ждет увлекательное погружение в мир языка, где сложные задачи решаются элегантно, а результаты впечатляют своей точностью.
Если вы, как и я, уже несколько раз попытались подступиться к языку, то добро пожаловать в статью
#learn #rust
https://kodikapusta.ru/news/7r9e-pro-rust-prosto
Автор делится накопленным опытом, чтобы помочь читателям быстро освоить ключевые концепции и избежать фрагментарного понимания, с которым часто сталкиваются при изучении разрозненных материалов по Rust.
Особое внимание уделяется методике обучения: автор предлагает четкий и структурированный подход, благодаря которому каждый этап становится интуитивно понятным. Читателей ждет увлекательное погружение в мир языка, где сложные задачи решаются элегантно, а результаты впечатляют своей точностью.
Если вы, как и я, уже несколько раз попытались подступиться к языку, то добро пожаловать в статью
#learn #rust
https://kodikapusta.ru/news/7r9e-pro-rust-prosto
👍4❤1
sync.WaitGroup
WaitGroup - это очень удобный и на первый взгляд очень простой инструмент. Но есть несколько заковыристых моментов, которые могут стрельнуть в колено. Бездумное использование sync.WaitGroup без полного понимания его работы может легко привести к ошибкам - например, к взаимным блокировкам (deadlock) или некорректной отмене операций.
#golang
https://kodikapusta.ru/news/1565-sync-waitgroup
WaitGroup - это очень удобный и на первый взгляд очень простой инструмент. Но есть несколько заковыристых моментов, которые могут стрельнуть в колено. Бездумное использование sync.WaitGroup без полного понимания его работы может легко привести к ошибкам - например, к взаимным блокировкам (deadlock) или некорректной отмене операций.
#golang
https://kodikapusta.ru/news/1565-sync-waitgroup
❤1