Настольный радар на Raspberry Pi - с самолётами, кораблями и переговорами диспетчеров
FlightScnr Pi превращает Raspberry Pi и круглый 4-дюймовый сенсорный экран в трекер транспорта. На дисплее - тёмная карта, вращающийся луч и самолёты поблизости. Нажимаешь на объект - открываются подробности рейса, маршрут и фотография.
Что умеет:
* Отслеживать самолёты по данным Flightradar24, adsb.fi или собственного приёмника через dump1090/readsb.
* Показывать суда при подключении источника AIS.
* Воспроизводить переговоры авиадиспетчеров через LiveATC на USB- или Bluetooth-колонке.
* Отображать погоду, осадки, пожары и землетрясения.
* Переключаться между радаром, картой маршрута и часами с погодой.
Настройка и обновления доступны через локальный веб-интерфейс. Для повседневного использования SSH не нужен.
Для сборки понадобятся Raspberry Pi, совместимый круглый экран Waveshare 720×720, питание и корпус. Для выбранных источников данных могут потребоваться API-ключи.
Код доступен по CC BY-NC-SA 4.0 - с ограничением на коммерческое использование. В документации есть инструкции по сборке и установке.
https://github.com/yashmulgaonkar/FlightScnr_Pi
FlightScnr Pi превращает Raspberry Pi и круглый 4-дюймовый сенсорный экран в трекер транспорта. На дисплее - тёмная карта, вращающийся луч и самолёты поблизости. Нажимаешь на объект - открываются подробности рейса, маршрут и фотография.
Что умеет:
* Отслеживать самолёты по данным Flightradar24, adsb.fi или собственного приёмника через dump1090/readsb.
* Показывать суда при подключении источника AIS.
* Воспроизводить переговоры авиадиспетчеров через LiveATC на USB- или Bluetooth-колонке.
* Отображать погоду, осадки, пожары и землетрясения.
* Переключаться между радаром, картой маршрута и часами с погодой.
Настройка и обновления доступны через локальный веб-интерфейс. Для повседневного использования SSH не нужен.
Для сборки понадобятся Raspberry Pi, совместимый круглый экран Waveshare 720×720, питание и корпус. Для выбранных источников данных могут потребоваться API-ключи.
Код доступен по CC BY-NC-SA 4.0 - с ограничением на коммерческое использование. В документации есть инструкции по сборке и установке.
https://github.com/yashmulgaonkar/FlightScnr_Pi
🔥8❤3👍2
Shed Skin переводит ограниченное подмножество Python 3 в оптимизированный C++. На выходе можно получить отдельную программу или модуль расширения, который импортируется в обычный Python-проект.
Типы инструмент выводит автоматически, поэтому аннотации добавлять не обязательно. Но код должен соответствовать ограничениям статической типизации.
Что со скоростью? На наборе из более чем 80 программ авторы получили среднее ускорение в 20 раз относительно CPython 3.14, медианное - в 12 раз. Это результаты конкретных примеров, а не обещание для любого проекта.
Ограничения существенные:
* Поддерживается только часть Python.
* Из стандартной библиотеки доступны около 25 модулей, включая
random и re.* Произвольные сторонние библиотеки использовать нельзя.
* Вложенные функции и переменное число аргументов не поддерживаются.
Проект рассчитан прежде всего на небольшие вычислительные участки кода, которые можно отделить от внешних зависимостей. Для совместимости может потребоваться серьёзный рефакторинг.
В репозитории есть примеры, включая трассировку лучей, шахматоподобные игры и DOOM.
https://github.com/shedskin/shedskin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍4❤3🎉1
🔥 Django
Пример:
Особенно полезно для динамических фильтров:
Но есть ещё более важный момент.
При фильтрации через related models два отдельных .filter() могут привести к двум JOIN и неожиданно изменить смысл запроса.
Это уже может искать одну запись по имени, а другую - по количеству treats.
Если собрать условия в одном .filter() или через Q(), Django использует один JOIN и проверяет условия на одной и той же связанной записи.
Очень полезный приём для сложных QuerySet, динамического поиска и composable business filters.
https://www.better-simple.com/django/2026/09/09/nifty-feature-q-objects/
Q() objects — один из самых полезных инструментов ORM, который многие используют слишком редкоQ() позволяет собирать сложные условия для WHERE, комбинируя их через AND, OR и NOT.Пример:
Pet.objects.filter(
Q(last_given_treats__isnull=True)
| Q(last_given_treats__lte=timezone.now() - timedelta(days=1)),
treats_needed__gt=F("treats_given"),
)
Особенно полезно для динамических фильтров:
q = Q()
for term in search_term.split():
q |= Q(name__icontains=term)
Pet.objects.filter(q)
Но есть ещё более важный момент.
При фильтрации через related models два отдельных .filter() могут привести к двум JOIN и неожиданно изменить смысл запроса.
Species.objects.filter(
pets__name__icontains="meowy"
).filter(
pets__treats_given=0
)
Это уже может искать одну запись по имени, а другую - по количеству treats.
Если собрать условия в одном .filter() или через Q(), Django использует один JOIN и проверяет условия на одной и той же связанной записи.
Очень полезный приём для сложных QuerySet, динамического поиска и composable business filters.
https://www.better-simple.com/django/2026/09/09/nifty-feature-q-objects/
👍7❤5🔥5
🔥 Один из лучших обучающих курсов на StepiK по SQL
SQL можно знать годами и всё равно теряться, когда запрос внезапно начинает тормозить в проде.
Этот курс про уровень, где ты не просто пишешь SELECT, а понимаешь, что происходит внутри MySQL, почему запрос работает медленно и как ускорить его без новых проблем. Здесь разбираются EXPLAIN, индексы, CTE, оконные функции, транзакции, аналитические паттерны, legacy SQL и работа с AI-ассистентами.
Каждый урок - с практикой и реальными SQL-задачами на MySQL 8 с автопроверкой.
После курса ты сможешь увереннее разбирать чужой код, находить узкие места и предлагать решения, которые действительно работают.
Для подписчиков скидка - 49% в течение 2 суток: https://stepik.org/a/298827/
SQL можно знать годами и всё равно теряться, когда запрос внезапно начинает тормозить в проде.
Этот курс про уровень, где ты не просто пишешь SELECT, а понимаешь, что происходит внутри MySQL, почему запрос работает медленно и как ускорить его без новых проблем. Здесь разбираются EXPLAIN, индексы, CTE, оконные функции, транзакции, аналитические паттерны, legacy SQL и работа с AI-ассистентами.
Каждый урок - с практикой и реальными SQL-задачами на MySQL 8 с автопроверкой.
После курса ты сможешь увереннее разбирать чужой код, находить узкие места и предлагать решения, которые действительно работают.
Для подписчиков скидка - 49% в течение 2 суток: https://stepik.org/a/298827/
❤6👍2🔥2
🔥 Package Doctor - необычный security-сканер для Python-зависимостей
Он отвечает не только на вопрос «есть ли у пакета CVE?», а на более практичный:
если завтра в этой зависимости найдут уязвимость, вы реально под угрозой и есть ли вообще кому её исправлять?
Package Doctor оценивает сразу две вещи:
- находится ли библиотека на trust boundary: auth, загрузка файлов, десериализация, crypto, URL parsing, model loading и т.д.
- есть ли у проекта реальная способность быстро выпустить фикс
Плюс инструмент:
- проверяет pinned-версии по advisory-базам
- учитывает CISA KEV и EPSS
- AST-парсит ваш код и показывает, где зависимость реально импортируется
- отличает abandoned package от просто редко обновляемого
- умеет работать как hook для Claude Code и блокировать подозрительную зависимость до
Интересный подход: не засыпать разработчика сотнями CVE, а приоритизировать именно те зависимости, где одновременно есть экспозиция + слабая поддержка.
Автор отдельно рекомендует использовать его вместе с
https://github.com/binuka200/package-doctor
Он отвечает не только на вопрос «есть ли у пакета CVE?», а на более практичный:
если завтра в этой зависимости найдут уязвимость, вы реально под угрозой и есть ли вообще кому её исправлять?
Package Doctor оценивает сразу две вещи:
- находится ли библиотека на trust boundary: auth, загрузка файлов, десериализация, crypto, URL parsing, model loading и т.д.
- есть ли у проекта реальная способность быстро выпустить фикс
Плюс инструмент:
- проверяет pinned-версии по advisory-базам
- учитывает CISA KEV и EPSS
- AST-парсит ваш код и показывает, где зависимость реально импортируется
- отличает abandoned package от просто редко обновляемого
- умеет работать как hook для Claude Code и блокировать подозрительную зависимость до
pip installИнтересный подход: не засыпать разработчика сотнями CVE, а приоритизировать именно те зависимости, где одновременно есть экспозиция + слабая поддержка.
Автор отдельно рекомендует использовать его вместе с
pip-audit, а не вместо него.https://github.com/binuka200/package-doctor
🔥7❤5👍5
🔥 Qwen представила Qwen3.8-Omni-Flash - свою первую мультимодальную модель, изначально заточенную под агентные задачи.
Она одновременно работает с видео и аудио, умеет рассуждать по увиденному и услышанному, планировать действия и подключать инструменты. Среди сценариев — автоматический монтаж влогов, перевод коротких видео, создание пересказов фильмов и поиск нужных эпизодов в длинных записях.
По данным Qwen, на WildClawBench-MM и UniClawBench модель прибавила в среднем 19,5 пункта в агентных задачах и приблизилась к Gemini 3.8 Flash по работе с аудио и видео.
Контекст - 1 млн токенов. На OmniVideoBench активный поиск по длинному видео позволил сократить расход токенов на 51,8% по сравнению со статическим анализом.
Стоимость обработки видео при этом снизилась примерно на 89% относительно Qwen3.5-Omni-Plus.
Вместе с моделью Qwen открывает Qwen-MM-Plugins для мультимодальных инструментов. Qwen-Live Harness также будет опубликован отдельно.
https://qwen.ai/blog?id=qwen3.8-omni-flash
Она одновременно работает с видео и аудио, умеет рассуждать по увиденному и услышанному, планировать действия и подключать инструменты. Среди сценариев — автоматический монтаж влогов, перевод коротких видео, создание пересказов фильмов и поиск нужных эпизодов в длинных записях.
По данным Qwen, на WildClawBench-MM и UniClawBench модель прибавила в среднем 19,5 пункта в агентных задачах и приблизилась к Gemini 3.8 Flash по работе с аудио и видео.
Контекст - 1 млн токенов. На OmniVideoBench активный поиск по длинному видео позволил сократить расход токенов на 51,8% по сравнению со статическим анализом.
Стоимость обработки видео при этом снизилась примерно на 89% относительно Qwen3.5-Omni-Plus.
Вместе с моделью Qwen открывает Qwen-MM-Plugins для мультимодальных инструментов. Qwen-Live Harness также будет опубликован отдельно.
https://qwen.ai/blog?id=qwen3.8-omni-flash
👍7❤3