Trending
Attila Gyârffy 🦜's Avatar

Attila Gyârffy 🦜

@attilagyorffy.com

Lifelong learner software/product engineer with the scout mindset. Teacher, mentor. #RubyLang developer since 2006 with an interest also in #RustLang. DJ/Curator and radio show host as LQDAudio. Partially Scandinavian. Also 🐘 https://fosstodon.org/@attila

104
Followers
249
Following
71
Posts
18.09.2023
Joined
Posts Following

Latest posts by Attila Gyârffy 🦜 @attilagyorffy.com

Stop Naming Your Go Constructors New Why Parse is better than New when your Go constructor is really parsing a string.

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...

12.03.2026 14:18 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
GitHub - attilagyorffy/prometheus-exporter-nvidia-gpu: Prometheus exporter for NVIDIA GPU telemetry via nvidia-smi Prometheus exporter for NVIDIA GPU telemetry via nvidia-smi - attilagyorffy/prometheus-exporter-nvidia-gpu

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...

10.03.2026 11:10 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Sh*t, I'm starting to like Go.

09.03.2026 17:37 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

#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!

09.03.2026 17:32 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

The general pattern is: use types to make invalid states or operations unrepresentable. #Protip

08.03.2026 18:46 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

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
...

08.03.2026 18:46 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

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

08.03.2026 18:46 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

#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.

08.03.2026 18:46 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
GitHub - attilagyorffy/prometheus-exporter-adguard-home: Prometheus exporter for AdGuard Home, built following official exporter guidelines Prometheus exporter for AdGuard Home, built following official exporter guidelines - attilagyorffy/prometheus-exporter-adguard-home

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

05.03.2026 09:04 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Hello, world β€” I’m building Audiqa I'm starting Audiqa: a local-first audio library manager for people who care about their music. It treats music files as first-class data, built to serve your long-term interests.

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...

26.12.2025 18:06 πŸ‘ 2 πŸ” 2 πŸ’¬ 2 πŸ“Œ 0

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...

25.12.2025 21:59 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

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. 🫒

09.12.2025 17:50 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

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.

07.12.2025 08:54 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Enhanced contribution guide for TrueNAS Apps catalog by attilagyorffy Β· Pull Request #3772 Β· truenas/apps Overview This PR significantly enhances the contribution guide to provide a comprehensive, hopefully well-structured resource for both new and experienced contributors to the TrueNAS Apps Catalog. ...

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...

03.12.2025 19:21 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I should have known actually:)

02.12.2025 17:33 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

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? ❄️⛄️

02.12.2025 08:07 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
A screenshot of a browser window showing an HTTP 500 error when trying to load the Ghost blog API documentation.

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.

25.11.2025 11:05 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

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...

10.11.2025 07:46 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

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.

29.10.2025 13:18 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
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.

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 πŸ”­πŸ§ͺ

24.09.2025 12:55 πŸ‘ 139 πŸ” 40 πŸ’¬ 1 πŸ“Œ 5

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. πŸ˜…

05.09.2025 21:56 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

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.

29.08.2025 08:33 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

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.

29.08.2025 08:22 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

This is legitimately terrifying. Actively conspiracy-addled crackpots are in charge of America's health.

29.08.2025 02:19 πŸ‘ 247 πŸ” 66 πŸ’¬ 7 πŸ“Œ 0
Image of a circle labeled "Proton", one about he same size labeld "Neutron", and other much smaller labeled "Electron", and a fourth even smaller labeled "Close-Ad-Button"

Image of a circle labeled "Proton", one about he same size labeld "Neutron", and other much smaller labeled "Electron", and a fourth even smaller labeled "Close-Ad-Button"

08.08.2025 07:28 πŸ‘ 3030 πŸ” 1123 πŸ’¬ 12 πŸ“Œ 19

OK, I was expecting things to break when I enabled intrusion detection and I ended up blocking a few services without wanting to (like mDNS)

Next steps:
- Introduce monitoring of essential network services
- Isolate and adjust the rules that block services
- Re-enable Suricata on the local network

11.08.2025 05:50 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

Updated my home OPNSense router and its deep packet inspection settings which finally seem to be working just fine.

The EICAR test file was successfully blocked and the alerts show up on the OPNSense UI.

#network #security

09.08.2025 21:01 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Proton Authenticator: Private, secure 2FA authenticator | Proton Protect your accounts with Proton Authenticator, an end-to-end encrypted, open source, and ad-free two-factor authentication (2FA) app available across devices.

Now that Microsoft Authenticator is gone, @proton.me announced their own secure 2FA app: proton.me/authenticator

I’m happy to see competitive apps being developed in Europe. (Even though Proton is SwissπŸ‡¨πŸ‡­and not part of the EU πŸ‡ͺπŸ‡Ί, they share the same foundational values that prioritize privacy)

02.08.2025 07:17 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
A screenshot of the Github workflow that provides performance monitoring capabilities for this software project.

A screenshot of the Github workflow that provides performance monitoring capabilities for this software project.

Performance is about NOT DOING unnecessary things and doing the necessary things only once. I'm building performance monitoring right into the development cycle, the CI provides super fast feedback by heavily relying on the above principles, parallelism, caching. Very happy about the results so far.

26.07.2025 13:44 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Why is nobody talking about the elephant in the room and come clear?! Donkey Kong Bananza is actually a Mario game disguised as a DK adventure. There’s very little that resembles the original game, both in terms of vibe and mechanics.

RIP DK. 😒🍌🦍

18.07.2025 15:15 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0