Danie Roux

People person, change agent. Journeyer through problem and solution space. Interested in being interested.

Danie Roux header image 1

Using mutt, a very efficient email client

June 14th, 2005 · general

Today I felt the need to defend my choice of mutt as an email client. I can not remember the exact circumstances, but mutt was compared
to something broken and horrid to use.

My first contact with mutt was in 1999. At that time, the only email clients installed on the university’s computers were Netscape 4 and Pine. For some reason me and Pine never became close friends, but I used it for a few months anyway. I then discovered mutt, but I could not use it since it was not installed on
the computers in the labs. A friend gave me a login on a server he administered and he installed mutt for me there. That was somewhere in 2000.

And since then I’ve not used any email client for an extensive period. I flirted with Evolution, Sylpheed, KMail, Balsa and lately Thunderbird. But I keep on
returning back to the speed, convenience and efficiency of mutt.

I get around 800 emails a day, of which 750 are mailing lists. Managing the mailing lists and quickly skimming through all the mails to find the useful ones is a particular strong point of mutt. I’ll describe my basic setup, hopefully convincing someone to give mutt a try:

I have two email accounts; one that I give out to the public and one I use for internal communication. The public one I POP using fetchmail, the internal one
I access via IMAP. I have it configured so that pressing “I” accesses the public address, and “i” accesses the work email address.

These two accounts have different address books, signatures and “From” addresses. They also have different locations for draft emails and the sent folders.

The public address account has macros that allows me to limit the emails I see, much like the VFolder’s in Evolution. I used to have procmail recipes to sort all incoming mail into different mailboxes, but that was more work than it was worth.

So now I have the mapping ”\m” to see only mail directed to me and ”\rr” to see mail send to the Ruby on Rails mailing list, for example. This works out very well, since I don’t need to change mailboxes to read the mail that arrived in the last 10 minutes. I just view the complete inbox. When I have a lot of email in my inbox, I use the macros to quickly switch my views so that I can focus on one mailing list at a time.

The final cool feature of mutt that I really appreciate is the “auto_view” function. This allows certain mime types to be automatically displayed by mutt. Most notably I have an auto_view for application/msword.

With this auto view, and the correct entry in mailcap1, any Microsoft Word document is almost instantly rendered to text with antiword and displayed in the built-in pager of mutt. I also have a auto_view for text/html2 that renders the HTML mail send to me back to text via w3m.

Then, just for the fun of it, I display all emails from a .za domain in yellow in my inbox index. This makes it easy to spot when a fellow South African posts on a mailing list I am on3.

I hope this entry gives a quick view into how mutt can be used and how configurable mutt is.

I love my mutt.

1 application/msword; antiword ’%s’; copiousoutput; description=”Microsoft Word Text”; nametemplate=%s.doc

2 text/html; w3m -F -dump -T text/html %s; nametemplate=%s.html; copiousoutput

3 color index yellow black ~f.za$

→ No CommentsTags:·

Towel day

May 26th, 2005 · personal

I spend the day observing Towel day.

So I walked around all day with a black towel over my shoulder. I took it to two meetings, the coffee shop and to my quarterly performance review. All in all, I saw 19 colleagues.

Not once, not once, was I asked what the towel was all about. They just acted normal.

I am not sure how to interpret this fact. Either I fade into the background, or nothing I do can surprise them.

→ 1 CommentTags:·

Lambda Calculus and Haskell

May 21st, 2005 · general

I’m teaching myself Haskell.

Its not easy going, I’ve been thinking in Object Oriented languages for too long! Getting used to the idea to actually abstract away state, is proving difficult.

I decided to take the plunge and first understand Lambda Calculus. Since this is the basis on which functional languages works, the idea is that from this I’ll be able to easily grasp other functional languages.

Its helping already, I understand where the signature for “map” come from.

I’m currently stuck in “Yet Another Haskell Tutorial” at the “Continuation Style Passing” section. That’s ultimately what decided me to understand Lambda Calculus. That and a thread on Lambda the Ultimate.

I don’t understand why I never saw Lambda Calculus at University, but then, I don’t understand why we weren’t given a functional language to learn either. I had a quick brush with “Caml Light” (not even OCaml!) in a “Programming Languages” practical. That was however so basic as not to count.

The bad news is that I need to start preparing for the exam that’s in two weeks and finish an assignment that has to be in the same day. So I would need to shift my focus in the next few days.

But this is much more fun!

→ 2 CommentsTags: