My Software Choices

I write this in case you’re interested, and for posterity, in case my memory gets really crusty one day and I forget my name or something. I may silently edit this document from time to time, as my opinions change.

I run Linux on the desktop and have since 1996. I consider Microsoft to be an out-of-control, monopolistic organization, guilty of far more crimes than it will ever be prosecuted for. Its technology is mediocre at best, and much of it has been appropriated from others. Apple is not as bad, and I admire their engineering in general. But their products are overpriced and inflexible. And their customers tend to be insufferable fanboys.

Linux, on the other hand, is more or less free to own and use, and is not controlled by a corporation, but instead by a group of enthusiasts.

I run Debian Linux. Not Ubuntu, not Mint, not Arch, but Debian. Most major flavors of Linux these days are based on Debian, which is very solidly engineered and guaranteed to be free of corporate control. I wouldn’t recommend it to newbies, but it serves the seasoned user (like me) well.

Under Debian, on the desktop I run either LXDE or XFCE4, both very lightweight desktop/window managers. I don’t care for fancy graphics or a bunch of graphical tools. The command line and console work just fine for most things.

I run four workspaces on the desktop. First is occupied by a browser which will run the local websites I’ve built to run my business software (which I also programmed) and some personal software which keep track of my DVD collection and such. Whatever browser I use must be able to handle Javascript, because my business software has a small amount of Javascript it runs to speed up certain applications. Currently, that browser is Firefox Quantum.

If the browser can handle Youtube (on which I have a channel and to which I have about 400 channel subscriptions), then I keep a tab open in it for that. Otherwise, I find a separate browser which will run Youtube and make that run on desktop 3, just for Youtube.

On Desktop 2, I run a terminal program with multiple tabs. Currently that terminal/console program is Lilyterm. Lilyterm has the advantage that I can call it to open with X number of named tabs, which remind me of the applications I need to be running. I have used LXTerminal and/or TMux prior to relying on Lilyterm.

On the terminal, my first tab is Mutt, the terminal email client. Mutt has the advantage of not downloading a bunch of HTML and image (like porn) that I don’t want to see, and the support for threading is outstanding. Very configurable as well. It also allows me to use bogofilter and mailfilter to handle spam. This means that I can handle spam far more accurately than you ever could with Thuderbird or other graphical email programs.

Second tab is MOCP, or Music On Console Program. This is a console music player. All my music is in my ~/Music directory, sorted by artist and then album/disc. MOCP allows me to build my playlist (or more than one), play it sequentially or randomly, and repeat the whole thing to give me continuous music all day, day and night. It gives me song title, album and artist, but avoids downloading cover art and such, since I couldn’t see it on the console anyway.

Next is abook. It’s a console address book program that covers just about anything you need. I have a web application for this, but having a solid desktop (terminal) app suits me better. I use it to keep track of family, friends and businesses I consider important.

Next is a desktop calculator. I’ve been through a variety of them, but I prefer ones which use reverse polish notation (RPN). This goes back to the first days I used handheld calculators, which at the time were brand new. Orpie works well, and there’s another I put together in PHP called RPN. It runs in the console, even though it is a PHP application. I prefer the one I wrote. I would like to have built one using dc as the core, but dc apparently won’t do things like sine, cosine and tangent. These are functions I rarely if ever use, but consider essential for any respectable calculator.

Next is calcurse, a calendar/todo program. It shows a calendar for the current month and day, and the events or appointments for today or any day you navigate to. It also shows your list of to do items. It’s very handy, and when run in non-interactive mode, can be set to run in a cron job and email you what’s on tap for today or the rest of the week or month. Very handy. Also easy to navigate.

Next tab is Vimwiki. I run Vim for my editor and I need something which will allow me to take notes, record lists and various other things. Vimwiki is an add-on or plug-in for Vim that handles the notes/lists part as a desktop wiki. Very useful product.

Next tab is where I run a local PHP web server. Typically, I run Apache for the local and LAN websites. But when doing development, it’s more useful to have a whole separate server to serve up applications I’m developing in PHP. In this window, I start the PHP web server, and if anything I do causes an error, it typically shows up in this window, making debugging a lot easier.

Next tab is where I run Vim and use session files to delineate which coding project I’m working on. I use a couple of add-ons in Vim to ease my programming tasks. One is bufexplorer and the other is NerdTree. Bufexplorer allows me to open a bunch of files at once and switch to a different file as needed, from amongst the files I’ve opened. NerdTree makes finding the files I want to work on and loading them a lot easier.

Next tab is Midnight Commander, my go-to file manager. I don’t know of a better choice than this. It’s double-pane (like the original Norton Commander), and knows how to read and launch editors for most kinds of files. It also allows for logging into websites via FTP, based on one of its config files which contains FTP addresses, usernames and passwords. Very very handy.

Beyond this, I usually have one more tab open, which is just a straight prompt. I run various programs here as needed, like htop or whatever. Usually what I run here is something I will run briefly and then close and go on to a separate task.

If I need another panel to run a separate browser, it will typically be on desktop 3.

Desktop 4 is reserved for things like spreadsheets or other office-type documents, games or whatever.

That’s about it. No big deal. I just wanted to detail this for posterity.