DOOM запустили внутри SQL-базы. Каждый кадр теперь результат запроса 🤯
Лукас Фогель собрал SQLDoom: игровая логика и рендеринг оригинального DOOM работают внутри CedarDB.
Карты, монстры, оружие и состояние игры хранятся в таблицах. SQL рассчитывает движение, атаки и столкновения, а затем собирает картинку:
• около 1300 строк SQL и 89 CTE отвечают за рендеринг;
• ещё 5900 строк SQL реализуют игровую логику;
• кадры 320×200 генерируются примерно с 60 FPS на ноутбуке с Ryzen 7 PRO 7840U. В тяжёлых сценах частота падает до 35 FPS.
Python обрабатывает ввод, задаёт тайминг и выводит готовые кадры. Работает даже мультиплеер.
Теперь оптимизировать SQL нужно ещё и для того, чтобы монстры не лагали ☕️
Код:
https://github.com/cedardb/sqldoom
Онлайн-демка:
https://demo.cedardb.cloud/projects/38c0ee59-327d-495e-ad40-735521bba941
Лукас Фогель собрал SQLDoom: игровая логика и рендеринг оригинального DOOM работают внутри CedarDB.
Карты, монстры, оружие и состояние игры хранятся в таблицах. SQL рассчитывает движение, атаки и столкновения, а затем собирает картинку:
• около 1300 строк SQL и 89 CTE отвечают за рендеринг;
• ещё 5900 строк SQL реализуют игровую логику;
• кадры 320×200 генерируются примерно с 60 FPS на ноутбуке с Ryzen 7 PRO 7840U. В тяжёлых сценах частота падает до 35 FPS.
Python обрабатывает ввод, задаёт тайминг и выводит готовые кадры. Работает даже мультиплеер.
Теперь оптимизировать SQL нужно ещё и для того, чтобы монстры не лагали ☕️
Код:
https://github.com/cedardb/sqldoom
Онлайн-демка:
https://demo.cedardb.cloud/projects/38c0ee59-327d-495e-ad40-735521bba941
🔥10🤣7👍1🥰1
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: https://t.me/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_ci
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: https://t.me/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: https://t.me/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: https://t.me/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_ci
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: https://t.me/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: https://t.me/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
❤2👍2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
5 алгоритмов для программиста: бинарный поиск, сортировка слиянием, BFS, Дейкстра, скользящее окно
Разбираем 5 алгоритмов, которые пригодятся в реальном коде: бинарный поиск за O(log n), сортировка слиянием за O(n log n), поиск в ширину, алгоритм Дейкстры для кратчайшего пути и скользящее окно за O(n). Короткие визуальные примеры на каждый. Сохраните, чтобы не потерять.
https://www.youtube.com/shorts/e--njUJA3y4
Разбираем 5 алгоритмов, которые пригодятся в реальном коде: бинарный поиск за O(log n), сортировка слиянием за O(n log n), поиск в ширину, алгоритм Дейкстры для кратчайшего пути и скользящее окно за O(n). Короткие визуальные примеры на каждый. Сохраните, чтобы не потерять.
https://www.youtube.com/shorts/e--njUJA3y4
🔥2❤1👍1
👾 Русскоязычный каталог из 2118 проектов по декомпиляции игр: от Ocarina of Time до Xbox 360
На GitHub появился awesome-список, собранный на русском: проекты, которые восстанавливают игры из машинного кода. Это декомпиляции, статические рекомпиляции, порты на исходниках и ремейки движков. Задача простая: помочь найти проект под нужную игру и платформу и объяснить, как всё это устроено.
Масштаб впечатляет. В каталоге около 2118 проектов для примерно 1829 игр, из них 1771 активных. По типам: 786 декомпиляций, 525 статических рекомпиляций, 269 портов на исходниках, 238 ремейков движков, 234 дизассемблирования, 57 браузерных портов и 9 инструментов.
По платформам лидирует ПК с 295 проектами, дальше Nintendo 64 (190), Xbox 360 и PlayStation 1 (по 161). Следом идут DOS, GameCube, PS2, Game Boy Advance и Wii. Среди примеров Zelda (Ocarina of Time, Majora's Mask, Twilight Princess), Mario 64, Sonic, Diablo, Morrowind, OpenRA и OpenRCT2.
Внутри не просто список. В README есть топ-25, отдельный список браузерных портов, каталоги по типам и платформам, раздел о том, как начать декомпилировать самому, FAQ и глоссарий. Из инструментов упоминаются N64Recomp, XenonRecomp, RT64, splat, decomp.me, objdiff и m2c. Каталог обновляется автоматически через GitHub Actions.
Важная оговорка: сами проекты работают с данными из легально купленных копий игр, а в репозитории лежат только ссылки.
Репозиторий: https://github.com/justxor/awesome-decomp-games-ru
На GitHub появился awesome-список, собранный на русском: проекты, которые восстанавливают игры из машинного кода. Это декомпиляции, статические рекомпиляции, порты на исходниках и ремейки движков. Задача простая: помочь найти проект под нужную игру и платформу и объяснить, как всё это устроено.
Масштаб впечатляет. В каталоге около 2118 проектов для примерно 1829 игр, из них 1771 активных. По типам: 786 декомпиляций, 525 статических рекомпиляций, 269 портов на исходниках, 238 ремейков движков, 234 дизассемблирования, 57 браузерных портов и 9 инструментов.
По платформам лидирует ПК с 295 проектами, дальше Nintendo 64 (190), Xbox 360 и PlayStation 1 (по 161). Следом идут DOS, GameCube, PS2, Game Boy Advance и Wii. Среди примеров Zelda (Ocarina of Time, Majora's Mask, Twilight Princess), Mario 64, Sonic, Diablo, Morrowind, OpenRA и OpenRCT2.
Внутри не просто список. В README есть топ-25, отдельный список браузерных портов, каталоги по типам и платформам, раздел о том, как начать декомпилировать самому, FAQ и глоссарий. Из инструментов упоминаются N64Recomp, XenonRecomp, RT64, splat, decomp.me, objdiff и m2c. Каталог обновляется автоматически через GitHub Actions.
Важная оговорка: сами проекты работают с данными из легально купленных копий игр, а в репозитории лежат только ссылки.
Репозиторий: https://github.com/justxor/awesome-decomp-games-ru
❤2👍2🔥2
Kubernetes подняли. А как запрос доходит до приложения? 🌐
Запущенный Pod ещё не гарантирует, что пользователь сможет открыть сервис.
В самостоятельно управляемом кластере важно понимать весь маршрут трафика:
• куда ведёт DNS;
• как запрос попадает в кластер;
• кто выбирает нужный backend;
• как пакет доходит до Pod;
• где может оборваться обратный путь.
Anatomy of End-to-End Connectivity in Self-Managed Kubernetes with RKE2 посвящена сквозной сетевой связности в кластере на RKE2.
Тема для тех, кто хочет понимать, что происходит между адресом в браузере и приложением внутри Kubernetes 👇
https://medium.com/@truonghongcuong68/anatomy-of-end-to-end-connectivity-in-self-managed-kubernetes-with-rke2-a39d29ff417d
Запущенный Pod ещё не гарантирует, что пользователь сможет открыть сервис.
В самостоятельно управляемом кластере важно понимать весь маршрут трафика:
• куда ведёт DNS;
• как запрос попадает в кластер;
• кто выбирает нужный backend;
• как пакет доходит до Pod;
• где может оборваться обратный путь.
Anatomy of End-to-End Connectivity in Self-Managed Kubernetes with RKE2 посвящена сквозной сетевой связности в кластере на RKE2.
Тема для тех, кто хочет понимать, что происходит между адресом в браузере и приложением внутри Kubernetes 👇
https://medium.com/@truonghongcuong68/anatomy-of-end-to-end-connectivity-in-self-managed-kubernetes-with-rke2-a39d29ff417d
Medium
Anatomy of End-to-End Connectivity in Self-Managed Kubernetes with RKE2
How many hops does a request cross before it reaches your Pod? This article follows every one of them on a self-managed Kubernetes cluster…
👍3🔥2
📚 5 инженерных статей для тех, кто работает с DevOps, SRE, Kubernetes и облачной инфраструктурой
Как ограничить масштаб аварии, почему Kubernetes не восстанавливает баланс подов и как GPU могут простаивать при зелёных проверках здоровья. Подборка для чтения на этой неделе 👇
1️⃣ Cloudflare: как сделать сбои локальными
Итоги программы Code Orange: Fail Small. Постепенное применение конфигураций, автоматический откат, использование последней рабочей конфигурации и аварийный доступ к инфраструктуре.
Полезный разбор того, как не дать одной ошибке превратиться в глобальный сбой.
https://blog.cloudflare.com/code-orange-fail-small-complete/
2️⃣ AWS: почему поды перестают равномерно распределяться по зонам
В эксперименте AWS тысяча подов сосредоточилась в двух зонах доступности. Третья осталась пустой даже после восстановления ресурсов, а перекос сохранялся больше 16 часов.
Причина: scheduler размещает новые поды, но не пересматривает размещение уже работающих. В статье показано, как descheduler устраняет перекос через контролируемое выселение и повторное планирование подов.
https://aws.amazon.com/blogs/containers/fix-pod-distribution-drift-in-amazon-eks-with-the-kubernetes-descheduler/
3️⃣ Неверное время на ноде может сломать приложение
Сертификат действителен, но TLS-проверка завершается ошибкой. JWT ещё не истёк, но сервис его отклоняет.
Michal Drozd разбирает, как рассинхронизация часов вызывает такие симптомы и почему после коррекции времени причину трудно обнаружить. Внутри: диагностика через chrony, логи и мониторинг синхронизации.
https://www.michal-drozd.com/en/blog/time-drift-tls-jwt-kubernetes/
4️⃣ Kubeflow + Cilium: поды работают, GPU простаивают
Координатор обучения и GPU-воркеры оказались в разных зонах, а сетевая политика блокировала связь между ними.
Разбор показывает, почему статус
https://www.cncf.io/blog/2026/07/23/when-kubeflow-meets-cilium-debugging-60-idle-gpus-in-kubernetes/
5️⃣ GitLab: сколько энергии потребляют ваши CI/CD-пайплайны
Статья о Eco CI и Carmen: инструментах для оценки энергопотребления и углеродного следа задач CI/CD и инфраструктуры.
Такие измерения помогают обнаруживать ресурсоёмкие задачи, лишние запуски и возможности для кеширования. Полезно и для оптимизации расходов.
https://about.gitlab.com/blog/green-devops-carbon-measurement-cicd-pipeline/
🔖 Сохраните подборку, чтобы вернуться к ней перед следующей оптимизацией инфраструктуры.
Как ограничить масштаб аварии, почему Kubernetes не восстанавливает баланс подов и как GPU могут простаивать при зелёных проверках здоровья. Подборка для чтения на этой неделе 👇
1️⃣ Cloudflare: как сделать сбои локальными
Итоги программы Code Orange: Fail Small. Постепенное применение конфигураций, автоматический откат, использование последней рабочей конфигурации и аварийный доступ к инфраструктуре.
Полезный разбор того, как не дать одной ошибке превратиться в глобальный сбой.
https://blog.cloudflare.com/code-orange-fail-small-complete/
2️⃣ AWS: почему поды перестают равномерно распределяться по зонам
В эксперименте AWS тысяча подов сосредоточилась в двух зонах доступности. Третья осталась пустой даже после восстановления ресурсов, а перекос сохранялся больше 16 часов.
Причина: scheduler размещает новые поды, но не пересматривает размещение уже работающих. В статье показано, как descheduler устраняет перекос через контролируемое выселение и повторное планирование подов.
https://aws.amazon.com/blogs/containers/fix-pod-distribution-drift-in-amazon-eks-with-the-kubernetes-descheduler/
3️⃣ Неверное время на ноде может сломать приложение
Сертификат действителен, но TLS-проверка завершается ошибкой. JWT ещё не истёк, но сервис его отклоняет.
Michal Drozd разбирает, как рассинхронизация часов вызывает такие симптомы и почему после коррекции времени причину трудно обнаружить. Внутри: диагностика через chrony, логи и мониторинг синхронизации.
https://www.michal-drozd.com/en/blog/time-drift-tls-jwt-kubernetes/
4️⃣ Kubeflow + Cilium: поды работают, GPU простаивают
Координатор обучения и GPU-воркеры оказались в разных зонах, а сетевая политика блокировала связь между ними.
Разбор показывает, почему статус
Running не гарантирует полезную работу и как согласовать размещение подов с сетевыми ограничениями. В лабораторном примере загрузка GPU выросла примерно с 40% до 85%.https://www.cncf.io/blog/2026/07/23/when-kubeflow-meets-cilium-debugging-60-idle-gpus-in-kubernetes/
5️⃣ GitLab: сколько энергии потребляют ваши CI/CD-пайплайны
Статья о Eco CI и Carmen: инструментах для оценки энергопотребления и углеродного следа задач CI/CD и инфраструктуры.
Такие измерения помогают обнаруживать ресурсоёмкие задачи, лишние запуски и возможности для кеширования. Полезно и для оптимизации расходов.
https://about.gitlab.com/blog/green-devops-carbon-measurement-cicd-pipeline/
🔖 Сохраните подборку, чтобы вернуться к ней перед следующей оптимизацией инфраструктуры.
❤6
🤖Podlodka Backend Crew: AI в бэкенд-задачах
Демо с AI чаще всего выглядят одинаково: агент за десять минут пишет сервис с нуля.
Вот только в работе бэкендера всё сложнее: легаси, рискованные миграции, неработающие тесты и ревью, которое становится бутылочным горлышком.
🗓 С 26 по 30 октября в сезоне Podlodka Backend Crew «AI в бэкенд-задачах» участники:
• Научатся передавать агенту инженерные стандарты и правила, чтобы он писал так, как нужно, а не как получится
• Соберут ревью, где несколько моделей независимо проверяют изменения, а финальное решение остаётся за человеком
• Посмотрят, куда переезжает сложность миграции легаси, когда код пишет агент
• Выяснят, где ломается мечта отдать миграцию агенту целиком
• Разберут, какие антипаттерны тестов агенты уже успели перенять от разработчиков.
Формат — пять дней живых Zoom-сессий утром и вечером, закрытое сообщество в Telegram и общение со спикерами.
Будет много интерактива и практики. Базовый ликбез оставят за бортом — этот сезон для тех, кто уже пробует AI в реальных проектах. Присоединяйтесь с 26 октября!
🔗 Билеты и программа: https://podlodka.io/becrew
Промокодgobackend
Демо с AI чаще всего выглядят одинаково: агент за десять минут пишет сервис с нуля.
Вот только в работе бэкендера всё сложнее: легаси, рискованные миграции, неработающие тесты и ревью, которое становится бутылочным горлышком.
• Научатся передавать агенту инженерные стандарты и правила, чтобы он писал так, как нужно, а не как получится
• Соберут ревью, где несколько моделей независимо проверяют изменения, а финальное решение остаётся за человеком
• Посмотрят, куда переезжает сложность миграции легаси, когда код пишет агент
• Выяснят, где ломается мечта отдать миграцию агенту целиком
• Разберут, какие антипаттерны тестов агенты уже успели перенять от разработчиков.
Формат — пять дней живых Zoom-сессий утром и вечером, закрытое сообщество в Telegram и общение со спикерами.
Будет много интерактива и практики. Базовый ликбез оставят за бортом — этот сезон для тех, кто уже пробует AI в реальных проектах. Присоединяйтесь с 26 октября!
Промокод
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1