# A Summer What I've been upto this summer --- ## Apollo's Crib (Updates) ## Apollo's Palm ## Movie Monster ## Tower Forever ## GitGud ## LambentFlex ## Camerite ## Angler ## FeedPug ## Waxx --- ## Apollo's Crib Ambient Data Here Now -- ## Every Data Source - GTFS <!-- .element: class="fragment" --> - GBFS <!-- .element: class="fragment" --> - Air Quality <!-- .element: class="fragment" --> - Calendaring <!-- .element: class="fragment" --> - Lunar <!-- .element: class="fragment" --> - Tidal <!-- .element: class="fragment" --> - Weather <!-- .element: class="fragment" --> - Clocks <!-- .element: class="fragment" --> - Gitlab Runners <!-- .element: class="fragment" --> - Github Actions <!-- .element: class="fragment" --> - Package Tracking <!-- .element: class="fragment" --> -- ## Now With - Drought <!-- .element: class="fragment" --> - Pollen <!-- .element: class="fragment" --> - Aircraft Tracking <!-- .element: class="fragment" --> - Mailbox Tracking <!-- .element: class="fragment" --> - Exchange Rates <!-- .element: class="fragment" --> - Markets <!-- .element: class="fragment" --> -- ## Demo <!-- .slide: data-background-iframe="https://ac.neiam.org/p/p/Hackspace" data-background-interactive --> [ac.neiam.org/p/p/Hackspace](https://ac.neiam.org/p/p/Hackspace) --- ## Apollo's Palm Apollo's Crib In Your Hand -- ## The Hardware - LilyGo T4-S3 <!-- .element: class="fragment" --> - ESP32-S3 <!-- .element: class="fragment" --> - 2.41" AMOLED <!-- .element: class="fragment" --> - Rust + LVGL <!-- .element: class="fragment" --> -- ## No Polling - Subscribes over MQTT <!-- .element: class="fragment" --> - The board publishes on change <!-- .element: class="fragment" --> - The panel redraws when it does <!-- .element: class="fragment" --> - Same client as the phone <!-- .element: class="fragment" --> -- ## One Card, Whole Screen - Auto-advancing deck, tap to skip <!-- .element: class="fragment" --> - Type sized to the row count <!-- .element: class="fragment" --> - Routes in their own GTFS colours <!-- .element: class="fragment" --> - Stays on your card when the board changes <!-- .element: class="fragment" --> --- ## Movie Monster Every Movie, Every Theater, One Place -- <div class="cols">    </div> -- Live at https://monster.neiam.org --- # Tower Forever ### 3D ### Multiplayer ### Simtower -- DEMO at https://towerforever.com --- ## GitGud A Forge Of My Own Note: 366 commits since May 13. -- ## Everything A Forge Does - Git over HTTPS + SSH <!-- .element: class="fragment" --> - Issues & Pull Requests <!-- .element: class="fragment" --> - Code Review <!-- .element: class="fragment" --> - Wikis <!-- .element: class="fragment" --> - LFS <!-- .element: class="fragment" --> - CI (Forgejo Actions runners) <!-- .element: class="fragment" --> - Packages: Containers, Python, Elixir, Rust, Debian <!-- .element: class="fragment" --> - Federation (ForgeFed) <!-- .element: class="fragment" --> -- ## And Around It - Android app <!-- .element: class="fragment" --> - `gg` CLI <!-- .element: class="fragment" --> - Plasma panel widget <!-- .element: class="fragment" --> -- Hosting its own development at https://gg.neiam.co --- ## LambentFlex Lights Over UDP -- ## Same Firmware, New Chips - ESP32-C3 (the original) <!-- .element: class="fragment" --> - ESP32-C6 port <!-- .element: class="fragment" --> - WS2812 strands over RMT <!-- .element: class="fragment" --> - Over-the-air updates <!-- .element: class="fragment" --> -- ## LambentFlex I2S - LilyGo T-QT (ESP32-S3) <!-- .element: class="fragment" --> - MEMS microphone <!-- .element: class="fragment" --> - Level meter & 7-band spectrum <!-- .element: class="fragment" --> - Beat detection <!-- .element: class="fragment" --> - Published over MQTT <!-- .element: class="fragment" --> --- ## Camerite Every Camera Live -- ## In - RTSP <!-- .element: class="fragment" --> - RTMP <!-- .element: class="fragment" --> - WHIP <!-- .element: class="fragment" --> - MJPEG <!-- .element: class="fragment" --> -- ## Out - Low-Latency HLS <!-- .element: class="fragment" --> - Seekable DVR archive <!-- .element: class="fragment" --> - LiveView dashboard <!-- .element: class="fragment" --> - Android app <!-- .element: class="fragment" --> - A LAN agent, as a .deb <!-- .element: class="fragment" --> -- Live at https://camerite.neiam.co --- ## Angler Pixelfed In Elixir -- ## Drop-In - Wire-compatible with the Pixelfed app <!-- .element: class="fragment" --> - Mastodon-compatible core API <!-- .element: class="fragment" --> - Stories <!-- .element: class="fragment" --> - Groups <!-- .element: class="fragment" --> - ActivityPub federation <!-- .element: class="fragment" --> - Push notifications <!-- .element: class="fragment" --> -- Live at https://angler.neiam.org --- ## FeedPug RSS Together -- ## Features - One newsfeed <!-- .element: class="fragment" --> - Feeds fetched once, however many follow them <!-- .element: class="fragment" --> - Groups <!-- .element: class="fragment" --> - Reactions <!-- .element: class="fragment" --> - OPML in & out <!-- .element: class="fragment" --> - JSON API for devices <!-- .element: class="fragment" --> - Android app <!-- .element: class="fragment" --> --- ## Waxx Kanban With Rules -- ## The Columns Are A Graph - Draw the workflow once, on a template <!-- .element: class="fragment" --> - Spin up boards from it <!-- .element: class="fragment" --> - Cards only move along the edges <!-- .element: class="fragment" --> - Enforced in the UI and on the server <!-- .element: class="fragment" --> -- ## Also - Live multiplayer <!-- .element: class="fragment" --> - Custom fields & labels <!-- .element: class="fragment" --> - 2-D subboard grids <!-- .element: class="fragment" --> - Auto-archive <!-- .element: class="fragment" --> - Board history <!-- .element: class="fragment" --> - Android app <!-- .element: class="fragment" --> -- Live at https://waxx.neiam.co --- # fin ### gmp@gmp.io ---