www.eamoncaddigan.net

Content and configuration for https://www.eamoncaddigan.net
git clone https://git.eamoncaddigan.net/www.eamoncaddigan.net.git
Log | Files | Refs | Submodules | README

index.md (3405B)


      1 ---
      2 title: "Weeknote for 2025-W03"
      3 description:
      4   "1001 albums, easy asyhcronous mesh netowrking, and a Bash scripting tip"
      5 date: 2025-01-13T07:59:00-08:00
      6 draft: false
      7 categories:
      8 - Weeknotes
      9 ---
     10 
     11 [1001 Album Generator](https://1001albumsgenerator.com/)
     12 
     13 In 2005, a panel of music critics published the first edition of _1001
     14 Albums You Must Hear Before You Die_. Recently a web forum friend introduced
     15 me to 1001 Album Generator, which selects one random album (without
     16 replacement) each weekday for you to listen to and rate. As I write this,
     17 I’ve listened to 12 records, and while the list has all the problems you
     18 might expect[^problems], I’ve already revisited favorites and discovered new
     19 stuff. This whole effort won’t finish for me until October 2028, and
     20 I welcome the distraction for the next four years.
     21 
     22 [Filespooler](https://www.complete.org/filespooler/)
     23 
     24 [Last week]({{< relref "/posts/weeknotes/2025-w02/" >}}) I mentioned
     25 YunoHost, a project that makes it easy to set up a home server. I’ve had fun
     26 tweaking my configuration an installing a few apps, but now that I have
     27 a nice media server set up, I’m ready to start doing more interesting things
     28 with a (low power) computer that’s always on and accessible from the
     29 internet. I’ve found [John Goerzen’s writing about
     30 networks](https://www.complete.org/recovering-our-lost-free-will-online-tools-and-techniques-that-are-available-now/)
     31 inspirational, so I’m experimenting with his Filespooler tool for
     32 asynchronous command execution. Before bringing my RPi online with YunoHost,
     33 my “network” basically consisted of my employer’s laptop and my personal
     34 laptop, which were rarely powered on at the same time. Now[^now], using
     35 [Syncthing](https://syncthing.net/) and Filespooler, I can initiate a task
     36 for one computer when I’m sitting at the other (even when the computer I’m
     37 using is offline or the other is shut down), and the task will execute when
     38 it gets the chance. Being able to schedule tasks as soon as they come to
     39 mind in this manner is useful for “Getting Things Done”.
     40 
     41 [Bash FAQ: Changing directories and setting variables in Bash
     42 scripts](http://mywiki.wooledge.org/BashFAQ/060)
     43 
     44 Between Filespooler and last month’s [December Adventure]({{< relref
     45 "/december-adventure/2024-32/" >}}) experiments, I’ve been writing a lot of
     46 Bash scripts. Bash is a klunky scripting language, but it’s well suited for
     47 manipulating files and programs on a computer. I adopted the habit of trying
     48 to “clean up” after myself in my scripts; if my script changed the working
     49 directory, I made effort to return to where it started, and I was careful
     50 about manipulating any variables inherited from the environment. This FAQ
     51 entry reminded me that these efforts are unnecessary; here it’s presented as
     52 a problem, but the important thing to remember is that it’s _hard_ to change
     53 the calling shell’s environment from a Bash script. This makes sense in
     54 hindsight---a Bash script isn’t really different than a Python script,
     55 you’re just using Bash as an interpreter instead of Python’s---but this
     56 wasn’t obvious to me when I started writing scripts and adopted these quirky
     57 habits.
     58 
     59 [^problems]: Rock, English music, English _language_ music, etc. are all
     60     _seriously_ overrepresented. But that’s hegemony for you.
     61 
     62 [^now]: Well, not _literally_ now. I still have some configuration to do.