📊 Zabbix Notifications in Telegram
Инструмент для отправки уведомлений из Zabbix в Telegram с графиками и сообщениями. Поддерживает как личные, так и групповые чаты, а также каналы. Простая настройка и поддержка markdown/HTML.
🚀Основные моменты:
- Отправка графиков и уведомлений в Telegram
- Поддержка личных и групповых чатов
- Возможность использования emoji для обозначения серьезности
- Сохранение chatid в временный файл
- Простое управление через команды бота (в разработке)
📌 GitHub: https://github.com/ableev/Zabbix-in-Telegram
#python
@Python_Community_ru
Инструмент для отправки уведомлений из Zabbix в Telegram с графиками и сообщениями. Поддерживает как личные, так и групповые чаты, а также каналы. Простая настройка и поддержка markdown/HTML.
🚀Основные моменты:
- Отправка графиков и уведомлений в Telegram
- Поддержка личных и групповых чатов
- Возможность использования emoji для обозначения серьезности
- Сохранение chatid в временный файл
- Простое управление через команды бота (в разработке)
📌 GitHub: https://github.com/ableev/Zabbix-in-Telegram
#python
@Python_Community_ru
💡 Cursor 2.0 - большое обновление ИИ-редактора кода
Новая версия делает работу с агентами и кодом ещё гибче и удобнее:
- Мульти-агенты - теперь можно запускать до 8 агентов параллельно, каждый работает в своей изолированной копии кода.
- Composer: первая собственная агентская модель Cursor, которая оптимизирована под длинный контекст и инструменты (с производительностью в ~4× выше, по сравнению с аналогичными по «интеллекту» моделями.)
- Backend-абстракция - легко переключаться между локальной системой, виртуальной машиной или базой данных.
- Встроенный Browser - агенты теперь сами тестируют веб-приложения, кликают по элементам
- Новый Code Review - удобный просмотр изменений без постоянных переключений между файлами.
- Sandboxed Terminals - команды выполняются в безопасной среде без доступа в интернет.
- Team Commands - единые команды и настройки для всей команды разработчиков.
- Voice Mode - управление агентом голосом и голосовые запросы.
- Ускоренный LSP - быстрее работает автодополнение и анализ кода в больших проектах.
- Plan Mode in Background - планирование и выполнение задач теперь можно разделять и выполнять параллельно.
- Cloud Agents - мгновенный запуск и высокая стабильность (99.9% аптайма).
- Enterprise-функции - централизованный контроль, hooks и аудит действий пользователей.
Подробнее: https://cursor.com/changelog/2-0
@ai_machinelearning_big_data
#Cursor
@Python_Community_ru
Новая версия делает работу с агентами и кодом ещё гибче и удобнее:
- Мульти-агенты - теперь можно запускать до 8 агентов параллельно, каждый работает в своей изолированной копии кода.
- Composer: первая собственная агентская модель Cursor, которая оптимизирована под длинный контекст и инструменты (с производительностью в ~4× выше, по сравнению с аналогичными по «интеллекту» моделями.)
- Backend-абстракция - легко переключаться между локальной системой, виртуальной машиной или базой данных.
- Встроенный Browser - агенты теперь сами тестируют веб-приложения, кликают по элементам
- Новый Code Review - удобный просмотр изменений без постоянных переключений между файлами.
- Sandboxed Terminals - команды выполняются в безопасной среде без доступа в интернет.
- Team Commands - единые команды и настройки для всей команды разработчиков.
- Voice Mode - управление агентом голосом и голосовые запросы.
- Ускоренный LSP - быстрее работает автодополнение и анализ кода в больших проектах.
- Plan Mode in Background - планирование и выполнение задач теперь можно разделять и выполнять параллельно.
- Cloud Agents - мгновенный запуск и высокая стабильность (99.9% аптайма).
- Enterprise-функции - централизованный контроль, hooks и аудит действий пользователей.
Подробнее: https://cursor.com/changelog/2-0
@ai_machinelearning_big_data
#Cursor
@Python_Community_ru
Cursor
New Coding Model and Agent Interface · Cursor
Built to make you extraordinarily productive, Cursor is the best way to code with AI.
🖥 PSF отвергла грант $1.5 млн на усиление безопасности PyPI
Python Software Foundation отказалась от гранта Национального научного фонда США на $1.5 млн из-за условий, запрещающих любые инициативы, которые продвигают или поддерживают DEI. Ограничение распространялось не только на работы по гранту, а на всю деятельность организации в период действия финансирования, что создавало юридические и финансовые риски.
Почему отказали:
- Условия противоречат миссии PSF, где ценности разнообразия, равенства и инклюзивности закреплены явно.
- В случае трактовки нарушения NSF может потребовать вернуть уже израсходованные средства.
- Организация не готова сворачивать DEI-политику ради получения финансирования.
На что планировалось потратить деньги:
- Построить проактивную защиту PyPI: проверка пакетов до публикации, а не после.
- Автоматическое ревью с анализом функциональности и сигнатур типовых вредоносных техник.
- Инструменты, пригодные для адаптации в других экосистемах пакетов вроде npm и crates.io.
Контекст:
- Сумма для PSF заметная: бюджет порядка нескольких миллионов долларов в год при небольшой команде.
- Отказ — это выбор в пользу долгосрочного доверия сообщества и сохранения открытой, инклюзивной культуры.
Вывод:
- Безопасность экосистемы — приоритет, но не ценой отказа от базовых принципов. PSF продолжит укреплять защиту цепочки поставки Python-пакетов без компромиссов с миссией.
Новость: https://pyfound.blogspot.com/2025/10/NSF-funding-statement.html
@Python_Community_ru
Python Software Foundation отказалась от гранта Национального научного фонда США на $1.5 млн из-за условий, запрещающих любые инициативы, которые продвигают или поддерживают DEI. Ограничение распространялось не только на работы по гранту, а на всю деятельность организации в период действия финансирования, что создавало юридические и финансовые риски.
Почему отказали:
- Условия противоречат миссии PSF, где ценности разнообразия, равенства и инклюзивности закреплены явно.
- В случае трактовки нарушения NSF может потребовать вернуть уже израсходованные средства.
- Организация не готова сворачивать DEI-политику ради получения финансирования.
На что планировалось потратить деньги:
- Построить проактивную защиту PyPI: проверка пакетов до публикации, а не после.
- Автоматическое ревью с анализом функциональности и сигнатур типовых вредоносных техник.
- Инструменты, пригодные для адаптации в других экосистемах пакетов вроде npm и crates.io.
Контекст:
- Сумма для PSF заметная: бюджет порядка нескольких миллионов долларов в год при небольшой команде.
- Отказ — это выбор в пользу долгосрочного доверия сообщества и сохранения открытой, инклюзивной культуры.
Вывод:
- Безопасность экосистемы — приоритет, но не ценой отказа от базовых принципов. PSF продолжит укреплять защиту цепочки поставки Python-пакетов без компромиссов с миссией.
Новость: https://pyfound.blogspot.com/2025/10/NSF-funding-statement.html
@Python_Community_ru
🤔3👍2
Управление мониторами с Monitor Control 🖥️
Приложение для управления внешними мониторами через системный трей. Позволяет настраивать яркость, громкость и переключать источники входа с плавной анимацией и поддержкой нескольких мониторов.
🚀Основные моменты:
- Управление яркостью и громкостью с анимацией
- Переключение между HDMI, DisplayPort и USB-C
- Поддержка нескольких мониторов
- Современный интерфейс в системном трее
- Автоматическое обновление информации о мониторах
📌 GitHub: https://github.com/Toxblh/Monic
@Python_Community_ru
Приложение для управления внешними мониторами через системный трей. Позволяет настраивать яркость, громкость и переключать источники входа с плавной анимацией и поддержкой нескольких мониторов.
🚀Основные моменты:
- Управление яркостью и громкостью с анимацией
- Переключение между HDMI, DisplayPort и USB-C
- Поддержка нескольких мониторов
- Современный интерфейс в системном трее
- Автоматическое обновление информации о мониторах
📌 GitHub: https://github.com/Toxblh/Monic
@Python_Community_ru
Конкурс для тех, кто не боится высоких нагрузок 😎
Мы в VK вовсю готовимся к Highload++. Привезём много крутого — и вы обязаны это увидеть.
Поэтому мы решили разыграть 2 билета на ивент 💙
Условия простые:
✅подпишитесь на каналы @vkjobs, @backendhubvk и @frontendhubvk
✅нажмите кнопку «Участвовать»
✅увеличьте свои шансы и пригласите друга — вместе веселее!
Информацию об организаторе, правилах и призах ищите здесь (https://bit.ly/4qBe5nZ?erid=2VtzqvRvmpT), а результаты конкурса мы подведём 1 ноября. Удачи!
Участников: 0
Призовых мест: 2
Дата розыгрыша: 16:00, 01.11.2025 MSK (2 дня)
@Python_Community_ru
Мы в VK вовсю готовимся к Highload++. Привезём много крутого — и вы обязаны это увидеть.
Поэтому мы решили разыграть 2 билета на ивент 💙
Условия простые:
✅подпишитесь на каналы @vkjobs, @backendhubvk и @frontendhubvk
✅нажмите кнопку «Участвовать»
✅увеличьте свои шансы и пригласите друга — вместе веселее!
Информацию об организаторе, правилах и призах ищите здесь (https://bit.ly/4qBe5nZ?erid=2VtzqvRvmpT), а результаты конкурса мы подведём 1 ноября. Удачи!
Участников: 0
Призовых мест: 2
Дата розыгрыша: 16:00, 01.11.2025 MSK (2 дня)
@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 PostgreSQL: LATERAL JOIN
Иногда тебе нужно выполнить подзапрос, который зависит от строки из внешнего запроса, например, выбрать последние покупки для каждого пользователя или самые дорогие товары из категории.
Обычный JOIN не справится, но есть мощный инструмент - LATERAL JOIN. Он позволяет вызывать подзапрос для каждой строки внешней таблицы, сохраняя контекст.
Этот приём часто заменяет громоздкие запросы или оконные функции и работает значительно быстрее на PostgreSQL.
Используй его, когда нужно сделать что-то «на лету» для каждой записи.
@Python_Community_ru
Иногда тебе нужно выполнить подзапрос, который зависит от строки из внешнего запроса, например, выбрать последние покупки для каждого пользователя или самые дорогие товары из категории.
Обычный JOIN не справится, но есть мощный инструмент - LATERAL JOIN. Он позволяет вызывать подзапрос для каждой строки внешней таблицы, сохраняя контекст.
Этот приём часто заменяет громоздкие запросы или оконные функции и работает значительно быстрее на PostgreSQL.
Используй его, когда нужно сделать что-то «на лету» для каждой записи.
@Python_Community_ru
🤖 OpenTrack: Открытая система трекинга движений
OpenTrack — это кодовая база для трекинга движений гуманоидов, использующая MuJoCo для симуляции и поддерживающая многопроцессорное обучение. Проект ориентирован на исследование и разработку в области робототехники.
🚀 Основные моменты:
- Открытый исходный код для трекинга движений
- Поддержка многопроцессорного обучения
- Использует MuJoCo для симуляции
- Реализует различные сценарии обучения
📌 GitHub: https://github.com/GalaxyGeneralRobotics/OpenTrack
@Python_Community_ru
OpenTrack — это кодовая база для трекинга движений гуманоидов, использующая MuJoCo для симуляции и поддерживающая многопроцессорное обучение. Проект ориентирован на исследование и разработку в области робототехники.
🚀 Основные моменты:
- Открытый исходный код для трекинга движений
- Поддержка многопроцессорного обучения
- Использует MuJoCo для симуляции
- Реализует различные сценарии обучения
📌 GitHub: https://github.com/GalaxyGeneralRobotics/OpenTrack
@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Python трюк: безопасное завершение потоков через флаг события
Многие просто daemon=True ставят и надеются, что всё само завершится. Но это ломает контроль и может привести к утечкам. Проще и надёжнее — использовать общий Event, чтобы уведомлять потоки о завершении.
import threading
import time
stop_event = threading.Event()
def worker():
while not stop_event.is_set():
print("Работаю...")
time.sleep(0.3)
print("Останавливаюсь корректно.")
thread = threading.Thread(target=worker)
thread.start()
time.sleep(1.2)
stop_event.set() # посылаем сигнал остановки
thread.join()
print("Все потоки завершены корректно.")
@Python_Community_ru
Многие просто daemon=True ставят и надеются, что всё само завершится. Но это ломает контроль и может привести к утечкам. Проще и надёжнее — использовать общий Event, чтобы уведомлять потоки о завершении.
import threading
import time
stop_event = threading.Event()
def worker():
while not stop_event.is_set():
print("Работаю...")
time.sleep(0.3)
print("Останавливаюсь корректно.")
thread = threading.Thread(target=worker)
thread.start()
time.sleep(1.2)
stop_event.set() # посылаем сигнал остановки
thread.join()
print("Все потоки завершены корректно.")
@Python_Community_ru
🔥2
⚡️ Pytest markers: ускоряем разработку и тестирование
Когда проект растёт — часть тестов становится медленной (ML-тренировка, GPU-инференс, интеграционные проверки).
Pytest позволяет помечать такие тесты и запускать только нужные группы.
В примере:
- @pytest.mark.fast — быстрые юнит-тесты
- @pytest.mark.slow — долгие тесты (например, обучение модели)
- @pytest.mark.gpu — тесты, требующие GPU
Команды:
# Запустить только быстрые
pytest -m fast
# Запустить всё, кроме slow
pytest -m "not slow"
Идеально, когда нужно:
- быстро прогнать код перед пушем
- запускать тяжёлые тесты по расписанию/в CI
- разделить ML-тесты по ресурсам (CPU/GPU)
Используйте маркеры — и ваша разработка станет быстрее и чище 🧪⚙️
#pytest #python #testing #mlengineering #unittesting #devtools
@Python_Community_ru
Когда проект растёт — часть тестов становится медленной (ML-тренировка, GPU-инференс, интеграционные проверки).
Pytest позволяет помечать такие тесты и запускать только нужные группы.
В примере:
- @pytest.mark.fast — быстрые юнит-тесты
- @pytest.mark.slow — долгие тесты (например, обучение модели)
- @pytest.mark.gpu — тесты, требующие GPU
Команды:
# Запустить только быстрые
pytest -m fast
# Запустить всё, кроме slow
pytest -m "not slow"
Идеально, когда нужно:
- быстро прогнать код перед пушем
- запускать тяжёлые тесты по расписанию/в CI
- разделить ML-тесты по ресурсам (CPU/GPU)
Используйте маркеры — и ваша разработка станет быстрее и чище 🧪⚙️
#pytest #python #testing #mlengineering #unittesting #devtools
@Python_Community_ru
👍1