Today in #FreeSoftwareAdvent it's ZFS. It gives me • all in one volume management (no volume-groups and logical volumes and manually resizing partitions on those logical volumes with a dozen different commands, no playing the "oof, need more space on partition A and have too much free space on partition B, back up all the files, nuke both, shuffle partition-sizes/locations, restore the files" dance) • transparent file compression • transparent volume encryption • fast and effectively free snapshots and clones (you start paying the cost if they diverge or deleting files that remain in a snapshot, but that's to be expected) • same-disk redundancy with copies=2 to help prevent against bitrot, and multi-disk redundancy with effectively zero effort • the CoW means no need for fsck(8) horribly slowing my boots or finding orphaned fragments of files and shunting them into a lost+found/ directory (my biggest frustration with OpenBSD's FFS2) in the event of an abrupt power loss • efficient send/receive (beats rsync hands down in terms of speed) • fine-grained quota/reservation control • utilities make scripting easy with output-formatting options • cross-OS support in a way that very few other filesystems provide (other than FAT 😆) I'm sure there are additional reasons that didn't percolate to the top of my brain, but it's just so much more pleasant than any other disk management I've done on any OS.
Today in #FreeSoftwareAdvent I'm thankful for the BSD projects, particularly FreeBSD & OpenBSD. Nothing against NetBSD or DragonflyBSD, I just haven't found a regular use-case for them in my day-to-day. I recently wrote up¹ why/how I ended up on a mix of FreeBSD & OpenBSD after a long tenure with Debian since it drifted from the Unixy principles² I loved and grew up with. ⸻ ¹ ²
Going a bit off the beaten path for #FreeSoftwareAdvent, today I get to appreciate HaikuOS¹. While it has some issues (mostly keyboard-mapping) that prevent me from using it as the main OS on my writerdeck netbook, it is AMAZING in how well it uses resources. That little underpowered Atom processor with its 2G of RAM just flies. It boots in a fraction of the time of anything else (other than DOS) that I've installed on the hardware. The GUI and all the applications are delightfully snappy. So please join me in sending a little praise toward the @npub1tfjg...9rng project for all the wonderful work they do! ⸻ ¹
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.
Having answered the question a number of times, I decided to finally document¹ why/how I ended up using BSDs instead of Linux, taking a page from @npub10ad6...g5mh's playbook². tl;dr: a bit of push from Linux, a bit of pull from the BSDs. ⸻ ¹ ²