Forgetting to (or not knowing I need to) enable a "feature" in a Rust dependency has to be one of the most annoyingly arcane experiences I've had with a programming language.

This evening, it was "chron" in diesel so that I could process SQL timestamps properly. Last night it was "recovery" in secp256k1. Literally hours wasted debugging code fixed by just adding in a barely documented feature flag (in the latter, I only found it by reading the dependency source code).

I figured I should include Jenkins since I always see that used to orchestrate things. Boy howdy, what a nightmare. I'm sure it's just a reflection of its capabilities (and age), but I couldn't make heads or tails of the configuration once I had it up and running.

I changed course and burned that all down, focusing on getting GitLab runners up on my Docker and k8s systems. That was much more tractable and I now have a working pipeline from gl > docker > k8s. @gitlab is doing some great work.

Show thread

I've always relied on DevOps professionals to handle building the fundamentals of CI/CD pipelines. My son is learning some web programming, so I took it as an opportunity to set up a basic deployment pipeline from GitLab to my personal Docker and k8s systems for him myself.

Pondering the conflation of "Bitcoin power consumption" and "Bitcoin participation." The consequence of decentralization is that all can choose to participate and contribute their resources. That's true of the Internet and it's true of Bitcoin.

Really pleased with the new Pop!_OS for Raspberry Pi. I've been using the OS on my personal laptop for years, but have been suffering with Raspbian on my Pi 400 for a while. This is a great, modern upgrade and is much easier to get interesting ham radio stuff compiled on.

Experimenting with JS8Call on my Raspberry Pi 400 and FT991a. Unfortunately, my antenna (a V2000A) can't go very far in to the 6m range and doesn't reach the shortest "official" frequency for the protocol. But I'm hanging out at 52.535MHz in CN84 if there's anyone out there in range.

...and the "read-only" file system bit is a red herring. It just seems to be trying to write to a nested folder that doesn't exist (like maybe 000/148/247/234/123 in this case) and giving up when it doesn't find the folder it expects.

Show thread

Question for other Mastodon admins: I migrated my system to a new VM and now sidekiq is having trouble saving media files. It appears that it's trying to save files to the cache folders but isn't bothering to try to create the directory structure to accommodate it:

WARN: Errno::EROFS: Read-only file system @ dir_s_mkdir - /mnt/live/public/system/cache/preview_cards/images/000/148/247

I have to create the folders manually to resolve the error. Has anyone experienced this?

Long shot, but does anyone I follow have a copy of the publication EIA-305 Display Storage Tube Nomenclature? The last printing was 1978 and the only place I've found to get a copy costs $78 and is a "Secure PDF," which sounds likely to be unreadable garbage.

Watching Secrets of Sulphur Springs with the kiddo and can't help but see it as a derivation of Dark, simplified and sanitized for the younger set.

No judgement. Great artists steal and all that.

If you get a new audio interface like this one, check that your sample rate is correct before bugging your other synth manufacturer about their device being out of tune.

I always assumed a mismatch (48k when it should be 44.1k) would just result in distortion. Apparently it can sound perfectly fine - just out of tune. TIL.

Looking over the FediBlock list. It's troubling how "free speech" (or the non-cute euphemism "freeze peach") is used as the sole justification for a block in many instances.

I'll block an instance in an instant for being hateful or for harassment or for posting terrible stuff. But I'm not going to block someone for saying they support freedom.

Fiber is the superior medium for carrying fixed broadband by almost every metric: available bandwidth, SNR, theoretical capacity, real-world throughput, latency, and jitter. Learn more about why Fiber is a superior medium for 21st century broadband

Hooked up with a Mastodon relay. Some interesting new stuff coming in now.

But wow, a lot of just terrible shit, too. It's been a busy morning of blocking federation for trash that I don't need on my server.

...then to make it work, I configured one of the SRX interfaces with an address of and added that interface to my starlink-untrust zone and my starlink-router virtual router. That was sufficient such that the app on my phone connected to my existing WAP (which routes through Starlink using the other SRX interface) can connect.

Show thread

Starlink uses some unconventional configuration between their WAP, the dish, and the app to monitor the satellite connections. That monitoring communication is fixed to address, which Starlink expects to exist on the same L2 network as their CG-NAT range (i.e., not routed - same broadcast domain). I had to pull out an old Ethernet switch to make it work with my SRX 550. I used two interfaces on the SRX (one for each network) and brought them together on the little dumb switch.

Unpopular opinion: slapping a tablet on your wall with a "dashboard" is not the height of home automation; it's a silly distraction.

Programming your house to anticipate and respond to your needs before they're realized should be your goal.

Show older

This server is built by for personal hosting purposes.