Sometimes all it takes is making something easy for others. Now that #liquidsoap supports configurable build paths, a proper #Homebrew formula is within reach — `brew install liquidsoap` could soon be all you need to start your own internet #radio station. 📻
github.com/savonet/liquidsoap/pull/5045
Posts by Attila Györffy 🦜
A lot of the rules in software have changed, but the timeless ones still matter. If you’re starting out, this book could be one of your most important resources. Bálint brings grounded judgment and the kind of clarity even experienced engineers need to revisit sometimes. Highly recommended. 📚
Thanks for sharing! My #PDS runs on #TrueNAS alongside ~30 containers, blobs on #RustFS (S3), public via #Cloudflare tunnel. Monitoring: custom Go #Prometheus exporter + #Vector log-to-metric pipeline for HTTP request stats. Will open-source both the exporter and Grafana dashboard soon.
Running this as an experiment — #self-hosting my own Bluesky PDS on my #homelab. Custom Prometheus exporter for repo, sequencer, and S3 metrics in Grafana. If this proves stable, I'll migrate my identity here permanently. AT Protocol makes it possible: your DID is yours, switching PDS is first-class
Took a moment to think about what #opensource actually means in 2026. Not the usual pitch about freedom and community — more about plumbing, Nebraska, and why nobody thinks about #infrastructure until it breaks.
www.attilagyorffy.com/blog/open-so...
Redesigned my personal site & consolidated everything — blog posts, essays from scout.engineer, curated tweets, projects — into one place. IBM Plex Mono throughout, five CSS variables for the entire theme, light and dark. No frameworks, no build step. Just HTML, CSS, and enough whitespace to breathe
If a function takes some dodgy raw string, interrogates it, validates it, and only then lets it into polite society as a proper type, that’s not New. That’s Parse. Apparently I now have opinions about Go naming. Tragic.
www.attilagyorffy.com/blog/stop-na...
I’ve open-sourced a Prometheus exporter for NVIDIA GPU telemetry via nvidia-smi. Built for homelab and single-node Docker setups where I want proper GPU #observability without unnecessary stack weight (existing exporters were heavily tied to Kubernetes).
github.com/attilagyorff...
Sh*t, I'm starting to like Go.
#Protip: Validate LLM responses before caching them. We cached truncated JSON (max_tokens cutoff), then every retry hit the same broken cache. Now: parse into a typed result first — if it fails, don't cache. On cache hit, re-validate; bad entries self-evict and retry fresh. Now our cache self-heals!
The general pattern is: use types to make invalid states or operations unrepresentable. #Protip
Other examples include:
- Distinguishing EmailAddress, NonEmptyString, HashedPassword from raw strings
- Units/measurements: preventing mixing meters, feet, euros, dollars, net vs gross values
- Permissions / capabilities: Only code with an AdminUser or CanDelete token to allow sensitive actions
...
Example: model an order as DraftOrder, SubmittedOrder, and PaidOrder. Then pay() only accepts SubmittedOrder. Trying to pay a draft won’t compile, so invalid state transitions are caught before the app even runs. #Protip
#Protip: Model state machines as types. Example: an order goes Draft → Submitted → Paid. Then pay(order) can require a SubmittedOrder, so paying a draft fails at compile time. The compiler blocks invalid transitions before the code ever runs.
I built a #Prometheus exporter for #AdGuard Home, designed around official best practices: synchronous pull-on-scrape, correct metric naming, bounded cardinality, and partial failure tolerance. Includes a ready-to-import #Grafana dashboard: github.com/attilagyorffy/prometheus-exporter-adguard-home
Announcing Audiqa — a local-first audio library manager for people who actually care about their music. Your files are first-class data, designed for long-term ownership, not platform lock-in. Now and long-term.
blog.audiqa.app/announcing-a...
Just published Docker Compose 🐳 configs for some apps missing from the official TrueNAS catalog. Currently Ghost, MailCatcher, Fizzy — all tested and ready to deploy via the TrueNAS Web UI, no more trial-and-error. Contributions are welcome! github.com/attilagyorff...
Just dug up a blog post I wrote in early 2007 about my first steps with #RubyOnRails. Which apparently means I started on Rails 1.2 — a version so old it ran on steam and optimism. URLs barely had REST, I barely had a beard. Wild times. 🫢
The navigation in Apple Music (formerly iTunes) app on macOS is absolutely terrible. It's no outlier in the swarm of "wanting it all" kind of modern music players that pack way too many things ― podcasts, videos and now even DMs (really Spotify?!) ― into their jammed-up UIs. Absolutely disgusting.
Spent the last few weeks writing a proper contribution guide for the #TrueNAS Apps Catalog. I love the project, but "just look at other apps" wasn’t quite cutting it. 😅
If you maintain OSS, remember: Your docs are your community’s infrastructure.
github.com/truenas/apps...
I should have known actually:)
Nog yourself out! 🤭 Also, am I delusional or the Nog song in the background could actually have been an inspiration for Freezeezy Peak’s amazing song? ❄️⛄️
A screenshot of a browser window showing an HTTP 500 error when trying to load the Ghost blog API documentation.
Every few years I try giving @ghost.org another chance as a feature-rich home for my blog… and, like clockwork, it greets me with a fresh slap in the face. Truly a tradition at this point.
As I've turned 40 today, I find myself thinking more about how I can help build a healthier, more public internet. In this article I argue that real freedom means owning your identity, data, and connections — not just spreading them across more servers.
www.scout.engineer/p/the-need-o...
I don’t think I’d ever said ‘it better be worthwhile’ until today — when a colleague asked for a PR review during my lunch break as I was watching a video about cute beavers 🦫 building a dam the mayor sadly said had to be removed.
At the center of the image is a comet that appears as a teardrop-shaped bluish cocoon of dust coming off the comet’s solid, icy nucleus and seen against a black background. The comet appears to be heading to the bottom left corner of the image. About a dozen short, light blue diagonal streaks are seen scattered across the image, which are from background stars that appeared to move during the exposure because the telescope was tracking the moving comet.
All eyes on comet #3I/ATLAS ☄️
Hubble & Webb have already observed this comet coming from outside our Solar System.
Next up, our Mars Express, ExoMars Trace Gas Orbiter and Juice missions will turn their eyes towards it.
Learn more 👉 esa.int/3IATLAS 🔭🧪
It’s great to sometimes work from different places, like from a coffee shop. Coding whilst listening to heavy bass music in your headphones. Oh, and it’s a totally new experience when you realise others are looking at you after you’ve dropped a serious bass face. 😅
Ouch, I hope you’re well now. It’s crazy how reckless some people are on e-scooters. I wonder if they’d be as reckless if they owned them instead of sharing them. Plus, you don’t need a license to ride these (at least not where I live), so many people don’t know the safety rules.
What happened there David? From the video it's unclear whether you've hit a pothole or had been suddenly immobilized by an invisible alien force.
This is legitimately terrifying. Actively conspiracy-addled crackpots are in charge of America's health.