Not Wasting Time on Computers

Not Wasting Time on Computers

This webpage is intended to record, so that others who might be interested can reuse the ideas, the various time-saving mechanisms I have incorporated into my computing environment. It's only really relevant for Linux/UNIX users in most cases. What these items are about is really my computing environment, and the effects of evolution driven by the laziness of wanting to optimise or eliminate often-repeated activities.

The systems I use to cut down on time wasted through computers are the following:

  • A WWW Start-Page
  • GNU Screen
  • Aggressive email sorting
  • devtodo, not written up yet
  • Accounting with Gnumeric, also not written up

Web Startpage

Something obvious which I picked up from Dave Ingram: a webpage with my most commonly visited sites on it, configured to be the first page displayed whenever I open a browser. So, each browser I use (work, home, laptop, University PWF, etc) has my start page configured into it.

That page is historically called "news sources", since its guiding principle used to be limiting time wasted reading online news, with directions as to which online sites were to be read, and how often. This was supposed to have the effect of reminding me to read particular sites I forgot about and limit reading of others - in practice it didn't work like that, and eventually the "news" aspect was disregarded entirely.

The importance of having the page is ergonomic; it reduces the number of mouse-clicks and keypresses involved in getting around the web - the most commonly used websites don't have to have their URLs typed in manually. In the case of Google, a text-entry box permits access to the most commonly used Google function, searching the web without fancy options, without having first to load up the Google homepage.

The page itself is at http://mk.ucant.org/sources.html.

GNU Screen

I use GNU Screen to minimise the time spent setting up my work environment as I move from location to location; essentially, the text-based programs I was running when last connected to the network will still be there as I left them, rather than having to be started up each time I reconnect to the network, e.g., from home, or a cybercafe, or a different part of the University.

GNU Screen is a program which allows you to create multiple terminal windows in a single window (e.g., an xterm or a PuTTY instance). You can only look at one of these windows at a time, but there's a quick way of switching between different windows. The other crucial feature is that a Screen session can be left running after one has logged off, and your set of Screen windows can be accessed by multiple Screen sessions at the same time.

In practical terms, this means that you don't have to close everything down before logging off. You can leave your email and file editing and chat sessions, and come back to them later. If, say, a modem link goes down, on reconnection everything is still there. Only if the machine hosting the Screen system reboots does the session disappear.

Inside Screen I generally run Pine, which is the program I use for email. I also keep a window open viewing and editing a text file in which I keep my appointments diary, and another for the text file with my todo list in it. My graphical windowmanager has its menu configured so that running an xterm and immediately attaching it to the existing screen session is an easily accessed option.

Sorting and viewing inbound Email

The email I receive is sorted just before it is delivered. An automatic system determines which of about 30 inboxes should receive the email. The broad categories of messages are as follows: spam, personal email, work-related email, email related to other roles I have, mailing lists, blind carbon-copied email, and bounced messages. The last two types of message tend to differ so strongly in their characteristics (as examined by automated processes) as to be not worth the bother of attempts to determine which category (subject-wise) they really belong to.

Messages from mailing lists are generally identifiable by what address they originate from, and the various role-based and personal email addresses tend to show up in whom messages were addressed or carbon-copied to. I have two addresses for personal mail, one of which is associated with the University, and is also the obvious address for people in the University who don't know me to contact me on. I try to keep work-related email all going to my addresses in NIEeS's domain. These are the three main inboxes read throughout the day.

In a few cases, more than one mailing-list, or more than one address, is delivered to the same inbox.

Pine's incoming folders feature allows me to scan the inboxes quickly for something new. I just press Tab. It's possible to skip over inboxes I don't want to read. By this mechanism it's possible to force myself to confront the fact that I have incoming mail in boxes which are placed before the personal and work boxes that I want to read.

I use Pine 3, rather than Pine 4, for ergonomic reasons. Pine 3 lacks the notion of "rôles", so I've hacked in a patch which sets the From header on messages composed or replied-to depending on which inbox I'm in. This means that responses from other people to messages I've sent in response to their earlier messages tend to end up in the same inbox, making it easier to keep track of things.

The INBOX shown in the picture at the top left only receives Bcc's, spam, and mailing lists I have forgotten to sort into some other box. It gets a few messages a day.

One major benefit of the whole system is the time it cuts down on in sorting messages. I can see the messages relating to a particular area of my activity without having to hunt around for them visually. When I had to go back, briefly, to having all my mail in the one inbox, I started to lose track of things as they gradually got lost further and further up past the top of the screen, not to mention the time spent sorting messages out manually.

The message sorting is done by exim's .forward filter system. procmail would also do the trick, but I'm unfamiliar with its syntax.