Pylimitics

Simplicity rearranged

unmonetizable content since 1997


Simple tools

There are certain things I very much like about old-school unix software. I’m talking about the command-line utilities that were each designed to do one thing very well. To accomplish a more complex task, or in modern lingo, “workflow,” you could easily combine several programs, sending the output of one to the input of another, and so on. It was more like a set of software building blocks, and you could put together a very complex and capable workflow with those blocks.

But…at the same time, those old-school unix utilities were extremely concise; really overly so. Maybe because of the limitations of the computers of the day, maybe because text was the only interface and you had to type all the text, or maybe both, you had to know a lot to use those programs. A little mistake, as minor as typing “-a” instead of “-A,” would give you the wrong results. It wasn’t always easy to get access to a computer, and they were quite challenging to use.

Computers are much easier to use now, but instead of small, single-purpose programs you can use like building blocks, we have big, complex programs that are hard to use for a different reason. You don’t have to learn cryptic text commands and arguments, but you do have to learn the locations of the commands you want to use. And in many programs that really do just fairly basic things, like storing the text you type in a file to be used for printing, posting, or just storing, there are hundreds or even thousands of commands.

I have no use for most of the capabilities of the software I use. These programs are created to be sold, and the more different things they can do — the more “use cases” they satisfy — the bigger the market will presumably be. This is really not what I want. Most of my writing is for two purposes: to post on my website, or as a daily journal entry that I just store somewhere digitally. I have a laser printer, but I’ve noticed that I hardly ever use it. This is quite a change from my first “generation” of personal computers, when I recall printing documents all the time.

Thanks mostly to having computers as a hobby for a long time, I know how to write programs. Not at the level of a professional; I’m a self-taught hobbyist. But I can write a program for my own use that works pretty well, and I recently decided to try to replicate some of the aspects of the unix environment in my current setup — which sort of ironically, IS based on unix, because I use a Macintosh.

I mostly use my Macs for writing, so my first two simple, just-for-me programs are jedit and wedit. Nice unix-y names. The first one, jedit, is for journal entries. It’s a bare bones text editor that assumes you want one file per day, located in a folder called “Journal”, and named by the date it was created. You can use jedit to open and edit any text file, but I don’t. I designed it to do just one thing: a daily journal file. If I create and entry in the morning, and want to add to it later in the same day, jedit knows the date and just opens the day’s file. If I wait until 11:50pm to write a daily entry, jedit is fine with that too.

Some other writing is more open-ended and essay-like. For that I have wedit, which also makes some assumptions. It also tags files with the date, and assumes I want to save them in the folder called “Writing.” But it’s a little bit different. While I’m writing something to post on my website, I often have ideas about what I’m writing that don’t fit into the current sentence. So wedit has two writing panes: the main article, and a second “notes” pane where I can put those contemporaneous notes. The program saves the notes at the end of the saved file after a separator called “Notes:” (I’m not particularly creative.) I’m using wedit to write this (like most of what you read on pylimitics.net).

I’m still experimenting with this idea of single-purpose programs for personal use. I’ve used personal finance software for a long time, and tried a lot of alternatives, but never found a program that really fit what I wanted. So I’m working on that. My first attempt was an old-school command-line system, but that didn’t do it for me. So I’m still experimenting. A fascinating part of the experiments is narrowing down exactly what it has been about each of the systems I’ve tried that hasn’t been quite what I wanted.

The programming, mostly thanks to modern languages like Python, is pretty easy. The hard part is deciding what you want your program to do.



About Me

I’m Pete Harbeson, a writer located near Boston, Massachusetts. In addition to writing my own content, I’ve learned to translate for my loquacious and opinionated pup Chocolate Bossypaws. I shouldn’t be surprised, but she mostly speaks in doggerel. You can find her contributions tagged with Chocolatiana.

Check out my other blog, Techlimitics, where I’m grappling with the nature of simplicity.