HAMAPI is a callsign watchlist and notification service for APRS. It lets users subscribe to callsigns they want to monitor and receive periodic APRS message notifications when those callsigns are active on the network.
What it does:
| #!/usr/bin/env python3 | |
| """Quick diagnostic: show station and packet age from packets.db.""" | |
| import sqlite3 | |
| import time | |
| import sys | |
| from datetime import datetime, timezone | |
| DB_PATH = "/tmp/direwolf-dashboard/packets.db" | |
| if len(sys.argv) > 1: | |
| DB_PATH = sys.argv[1] |
Sustained volume migration failures (InvalidVolume: volume is not assigned to a host) affecting 60,000+ operations over 7+ days. Root cause identified as a race condition in the NetApp REST client session handling. A fix has been deployed to QA.
cinder.exception.InvalidVolume: Invalid volume: volume is not assigned to a hostvolume_migrate (specifically native_cross_vc_migrate_volume → _migrate_unattached → get_file_sizes_by_dir)Samuel William "Sam" Cordell (born Samuel C. Morgan)
| # ILI9486.py — MHS35b/MHS35 variant (Pi 5 compatible, lgpio) | |
| # | |
| # Original: SirLefti/Python_ILI9486 (Waveshare) | |
| # Modified: craigerl/hemna — MHS35b/MHS35 support + Pi 5 | |
| # | |
| # Key differences from original: | |
| # - Uses lgpio (Pi 5 compatible) instead of RPi.GPIO | |
| # - regwidth=16: commands AND register data sent as [0x00, byte] pairs | |
| # - Pixel data (bulk framebuffer writes) sent as raw bytes | |
| # - Pixel format: RGB565 (0x55) instead of RGB666 (0x66) |
| # ILI9486_MHS35b.py — MHS35b variant support for Python_ILI9486 | |
| # | |
| # Drop-in subclass of ILI9486 that provides: | |
| # 1. MHS35b-specific init sequence (manufacturer registers, power/VCOM tuning) | |
| # 2. RGB565 pixel format (16-bit) instead of RGB666 (18-bit) | |
| # | |
| # Usage: | |
| # from ILI9486_MHS35b import ILI9486_MHS35b, image_to_data_565 | |
| # spi = SpiDev() | |
| # spi.open(0, 0) |
| # Copyright 2025 OpenStack Foundation | |
| # | |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may | |
| # not use this file except in compliance with the License. You may obtain | |
| # a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # Copyright 2026 SAP SE | |
| # All Rights Reserved. | |
| # | |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may | |
| # not use this file except in compliance with the License. You may obtain | |
| # a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software |
| #!/usr/bin/env -S uv run --script | |
| # /// script | |
| # dependencies = [ | |
| # "rich", | |
| # ] | |
| # /// | |
| import os | |
| import shutil | |
| import string |