Though a bit niche, my #FreeSoftwareAdvent today is ed(1). As the goofball behind @npub154ts...2t0g, I certainly play it up, but I certainly use it more than the average Unix/BSD/Linux user. A while ago I wrote up list of reasons¹ why one might use ed, and some are more obscure/improbable reasons (though I've encountered all of them in that post), there are a couple of those that drive me back to ed regularly: • I can still see the output of previous commands on the screen while I edit, where a full-screen editor would obscure that output that I need to incorporate in my edit • it's just darn fast for a quick edit, changing a variable name or adding/removing an entry in a list, etc. No startup costs for a honkin' huge $VISUAL with dozens of plugins and language-server processes and GUI rendering • very usable on low-bandwith/high-latency connections like I sometimes get when I remote into machines (less of a problem now, but I still experience sessions where I'll SSH in, invoke ed, make the change, write & quit, and exit the shell, in a couple seconds, while the screen repaints things oh-so-slowly • and most importantly, there's quality geek-cred for using it in front of others 😆 ⸻ ¹
@npub13n40...3h2h I'm not sure the provenance of this, but I thought of you when it crossed my feed image
Kicking off #FreeSoftwareAdvent (thanks, @npub198t8...hasj), I'll open with remind(1) While it took several articles and a couple attempts before I switched over to using it, once you taste the power of what it can do, it's hard to go back to less-capable calendaring tools. While the classic "garbage day is on Thursday unless there was a holiday earlier in the week, in which case it moves back to Friday" scenario is a nice little demo of its power, one of the best examples from my daily use is the kids' school calendars: • the teen has an A/B schedule which doesn't mesh nicely with calendar days, week-days, etc • similarly, our elementary-age kiddo has a 4-day cycle schedule for her "specials" class But remind's nonomitted() function makes quick work of both of those, taking into consideration weekends, the school holidays, and using PUSH/POP directives for high-school testing days that impact his A/B schedule but not her 4-day cycle. I've never encountered another calendar that handled all the edge-cases with so little effort. It's a little rocky interchanging with other calendars (you have to use rem2ics to create .ics files to share, and pulling in others' iCal is non-trivial and doesn't seem to maintain the fidelity of remote events). But otherwise, this runs a great deal of my life schedule.
@npub13n40...3h2h in the event you should ever find yourself considering whether to purchase Aldi-brand freezer gelato cups…don't. You'll get far better value going to your local home-improvement store, buying a can of spray-foam insulation, spraying the word GELATO on the ground, sprinkling some sugar on it, and eating it with a spoon. That is, unless you've ever wondered what "sadness-flavored gelato" would taste like. Oof.