• “The Christmas lights won’t turn on, better power cycle the server.”
    Filed under: Sentences Unfamiliar to Thoreau.


  • Hard to imagine how long finding this answer would have taken before perplexity.ai:

    “I have an ecobee 3 lite and an aquastatic, 2 taco valve boiler– Can I use the ecobee to control one of the valves and my old thermostat for the other valve?”


  • A PSA/reminder to self: Linode makes it SUPER easy and fast to increase the size of your server with no downtime but when you want to scale it back down, you have to first resize your disk (down) and then resize the linode box which requires bringing it down completely.


  • Personal Tech/Self-hosted wins.

    A few weeks ago I worked with Claude.ai to generate some journaling prompts that were unique to me and my goals. It’s made for some great journaling this month so far.

    Today’s prompt and response is one worth sharing as I think it’s something a lot of folks like me would benefit from thinking about and the responses, too, might be helpful for others. These are just the projects from the past month or so. I think this type of question might be a good one to think about at the end of each year though.


    Which of my recent personal/self hosted technology projects truly enhanced my life versus just occupied time?

    • Swapping out my Hue white bulbs for colored bulbs and setting a more mellow early AM lighting scene for my 4:30AM wake ups has made being in my listening nook much nicer and more welcoming
    • Getting Moode Audio running on a Raspberry PI connected to the HiFI in my listening room has also made music discovery and listening during those early AM hours (and whenever else I can retreat to the room) much better.
    • Doing some room analysis and adding room correction EQ to my Moode Audio setup has reduced an annoying bass frequency range, makes listening at loud volumes way better.
    • Getting Home Assistant running on an Intel NUC, adding Zigbee and incorporating some energy monitoring plugs into my smart home has helped me identify where it might be possible to use resources more efficiently (running certain appliances while there’s sun as I discovered I have a lot of surplus solar on my battery-less system).
    • Creating a playlist in Overcast for my daily news podcasts (would love to be able to play the playlist from a shortcut but haven’t quite sorted that out).
    • The holy grail I’m chasing right now which I’m hopeful will really add some enhancement/enjoyment is a script that takes my Shaarli bookmarks and processes them in such a way through ChatGPT API to auto tag and summarize in the description as well as send the link to readwise if it’s an article. That’s my project for the next week or so, we’ll see.


  • Specific Post Category Sharing to Mastodon from WordPress

    I added this snippet which seemed to do the trick of only sharing WordPress posts categorized as “Status” up to Mastodon. The rest I’ll share manually

    /**
     * Enable sharing only for posts in the "Status" category.
     *
     * @param bool $is_enabled Whether the post is enabled for sharing.
     * @param int  $post_id    The ID of the post being processed.
     * @return bool Updated sharing eligibility.
     */
    function enable_sharing_for_status_category( $is_enabled, $post_id ) {
        // Ensure this is a valid post ID
        if ( ! $post_id ) {
            return false;
        }
    
        // Check if the post belongs to the "Status" category
        if ( has_category( 'Status', $post_id ) ) {
            return true; // Allow sharing
        }
    
        return false; // Block sharing
    }
    add_filter( 'share_on_mastodon_enabled', 'enable_sharing_for_status_category', 10, 2 );
    

  • Think I may have my WordPress to Mastodon filtering in place so that it only posts from a specific category and doesn’t spam my Mastodon account with all of my link and highlight saves. Fingers crossed!


  • Adventures in Self-hosting HiFi Audio Streaming.

    I’ve been through a bunch of self-hosted music setups over the past 10 years or so. There are a long list of good reasons why owning and hosting your own music is better than streaming but I’ll save that for another post. Still, despite years of home streaming my audio collection, I haven’t found the perfect setup. I do though want to try to hone in on where things are and aren’t working on my current setup and maybe share some lessons learned that might help others navigating similar waters.

    Navidrome

    My most recent iteration uses Navidrome in a Docker container on an older Intel NUC that runs a bunch of other self-hosted/docker services. Navidrome offers a clean web interface and supports the Subsonic API/protocol so there are a handful of iOS (play:sub app is my current iOS app of choice) and MacOS clients (see section below for my MacOS client reviews) that I can use in addition to the web interface. You can access your music collection remotely by setting up Navidrome behind an nginx proxy, and the play:sub app even offers CarPlay integration – a nice bonus for my commute.

    That said, Navidrome is not without its quirks. From a HiFi listening perspective, the streaming can be temperamental; I’ve experienced issues where the play:sub app mysteriously repeats songs without being told to do so. Or, inexplicably, the web app will stop playing after each song instead of playing through the entire album. While these hiccups are minor, they can be frustrating when I just want to sit down and listen to some tunes.

    The Evolution

    Initially, I was content with using AirPlay from Navidrome’s web app or play:sub to an old AirPort Express, which connected optically to a Musical Fidelity V-DAC to my HiFi. This configuration worked, but never really sounded amazing.

    The game changed when I upgraded (or, well, crossgraded I suppose since they’re roughly similarly amps from a spec/price point) my NAD amp to a Cambridge Audio amp, which really brought my KEF speakers to life in my small listening room. However, this upgrade revealed some minor but annoying low-frequency issues that I thought might be interesting to try to correct. While play:sub offered basic EQ options, I needed something more sophisticated for proper room correction.

    Enter Moode

    During an early morning tinkering session, I decided to give Moode a shot on an older Raspberry Pi 3B paired with a HiFi Berry DAC. Unlike my previous attempts with Volumio, Moode immediately clicked. Its built-in support for room-tuning EQ settings was exactly what I needed. (the EQ settings I use were derived by measuring the room using https://housecurve.com)

    The difference in sound quality was immediately noticeable. While I was never quite sure about the lossless-ness of my Airplay streams, the direct connection from the Raspberry Pi DAC to my amp, combined with Moode’s room correction/PEQ settings, delivered outstanding results.

    Current Challenges

    Despite the really fantastic sound quality, the current setup isn’t perfect:

    • So this setup finds me using Moode on my Raspberry Pi when listening locally at my HiFi (which just mounts the same drive over my local network of music that Navidrome accesses). And then, using the Navidrome to stream music everywhere else. SO I’m juggling between Moode for home listening and Navidrome for office/mobile use
    • Moode’s browser interface feels sluggish, especially with volume control having such a lag. It’s definitely usable on an iPad, but frustrating to control playback on my iPhone mini. So it’s the best sounding option but the least satisfying to interact with.
    • Rigelian, an iOS native player for Moode, is functional but lacks polish and has rendering issues on my iPhone mini. Still, it’s “play me a 100 random songs” is great at times.
    • Also, Rigelian seems to not do an especially good job with album art. I’ve got art for every album embedded in the files as well as a cover.jpg in the folder and it just doesn’t pick up the covers in many cases, or at least hasn’t yet.
    • Playlist management across platforms remains a challenge

    Both systems scrobble to Last.fm, which opens up possibilities for smart playlist creation based on listening data at some point.

    Metadata

    One aspect I’ve mostly solved, for now at least, is metadata management, thanks to Lidarr. Running in a Docker container on the NUC, it automatically monitors my music folder and helps maintain a consistent folder structure. This is particularly useful for managing Bandcamp purchases, which often come with varying folder naming conventions. Lidarr effortlessly organizes everything into my preferred artist/album hierarchy.

    While I haven’t found the perfect all-in-one solution, the exceptional audio quality from my Moode + room-correction PEQ + HiFi Berry DAC + Cambridge Audio amp combination makes the compromises worthwhile. That said, I’m still hoping for a responsive, well-designed iOS app to control Moode and complete the experience.

    For now, I’m enjoying the tinkering and the improved sound quality but would love to hear suggestions.

    MacOS Listening

    As much as I spend a lot of time in my listening chair enjoying my Moode Audio setup, for better or worse I need to spend a lot of time in front of my desktop computer running MacOS. Finding the perfect desktop client for Navidrome has felt like searching for a rare vinyl in a crowded record store. It supports the open Subsonic streaming protocol so there a quite a few clients of varying degrees of quality, here are the one’s that I’ve found worth some attention:

    Submariner

    Submariner has a nice native Music app-like interface. However, its aggressive local caching is a deal-breaker. The app automatically downloads every streamed track to ~/Music/Submariner, turning your hard drive into an unwanted music hoarder. While a nightly cleanup script could theoretically solve this, it feels like applying a band-aid to a systemic issue. Playlist management is solid, mimicking Apple Music’s approach, but the constant local downloading overshadows these merits.

    Supersonic

    Supersonic is my current go-to, albeit with some notable limitations. Unlike Submariner’s MacOS vibe, it’s UI feels less native, more utilitarian. The app shines in library presentation and offers welcome extras like equalizer functions and scrobbling to last.fm (technically handled by Navidrome).

    However, Supersonic’s playlist functionality is frustratingly half-baked. You can view existing playlists, but I haven’t figured out how to create new ones. And track addition to existing playlist is temperamental.

    Navidrome’s Web Interface

    Out of sheer muscle memory, I still regularly hit my Navidrome instance through the browser. The web interface is a reliable backup. It’s functional, allowing playlist creation and management, though not without its own friction. Track addition requires more clicks than keystrokes which is tedious.

    Lately I have been immersed in full-album listening, thus allowing me mostly to sidestep the above playlist complexities and Supersonic has become my reluctant daily driver.

    So this is my current setup as of December, 2024. I often get emails from folks who stumble across here with streaming questions, so please don’t hesitate to drop me a line, I love discussing this stuff.


  • Made so much progress with learning this weekend. Got Home Kit Bridge working after learning way too much about mdns, built some iOS notifications w/ automation options and resuscitating some forgot NFC tags. Got power forecasting working, excited to start playing with “now’s a good time to run the washer” type notifications.


  • Aqara Hub and Home Assistant

    The Aqara sensors and such have been super reliable in my HomeKit environment, highly recommend. But, as I’m currently trying to solve what should be a simple use case, I’m getting into the weeds of Home Assistant.

    I’ve spent a grand total of about 4 hours in Home Assistant so far and I’m sure it will get easier but this is definitely not something you’d give to your mom to run her home (not that Apple’s HomeKit is that much better but at least it doesn’t use terms like “entities” and such).

    Anyway, this is to say that I really wanted to try to get my Aqara stuff connected to Home Assistant. I spent an hour or so digging through docs and YouTube videos and then finally found this (literally) 1 minute long movie that says to just remove the existing Aqara stuff from your HomeKit and it will show up in Home Assistant.

    I was admittedly a bit nervous, but I started simply by removing my G2h Camera/Hub from HomeKit and a second later all of my Aqara stuff disappeared from HomeKit and showed up in Home Assistant. Granted, I had to go around and figure out which room each sensor was in again but that wasn’t too bad.


  • It is apparently way too much to ask to only run my Roborock vacuum at 10AM each morning *if* no one is home. Seems like such a trivial condition to but now I’m deep in the weeds of home assistant trying to Rube Goldberg my way to a solution. We were promised jet packs (shakes fist at sky)!


Current Spins

Top Albums

Check out my album Set It All Down on your favorite streaming service.


Posts Worth Reading:


Letterboxd


Reading Notes

  • Who profits from our constant state of dissatisfaction? The answer, of course, is painfully obvious. Every industry that sells a solution to a problem you […]
  • the shifts have been in place for awhile. A certain kind of book—say those reviewed in the NYRB—will become like opera, or theater, or ballet, […]
  • • No more struggle: “Whatever arises, train again and again in seeing it for what it is. The innermost essence of mind is without bias. […]
  • The real problem, in my mind, isn’t in the nature of this particular Venture-Capital operation. Because the whole raison-d’etre of Venture Capital is to make […]
  • . The EU invokes a mechanism called the precautionary principle in cases where an innovation, such as GMOs, has not yet been sufficiently researched for […]

Saved Links