Gabe Rudy
gaberudy.bsky.social
Gabe Rudy
@gaberudy.bsky.social
Build clinical genetics software @ Golden Helix. Rare variant analysis, data science, precision medicine and the caring about good design and user experience.
11/ Docker-ized attempt
The Linux stack (FreeType) sometimes adds stem thickening even with AA off. After too much time sunk, I gave up and ran this on an older Mac, but I’m all ears if anyone has figured this out. PRs/tips welcome! #fonts #freetype
September 1, 2025 at 5:50 PM
10/ Result
Static, glanceable, high-contrast board that updates a few times/day and survives sunlight + power naps. Kids love the red “important” markers. (attach a rendered PNG)
September 1, 2025 at 5:50 PM
9/ Rendering tricks
No anti-aliasing. Headless Firefox prefs:
gfx.text.disable-aa=true
layout.css.devPixelsPerPx=1.0
webrender.software=true
CSS: text-rendering: geometricPrecision. Palette is black/white/red only. Fonts: Arial. Pixels land on pixels.
September 1, 2025 at 5:49 PM
8/ Local news
Parse my local station KBZK RSS, keep only /local-news/, drop not relevant towns, show top titles. It’s lightweight and keeps the board relevant. #RSS
September 1, 2025 at 5:49 PM
7/ Weather & alerts
Fetch current temp, hi/lo, precip, sunrise/sunset via Open-Meteo; pull NWSactive alerts for my lat/lon. Compact, legible block on the right with red pill for “Today”. #weather #NWS
September 1, 2025 at 5:48 PM
6/ Calendar
Load the Google family iCal (secret URL), render a 2-day FullCalendartime-grid with overlap handling. All-day events are pulled into the right sidebar for notability. #FullCalendar #iCal
September 1, 2025 at 5:48 PM
5/ Render pipeline
Node app builds a static HTML “board”, Puppeteer (Firefox) rasterizes to PNG, I quantize to BW+Red (minimally need), then upload. HTML in, pixels out. #Puppeteer
September 1, 2025 at 5:48 PM
4/ Recreating upload in Node
I mirrored the browser protocol: pack pixels → 1-bit planes (black + red), nibble encode to 'a'..'p', weird 162/164 column shuffle per row, chunk at 30k, POST /LOADA, /LOADB, then /SHOW. Now it’s fully scriptable. #TypeScript
September 1, 2025 at 5:48 PM
3/ ESP32 web server
Arduino (ESP32 core 2.0.17), set up creds for example wifi web server, flash. The device hosts a simple UI and 4 endpoints: /EPD, /LOADA, /LOADB, /SHOW. I used the UI to validate refresh speed (B v1 is snappier). #Arduino
September 1, 2025 at 5:48 PM
2/ Hardware
• Waveshare 12.48″ e-Paper (B, black+red)
• ESP32 dev board
• Mounting kit
• USB-C power brick (tucks in back on mounting kit pins)
Tri-color lets me use red for importance and errors. #epaper #ESP32 #IoT
September 1, 2025 at 5:48 PM
What’s your go to for power supplies for the C64?
February 21, 2025 at 3:43 PM
I don’t think it makes sense to use zless (vs zcat) when piping in this context as there will be no pageination
January 9, 2025 at 6:47 PM
Nice, thanks for the recommendation.
December 26, 2024 at 11:01 PM
I’ve watched a lot of Colin on his YouTube channel This Does Not Compute do these recaps, but I’m not confident in my soldering abilities. Do you use a specialized desoldering iron? How hard is this to skill to learn?
December 26, 2024 at 10:43 PM
Nice hack!
December 19, 2024 at 1:26 PM
But is this helpful? What do you get out of raw data visualization?
December 6, 2024 at 1:10 PM