• Currently listening to this gem by Asleep at the Wheel. After a morning working on chord substitutions, there’s nothing like some western swing to illustrate just how many voicings you can fit into some simple changes. These Western swing cats were geniuses.


  • Seeing so many folks posting about their Apple Vision orders. Channelling my inner Steve Ballmer (who was notoriously wrong about the iPhone), I hate this thing and hopes it’s a flop. I don’t want to live in a world where these things are as ubiquitous as iPhones. Looking down at your phone while you talk to me is one thing. Pretending to look at me while we talk is even worse.


  • Nextcloud for bands

    Playing in a band generates all sorts of files that you want to share with your band mates, from live show recordings, videos, promo materials, charts, etc. Some of us were getting tired of shelling out the money to Dropbox to accommodate this sharing. So, this past weekend I spun up a self hosted Nextcloud for sharing audio with the guys in Kül d’Sack. No reason for us collectively as a band to be spending $400+/yr to share files.

    In no particular order, here are some tips or lessons from my experience building up Nextcloud:

    • I first tried to do this on a Raspberry Pi 3 B+. I’m pretty handy with the platform but even so, as I started getting into the weeds, i realized it would be much easier to execute some of the install on an old Mac mini that I had laying around.
    • Note to self: I’m sure the Mac Mini is probably drawing more power than the rpi. I’d love to know what the difference is on operating costs.
    • This past year I’ve gotten much better with understanding Docker, so I knew I wanted to do this with Docker, behind an nginx reverse proxy (as I already have that set up as a reverse proxy for a few other self-hosted services.) After futzing around a bit with various docker-config files, I opted for the Nextcloud All in One (AIO) installer. Compared to other methods for getting Nextcloud running in Docker, this is hands-down the easiest, most user-friendly way. I’ve yet to see any disadvantages to using the AOI.
    • Hint: If you’ve got a big old drive that you want to dedicate to your Nextcloud for file storage, set your Nextcloud data directory before running the AIO installer. The AIO instance is arguably more secure because it can’t hit anything on the filesystem outside of the Docker container by default, but I had a very tough time trying to give it access to other volumes on my Mac after I clicked install. In the end, I just reinstalled and specified a large drive as the Nextcloud data dir.
    • To help with network performance while transfering data locally, I setup https://github.com/pi-hole/docker-pi-hole and created a local DNS entry so that traffic isn’t going out and back.

    The steps are to get the AIO installer running in Docker and then the AIO installer kicks off a bunch of new containers once you configure the install preferences through a web browser. Like I said, much easier than other methods. Here’s the command I used to spin up the AIO installer:

    For Mac, running behind a reverse proxy

    sudo docker run \
    –init \
    –sig-proxy=false \
    –name nextcloud-aio-mastercontainer \
    –restart always \
    –publish 8080:8080 \
    –env APACHE_PORT=11000 \
    –env APACHE_IP_BINDING=0.0.0.0 \
    –env NEXTCLOUD_DATADIR=”/Volumes/Mini1TBStorage/nextcloud_data” \
    –volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
    –volume /var/run/docker.sock.raw:/var/run/docker.sock:ro \
    nextcloud/all-in-one:latest

    Another important note, when you’re first installing Nextcloud from the AIO installer, you can’t refer to it by the hostname assigned for reverse proxying, instead you need to refer to it by the local IP address. Meaning, I kicked off the installer Docker and tried to hit the URL of the reverse proxy that was sending traffic to the Mac Mini and it failed. I had to address the Mac Mini directly with its local IP address. During the install, the install process runs some tests to make sure your reverse proxy is set up correctly, which is pretty cool.

    So far I’ve just added the guys in the band to a group and shared out a folder to that group and am currently syncing our Dropbox data down to my Nextcloud folder on my desktop using rsync. Once we all get comfortable with the new system, I may send that rsync in both directions or something similar if/when we decide to fully transistion off of Dropbox.

    We had a few 2GB+ files in Dropbox that took a long time to sync to Nextcloud but smaller files (anything under a GB) went through very quickly.

    Another advantage about self-hosting is that I should be able to mount my Nextcloud backup in such a way that it will get backed up to my Backblaze backup.

    Nextcloud also has some contact and calendar tools built in to it. We haven’t talked about leveraging those yet but anyone who’s played in a band knows what a pain in the ass it is to track everyone’s availability for gigs, contacts at local bars, etc. So Nextcloud seems purpose-built for some of this stuff.

    I am curious to see what the hit is on my network performance if we’re regularly sending stems back and forth my home network. Will see. I plan on reporting back in a few weeks.


  • This has got to be one of the craziest things I’ve ever heard. Unbelievable. Bloody pigs mask?

    eBay will pay a $3 million criminal penalty for a harassment and intimidation campaign targeting a Massachusetts-based couple who ran a newsletter that was sometimes critical of the company.
    — Read on www.cnn.com/2024/01/11/business/ebay-cyberstalking-settlement/index.html


  • Recipe Cruft-Cleaner

    I’m not so much of a recipe-using cook, but sometimes I like to review several recipes when I’m making something to get ideas for spice/ingredients that I might not be thinking of incorporating into my version or to get an idea of different cooking times, etc.

    The bloat of online recipe sites don’t help with this. Looking for a recipe online is a frustrating exercise in clicking a bunch of popup ads and scrolling four miles down the page past where the author strains to relate the recipe to their favorite TV show and how they they passed their driver’s exam before offering up the actual recipe.

    I’d never heard of https://cooked.wiki until someone alerted me to the cool feature of prepending “cooked.wiki/” to the front of any online recipe and it gives you a new page with just the recipe and ingredients. Try it. Google for a recipe, open the link, then prepend “cooked.wiki/” to the front of the https:// in your address bar and hit Enter. Super helpful.

    Given that I’m usually on my iPad or iPhone when I’m in the kitchen looking for inspirado, copy/pasting is a challenge so here’s a shortcut that does the hard part. When looking at recipe on your iOS device, click the share button (see photos for before and after), select “Recipe Wizard” et voila enjoy.


  • Almost as good as wearing PJs inside-out, here’s our song Snow Day for all you #newjersey folks enjoying today’s snow:

    https://kul-d-sack.bandcamp.com/track/snow-day-live


  • POSSE WP->Mastodon

    I wish that it were possible to leverage WordPress’ post formats (status, aside, etc.) to trigger crossposting. In the absence of that functionality I’m working with Jan’s excellent WordPress to Mastodon plugin, making a couple of minor mods:

    • If it’s a short (status, under 400 chars) WordPress post, just send the post content to Mastodon with no title or link back to the original wordpress post. If it’s a longer entry, post an excerpt and link back to WordPress.
    • Add tags to the Mastodon post with #’s.

    Here’s the code I’m using:

    add_filter( 'share_on_mastodon_status', function( $status, $post ) {
        // Check if the length of the post content is more than 400 characters
        if (strlen($post->post_content) > 400) {
            // Use the post excerpt if content is longer than 400 characters
            $excerpt = get_the_excerpt($post);
            // Replace HTML entity with "read more..." text and permalink
            $read_more_link = '... read more: ' . get_permalink($post);
            $excerpt = str_replace('…', $read_more_link, $excerpt);
            $status = wp_strip_all_tags($excerpt, '<a>');
        } else {
            // Use the full post content if it's 400 characters or less
            $status = wp_strip_all_tags($post->post_content);
        }
        
    	
      $tags = get_the_tags( $post->ID );
    
      if ( $tags ) {
        $status .= "\n\n";
        
        foreach ( $tags as $tag ) {
          $status .= '#' . preg_replace( '/\s/', '', $tag->name ) . ' ';
        }
    
        $status = trim( $status );
      }
        return $status;
    }, 10, 2 );

    I’m going to sit with this for a while. I think the route I’m ultimately going to take though is just modify this plugin to only crosspost to Mastodon entries that have the category of “status” assigned to them. Not sure yet. Will give this a while to settle.


  • Status post w image


  • POSSE for Journaling

    Now that I’ve got a good, reliable mechanism for getting WordPress into my Day One journal, it has got me thinking about using WordPress as a funnel for getting any “public” journal type stuff into Day One.

    Letterboxd reviews come to mind. If I were still using Goodreads, that would make sense, too. Is there something from last.fm worth capturing in my Day One? I suspect some kind of weekly or monthly entry would make sense. Or new discoveries?

    Funnel that data into WordPress (preferably using some kind of microformat) and then use my python script to collect all of that stuff into my Day One journal.

    Food for thought for my next rainy Saturday morning coding session.


  • The Shaarli docker documentation is like a masterclass in how to use docker and docker-compose. I wish I had known all of this when building up my self-hosted services (navidrome, photoprism, etc.) Great reference: https://shaarli.readthedocs.io/en/master/Docker.html


Current Spins

Top Albums

Letterboxd


Reading Notes

  • Unable, then, to see the world because I have forgotten the way of being in the world that enables vision in the deepest sense, I […]
  • Suppose Bob writes an email to Sue, who has no existing business relationship with Bob, asking her to draw a picture of a polar bear […]
  • The large majority of the world’s decaffeination still happens through chemical-based processes that use things like methylene chloride or ethyl acetate. I don’t know what […]
  • All the forces at play within us and without seem to be centrifugal forces, pulling us apart. I remain interested in understanding the nature of […]
  • FWIW, my Emacs of the moment is emacs-plus@29 installed by Homebrew: brew install emacs-plus@29 –with-mailutils –with-xwidgets \ –with-imagemagick –with-native-comp Source: Browsing in Emacs – Volume […]

Saved Links