Written by hand, mostly self-hosted on my own two servers, and watched by the status board below. More of my code is on GitHub, and the numbers from it are live at the bottom of the page.
Drives building HVAC and lighting from room bookings. It reads confirmed events from CollegeNET 25Live and writes them into the building automation system as BACnet schedule exceptions, so booked rooms are comfortable when people arrive and stand down when they leave. Occupancy rolls up from room to floor to building, with run-up and run-down buffers per room.
Vendor-neutral by design: Automated Logic WebCTRL, Schneider EcoStruxure, Tridium Niagara and any BTL-listed controller in one run. It fails safe (it won’t stand a campus down because 25Live had a bad day), proves changes with validate and dry run, and ships as one Docker container with a web UI, Entra ID sign-in and email, Slack or Teams reports.
The saints of the day, kept on the day the Church remembers their death as their birthday into heaven. It follows both the current General Roman Calendar, with the proper of the United States as kept in the Province of Atlanta, and the Roman Missal of 1962, with the day’s readings, prayers, a calendar and an index of saints.
Requiescant keeps the anniversaries of those I love who have gone before us, as a calendar anyone can subscribe to, with a reminder a week ahead to ask for a Mass.
Drives the hidden transmitter (the “fox”) for amateur radio fox hunts. It synthesizes a morse identifier from any callsign, no recordings needed, and keys it on a loop with quiet gaps, so hunters can direction-find the signal. Speed, tone, repeats, randomized gaps and a transmit window are all flags.
Feed the computer’s audio into a transmitter’s VOX and it runs a hunt unattended. Open source under the GPL, with a CI build.
Java 26
Morse synthesis
GitHub Actions
GPL-3.0
github.com/rbibby53/…
04Homelab · two nodes
GLaDOS & Wheatley
Two servers, named for the two AIs in Portal. GLaDOS is the main node at home: it runs every site on this page, file distribution, a TV tuner and remote KVM, all behind one reverse proxy with shared security headers. Wheatley is the north node at the lake house, with its own gateway and proxy at bibby.cloud.
Backups are tested, which is the part people skip. The proxy config has its own linter, written after a pasted block once quietly served the wrong app.
The front door to GLaDOS. It serves a different page depending on who’s asking: public visitors, the KSU network and my own LAN each get their own set of links, from one PHP template.
Everything a server can see about your connection, at first paint: TLS version and cipher, session reuse, kernel RTT, protocol and ports. Then what it can’t: geolocation, BGP origin, IPv6 anatomy, and latency on a globe.
One curl-able update and repair script per platform (Arch, Debian, Fedora, openSUSE, macOS, Windows, Docker hosts and Bitfocus Companion Pis), each checked against a signed SHA-256 manifest and re-hashed live on every page load.
My amateur radio home page, dressed as a green-screen CRT terminal with a typed boot sequence, an amber mode that PHP applies before first paint, and a live UTC clock for logging contacts.
A filterable portrait gallery with a lightbox that works without JavaScript. A Node build encodes every photo to AVIF and JPEG at five sizes, strips GPS, reads camera settings from EXIF, and draws link-preview cards that rotate daily.
Plain PHP with no framework and no database. GitHub stats and the status board refresh in the background after the page is sent, so no visitor ever waits on an API. Strict CSP, every chart drawn server-side as SVG, its own page for every HTTP error, and a résumé that prints properly.