Forwarded from Zen of Python
GameDev: разработка игр
80% корпоративных программ геймификации ломаются на одном и том же месте По данным AmplifAI, игровые кампании дают в среднем вовлечённость на 100–150% выше, чем классические подходы, а геймифицированный контент шерится в 12 раз чаще. При этом примерно 80%…
Представьте: прошли игру на сайте и выиграли приз от бренда. Какой обрадует по-настоящему? 👇
Anonymous Poll
58%
Гаджеты: наушники, клавиатура, повербанк
53%
Мерч, который не стыдно носить вне дома
26%
Подписки на полезные или дорогие сервисы
27%
Курсы и книги
28%
Билет на конференцию или митап
52%
Что-то редкое, чего не купить за деньги
5%
Приз не важен — играю ради азарта
🌭2
Forwarded from Zen of Python
Репозиторий python-patterns: каталог паттернов, которые стоит выбирать с умом
В python-patterns собраны классические паттерны и идиомы Python — 42,8k звёзд, 7k форков и 896 коммитов. Сообщество использует его как шпаргалку, чтобы быстро вспомнить, как выглядит тот или иной подход в коде.
Авторы явно предупреждают: каждый паттерн несёт свои компромиссы, а выбирать нужно не по красоте реализации, а по ситуации. В Python это особенно актуально — язык сам даёт идиомы, от итераторов до менеджеров контекста, и часто проще использовать встроенное, чем городить фабрику.
Полезно сохранить на тот момент, когда вам хочется применить паттерн ради паттерна. Иногда достаточно обычной функции.
В python-patterns собраны классические паттерны и идиомы Python — 42,8k звёзд, 7k форков и 896 коммитов. Сообщество использует его как шпаргалку, чтобы быстро вспомнить, как выглядит тот или иной подход в коде.
Авторы явно предупреждают: каждый паттерн несёт свои компромиссы, а выбирать нужно не по красоте реализации, а по ситуации. В Python это особенно актуально — язык сам даёт идиомы, от итераторов до менеджеров контекста, и часто проще использовать встроенное, чем городить фабрику.
Полезно сохранить на тот момент, когда вам хочется применить паттерн ради паттерна. Иногда достаточно обычной функции.
👍1👏1
Разбор на Tproger: где пет-проект перестаёт быть кодом и начинает быть бизнесом. Внутри — про разницу между «ищу рынок под свой стек» и «решаю чужую проблему», про предпринимателя и менеджера как разные профессии, и про то, что продукт — артефакт, а бизнес — система, которая производит его без вас.
https://tproger.ru/articles/pochemu-vaw-pet-proekt-eshhyo-ne-biznes-a-vy-ne-predprinimatel
@prog_tools
https://tproger.ru/articles/pochemu-vaw-pet-proekt-eshhyo-ne-biznes-a-vy-ne-predprinimatel
@prog_tools
FixCSS: пишите CSS без исторических ошибок спецификации
FixCSS берёт исправленные имена свойств, значения и селекторы — и на лету превращает их в валидный CSS, который браузеры уже понимают. Например,
Библиотека опирается на опубликованный CSS Working Group список ошибок в дизайне CSS и убирает необходимость помнить, какие имена свойств появились только из-за обратной совместимости. Демо на CodePen и установка через NPM.
Где пригодится: можно писать CSS так, как он выглядел бы без компромиссов, а FixCSS позаботится о финальном выводе для продакшена.
FixCSS берёт исправленные имена свойств, значения и селекторы — и на лету превращает их в валидный CSS, который браузеры уже понимают. Например,
white-space: no-wrap он сконвертирует в white-space: nowrap.Библиотека опирается на опубликованный CSS Working Group список ошибок в дизайне CSS и убирает необходимость помнить, какие имена свойств появились только из-за обратной совместимости. Демо на CodePen и установка через NPM.
Где пригодится: можно писать CSS так, как он выглядел бы без компромиссов, а FixCSS позаботится о финальном выводе для продакшена.
👍1😭1
cpulse — терминальный дашборд, который показывает, почему завис
Compose сваливает логи всех контейнеров в один поток: когда стек не поднимается, приходится угадывать, какой сервис всё блокирует, и листать тысячи строк. cpulse рисует граф
Что внутри:
🔘 у каждого сервиса осмысленное состояние (blocked, starting, degraded при трёх и более рестартах), вычисленное из состояния контейнера, exit-кода и графа зависимостей;
🔘 режим
🔘 вкладки по сервису: логи, спарклайны CPU и памяти, зависимости, healthcheck с запуском probe прямо из интерфейса;
🔘 по проекту целиком: таймлайн запуска диаграммой Ганта, граф с условиями на рёбрах, диагностика;
🔘 авто-обнаружение всех контейнеров локального демона — новые стеки появляются без перезапуска;
🔘 init-контейнер, завершившийся с
Проект молодой: первый релиз 26 июня, к 13 июля уже v0.4.1. Ставится через brew или бинарником из релизов.
Пригодится тем, кто гоняет многосервисные compose-стеки и устал выяснять, какой из контейнеров держит остальные.
https://github.com/hyturing/compose-pulse
Язык: Go. Лицензия: MIT.
@prog_tools
docker compose upCompose сваливает логи всех контейнеров в один поток: когда стек не поднимается, приходится угадывать, какой сервис всё блокирует, и листать тысячи строк. cpulse рисует граф
depends_on деревом, следит за контейнерами в реальном времени и прямо называет корневую причину.Что внутри:
cpulse doctor без TUI: печатает корневую причину и находки, при критичных выходит с кодом 1 — встраивается в CI;exit 0, визуально отличается от упавшего; раньше это выяснялось только чтением логов.Проект молодой: первый релиз 26 июня, к 13 июля уже v0.4.1. Ставится через brew или бинарником из релизов.
Пригодится тем, кто гоняет многосервисные compose-стеки и устал выяснять, какой из контейнеров держит остальные.
https://github.com/hyturing/compose-pulse
Язык: Go. Лицензия: MIT.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
🙏1
Ghost: Postgres, который можно форкнуть под каждую задачу агента
Ghost — хостинг Postgres, который можно запустить, форкнуть и выбросить за секунды. Он даёт каждому агенту или задаче отдельную базу, чтобы эксперименты не трогали продакшн.
Установка: curl -fsSL https://install.ghost.build | sh. Дальше CLI и интеграция для ИИ-агентов (MCP): можно скопировать продакшн-базу в изолированную копию перед миграцией или генерацией кода. Если агент что-то сломает, удаляете окружение и берёте следующее.
Жёсткие лимиты расходов не дают счёту уйти в бесконечность. Подробнее про Ghost.
Ghost — хостинг Postgres, который можно запустить, форкнуть и выбросить за секунды. Он даёт каждому агенту или задаче отдельную базу, чтобы эксперименты не трогали продакшн.
Установка: curl -fsSL https://install.ghost.build | sh. Дальше CLI и интеграция для ИИ-агентов (MCP): можно скопировать продакшн-базу в изолированную копию перед миграцией или генерацией кода. Если агент что-то сломает, удаляете окружение и берёте следующее.
Жёсткие лимиты расходов не дают счёту уйти в бесконечность. Подробнее про Ghost.
Atuin: история команд, в которой видно начало и конец длинной строки
Atuin заменяет стандартную историю команд shell. Он хранит команды в базе, учитывает каталог и контекст запуска, ищет по всей истории и синхронизирует её между машинами.
В версии 18.17.1 длинные команды в TUI обрезаются посередине. На экране остаются начало команды и последние аргументы.
Заодно исправили:
🔘 порядок импорта истории из zsh и Nushell;
🔘 поиск по префиксу;
🔘 подключение собственных API-адресов к ИИ-функциям;
🔘 документацию по захвату вывода и MCP.
Язык: Rust
Лицензия: MIT
@prog_tools
Atuin заменяет стандартную историю команд shell. Он хранит команды в базе, учитывает каталог и контекст запуска, ищет по всей истории и синхронизирует её между машинами.
В версии 18.17.1 длинные команды в TUI обрезаются посередине. На экране остаются начало команды и последние аргументы.
Заодно исправили:
Язык: Rust
Лицензия: MIT
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
Нейросети удобно оценивают код, но нестабильны: один и тот же Go-файл может получить разные вердикты в разных прогонах
Repowise делает эту работу детерминированно — он анализирует здоровье Go-кода по синтаксическому дереву и истории коммитов.
Инструмент строит 23 показателя качества на парсере Tree-sitter и git-истории. Один и тот же коммит всегда даёт одну и ту же оценку, поэтому результат можно сравнивать между версиями без шума.
В отличие от универсальных метрик объектно-ориентированного кода, Repowise учитывает специфику Go: вложенность функций, дублирование, покрытие тестами и процессные сигналы — например, частую смену авторов одного файла. Для крупных репозиториев вроде Hugo это даёт стабильную картину рисков.
Если в проекте важна воспроизводимость оценок, такой подход поможет отслеживать деградацию и не гадать на нейросетях. Подробности о метриках в статье.
Repowise делает эту работу детерминированно — он анализирует здоровье Go-кода по синтаксическому дереву и истории коммитов.
Инструмент строит 23 показателя качества на парсере Tree-sitter и git-истории. Один и тот же коммит всегда даёт одну и ту же оценку, поэтому результат можно сравнивать между версиями без шума.
В отличие от универсальных метрик объектно-ориентированного кода, Repowise учитывает специфику Go: вложенность функций, дублирование, покрытие тестами и процессные сигналы — например, частую смену авторов одного файла. Для крупных репозиториев вроде Hugo это даёт стабильную картину рисков.
Если в проекте важна воспроизводимость оценок, такой подход поможет отслеживать деградацию и не гадать на нейросетях. Подробности о метриках в статье.
👍3😁1
Nushell 0.114.1: точнее проверяет типы прямо во время работы
Nushell — командная оболочка со структурированными данными. Её пайпы передают таблицы, записи и типизированные значения. JSON и CSV можно фильтровать командами оболочки без ручного разбора текста.
Версия 0.114.1 стабилизирует runtime annotations, которые недавно включили по умолчанию.
В патч вошли:
🔘 точные позиции ошибок при несовпадении типов;
🔘 исправленные типы closures, команд дат,
🔘 корректная передача именованных флагов через
🔘 возможность отключить проверки аннотаций для старых скриптов.
Язык: Rust
Лицензия: MIT
@prog_tools
Nushell — командная оболочка со структурированными данными. Её пайпы передают таблицы, записи и типизированные значения. JSON и CSV можно фильтровать командами оболочки без ручного разбора текста.
Версия 0.114.1 стабилизирует runtime annotations, которые недавно включили по умолчанию.
В патч вошли:
uname и input listen;run script.nu;Язык: Rust
Лицензия: MIT
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1🤔1
Любите игры на концентрацию и внимание?
Тогда «Меморина» — то что надо! Найдите все пары как можно быстрее и откройте все ачивки в нашей игре
Тогда «Меморина» — то что надо! Найдите все пары как можно быстрее и откройте все ачивки в нашей игре
eza 0.23.5: современный ls научился считать строки кода
eza расширяет возможности
В версии 0.23.5 завершили многолетний перенос командной строки на clap и добавили подсчёт строк кода с итоговой сводкой. В тесте авторов обход 635 ГБ исходников занял 4,5 минуты.
В релиз также вошли:
🔘
🔘
🔘 сводка по строкам и CSV-иконка;
🔘 обновлённые зависимости и новая минимальная версия Rust.
Язык: Rust
Лицензия: EUPL-1.2
@prog_tools
eza расширяет возможности
ls: показывает Git-статусы, дерево каталогов, иконки и метаданные файлов прямо в терминале.В версии 0.23.5 завершили многолетний перенос командной строки на clap и добавили подсчёт строк кода с итоговой сводкой. В тесте авторов обход 635 ГБ исходников занял 4,5 минуты.
В релиз также вошли:
--hyperlink=auto для ссылок в совместимых терминалах;--short-nix для компактных путей Nix;Язык: Rust
Лицензия: EUPL-1.2
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
mise — менеджер рабочего окружения разработчика. Он хранит версии Python, Node.js, Rust и других инструментов, переменные среды и команды проекта в одном
В версии 2026.7.6 появились глобальные правила песочницы. Для запускаемых процессов можно запретить чтение, запись, сеть, доступ к переменным окружения или все права сразу. Ограничения начинают действовать после явной настройки.
В релиз также вошли:
🔘 отдельный стиль вывода для задач;
🔘 установка Flatpak-пакетов через Linux bootstrap;
🔘 воспроизводимые OCI-слои из локальных файлов;
🔘 диагностика программ, которые перекрывают shims mise в
🔘 доступ Aqua backend к приватным архивам GitHub через авторизованный API.
При обновлении стоит проверить CI:
Язык: Rust
Лицензия: MIT
@prog_tools
mise.toml, чтобы одинаково настраивать проект на разных компьютерах и в CI.В версии 2026.7.6 появились глобальные правила песочницы. Для запускаемых процессов можно запретить чтение, запись, сеть, доступ к переменным окружения или все права сразу. Ограничения начинают действовать после явной настройки.
В релиз также вошли:
PATH;При обновлении стоит проверить CI:
--quiet теперь сохраняет выбранный стиль вывода, а служебные переменные usage_* живут только внутри текущего запуска.Язык: Rust
Лицензия: MIT
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
Deno — среда для JavaScript и TypeScript, которая запускает код, управляет зависимостями, тестирует, форматирует и собирает приложения одним CLI.
Версия 2.9.2 развивает экспериментальный
В обновление также вошли:
🔘 прозрачность и управление непрозрачностью окон;
🔘 запуск framework build перед упаковкой desktop-приложения;
🔘 вывод ошибок старта собранной программы;
🔘 запуск инспектора сигналом
🔘 корректный подсчёт веток в отчётах покрытия;
🔘 форматирование inline-скриптов Astro как TypeScript;
🔘 пути для
Разработчики также ускорили Web Streams, передачу сообщений между workers и работу TLS-потоков, сократив лишние копирования буферов.
Язык: Rust и TypeScript
Лицензия: MIT
@prog_tools
Версия 2.9.2 развивает экспериментальный
deno desktop: веб-приложение можно упаковать в самостоятельную настольную программу с интерфейсом в системном webview. Инструмент теперь распознаёт React Router, включает HMR для Vite и Nuxt и запускает обновление через dev-сервер выбранного фреймворка.В обновление также вошли:
SIGUSR1;fmt, lint и bench в watch-режиме.Разработчики также ускорили Web Streams, передачу сообщений между workers и работу TLS-потоков, сократив лишние копирования буферов.
deno desktop пока считается экспериментальной функцией, поэтому формат и API ещё могут измениться. Остальные исправления входят в стабильный релиз 2.9.2.Язык: Rust и TypeScript
Лицензия: MIT
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
fzf — нечёткий поиск для терминала: файлы, история команд, процессы, любые списки через пайп. Версия 0.74.1 от 18 июля почти целиком посвящена рендерингу.
Что внутри:
🔘 каждый кадр теперь оборачивается в synchronized update mode — на поддерживающих терминалах пропадает мерцание;
🔘 объём вывода на отрисовку сократился на 10–23% за счёт пропуска избыточных SGR-последовательностей;
🔘 исправлены призрачные символы и смещённые цвета внутри Zellij и восстановление курсора при выходе в терминале Neovim;
🔘 к каждому релизу теперь прикладываются .deb-пакеты для Debian-дистрибутивов.
Из ветки 0.74 стоит знать главное: на tmux 3.7+ флаг --popup открывает fzf в плавающей панели вместо модального popup — её можно двигать мышью, зумить и переключаться на другие панели, пока fzf работает.
Пригодится тем, кто живёт в терминале и запускает fzf сотни раз в день.
Язык: Go. Лицензия: MIT.
@prog_tools
Что внутри:
Из ветки 0.74 стоит знать главное: на tmux 3.7+ флаг --popup открывает fzf в плавающей панели вместо модального popup — её можно двигать мышью, зумить и переключаться на другие панели, пока fzf работает.
Пригодится тем, кто живёт в терминале и запускает fzf сотни раз в день.
Язык: Go. Лицензия: MIT.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Flowork — self-hosted ИИ-стек из двух Go-бинарников
Flowork даёт готовый стек для агентов и LLM внутри вашей инфраструктуры: Flowork Agent управляет жизненным циклом агентов и задачами, а Flow Router направляет запросы к локальным или внешним моделям по вашим правилам.
Оба компонента — одиночные бинарники на Go без Docker-оркестрации и обязательных SaaS. Данные не покидают периметр, а вы платите за своё железо, а не за токены в чужом облаке.
Подходит для чувствительных данных и изолированных сред, но масштабирование, обновления и мониторинг остаются на вас.
Flowork даёт готовый стек для агентов и LLM внутри вашей инфраструктуры: Flowork Agent управляет жизненным циклом агентов и задачами, а Flow Router направляет запросы к локальным или внешним моделям по вашим правилам.
Оба компонента — одиночные бинарники на Go без Docker-оркестрации и обязательных SaaS. Данные не покидают периметр, а вы платите за своё железо, а не за токены в чужом облаке.
Подходит для чувствительных данных и изолированных сред, но масштабирование, обновления и мониторинг остаются на вас.
RabbitMQ — брокер сообщений и потоков: AMQP, MQTT, STOMP и собственный Stream Protocol, очереди, кластеры и плагины управления. Патч 4.2.9 от 20 июля сосредоточен на надёжности кластера и безопасности.
Что внутри:
🔘 соли паролей переведены на криптографически безопасный генератор случайных чисел;
🔘 исправлено накопление слешей в путях classic queue index, из-за которого путь разрастался до ошибки enametoolong;
🔘 появились операции transfer_leadership для очередей и потоков, а rabbitmq-upgrade drain стал безопаснее;
🔘 при объявлении alternate exchange через AMQP 1.0 теперь корректно проверяются права;
🔘 минимальная поддерживаемая версия Erlang поднята до 27.0.
Пригодится тем, кто держит RabbitMQ в проде и планирует обновление кластера: здесь и исправления индексов очередей, и проверка прав, и штатная смена лидера.
Язык: Erlang/OTP. Лицензия: MPL-2.0.
@prog_tools
Что внутри:
Пригодится тем, кто держит RabbitMQ в проде и планирует обновление кластера: здесь и исправления индексов очередей, и проверка прав, и штатная смена лидера.
Язык: Erlang/OTP. Лицензия: MPL-2.0.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
Несколько coding-агентов в одном рабочем дереве быстро начинают редактировать одни и те же файлы. Emdash разводит агентов по изолированным git worktree и собирает чат, терминал, задачи и pull request в одном локальном приложении.
Версия 1.1.40 вышла 17 июля. Что внутри:
🔘 в чат можно вставлять изображения;
🔘 появился быстрый переключатель Zen Mode;
🔘 у файлов в контекстном меню — команда Show in Finder, у pull request — копирование общего URL;
🔘 исправлена блокировка главного процесса при индексации файлов и падения при повторной подписке file watcher.
Пригодится тем, кто гоняет несколько агентов одновременно и устал следить, чтобы они не редактировали одни и те же файлы.
Язык: TypeScript. Лицензия: Apache-2.0.
@prog_tools
Версия 1.1.40 вышла 17 июля. Что внутри:
Пригодится тем, кто гоняет несколько агентов одновременно и устал следить, чтобы они не редактировали одни и те же файлы.
Язык: TypeScript. Лицензия: Apache-2.0.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
Auto-CPUFreq 3.1: мониторинг CPU и настройки теперь в GUI
Auto-CPUFreq, Linux-утилита для мониторинга и настройки процессора, обновилась до 3.1. Главное новшество: режим мониторинга теперь доступен прямо в графическом интерфейсе, так что смотреть состояние CPU можно без терминала.
Версия также добавляет новые параметры конфигурации и ряд исправлений. Если вы уже пользуетесь инструментом, обновитесь, чтобы получить GUI для мониторинга и новые опции конфигурации в этом релизе.
Подробности о релизе.
Auto-CPUFreq, Linux-утилита для мониторинга и настройки процессора, обновилась до 3.1. Главное новшество: режим мониторинга теперь доступен прямо в графическом интерфейсе, так что смотреть состояние CPU можно без терминала.
Версия также добавляет новые параметры конфигурации и ряд исправлений. Если вы уже пользуетесь инструментом, обновитесь, чтобы получить GUI для мониторинга и новые опции конфигурации в этом релизе.
Подробности о релизе.
Phoronix
Auto-CPUFreq 3.1 Adds Monitoring Mode To GUI, New Configuration Options & Fixes
Auto-CPUFreq is one of the open-source projects striving to be a CPU speed and power optimizer for Linux systems to improve battery life without making any real compromises to the user experience
👍4
Рутинные команды проекта расползаются по README, Makefile и памяти того, кто их когда-то придумал. just собирает их в один justfile: описываете рецепт, дальше зовёте just build или just test из любой папки проекта.
Версия 1.57.0 вышла 19 июля.
Что внутри:
🔘 появилась функция len() для подсчёта элементов списка, а split('') теперь разбивает строку на отдельные символы;
🔘 переменные из блока [env] стали видны внутри вызовов shell();
🔘 markdown-файл, заданный через --justfile-name, теперь тоже разбирается: рецепты вынимаются из блоков just, поэтому команды могут лежать прямо в README рядом с объяснением, зачем они нужны;
🔘 на Windows аргументы уходят в cmd.exe без экранирования;
🔘 запрещены дублирующиеся группы рецептов и одинаковые имена параметров у пользовательских функций;
🔘 ленивые присваивания перестали пересчитываться заново при каждом обращении внутри таких функций.
Пригодится тем, кто устал объяснять новым людям в команде, какие три команды надо выполнить перед первым запуском проекта.
Язык: Rust. Лицензия: CC0-1.0.
@prog_tools
Версия 1.57.0 вышла 19 июля.
Что внутри:
Пригодится тем, кто устал объяснять новым людям в команде, какие три команды надо выполнить перед первым запуском проекта.
Язык: Rust. Лицензия: CC0-1.0.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
Nibs: безопасный очиститель терминала для Linux
Nibs — TUI-утилита на Rust, которая освобождает место на диске, не рискуя удалить важные файлы. Она сканирует кеши, логи, старые сборки, установщики, корзину и остатки приложений, а перед очисткой помечает каждую находку как безопасную, требующую проверки или рискованную.
По умолчанию Nibs только перемещает файлы в корзину и обходит конфиги, токены, сессии, куки и личные данные. Так можно быстро почистить систему, не боясь потерять настройки или секреты.
Инструмент пока в альфе, но уже открыт для тестирования. Репозиторий: github.com/danitsdev/nibs.
Nibs — TUI-утилита на Rust, которая освобождает место на диске, не рискуя удалить важные файлы. Она сканирует кеши, логи, старые сборки, установщики, корзину и остатки приложений, а перед очисткой помечает каждую находку как безопасную, требующую проверки или рискованную.
По умолчанию Nibs только перемещает файлы в корзину и обходит конфиги, токены, сессии, куки и личные данные. Так можно быстро почистить систему, не боясь потерять настройки или секреты.
Инструмент пока в альфе, но уже открыт для тестирования. Репозиторий: github.com/danitsdev/nibs.