• 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


  • True

    The things that you
    Believe are true
    Well, they’re just not so.
    You’re plain mixed up, a bit confused
    Hell you don’t know

    It’s time for you to leave the stage
    Because, hell, you’re blinded by your rage
    It’s your twilight time
    and the ones taking your place won’t look like you

    You pick and choose your evidence
    You hold on tight to your relevance
    but it’s fading fast
    and you wave that hateful flag for the past

    The things that you
    Believe are true
    Well, they’re just not so.
    You’re plain mixed up, a bit confused
    Hell you don’t know

    So I’ll be me and you be you
    But change is coming through and through
    The arc may be long
    But in the end it bends towards what is true.

    We all know you wrote the rules
    and tried to make it so you couldn’t lose
    But when your time comes,
    here’s hoping thoughts and prayers will get you through
    Here’s hoping thoughts and prayers will get you through
    I’ll send my thoughts and prayers out to you

    All rights reserved – Dusty Nugs Records ©2024


  • 2023 Musical Developments and Review

    This past year felt like a big year for me as far as improved or developing musicianship compared with recent prior years. Most likely this is because this is the first year in 35+ years of playing guitar that I kept a rehearsal/practice journal and made even the slightest effort to structure my practice around material and technique. In any case, here’s a look back at how my year went from a musicianship POV.

    • I continued developing my flatpicking skills and bluegrass knowledge
    • I began learning to play mandolin
    • I started to use a journal to track what I’m practicing or working through
    • I started to learn how to play the Telecaster (as distinct from playing any other kind of electric guitar).

    Bluegrass – more Stanley Brothers!

    On the bluegrass and flatpicking front, I continued to dive into the Stanley Brothers. I read the Ralph Stanley autobiography, Man of Constant Sorrow. Really long book, but chock full of great stories and observations that helped solidify my believe that playing bluegrass music is part gift and part responsibility. Or, perhaps, part an honor and part an obligation.

    Either way, playing bluegrass guitar ties me to a long chain of music and musicians in a way that no other music I’ve played does (though, playing in a Dead cover band, I think, will someday achieve this same level of meaning).

    I also enjoyed listening to more current instances of bluegrass music, especially guitarists like Grant Gordy. He’s a far cry from Doc Watson and yet totally connected by the bluegrass thread.

    Mandolin

    Partly out of reverence for the tradition and partly for my own interest, I took up mandolin in June. By autumn I knew a few scales and could play a half dozen (fiddle) tunes at a pretty good clip. Much of this fast progress was due to having a good friend who 1.) lent me a mandolin and 2.) is an extraordinarily patient teacher. That, and learning straight out of the gate to not approach the mandolin as an upside down guitar. Those all made a huge difference for me.

    Some combination of bad typing practice at work and poor left hand technique on the mandolin lead to some kind of RSI on my left hand that I’m still recovering from to some degree (heat, massage and some finger exercises as well as improved typing posture all helped here). As such, it’s been several weeks since I’ve played the mandolin for any length of time.

    Still though, I had multiple opportunities to play mandolin with other mandolin players and deeply appreciate the sound of two mandolins playing in unison and it is gratifying to attend a guitar-heavy jam and be able to pull out the mandolin and chop with some moderate level of competency.

    Day One Musical/Rehearsal Journal
    I do not know why it has taken me almost 35 years to begin a practice journal, but now that I have done so, I do not think it is a practice I will ever abandon. I’m not a structured rehearsal type player. I play a wide variety of material and have to learn a wide variety of lyrics, styles, etc. Meaning, on Monday I may be working on a fiddle tune and by Wednesday I’m working on chord substitutions and Thursday learning how to sing the melody line on a Stanley brothers song. With all of those balls in the air, I was regularly forgetting any nuanced learnings or finger positions about the fiddle tune or forgetting about certain substitutions, etc.

    By writing them down in a dedicated Day One journal and by occasionally revisiting the journal before sitting down to practice, I wasn’t constantly reinventing the wheel. I am tracking which songs I’m working on, notes around different live performance takeaways (e.g. I notice that I move around too much in front of the mic), the way the Osborne Brothers sing the second half of the verse of Kentucky Waltz, etc.

    I also started to track certain baseline stats around max tempo/bpm for certain fiddle tunes, etc. Helpful in so many ways. I don’t have any kind of template or model for the journal, though I looked at many online before starting my own.

    If you don’t already keep a practice journal, I cannot recommend it enough. It has been enormously helpful. Especially in light of my hand injury recovery. I didn’t play for over two weeks, but by revisiting my journal I was able to pick up right where I left off.

    Telecaster

    By far, the biggest leap in my knowledge this year (though sadly, not with my proficiency or skills) is around Telecaster guitar. I have been enjoying certain types of post-bluegrass Bakersfield-type music for several years now (Clarence White, Buck Owens/Don Rich, Chris Hillman, etc.), but suddenly this year felt a strong urge to play the telecaster in a very specific way that is unique to the telecaster guitar tradition: an instrument that bridges the gap between acoustic guitar and pedal steel.

    I took a few online lessons, watched a lot of YouTube videos but, mostly, listened to telecaster players. James Burton gets referenced a lot for being an influential telecaster player. Digging deeply into his work with Emmylou Harris’ Hot Band is a masterclass in why he is such an important figure in the development of telecaster technique. That said, there are way too many to name here but I’ll mention two Telecaster players who I got to see live when I visited Nashville: Stuie French and Luke McQueary. See my Nashville Notes for more on these two amazing players.

    2024
    I will admit to being a bit scared about the pain in my left hand preventing me from being able to resume playing but I’m getting more confident that the pain will eventually subside entirely. With that in mind, I think I need to focus my energies a bit more. While I love playing mandolin, I don’t think I can allow it to eat in to my guitar practice time which is already limited enough. I will continue to play mandolin but without any especially lofty goals, just being able to play a few fiddle tunes and chop behind other guitars is plenty satisfying.

    On the guitar front, I want to continue to learn inversions and substitutions as they are the key to my understanding/unlocking the fretboard. The inversions and subs are great on the acoustic but even cooler when applied to the Telecaster and trying ring 6th chords out with the volume knob to emulate a pedal steel.

    I’ll try to do all this while maintaining my current “OK-ness” as a bluegrass flat picker. I don’t want those skills to diminish too much while I explore alternate forms of playing. And, perhaps more importantly, I’d like to do all this while not sacrificing the time or energy required to write original music which didn’t happen nearly as much in 2023 as I’d hoped.


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

RSS Error: A feed could not be found at `https://links.jimwillis.org/feed/atom?`; the status code is `404` and content-type is `text/html; charset=utf-8`