(This is an adaptation of a similar page on the previous version of this website.)
What follows is a listing of tools I use -- to enhance my productivity, to satisfy my conscience, and to enhance my quality of life. It is unlikely to ever be a complete list, and it may be out of date at times, but it will have to do.
Migration paths are shown for some tools on this page, showing how I moved from one choice to another over time. In each case, some minor selections may have been left out for the sake of simplicity. For instance, I left out Red Hat, SuSE, MacOS, WinNT 4.0, MEPIS, Slackware, and a bunch of other stuff in the operating system migration path, because none of them really served as big a role as the options I did list.
This is meatspace gear I have and use for various purposes that I find important and interesting enough to give it special mention, or otherwise just feel like sharing.
Dean Electric-Acoustic Bass with Cutout
Some years after getting my Soundgear bass (see below), I became increasingly interested in acquiring an acoustic bass guitar. That interest intensified after my paternal grandfather's memorial service, when I spent some time with a number of relatives I had not seen in quite a while -- three generations of them. My aunt talked about my grandfather's love of music and passed out some banjo-shaped ukuleles as gifts to everyone in the youngest generation. My uncle (her brother) brought in his guitar and a fair bit of music ensued. When I returned home, I started hunting for the most inexpensive acoustic bass guitar I could find that wouldn't just be junk. I ended up going to Music Go Round to pick up a used Dean, model AX-EABC-MAH-GC. That's the Guitar Center model of Dean's standard entry-level electric-acoustic four-string with a cutout (and the less common mahogany finish).
It has a crack in the sealing over the wood finish, but is effectively undamaged, and everything is in pretty good condition otherwise. It's not quite as easy a neck to play as on the Soundgear, but it's still comfortable. It sounds decent (if not exactly loud) without an amplifier, which means I can practice without having to screw around with electricity and cords. It's exactly what I wanted, and it's what I got.
Dressmaker SAMB-2 Sewing Machine
I decided I wanted to learn to do some sewing, for the sake of repairing worn clothing (patching, restitching seams, et cetera) and maybe even making something useful from time to time, so I checked around at a few local sewing and vac-and-sew shops. At one in particular, J&M Vac & Sew (now defunct), I ended up with the owner showing me around. He had the passion of an enthusiast, and I later found that he had been working with vacuum cleaners and sewing machines for decades. He caught on very quickly to my needs, and directed me toward a 1950s steel tank of a machine that will probably survive the death of the human race, and even the rats and roaches. He demonstrated sewing through more than half a dozen layers of denim without a problem, then putting stitches in a piece of kleenex without changing out the needle or thread, and without any tears or puckers in the tissue. I was already sold on the thing before he was halfway through the spiel, at a very affordable price (a fraction of the price of new, cheap, plastic pieces of junk of comparable size). He then went on to throw in a cabinet for the machine at no cost (for those not familiar with sewing machine terminology, "cabinet" basically refers in this case to a sewing table to which the machine can be attached, where the machine can actually flip down inside the table and leave a smooth table surface) with some damage to the finish, but no functional problems whatsoever.
He made a very satisfied customer out of me. The machine has been great. It may weigh something like forty pounds, but the solid strength and durability of the thing is worth a lot more to me than the light weight of a flimsy plastic machine, and I can sleep better knowing that if I'm attacked by a rhinoceros I have a suitable blunt instrument for use when defending myself. I was so happy with the machine, and with the classes I took at the store, that I ended up applying for a job there, to learn to be a vacuum cleaner technician, and got hired. While I did not work there long (a combination of being an introvert in a job more extroverted than I expected and some terrible dust issues I had not anticipated), I remained on excellent terms with the owner and staff while the store stayed in business, and am grateful the owner directed me to a machine that so perfectly matches my needs.
Esterbrook Estie, Cobalt/Silver
At the 2019 Colorado Pen Show in Denver, one day's five dollar admission also bought a raffle ticket. I attended all three days, and on the last day I won a brand new Esterbrook Estie fountain pen with medium nib, in the Honeycomb color scheme with silver trim, donated for the raffle by the Esterbrook representative at the show. As they announced the prize just before calling out my raffle ticket number, he said that whoever won it could have him swap out the nib for any of the other available nibs for the pen. I got a little bold after I won and asked if I could get the pen in a different color, too. As a result, I got the Cobalt color with silver trim, and a 1.1mm stub nib.
This pen, with this nib, feels amazing when I write with it; as a friend put it, "It's amazing how they made a nib out of butter." The proportions of the body and cap of it are beautiful, which a lot of cigar-shape pens such as the Conklin Duraflex seem to get wrong, and many others get just so-so. It's not a small pen, but it's not obtrusively large, either. I don't have the biggest hands, but the missus has hands smaller than mine and even she likes it, while the overall size also seems well-suited to someone with larger hands. Once in a while, when writing with it, I find myself revelling in that buttery smoothness of the writing experience without it actually feeling slippery on the page (even for the smoothest-feeling papers, which I prefer).
I keep it filled with Iroshizuku Tsuyu-Kusa ink, for a combination of a professional looking color and a bold contrast with black printing when filling out or signing forms. I call it my "autograph pen", half-jokingly, because it's my favorite pen for my signature.
Ibanez Soundgear SRX590
My first electric bass guitar was a junker with a warped neck from a pawn shop; I do not even recall what brand, and do not recall its looks well enough to hazard a guess. I had no idea what I was doing, and I did not do it long. Fast-forward a couple years: I had moved across the countinent, and I found myself hankering to pick up a bass again, so I shopped around, mostly at places like Guitar Center. I put some money down to reserve a bass, then found myself moving more than a thousand miles away again, to a place where there were no local stores of the chain where I had reserved the bass (no, not Guitar Center -- those things are everywhere, the McDonald's of guitar shops), so I called up corporate and got the refundable portion of my money back. A couple more years later, I found myself spending a lot of time in guitar shops in the area (one of them a Guitar Center).
I eventually ended up buying a bass in a locally owned and operated place called Spotlight Music. What I got this time was a four string Ibanez Soundgear with two big active humbucker pickups, a beautiful dark finish with a kinda pearlescent silvery edging, and furniture that has a sort of hematite look to it (what a lot of product vendors call "black chrome"). The styling is beautiful (and a trifle wicked looking), it has a reasonably fast neck on it, the heft is solid but not unwieldy, and the ergonomics are pleasant. It sounds great and feels great, making it easy to understand why Soundgear seems to have a good reputation with session musicians.
I went back to Spotlight for lessons from one of the freelance instructors who use their rooms, and ended up with Tony Deyo giving me some much-needed "bassics". Either I learned very quickly or he says that to all his students, but in either case I found the experience helpful and the price reasonable, and I quite like my bass.
- Pawnshop Junker -> Soundgear SRX590
Platinum Procyon, Deep Sea + Platinum 3776 Century, Black Diamond
My first fountain pen, and thus my first favorite and everyday use fountain pen, was a simple black Pilot Metropolitan. I had been so starved for quality writing instruments since the 1980s that I thought it was amazing. I later realized that Pilot used proprietary cartridges and converters, which severely rubbed me the wrong way, and bought a black Faber-Castell Essentio. That was a much better pen, and I discovered it also had a much better converter than that piece of junk rubber bladder converter that came with the Metropolitan. Faber-Castell fountain pens also take standard international cartridges, but I subsequently found out they only accepted proprietary converters, which was a bit frustrating. It also did not post, which at first I thought didn't matter but, after a while, I realized it was very inconvenient due to the ease of losing track of the cap in some circumstances, especially when using it as my everyday pen. In fact, fountain pens (even the pretty low-end Metropolitan, which is worse than some Chinese pens that cost a tenth as much, on the order of a buck-fifty instead of fifteen dollars or more) were such an incredible improvement over more typical consumer-grade pens that I found myself handwriting pretty constantly where before I avoided handwriting in favor of typing whenever even remotely possible.
For my birthday in the first half of 2019, the missus got me a Platinum Procyon with Deep Sea finish. That pretty instantly became my favorite, everyday workhorse pen. It writes beautifully with its Japanese fine nib (European manufacturers' "fine" nibs are generally far less fine than Japanese manufacturers' fine nibs; even European "extra fine" nibs are often less fine than Japanese fine), never has any flow problems, feels quite smooth on the paper, and rests nicely in the hand in a way that doesn't lend itself to fatigue when writing for long periods of time. It fits my needs pretty amazingly well. The only downside is that posting it gradually wears some of the finish away, revealing white beneath the "Deep Sea" color. For my everyday workhorse, though, I don't particularly mind. It's my favorite pen for general use, and feels more satisfying when writing even for long periods than others' much more expensive pens I've tried for short periods, including some that cost more than a thousand dollars.
I liked it so much I got a second Procyon, in the same color, as a backup.
The next year, I got a Platinum 3776 Century in the "Black Diamond" finish, which means it's a very dark, translucent/transparentish black pen with silvery furniture (pen clip and accents). It has what they call a "soft fine" nib, which is a 14k gold nib with more flex to it than a more typical nib, somewhere between a standard fine nib and a flex nib. When it arrived, the nib's tines were a bit jammed together so that ink did not like to flow the way it should when writing, and I ended up adjusting the nib myself. It seems this is a common issue with the soft fine nibs for the 3776 Ceentury, which I hadn't realized before I picked it out. After adjustment, it writes like a dream. I don't recommend getting that nib unless you're either willing to adjust it yourself (which may come with risks) or pay a bunch of extra money to get a nibmeister to adjust it for you, but I certainly don't argue with the results after I adjusted mine.
These days, I use the Procyon as my everyday writer when I'm out and about, and the 3776 Century for the same purpose at home. I use Aurora Black ink in both of them; it's a very well-behaved, dark, basic black ink, which is exactly what I want for general use.
- Pilot Metropolitan -> Faber-Castell Essentio -> Platinum Procyon + Platinum 3776 Century
The T450s is, generally, great. I love the fact it has two batteries, one of them removable so I can hot-swap it without plugging in or losing power, though the other is internal so unfortunately I can't hot-swap them both. It's currently maxed out at 20GB of RAM, running OpenBSD, and it still does the job, though these days I use it less because I got a newer ThinkPad.
I got the T14, which lacks my favorite feature of the T450s (the dual battery setup), but it's faster, and has a smokin' fast M.2 SSD in it plus 48GB of RAM if I remember the numbers accurately. This, too, is running OpenBSD.
For both laptops, I basically ordered with minimal specs and upgraded RAM and drive myself. They're both excellent platforms for playing my favorite video game (C programming, potentially using a lot of system resources when compiling).
- 1990s Acer -> Various ThinkPads -> ThinkPad T450s -> ThinkPad T14
These are software tools that I use on a regular basis, in alphabetical order.
btpd + btpcli
I have very little use for BitTorrent in my life, but I do occasionally use it to get the latest ISO of some Unix-like operating system or other. I looked around for something fairly minimalistic, and I found the command line version of Transmission (called transmission-cli in various software managers). Maybe my memory is playing tricks with me, but as I recall things Transmission went from being basically cleanly copyfree licensed (using the MIT/X11 License, apart from dependencies, at least where the GUI front end is concerned) to anything more than transmission-cli being GPLv2, to everything being GPLv3. In the middle stage of that, I looked around for a decent replacement and found a console based BitTorrent client called unworkable, but it was half-finished and not really usable at the time. I think it has become more complete since then, but I have not really looked into it very thoroughly.
At the end of that license change path, I started looking around again and found btpd. After giving it a try, I am impressed. It is a nice, clean tool, with a handy client/server operation model that allows me to use a command line interface called btcli. It is also copyfree, distributed under the terms of the Simplified BSD License. Even more impressive, using it is simple, straightfoward, and well documented with both manpages and
--help options, making it very easy to pick up and use for the first time -- or, as is kind of important for my rare use of the thing, after a long period of not using it. By way of that simple, easy, straightforward interface, it also provides the user with some great functionality, like stopping and resuming downloads, connection limiting, unambiguous status listings, and other shiny stuff, all without making the thing feel like some kind of bloated monstrosity.
- transmission-cli -> btpd + btpcli
Backups are easily scripted using tools that do checksum-based incremental backups over SSH (with compression) from a shell command, and cpdup fulfills that need in spades. I prefer it over the significantly more ponderous major competitor for that kind of backup capabilities, rsync.
- scp -> rsync -> cpdup
I went from taskbar menus to desktop-click menus, then to no menus (just using keybindings configured in my window manager plus launching things from the shell), to a combination of keybindings for all the commonly used stuff plus dmenu. It turns out dmenu is awesome that way. It's a truly effective and elegant meshing of the benefits of a GUI and the power of the command line for providing simple access to applications on the system, and it stays out of my way.
- Start Button -> right-click -> keybindings -> dmenu
When I first started using smaller, simpler tools for managing email, the only real option along those lines for fetching email from a remote server that I found was fetchmail. Unfortunately, fetchmail is kind of a pain in the butt to configure. It is, in fact, bad enough that using the GUI configuration tool is almost mandatory, and even that almost always screws things up. On top of that, the restrictive licensing was kind of a downer. I eventually discovered getmail, which was a touch more stable, and a smidgen easier to configure, but not any better on the licensing. After a few years of fetchmail, and a few more of getmail, I decided to write my own replacement, which I intended to call pullem, but I never really got very far on it, mostly because I kept getting distracted by other projects that were more fun. Just as I was about to dive back into it and get pullem written once and for all (probably a couple weekends to get it to the point where it would be worth sharing with the world), I stumbled across a handy little tool called fdm, with a much simpler and clearer configuration style than even getmail (let alone the snarl of configuration issues of fetchmail). It is fast, lightweight, flexible, and blessed with extensibility rather than being loaded down with half-broken features I'll probably never use. It even comes with built-in capacity for filtering rules in a simple, pattern based style -- always more my preferred approach for things like spam filtering than the typical Bayesian approach, which tends to result in many false positives in my experience.
- fetchmail -> getmail -> fdm
I pretty much started with Subversion (back when it was still copyfree licensed) for version control. When DVCSes started taking over, I ended up using Mercurial and Subversion both, for different purposes. Subversion eventually got phased out entirely, probably not long after the Apache Foundation took over the project and changed the licensing, but a bigger influence on the change was my discovery of Fossil SCM.
Fossil does things a little differently than the competition, and I find that I like it more. Among other things I quite like about it is the fact that issue tracking goes with the version control repository, which is pretty handy, but there are other things I like. In addition to that, it's really the only viable choice for copyfree licensed version control at this point, as far as I've seen. Code hosting for it lurks somewhere between nonexistent and woefully inadequate, unfortunately, so I still used Mercurial for a number of projects for a while, but I solved that problem by hosting my own Fossil repositories. One of the nice things about Fossil is that it's the easiest DVCS to host on pretty much any arbitrary web hosting options I've encountered, except perhaps the most braindead.
In addition to the official Fossil Quickstart Guide, there's also a very simple intro I wrote called Fossil For New Users, which helps get some of the basic getting-started stuff out of the way without having to trial-and-error your way to figuring out how its use patterns differ from Git's or Mercurial's. Hopefully that guide is still up to date: I don't guarantee I will always update it in a timely manner.
- Subversion -> Mercurial -> Fossil SCM
I'm not the world's biggest fan of its copyleft licensing, but its core functionality is indispensable, at least until something along the lines of netpgp closes in enough on feature parity with GnuPG to make it a suitable replacement. GnuPG does actually have technical shortcomings (such as its inability to natively check multiple keyservers for keys), but some of them can be worked around and there simply aren't any alternatives for others that suit my needs. It's also known to have some issues with the codebase, but sometimes there just aren't better options.
The GraphicsMagick tool, especially using the
gm display command, provides enough image editing functionality to suit my most common needs. In addition to being much lighter weight and more stable software than The GIMP, it also benefits from friendlier licensing and far fewer dependencies.
- MS Paint -> Adobe Photoshop -> The GIMP -> CinePaint -> GraphicsMagick
Rather than use some GUIfied thing with clicky buttons, I just wanted a music player application that did its thing with minimal use of system resources, minimal hard drive space consumed during install, and a keyboard-driven interface. The word "herrie" is Dutch for "noise", and it's quite effective at delivering the noises I want, in FLAC, MP3, and Ogg Vorbis formats. Its keyboard controlled interface is very reminiscent of Vim's and Mutt's. It can automatically communicate with Audioscrobbler, for crying out loud. It's even copyfree licensed, under the terms of a BSD license. In general, it's simple, effective, and efficient. The only downside seems to be its lack of true command line interface -- it requires an active (curses based) captive interface to do its thing. That's not so bad, though.
- Winamp -> XMMS -> mpd+mpc -> herrie
I have finally come to see the light, with regard to tiling window managers. Since early 2011, I have been using a tiling window manager called i3 pretty much full-time, and it is distributed under the terms of a BSD license. I have also tried dwm, spectrwm, wmii, and a couple other tiling WMs, giving them each a real chance. I think that dwm would be my second choice out of everything I've tried, if i3 was for some reason not an option any longer, with the floating model AHWM (my previous favorite) tagging along in third place.
- KDE -> IceWM -> Fluxbox -> WindowMaker -> Sawfish -> AHWM -> i3
One day, I started thinking about the possibility of getting a stand-alone screen locking utility to "secure" my laptop when I, say, went to the bathroom. I find myself in situations where I use my laptop around other people quite a lot, so that kind of functionality can be kind of important. I didn't want a screen saver, mind you: just a way to lock the interface until a password is entered so you can't really access stuff on my laptop, without having to shut down X and log out. Being the sort that favors lightweight window managers, my WM of choice didn't have that functionality built in; that's why I wanted a small stand-alone utility. That's all slock does, and it's perfect for my needs. Just type slock into a shell, and the screen goes black. Keystrokes are intercepted by the screen lock, mouse clicks don't get through, and your GUI environment is effectively hidden from prying eyes. You can still switch to other TTYs, though, so be sure you're logged out of those if you don't want people to be able to access the running OS without logging in. Like everything that comes from suckless.org, slock is copyfree licensed by way of the MIT/X11 license.
Once I moved my primary OS choice to OpenBSD, I found that for some reason it was kind of annoying getting slock working properly with i3. I gave up and started using i3lock, and have stuck with it since.
- slock -> i3lock
I started out with computers long enough ago that there were no pointing devices, unless you count joysticks and arrow keys on the keyboard. Basically, everything was the command line, otherwise. Macs started ruining that for most of us in the '80s, and the trend continued in the '90s and onwards. GUIs are largely indispensible for most computer usage these days, if only because people don't write enough TUI programs to free us from the chains of the pointing device. I used mice, pointing sticks (primarily TrackPoints on ThinkPads), and trackballs. These days, I try to minimize my use of direct input methods outside of the keyboard for making use of the computing environment generally. Judicious use of applications and/or plugins that provide vi-like keybindings, console-based tools, and a good tiling window manager can help immensely with that.
Technically, I still use pointing devices, pretty much 100% TrackPoint or trackball, because there's a fair bit where things are just designed in such a way that it's difficult to be very efficient with keynav. It's difficult with a physical pointing device, too, but the indicators of when the pointer will point at the correct thing can be technically just slightly better in many pathological use cases.
- garden of eden -> pointing devices -> keynav
ksh + mksh
Since I made the switch to FreeBSD years ago, I basically just stuck with tcsh for my interactive command shell for a while. I liked the C shell style of syntax just slightly more than the Bourne shell style, and tcsh was a default part of the FreeBSD base system. The only real downside was the annoying contortions needed to redirect STDOUT and STDERR separately, but that was not something I needed to do with any frequency to speak of. My interactive command shell choice had no impact on scripting, because when writing shell scripts I choose sh, full stop. There are very good reasons no shell scripts should ever be anything but portable sh syntax; if you need more, add some awk, or use a real programming language (at least as "real" as Perl, Python, or Ruby).
I had a brief-ish foray into the Linux world again for a couple of years. I decided to try Zsh there, because Bash was already the default for the system, and if everything's going to be bloated and horrible anyway I thought I might as well try something that gives me some real features for the bloat, is better designed, and is not as user-hostile in its documentation (to say nothing of Zsh using better licensing). To my surprise, it was also actually faster than bash, despite being able to do a lot more stuff -- though that "more stuff" turned out to be basically useless to me, because honestly I don't need weird symbols and dynamically calculated values in my shell prompts or other such frippery.
When I switched back to using FreeBSD full time, I decided to try something new. I installed mksh, and ended up making it my primary interactive command shell. I have found its vi-mode capabilities pretty comparable with Zsh's and slightly better than tcsh's, it has basically all the features that I need for an interactive command shell, it's well-licensed, and it is not only smaller than Zsh, but actually smaller than tcsh (last I checked), which is pretty impressive. It also lacks the STDERR and STDOUT redirect problem of the C shells, and it keeps me in slightly better practice for the rare occasion when I need to write a shell script in sh (because mksh, being a Korn shell descendant, uses a Bourne style of shell syntax). When I need to set up a Linux system for myself these days, I typically install mksh there, too.
When I switched to using OpenBSD as my primary OS choice, I just stuck with the OpenBSD ksh (a fork of pdksh), which meets my needs much like mksh.
- DOS -> cmd -> bash -> tcsh -> zsh -> mksh -> oksh
Much as I have been pursuing a path through relatively simple tools for retrieving email (see fdm above), from options that are mediocre at best to those that are progressively better, I have been doing the same for sending email. I had discovered sSMTP about the same time as fetchmail, then msmtp some time after getmail. Before discovering fdm, I had despaired for some time of finding a copyfree tool that was simple enough to avoid making things difficult for me and capable enough so that I would not feel constrained to use something suboptimal with bad licensing. As such, I had started thinking about writing my own tool to fill that niche, but stumbled upon fdm so that I did not need to reinvent the wheel. I hold out hope, now, that I will similarly discover a good copyfree replacement for msmtp, though for some time I have been fairly convinced that I would have to write it myself to get such a thing.
One point of departure from the same pattern with discovery of replacement tools for fetching email is where moving from fetchmail to getmail meant simplifying things and getting more capability out of it for my needs. Moving from sSMTP to msmtp gave me more capabilities for my needs, and solved the problem that sSMTP was such a dead project that it was getting difficult to even get source code for it, but was a definite trade-off as msmtp was a significantly more complex tool (though still simple enough to be quite usable). If I do have to write my own SMTP agent, I'll aspire to fdm's combination of simplicity, flexibility, and capability. I suppose I can only hope I will succeed.
- sSMTP -> msmtp
Mutt is my current favorite mail user agent, and has been for some time. It's a huge productivity boost when dealing with email, as compared with previous tools I've used. There are some minor niggling annoyances in how it works, though. I haven't found myself switching to anything better, yet, but I may have found something: nmh. I just haven't yet gotten around to trying it seriously, though I did set up a test account for a few hours once. Perhaps I'll revisit it within the next year or so.
- Outlook -> Thunderbird -> Mutt
I made the switch from Debian GNU/Linux to FreeBSD around 2005 for a number of reasons, including the decay of the Debian distribution. I was immediately impressed with the technical benefits FreeBSD offered that I'd been missing all those preceding years, without realizing it -- such as increased software auditing capabilities and reliability, better software choices in FreeBSD Ports than in the official APT archives (at least for my tastes), easier system configuration, and better documentation outside of manpage coverage (which was still one of Debian's primary strengths at the time). The feeling of enlightenment wasn't nearly as big as the switch from MS Windows to Linux distributions, but it was still significant. Add to that the fact that it's more thoroughly copyfree licensed (with a BSD licensed kernel and default shell, among other things), and I was quite happy.
Fast forward a decade, and you find me using OpenBSD as my top choice. I chose it for its greater assurances of being trustworthy, in part because of its greater attention to clean code and system design, and in part because of its ongoing code review. While open source software is always easier to trust than closed source software, that's not quite as good as open source software with a focus on clean code and ongoing code reviews to actually verify someone has not slipped in something malicious (among other reasons).
- MS Win2k -> Debian GNU/Linux -> FreeBSD -> OpenBSD
I used to use a little command line tool called Tofu as my todo manager, but I since stumbled across something called Calcurse while looking for a palatable way to deal with an iCal file sent to me by an employer/client. Calcurse is a console-based calendar/organizer application with a curses interface that also happens to come with an excellent little todo list manager that encourages keeping the list relatively small. I typically prefer command line over curses, and Calcurse even offers some of its functionality through command line options, but I have tended to just open Calcurse in a terminal and leave it open pretty much all the time. It's that handy. It's also distributed under the terms of the Simplified BSD License, so that makes me happy too.
Eventually, I came up with a different way to manage todo list stuff with software, and I wrote a command line utility as a POSIX-compatible shell script called Q. It's generally treated like a queue, but with built-in "rotate" functionality where one can pop an item off the front of the queue and stick it on the end with a single command, giving it some of the functionality of a ring buffer. It has some cheat codes of sorts for out-of-order list management in emergencies, but it's really intended to be used by just looking at the first thing on the list, completing that task, then removing it -- or, if it's not something one can do now, rotating it to the end and working on the next item instead. It keeps tasks from getting stale that way. In time, I rewrote Q as a C program. I think it's much better designed now, under the hood, which should be obvious considering it's not limited by using shell syntax for its implementation.
I still use it, but in a more limited capacity now; most of my todo list management is on paper these days.
- Tofu -> Calcurse -> Q
I created RedRug, a simple wrapper for a Markdown parser called Redcarpet. I use RedRug pretty heavily, both in web dev (as a library) and on my laptop (as the
redrug command line utility) to handle Markdown formatted text. I used to use BlueCloth, but that has been subject to various forms of ugly over the years.
- BlueCloth -> Redrug
Simply put, scrot is a command line screenshot grabber utility. Combined with good keyboard shortcut configuration, such as that provided by AHWM, it becomes about the world's easiest screenshot grabber in the world. It's offered under a BSD license, so it's copyfree software, too.
The scrot page at its maintainer's site is dead now, but the utility itself is in software management archives for many open source Unix-like systems, so it's easy to install. I'm considering taking up maintainership of the codebase at some point in the future, though it is simple and stable enough that as long as it remains in various OS software management archives I'm not sure it really needs any maintainership to speak of.
- MS Paint -> GIMP -> scrot
I replaced GNU Screen with this handy little tool, tmux. It does everything I need it to do, and does it well. It's very similar to GNU Screen in terms of interface and capabilities, but it's copyfree licensed (via a BSD license, specifically) and a much smaller program with cleaner code -- all clear wins, in my estimation. It also employs a client/server model of operation, which helps keep resource usage low for times when multiple sessions are needed and simplifies the design of components of the system by decoupling them. The major immediate gotcha in making the transition is the fact that the command prefix is ^B instead of ^A by default. The reason for this change is actually a very good reason, of course; ^A is the command character used by most shells to move the cursor to the beginning of the line, and using it for the command prefix in your terminal multiplexer interferes with the ability to use it as the command character for moving the cursor to the beginning of the command line. The other basics are quite easy to find in the clear, concise manpage for tmux (including the tmux attach-session command used for reattaching a detached session). It even got added to the OpenBSD base system, which is very nice indeed for me.
- GNU Screen -> tmux
When I discovered Vim, it was a revelation. The productivity enhancing design philosophy of the vi-like editor really opened my eyes to ways I could improve my computing life. It ultimately led to the discovery, adoption, and enjoyment of many other non-GUI, no-frills, get-out-of-the-way, functionality-over-features tools. There were things I would have liked to improve about Vim, of course, including the licensing. I eventually grew to appreciate nvi as a simpler, smaller vi-like editor, complete with better licensing. For a long time I had difficulties with nvi, keeping myself trapped in Vim use, but when I finally tried the development version (v1.81.6, rather than the default v1.79 on various systems, notably including FreeBSD) I have found it to be quite sufficient for my needs thus far. There are things I wish nvi could do, that I had to give up when I stopped using Vim all the time, but there does not seem to be anything I can't live without that it lacks, and Vim comes with a lot of things I'd really rather live without, so the trade-off seems worthwhile when I take into account the matter of licensing. I may some day fork, or contribute to, the nvi project to ensure my editor of choice supports everything I want, but that day seems far in the future just now. I'll just have to add it to the queue, along with everything else I want to do "some day" -- probably within the first hundred years after I achieve immortality. In the meantime, I find I have gravitated back to Vim for most tasks, because of the couple of features I like in Vim that nvi lacks.
- Notepad -> SciTE -> Vim -> nvi -> Vim
Vimb + w3m
When I first discovered the Phoenix browser, it was like an amazing revelation. It was a browser that was so much better than the competition that it boggled the mind. In time, the name was changed to Firebird due to a conflict with other software using the Phoenix name. It kept getting better. Around the time it reached v1.0 release status, and the name was changed once again so that it became the Firefox browser, something else changed as well. Instead of getting better as the developers continued to work on it, the browser got worse with every new release. For around half a decade I suffered increasingly at the hands of the perversely guided browser project that has abandoned all the principles that originally made it great, and had found myself essentially unable to use any competing browser in its place because (of course) all web browsers sucked.
Late in 2011, I discovered the xxxterm project; in January 2012, I used xxxterm almost exclusively, and had only opened Firefox again since then to harvest data before finally uninstalling that monstrosity. After close to a decade of never being able to really get away from Firefox for various reasons, in that one month I only launched Firefox a very small number of times (probably two or three times), and even that was only to get at bookmarks and saved tabs that I wanted to move to a xxxterm (pronounced "triple-ex term", according to the developers, thus "a" instead of "an") session. While xxxterm had a steep learning curve relative to other browsers (like vi relative to other editors), and generally required the user to change the way (s)he uses -- and thinks about using -- browsers to get the most out of it (like vi requires the user to change the way (s)he uses -- and thinks about using -- editors to get the most out of it), xxxterm compensated the user for this by providing enhanced security, stability, and productivity for the motivated user (like vi enhances the productivity of the editor user).
Since then, it got renamed xombrero (xxxterm was only ever intended as a working title until the developers came up with something "better"), and I continued using it without needing Firefox at all; all the benefits of xxxterm applied as well to xombrero, and it continued to improve. Possibly the most amazing thing about the way I completely left Firefox out of my computing life since January 2012 is the fact that I did not have to really try to do so. Just getting familiar with xombrero resulted in me ignoring Firefox, not even thinking about it or missing it, in much the same way I one day found myself not turning on MS Windows for a few months back when I was a relatively new user of open source Unix-like systems because the Unix-like system I was using at the time provided everything I needed, better than MS Windows could provide any of it, despite the fact I had MS Windows customized and tuned within an inch of its life and running on a machine with probably six or eight times the power and capabilities of the system on which I was ran my Unix-like system. Firefox had simply become irrelevant. Finally, after years of searching, I found a way to escape the screaming plunge into stupidity and aggravation Firefox had pursued after reaching 1.0 release status.
It was destined to die, it seems. The world cannot tolerate good browsers. The WebKitGtk project deprecated some of its most important features for the xombrero project, which then languished without needed updates until it was no longer really usable. I ended up having to suffer with Firefox again, as it continued to get worse and worse, until even stuff like Pentadactyl and Vimperator were no longer implementable due to a drastically gutted extension system. I finally found another browser that could ease the pressure a bit: Vimb.
Of course, Vimb is nice in a lot of ways, but the web has also moved on to the point where all WebKit browsers are somewhat hindered by short-sighted webdevs, so I don't get to use Vimb for everything. Furthermore, Vimb's license is a bucket of mud and leeches, but it at least helps keep me sane by avoiding Firefox for most of my browser time. A console-based browser (with a copyfree license), w3m, helps sometimes as well.
- Netscape -> MSIE -> Firefox -> Chromium -> Firefox -> xombrero -> Vimb + w3m
My life was, in small but rather pervasive ways, made much easier by the discovery of command line utilities that facilitate the task of copying from the shell to paste elsewhere (without having to manually drag a mouse around). The best combination of licensing, usability, and functionality that I've found so far in that software niche is an
xsel utility written by Conrad Parker, and available in the FreeBSD ports system as
xsel-conrad. In fact, I like it so much I became the
xsel-conrad port maintainer for FreeBSD. Raise your hand if you're old enough to remember the old Remington electric shaver ads featuring board chairman Victor Kiam: "I liked the shaver so much I bought the company."
- xclip -> xsel
For a while, I used rxvt-unicode for a number of reasons. The key reasons were its smaller size than XTerm and default behavior that suited my preferences. Of course, defaults are easily overcome with configuration changes and, frankly, the smaller size of rxvt-unicode is somewhat mitigated by the fact that XTerm is installed with the X Window System anyway -- so there's little point being stingy about program size when you're going to end up with the larger program installed on the system anyway. I've gone back to using XTerm. Of course, I've only explained why I stopped avoiding XTerm, and not why I actually like it. The answer to that is pretty simple: it doesn't require a mouse to use effectively, it's copyfree licensed, and it offers Unicode support via the uxterm wrapper on systems as well as by way of an X resource, in cases where it doesn't support Unicode by default (as on OpenBSD, as long as your locale is set up properly). It's also basically everywhere, something on which you (I, at least) can count, which is nice. It's kind of like a "standard" that way.
- MS cmd.exe -> KTerm -> XTerm -> Aterm -> Wterm -> urxvt -> (U)XTerm
Simply put, this is a tool for downloading videos from YouTube (and other sites) so you can watch them at your leisure and with the video player of your choice. It can be handy for things like hedging against censorship or -- as usually I use it -- to allow watching YouTube videos without dealing with the annoyancese of the YouTube website. I just download with youtube-dl then watch with a native multimedia application, or even just give the URL to mpv, which uses youtube-dl behind the scenes to download the video.
An open source development group calling itself "pwmt", or Programs With Movie Titles, decided to create a PDF viewer called Zathura. It uses vi-like keybindings, and it's quite nice. I like it a fair bit more than that old mainstay Xpdf, and (unlike Xpdf) it is even distributed under a fairly friendly license. Its only real usability flaw is in dealing with scrolling long lists of things in PDF indices, but it's a very small flaw in the grand scheme of things. It can even handle a couple other file formats, such as djvu.
- Adobe Acrobat Reader -> Xpdf -> Zathura