Bevy и сеть
#rust #gamedev
Цикл статей по разработке игр на Rust и Bevy все еще продолжается. Я уже писал про этот цикл статей, но ребята продолжают выпускать годноту. Правада, несколько статей платные, но остальное тоже хороши
В этот раз интересная статья про работу с сетью в играх на Rust. И еще про использование SpacetimeDB - базы, про которую я уже как-то писал. Эта база отлично пододит для игр и не только
Учим Rust через написание игр
https://kodikapusta.ru/news/996-bevy-i-set
Поддержать проект на boosty: https://boosty.to/kodikapusta
#rust #gamedev
Цикл статей по разработке игр на Rust и Bevy все еще продолжается. Я уже писал про этот цикл статей, но ребята продолжают выпускать годноту. Правада, несколько статей платные, но остальное тоже хороши
В этот раз интересная статья про работу с сетью в играх на Rust. И еще про использование SpacetimeDB - базы, про которую я уже как-то писал. Эта база отлично пододит для игр и не только
Учим Rust через написание игр
https://kodikapusta.ru/news/996-bevy-i-set
Поддержать проект на boosty: https://boosty.to/kodikapusta
🔥3❤1😢1
Заработок на опенсорсе
#fun
Мечта любого разработчика - писать код без в опенсорс в свое удовольствие и полуать за это деньги.
Кажется, у автора статьи это почти получилось. Разработчик утилиты mise рассказывается сколько он зарабатывает на опенсорсе и сколько он хотел бы зарабатывать
Кстати, реклама в документации приносит ему 100 баксов в месяц
https://kodikapusta.ru/news/1003-zarabotok-na-opensorse
Поддержать проект на boosty: https://boosty.to/kodikapusta
#fun
Мечта любого разработчика - писать код без в опенсорс в свое удовольствие и полуать за это деньги.
Кажется, у автора статьи это почти получилось. Разработчик утилиты mise рассказывается сколько он зарабатывает на опенсорсе и сколько он хотел бы зарабатывать
Кстати, реклама в документации приносит ему 100 баксов в месяц
https://kodikapusta.ru/news/1003-zarabotok-na-opensorse
Поддержать проект на boosty: https://boosty.to/kodikapusta
❤2
Швейцарский стол
#golang
"Швейцарская таблица" - это продвинутый движок для хэш-таблиц, который сейчас используется в новых версиях Go. Идея в том, чтобы отойти от примитивного линейного поиска, когда при коллизии мы просто тыкаемся в следующую ячейку, и использовать хитрую последовательность шагов, которая не дает образовываться "пробкам" из занятых слотов.
Но все соль в группровке. Вместо одного ключа в ячейке мы храним сразу по 8 штук, и для каждой группы добавляем специальные контрольные байты (младшие 7 битов хэша). Это позволяет за одну операцию сравнивать с хэшем все восемь элементов через битовые трюки с uint64, а это очень быстро.
На практике хоть обычный подход и шустрее на малых объемах, swiss table раскрывается при высокой заполненности: если забить ее под завязку, она тормозит в разы меньше обычной
https://kodikapusta.ru/news/991-shveitsarskii-stol
Поддержать проект на boosty: https://boosty.to/kodikapusta
#golang
"Швейцарская таблица" - это продвинутый движок для хэш-таблиц, который сейчас используется в новых версиях Go. Идея в том, чтобы отойти от примитивного линейного поиска, когда при коллизии мы просто тыкаемся в следующую ячейку, и использовать хитрую последовательность шагов, которая не дает образовываться "пробкам" из занятых слотов.
Но все соль в группровке. Вместо одного ключа в ячейке мы храним сразу по 8 штук, и для каждой группы добавляем специальные контрольные байты (младшие 7 битов хэша). Это позволяет за одну операцию сравнивать с хэшем все восемь элементов через битовые трюки с uint64, а это очень быстро.
На практике хоть обычный подход и шустрее на малых объемах, swiss table раскрывается при высокой заполненности: если забить ее под завязку, она тормозит в разы меньше обычной
https://kodikapusta.ru/news/991-shveitsarskii-stol
Поддержать проект на boosty: https://boosty.to/kodikapusta
🔥2
Парсим JSON на Rust
#rust
Автор решил запилить парсер JSON на Rust с нуля, чтобы на практике прочувствовать структуры, енумы и сопоставление с образцом.
Начал с теории: struct для группировки данных, enum для вариантов вроде объекта, массива или строки, а match - чтобы все это красиво разбирать. Потом написал токенизатор, который жрет строку символов и выдаёт токены: фигурные скобки, двоеточия, строки с эскейп-последовательностями, числа и ключевые слова. А дальше - парсер, который рекурсивно обходит эти токены и собирает их в тип JsonValue - енум с вариантами Object, Array, Str, Number, Bool и Null.
В итоге простой четырехсотстрочный код, который нормально переваривает вложенные структуры и даже юникодные эскейпы. В следующей серии напишем парсер TOML и разберемся с Result вместо всяких паник
Автора вообще много прикольных статей
https://kodikapusta.ru/news/997-parsim-json-na-rust
Поддержать проект на boosty: https://boosty.to/kodikapusta
#rust
Автор решил запилить парсер JSON на Rust с нуля, чтобы на практике прочувствовать структуры, енумы и сопоставление с образцом.
Начал с теории: struct для группировки данных, enum для вариантов вроде объекта, массива или строки, а match - чтобы все это красиво разбирать. Потом написал токенизатор, который жрет строку символов и выдаёт токены: фигурные скобки, двоеточия, строки с эскейп-последовательностями, числа и ключевые слова. А дальше - парсер, который рекурсивно обходит эти токены и собирает их в тип JsonValue - енум с вариантами Object, Array, Str, Number, Bool и Null.
В итоге простой четырехсотстрочный код, который нормально переваривает вложенные структуры и даже юникодные эскейпы. В следующей серии напишем парсер TOML и разберемся с Result вместо всяких паник
Автора вообще много прикольных статей
https://kodikapusta.ru/news/997-parsim-json-na-rust
Поддержать проект на boosty: https://boosty.to/kodikapusta
👍1
Game Boy на F#
#fun
Я удивлен, что F# все еще живи на нем даже пишут прикольные штуки.
Вот, например, автор запилил эмулятор Game Boy. Это как писать стихи на латыни
Мне, кстати, понравился синтаксис и сам код
https://kodikapusta.ru/news/1004-game-boy-na-f
Поддержать проект на boosty: https://boosty.to/kodikapusta
#fun
Я удивлен, что F# все еще живи на нем даже пишут прикольные штуки.
Вот, например, автор запилил эмулятор Game Boy. Это как писать стихи на латыни
Мне, кстати, понравился синтаксис и сам код
https://kodikapusta.ru/news/1004-game-boy-na-f
Поддержать проект на boosty: https://boosty.to/kodikapusta
🔥1
Домашний HAL
#golang #ai
Автор считает, что пора собирать себе домашнего HAL’а на новых локальных моделях вроде Gemma4 или Qwen 3.6. Сейчас даже на обычной видеокарте можно запустить нормального мультимодального ассистента, который и жестикулирует, и лицо распознает, и умный дом крутит, и болтает без всяких облачных подписок - жрет только твое электричество.
Автор использует современные локальные модели, связку speech-to-text (Whisper/Moonshine) и text-to-speech (Kokoro), систему жестов и мимики, управляемую через вызовы инструментов LLM. Проект интегрируется с Home Assistant, поиском SearXNG, векторной базой Qdrant для памяти и распознаванием лиц.
В итоге автор запилил болванчика с анимацией, локальной википедией, поиском и автономными задачами. И он реально работает, правда, пока хватает контекста
https://kodikapusta.ru/news/992-domashnii-hal
Поддержать проект на boosty: https://boosty.to/kodikapusta
#golang #ai
Автор считает, что пора собирать себе домашнего HAL’а на новых локальных моделях вроде Gemma4 или Qwen 3.6. Сейчас даже на обычной видеокарте можно запустить нормального мультимодального ассистента, который и жестикулирует, и лицо распознает, и умный дом крутит, и болтает без всяких облачных подписок - жрет только твое электричество.
Автор использует современные локальные модели, связку speech-to-text (Whisper/Moonshine) и text-to-speech (Kokoro), систему жестов и мимики, управляемую через вызовы инструментов LLM. Проект интегрируется с Home Assistant, поиском SearXNG, векторной базой Qdrant для памяти и распознаванием лиц.
В итоге автор запилил болванчика с анимацией, локальной википедией, поиском и автономными задачами. И он реально работает, правда, пока хватает контекста
https://kodikapusta.ru/news/992-domashnii-hal
Поддержать проект на boosty: https://boosty.to/kodikapusta
🎉1
Свой Redis на Rust
#rust
Это практическое руководство по созданию KV базы данных, похожей на Redis, с параллельным освоением языка Rust.
Книга построена на основе задания CodeCrafters под названием Build Your Own Redis. Вы начнете с изучения работы с TCP и настройки сервера, постепенно перейдете к более сложным задачам: обработке нескольких подключений клиентов и реализации основных команд Redis.
Сейчас в книге описаны базовые темы плюс два расширенных раздела: "Репликация" и "Транзакции"
Для обучения самое то
https://kodikapusta.ru/news/998-svoi-redis-na-rust
Поддержать проект на boosty: https://boosty.to/kodikapusta
#rust
Это практическое руководство по созданию KV базы данных, похожей на Redis, с параллельным освоением языка Rust.
Книга построена на основе задания CodeCrafters под названием Build Your Own Redis. Вы начнете с изучения работы с TCP и настройки сервера, постепенно перейдете к более сложным задачам: обработке нескольких подключений клиентов и реализации основных команд Redis.
Сейчас в книге описаны базовые темы плюс два расширенных раздела: "Репликация" и "Транзакции"
Для обучения самое то
https://kodikapusta.ru/news/998-svoi-redis-na-rust
Поддержать проект на boosty: https://boosty.to/kodikapusta
🔥3
Сделали идеально ненужное
#fun
Автор делится наблюдением, как излишние размышления и поиск "лучших решений" могут саботировать проекты.
На примере полки, сделанной за выходные с другом, он показывает пользу четких критериев успеха и немедленного действия. В противоположность этому, проекты вроде создания языка программирования или инструмента для диффов кода увязают в часах исследований, анализе аналогов и расширении первоначальной задачи.
Главный вывод: лучше сделать что-то "очевидно плохое", но получить опыт и радость творчества, чем бесконечно обдумывать идеальный результат. Автор призывает вернуться к подходу "просто сделать", игнорировать лишние функции (даже если их подсказывает ИИ) и помнить, что рост скорости разработки часто компенсируется ростом ненужных усложнений
https://kodikapusta.ru/news/1005-sdelali-ideal-no-nenuzhnoe
Поддержать проект на boosty: https://boosty.to/kodikapusta
#fun
Автор делится наблюдением, как излишние размышления и поиск "лучших решений" могут саботировать проекты.
На примере полки, сделанной за выходные с другом, он показывает пользу четких критериев успеха и немедленного действия. В противоположность этому, проекты вроде создания языка программирования или инструмента для диффов кода увязают в часах исследований, анализе аналогов и расширении первоначальной задачи.
Главный вывод: лучше сделать что-то "очевидно плохое", но получить опыт и радость творчества, чем бесконечно обдумывать идеальный результат. Автор призывает вернуться к подходу "просто сделать", игнорировать лишние функции (даже если их подсказывает ИИ) и помнить, что рост скорости разработки часто компенсируется ростом ненужных усложнений
https://kodikapusta.ru/news/1005-sdelali-ideal-no-nenuzhnoe
Поддержать проект на boosty: https://boosty.to/kodikapusta
👍3
FastCGI все еще достоин
#golang
FastCGI - протокол, которому уже 30 лет, но он по-прежнему может показать свою силу
Автор предлагает использовать FastCGI для реверс прокси вместо HTTP. И в этом действительно есть смысл. Две основные причины - безопастность и неопределенность в передаче некторых данных запроса, например реального IP клиента
Самая серьезная проблема заключается в том, что HTTP-сообщения не имеют четкой структуры: само сообщение описывает, где оно заканчивается, и для этого существует множество способов, каждый из которых имеет свои особенности. Реализации могут по-разному определять, где заканчивается одно сообщение и начинается следующее. Это основа для атак с десинхронизацией HTTP, также известных как «подмена запросов», когда обратный прокси-сервер и бэкенд по-разному определяют границы между HTTP-сообщениями, что приводит к всевозможным кошмарным проблемам с безопасностью, таким как уязвимость в Discord
Есть олды котоые помнять что такое FastCGI?
https://kodikapusta.ru/news/993-fastcgi-vse-eshche-dostoin
Поддержать проект на boosty: https://boosty.to/kodikapusta
#golang
FastCGI - протокол, которому уже 30 лет, но он по-прежнему может показать свою силу
Автор предлагает использовать FastCGI для реверс прокси вместо HTTP. И в этом действительно есть смысл. Две основные причины - безопастность и неопределенность в передаче некторых данных запроса, например реального IP клиента
Самая серьезная проблема заключается в том, что HTTP-сообщения не имеют четкой структуры: само сообщение описывает, где оно заканчивается, и для этого существует множество способов, каждый из которых имеет свои особенности. Реализации могут по-разному определять, где заканчивается одно сообщение и начинается следующее. Это основа для атак с десинхронизацией HTTP, также известных как «подмена запросов», когда обратный прокси-сервер и бэкенд по-разному определяют границы между HTTP-сообщениями, что приводит к всевозможным кошмарным проблемам с безопасностью, таким как уязвимость в Discord
Есть олды котоые помнять что такое FastCGI?
https://kodikapusta.ru/news/993-fastcgi-vse-eshche-dostoin
Поддержать проект на boosty: https://boosty.to/kodikapusta
❤1
device-envoy-esp
#rust
ESP32 шагают по планете и отдирабт популярность у Arduino
device-envoy-esp - это экспериментальная Rust-библиотека, кторая делает программирование микроконтроллеров ESP32 значительно более увлекательным за счет использования асинхронного фреймворка Embassy и абстракций устройств, которые инкапсулируют владение аппаратными ресурсами и фоновую координацию в удобные, переиспользуемые компоненты с высокоуровневым(сравнительно) API
Мигаем диодами на Rust
https://kodikapusta.ru/news/999-device-envoy-esp
Поддержать проект на boosty: https://boosty.to/kodikapusta
#rust
ESP32 шагают по планете и отдирабт популярность у Arduino
device-envoy-esp - это экспериментальная Rust-библиотека, кторая делает программирование микроконтроллеров ESP32 значительно более увлекательным за счет использования асинхронного фреймворка Embassy и абстракций устройств, которые инкапсулируют владение аппаратными ресурсами и фоновую координацию в удобные, переиспользуемые компоненты с высокоуровневым(сравнительно) API
Мигаем диодами на Rust
https://kodikapusta.ru/news/999-device-envoy-esp
Поддержать проект на boosty: https://boosty.to/kodikapusta
❤2🔥2
Музыка лиспа
#music
Автор разработал расширение для музыкального редактора Renoise, позволяющее прямо внутри него писать и исполнять живую музыку на языке Fennel - диалекте Lisp, компилируемом в Lua.
Автор доработал существующую на Rust библиотеку для алгоритмической генерации музыки, добавив поддержку Fennel: скрипты компилируются через отдельную VM в Lua-код и выполняются в песочнице, а для удобства создан инструмент с автоперезагрузкой файлов и автодополнением в редакторе. Это делает программирование музыки гибким, экспрессивным и идеально подходит для лайвкодинга.
Как Overtone, только современней
https://kodikapusta.ru/news/1006-muzyka-lispa
Поддержать проект на boosty: https://boosty.to/kodikapusta
#music
Автор разработал расширение для музыкального редактора Renoise, позволяющее прямо внутри него писать и исполнять живую музыку на языке Fennel - диалекте Lisp, компилируемом в Lua.
Автор доработал существующую на Rust библиотеку для алгоритмической генерации музыки, добавив поддержку Fennel: скрипты компилируются через отдельную VM в Lua-код и выполняются в песочнице, а для удобства создан инструмент с автоперезагрузкой файлов и автодополнением в редакторе. Это делает программирование музыки гибким, экспрессивным и идеально подходит для лайвкодинга.
Как Overtone, только современней
https://kodikapusta.ru/news/1006-muzyka-lispa
Поддержать проект на boosty: https://boosty.to/kodikapusta
❤2
Свой маленький TCP
#golang
Есть чуваки - Pilot. Они пилять различные сетевые решения для агентов
Они на Go с нуля забабахали свой транспорт для обхода NAT поверх UDP, очень похожий на TCP. Cо скользящими окнами, контролем перегрузок и повторными таймаутами. Обошлись вообще без сторонних библиотек и даже без CGO, использовав стандартную библиотеку. Пришлось добавить немного хитрых приемчиков. Например, вместо кучи таймеров на каждый пакет - один тикер на все соединение, а блокировки сделали настолько незаметными, что сокет не тормозит под нагрузкой
В итоге засунули все это в стандартный net.Conn интерейес и теперь AI-агенты могут обходить через NAT и шифровать трафик
Исходники доступны, можете мутитить свои мешсети с агентами
https://kodikapusta.ru/news/994-svoi-malen-kii-tcp
Поддержать проект на boosty: https://boosty.to/kodikapusta
#golang
Есть чуваки - Pilot. Они пилять различные сетевые решения для агентов
Они на Go с нуля забабахали свой транспорт для обхода NAT поверх UDP, очень похожий на TCP. Cо скользящими окнами, контролем перегрузок и повторными таймаутами. Обошлись вообще без сторонних библиотек и даже без CGO, использовав стандартную библиотеку. Пришлось добавить немного хитрых приемчиков. Например, вместо кучи таймеров на каждый пакет - один тикер на все соединение, а блокировки сделали настолько незаметными, что сокет не тормозит под нагрузкой
В итоге засунули все это в стандартный net.Conn интерейес и теперь AI-агенты могут обходить через NAT и шифровать трафик
Исходники доступны, можете мутитить свои мешсети с агентами
https://kodikapusta.ru/news/994-svoi-malen-kii-tcp
Поддержать проект на boosty: https://boosty.to/kodikapusta
👍3😱1
Zig для хаскелистов
#zig #haskell
На картинке - как я сувствую себя, когда читаю такие статьи
Zig привлекает внимание функциональных программистов благодаря своей мощной системе comptime.
Автор, имеющий за плечами более 10 лет опыта в Haskell, выделяет три ключевых критерия: выразительность языка, возможность создавать корректные системы через программирование типов и отсутствие сюрпризов в поведении.
Zig предлагает элегантные аналоги функциональных абстракций. Монады Reader через явную передачу аллокаторов и IO, newtype через структуры-одиночки, sum-типы через объединения с тегами. И даже typeclass'ы через генерацию словарей на comptime.
При этом Zig избегает сборщика мусора, поощряя ручное управление памятью через арены и аллокаторы, что позволяет эффективно использовать современные машины. Автор считает, что индустрия переоценила сборку мусора - она создала поколение разработчиков, не понимающих работу вычислительных машин, и привела к раздутому, медленному ПО
https://kodikapusta.ru/news/1001-zig-dlia-khaskelistov
Поддержать проект на boosty: https://boosty.to/kodikapusta
#zig #haskell
На картинке - как я сувствую себя, когда читаю такие статьи
Zig привлекает внимание функциональных программистов благодаря своей мощной системе comptime.
Автор, имеющий за плечами более 10 лет опыта в Haskell, выделяет три ключевых критерия: выразительность языка, возможность создавать корректные системы через программирование типов и отсутствие сюрпризов в поведении.
Zig предлагает элегантные аналоги функциональных абстракций. Монады Reader через явную передачу аллокаторов и IO, newtype через структуры-одиночки, sum-типы через объединения с тегами. И даже typeclass'ы через генерацию словарей на comptime.
При этом Zig избегает сборщика мусора, поощряя ручное управление памятью через арены и аллокаторы, что позволяет эффективно использовать современные машины. Автор считает, что индустрия переоценила сборку мусора - она создала поколение разработчиков, не понимающих работу вычислительных машин, и привела к раздутому, медленному ПО
https://kodikapusta.ru/news/1001-zig-dlia-khaskelistov
Поддержать проект на boosty: https://boosty.to/kodikapusta
👍1
Rust India 2026
#rust
На эти долгие выходные у меня для вас есть отличная подборочка видео - Rust India Conference 2026
Веб серва и веб апапа вам обеспечены
https://kodikapusta.ru/news/1002-rust-india-2026
Поддержать проект на boosty и читать в MAX
#rust
На эти долгие выходные у меня для вас есть отличная подборочка видео - Rust India Conference 2026
Веб серва и веб апапа вам обеспечены
https://kodikapusta.ru/news/1002-rust-india-2026
Поддержать проект на boosty и читать в MAX
🔥1
Проще лучше
#golang
Автор рассказывает как он запилил крутую базу данных с лок-фри ринг-буфером, пинером для GC и кучей умных слов в README, а потом оказалось, что всё это работает через жопу. Оказалось, что он перемудрил со всеми умными локфри алгоритмами.
Мне кажется, у всех так происходит, когда пишешь что-то конкурентное. А в итоге, чем меньше кода, тем больше надежность
https://kodikapusta.ru/news/995-proshche-luchshe
Поддержать проект на boosty и читать в MAX
#golang
Автор рассказывает как он запилил крутую базу данных с лок-фри ринг-буфером, пинером для GC и кучей умных слов в README, а потом оказалось, что всё это работает через жопу. Оказалось, что он перемудрил со всеми умными локфри алгоритмами.
Мне кажется, у всех так происходит, когда пишешь что-то конкурентное. А в итоге, чем меньше кода, тем больше надежность
https://kodikapusta.ru/news/995-proshche-luchshe
Поддержать проект на boosty и читать в MAX
😁3😱1
Async/Await
#golang
Статья про реализацию паттерна Async/Await в Go. Якобы, он упростит написание конкурентного кода.
В основном автор рекламирует свою либу go-opera. Ну, вот хрен знает, как по мне - только все сложнее становится
https://kodikapusta.ru/news/1000-async-await
Поддержать проект на boosty и читать в MAX
#golang
Статья про реализацию паттерна Async/Await в Go. Якобы, он упростит написание конкурентного кода.
В основном автор рекламирует свою либу go-opera. Ну, вот хрен знает, как по мне - только все сложнее становится
https://kodikapusta.ru/news/1000-async-await
Поддержать проект на boosty и читать в MAX
😁4
Системное программирование
#golang
Неплохая статья, в которой подробно разбирается тема производительности программного обеспечения. Рассказвает про производительность от базовых концепций до практической оптимизации на реальном примере.
Автор объясняет ключевые метрики: латентность, пропускная способность, эффективность, надёжность. Показыает как правильно работать с задачаим по оптимизации в принципе, что неплохо было бы начинать с измерений, потом заниматься проектированием архитектуры и только потом переходить к оптимизации
Прикольно что на примере демонстрирует процесс выявления и устранения узких мест с помощью профилировщика pprof
В целом моно почитать ааесь его цикл про системное программирование
https://kodikapusta.ru/news/1007-sistemnoe-programmirovanie
Поддержать проект на boosty и читать в MAX
#golang
Неплохая статья, в которой подробно разбирается тема производительности программного обеспечения. Рассказвает про производительность от базовых концепций до практической оптимизации на реальном примере.
Автор объясняет ключевые метрики: латентность, пропускная способность, эффективность, надёжность. Показыает как правильно работать с задачаим по оптимизации в принципе, что неплохо было бы начинать с измерений, потом заниматься проектированием архитектуры и только потом переходить к оптимизации
Прикольно что на примере демонстрирует процесс выявления и устранения узких мест с помощью профилировщика pprof
В целом моно почитать ааесь его цикл про системное программирование
https://kodikapusta.ru/news/1007-sistemnoe-programmirovanie
Поддержать проект на boosty и читать в MAX
🔥3❤1
pgrust
#rust
Почему бы не переписать на Rust все? Не, ну прям реально все, даже если оно нормально работает.
Автор проекта pgrust решил переписать PostgreSQL на Rust. И рассказывает о впечатляющем прогрессе: за неделю совместимость с тестовым набором Postgres выросла с 33% до 67%, а кодовая база превысила 450 тысяч строк.
Догадаетесь как он это сделала? Всего лишь 8 аккаунтов Codex (по $200 в месяц каждый) и до 20 параллельных агентов, которые работают над конкретными тестами и функциями.
По его заверениям, скорость работы только увеличивается, поскольку уже заложена основа проекта (планировщик, буферный кэш, JSONB и другое), а оставшаяся работа связана с мелкими, специфичными задачами, которые хорошо решаются автоматическими агентами.
Ближайшие цели - достичь почти 100% совместимости на уровне запросов, затем обеспечить стабильность под реальной нагрузкой, после чего приступить к улучшениям, которых не хватает в оригинальном PostgreSQL
https://kodikapusta.ru/news/1012-pgrust
Поддержать проект на boosty и читать в MAX
#rust
Почему бы не переписать на Rust все? Не, ну прям реально все, даже если оно нормально работает.
Автор проекта pgrust решил переписать PostgreSQL на Rust. И рассказывает о впечатляющем прогрессе: за неделю совместимость с тестовым набором Postgres выросла с 33% до 67%, а кодовая база превысила 450 тысяч строк.
Догадаетесь как он это сделала? Всего лишь 8 аккаунтов Codex (по $200 в месяц каждый) и до 20 параллельных агентов, которые работают над конкретными тестами и функциями.
По его заверениям, скорость работы только увеличивается, поскольку уже заложена основа проекта (планировщик, буферный кэш, JSONB и другое), а оставшаяся работа связана с мелкими, специфичными задачами, которые хорошо решаются автоматическими агентами.
Ближайшие цели - достичь почти 100% совместимости на уровне запросов, затем обеспечить стабильность под реальной нагрузкой, после чего приступить к улучшениям, которых не хватает в оригинальном PostgreSQL
https://kodikapusta.ru/news/1012-pgrust
Поддержать проект на boosty и читать в MAX
🔥5❤1
Больше не нужно
#fun
Инженер-менеджер Алекс Моргадас столкнулся с ситуацией, когда руководство без его участия добавило новую команду для улучшения клиентского опыта. Они долго выстраивали подход, при котором одна команда владеет полным циклом продукта, но начальство решило по-другому.
Суть примерно такая: командой были недовольны, добавили новую команду для поддержки пользователей. В этот момент первая команда резко поняла, что ею недовольны, и быстро наколбасила всё, что было нужно.
А в статье автор, конечно, Д’Артаньян
https://kodikapusta.ru/news/1017-bol-she-ne-nuzhno
Поддержать проект на boosty и читать в MAX
#fun
Инженер-менеджер Алекс Моргадас столкнулся с ситуацией, когда руководство без его участия добавило новую команду для улучшения клиентского опыта. Они долго выстраивали подход, при котором одна команда владеет полным циклом продукта, но начальство решило по-другому.
Суть примерно такая: командой были недовольны, добавили новую команду для поддержки пользователей. В этот момент первая команда резко поняла, что ею недовольны, и быстро наколбасила всё, что было нужно.
А в статье автор, конечно, Д’Артаньян
https://kodikapusta.ru/news/1017-bol-she-ne-nuzhno
Поддержать проект на boosty и читать в MAX
❤1
CPU нагрузка
#golang
В статье рассматриваются проблемы оптимизации кода на Go, который нагружает CPU.
Автор показывает, что "нулевая стоимость абстракций" в Go часто недостижима: дженерики, интерфейсы и замыкания в горячих циклах не инлайнятся, что приводит к падению производительности на 15–27% по сравнению с конкретной реализацией. Основные причины — особенности компилятора, отсутствие встроенных интринсиков для prefetch и SIMD, невозможность форсировать инлайн, а также отсутствие директив для отключения проверок границ или размотки циклов.
Единственный способ достичь максимальной скорости — дублировать код, использовать трюки с масками для сдвигов или писать на ассемблере.
Автор приходит к выводу, что Go отлично подходит для I/O-задач, но для CPU-нагруженных сценариев код перестает быть идиоматичным, требуя специализации, дублирования и низкоуровневых оптимизаций
https://kodikapusta.ru/news/1008-cpu-nagruzka
Поддержать проект на boosty и читать в MAX
#golang
В статье рассматриваются проблемы оптимизации кода на Go, который нагружает CPU.
Автор показывает, что "нулевая стоимость абстракций" в Go часто недостижима: дженерики, интерфейсы и замыкания в горячих циклах не инлайнятся, что приводит к падению производительности на 15–27% по сравнению с конкретной реализацией. Основные причины — особенности компилятора, отсутствие встроенных интринсиков для prefetch и SIMD, невозможность форсировать инлайн, а также отсутствие директив для отключения проверок границ или размотки циклов.
Единственный способ достичь максимальной скорости — дублировать код, использовать трюки с масками для сдвигов или писать на ассемблере.
Автор приходит к выводу, что Go отлично подходит для I/O-задач, но для CPU-нагруженных сценариев код перестает быть идиоматичным, требуя специализации, дублирования и низкоуровневых оптимизаций
https://kodikapusta.ru/news/1008-cpu-nagruzka
Поддержать проект на boosty и читать в MAX
👍2❤1