Skip to content

Instantly share code, notes, and snippets.

View regulad's full-sized avatar

Parker Wahle regulad

View GitHub Profile
@regulad
regulad / VEGA.md
Last active November 10, 2026 15:45
Vega OS (Amazon Fire TV): what we've learned building an app for it

Vega OS: what we've learned

Platform facts about Vega OS 2.0, from a Fire TV Stick 4K Select. They come from building RosellaView, an AirPlay receiver for Vega; its protocol findings are in its own docs, such as AIRPLAY.md. These were found by experiment on one device in Developer Mode, not from Amazon documentation, unless a source is given. Dates are when each was established.

Related: RosellaView's AGENTS.md and DECISIONS.md, which several notes below cite by number (D4, D9…).

Device and OS

  • Fire TV Stick 4K Select, model AFTCA002. MediaTek MT8698, 1 GB RAM.
  • OS 2.0 (TV Ship/532), Linux 6.1.25-mainline+, armv7l userland (build armv7; the SDK also builds aarch64 and x86_64).
@regulad
regulad / README.md
Created October 20, 2026 05:27
IaC meta-project
@regulad
regulad / dell-st33-tpm-firmware-update-linux.md
Created October 11, 2026 00:43
Updating a Dell ST33 TPM's firmware from Linux with fwupd (Latitude 7420): step-laddered updates, fwupd proxy-device bug, version-encoded ACPI IDs

Updating a Dell ST33 TPM's firmware from Linux with fwupd

Notes from a Dell Latitude 7420 (Tiger Lake, discrete STMicro ST33 TPM 2.0) running Bluefin (Fedora 44, fwupd 2.1.8), October 2026. Dell only ships its TPM firmware as a Windows/DOS executable and has never published it to the LVFS, but fwupd can deliver it anyway. This is how, what went wrong on the way, and what we learned about the chip.

Everything below was done on one machine. It worked, but it is unsupported by Dell. You need the AC adapter connected, your LUKS recovery passphrase at hand (a TPM firmware update can clear the chip), and a tolerance for the small chance of a dead TPM.

@regulad
regulad / README.md
Last active October 5, 2026 02:29
macOS: SSH over Tailscale hangs when the LAN routes 100.64/10 to a Tailscale router (open-source tailscaled), and a LaunchDaemon fix

macOS: SSH over Tailscale hangs when the LAN routes 100.64/10 to a Tailscale router

Symptom

A Mac runs the open-source tailscaled, started at boot by launchd. After a restart it has its Tailscale address, and tailscale ping to it works, but TCP connections to it over Tailscale hang at connect:

$ ssh -v mymac
debug1: Connecting to mymac.tailnet.ts.net [100.101.102.103] port 22.
@regulad
regulad / .env
Created June 18, 2023 21:54
SOCKS5 Proxy using Tailscale Exit Node
TS_AUTHKEY=ts-auth-yattayatta
@regulad
regulad / test_oauth_tokens.py
Last active February 4, 2023 23:39
A test case that tests all of the known Twitter OAuth1a client tokens & secrets. Requires a dperson/torproxy to proxy requests.
# Copyright (c) 2023 by Parker Wahle. All rights reserved.
# Requires pytest, tweepy, pytest, pytest-selenium, selenium, & tor-python-easy
# Up a Tor proxy with https://github.com/markowanga/tor-python-easy
# I used the Chrome driver, but I've written code to use any driver.
import pytest
from selenium.webdriver import Proxy
from selenium.webdriver.chrome.options import Options as ChromeOptions
from selenium.webdriver.common.by import By
from selenium.webdriver.edge.options import Options as EdgeOptions
@regulad
regulad / miniprojects.md
Created December 31, 2022 02:46
Mini-Projects

Mini-Projects

Python

Here is a list of some of my Python Mini-Projects, normally devleoped in a day or less.

Most of them are packages published on pip and can be used in Python projects.

Bewarned, most of them are little more than proofs-of-concept. The ones below are ones that I am proud of, and there are probably more lost in the margins of my GitHub account.

@regulad
regulad / workflow.yml
Created June 9, 2021 15:12
Friday Night Funkin' CI
name: CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
jobs:
build:
strategy:
@regulad
regulad / README.md
Last active June 15, 2021 22:04
Easy Google TTS Stack
@regulad
regulad / app.py
Created June 2, 2021 18:51
Better subapp loading for aiohttp Subapps: inspired by discord.py's extension system.
import sys
import importlib
import importlib.util
from aiohttp import web
class SubappLoadingFailure(Exception):
def __init__(self, *args, subapp_name: str):
self.subapp_name = subapp_name