Putting a dumb weather station on the internet
Колин Коглен рассказывает, как подключил к интернету недорогую метеостанцию с Aliexpress, используя дешёвый SDR-приёмник для приёма её сигналов и софт rtl_433 для их декодирования. Полученные данные он отправляет через скрипт на PowerShell в APRS — любительскую сеть для обмена погодными данными.
Сначала он парсит JSON-данные с метеостанции, фильтруя только нужные значения температуры и влажности, и игнорируя помехи от соседских датчиков. Эти данные затем передаются утилитой aprs-weather-submit в сеть APRS, где они отображаются на сайтах вроде APRS.fi.
Колин отмечает, что несмотря на кажущуюся сложность, решение достаточно простое и дешёвое. SDR-приёмник за 30$ подключается к компьютеру, ПО бесплатно, а APRS позволяет публиковать данные анонимно, без регистрации. Это демонстрирует, как открытые стандарты и ПО позволяют элегантно решать задачи, превращая простой девайс в часть интернета вещей.
Комментарии (36)
- Обсуждение показало, что "IoT" часто сводится к простейшему датчику и 40-летнему протоколу, который превосходит коммерческие API.
- Участники обсуждали возможность поделиться данными с другими энтузиастами и упомянули такие проекты, как Citizen Weather Observer Program и Blitzortung.
- Также обсудили безопасность и надежность таких устройств, а также их влияние на приватность.
- Участники также поделились личным опытом и обсудили, как можно было бы улучшить или расширить такие проекты.
Murex – An intuitive and content aware shell for a modern command line
Murex.Rocks
Интуитивная и контекстно-ориентированная оболочка для современной командной строки.
Современная оболочка для всех
Murex предлагает множество уникальных возможностей:
Контекстная осведомленность
Нативная поддержка форматов данных: JSON, YAML, CSV и других. Типы данных могут быть явно приведены или выведены автоматически.
Выражения
Умная обработка переменных и выражений для предотвращения ошибок. Больше не нужно беспокоиться о специальных символах в именах файлов.
Интерактивность
Интуитивная интерактивная оболочка с подсказками из man-страниц и интеграцией с ИИ.
Расширяемость
Встроенный менеджер пакетов для простого обмена конфигурациями и переноса окружения между машинами.
Начало работы
- Тур по языку для старта
- Rosetta Stone как шпаргалка с сравнением Bash
- Интерактивная оболочка для использования в командной строке
Простая установка
Установите murex через ваш пакетный менеджер:
macOS:
brew install murex
# или
port install murex
Arch Linux:
wget -O PKGBUILD 'https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=murex'
makepkg --syncdeps --install
FreeBSD:
pkg install murex
Другие варианты в документе установки.
Лицензия GPLv2, Copyright © 2017-present Laurence Morgan
Комментарии (46)
- Пользователи столкнулись с техническими проблемами при установке и запуске Murex, включая ошибки с aspell, HTTPS-протоколом и системными вызовами.
- Обсуждаются исторические и культурные отсылки в названии оболочки (Murex — моллюск, источник пурпурного красителя, значимый для финикийцев и иудеев).
- Поднимается вопрос о целесообразности изучения нового синтаксиса, несовместимого с Bash, и необходимости убедительных преимуществ для перехода.
- Murex сравнивается с альтернативными оболочками, в частности с Nushell и PowerShell, отмечается сходство в подходе к работе с структурированными данными.
- Критикуется маркетинг и описание проекта за отсутствие конкретных примеров и явных преимуществ перед существующими решениями.
- Отмечается, что для широкого применения скрипты должны быть совместимы с Bash, что ставит под вопрос нишевый потенциал Murex.
- Некоторые пользователи выражают заинтересованность в тестировании Murex при условии, что он будет стабильным и быстрым.
Stop writing CLI validation. Parse it right the first time
- "строка" – ищет фразу целиком, без учёта регистра
- from:ник – посты конкретного автора
- lang:код – фильтр по языку (en, ru…)
- #тег – по хэштегу
- условие условие – логическое И
- условие OR условие – логическое ИЛИ
- ( ) – группировка
Комментарии (102)
- Спор о «парсинге, а не валидации»: кто-то пишет собственные проверки, кто-то берёт готовые библиотеки (Zod, Clap, argparse, docopt, yargs и др.).
- Rust/PowerShell/argparse хвалят за строгие типы и понятные ошибки; JS/TS-рантайм критикуют за лишние зависимости.
- Проблема: как сообщить сразу ВСЕ ошибки, а не падать на первой; как выдавать человекочитаемые сообщения.
- «Непредставимые состояния» хороши в ядре программы, но на границе ввода нужны гибкие структуры и recovery.
- CLI ≠ API: парсим только синтаксис, доменные ограничения уносят глубже; иначе получаем перегруженный интерфейс.