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.