I Wish Every Email Had a URI…

Why? Because that way I could refer to any email I have sent or received when I am writing notes into a text file.

I’ve been playing with my new Blackberry Pearl and it’s inspired a bunch of very exciting research into topics of Calendar, Task, Email, and Memo. (little joke there on the exciting part). Whenever I think about this stuff, I’m amazed that we are well into the 21st century and still these “smart” phones are about as easy to use for notes as a 3 foot pencil on a piece of sheetrock. Nevertheless, being able to email digital notes and blips around can be very handy if one is able to come up with a workflow that isn’t totally annoying.

A case in point is the bug db system Trac. This has nothing to do with smart phones except I have been using it at work to organize my work items. The good part: it’s free, doesn’t crash, doesn’t corrupt data, and has a feature-set that allows for tracking tasks (in my case, I’m not really using it for software bugs at all). The Bad? It takes an ungodly number of mouse clicks and/or keyboard entry to create a new task and/or file an existing task.

Imagine I grab a sheet of paper and a pen and I write “buy bananas” on it. If I’m set up right that’s going to take 2 moderate hand movements and then some minor hand movements to write the text. And boom, I’ve got a piece of technology that will help me remember to buy bananas.

Consider the requirements to achieve the same result in Trac. I need to find and click the image button labeled “New Ticket” (this may require scrolling to the top of the page I am currently on). I need type “buy bananas” as the title. Trac also requires I type a description. I don’t like the defaults for the “Component”, “Assign To” and “Milestone” fields, and there is no way for me to change the default values. (I’m using Trac in a shared environment, and someone else manages those defaults). So that is several mouse clicks to set each of those fields using a pull down menu. Not all of the Trac “New Ticket” page fits on my 1024×800 pixel screen (vertically), so I have to scroll down, and click “Submit Ticket.”

Still with me? Yeah, I know, it’s a lot of operations. And that is only half the story! Now I have to generate some kind of report and print it out, because chances are Trac is not going to be with me when I am in a good position to “buy bananas.”

I’m not trying to bag on Trac, it’s a great system and I would much rather use Trac here at work than any other bug DB I’ve seen. And obviously I am trying to Trac in a problem domain that is way outside the bounds of expected usage. But I was just noticing these things as I was thinking about how to replace my Hipster PDA with a smart phone. Suffice to say the Blackberry Pearl has a bunch of neat features, but I find that using the features requires a bunch of awkward button clicks and trackball movement that I would rather not do. Unfortunately there is no easy way to configure and change the behavior of the application menus or UI elements.

Still, this Pearl thing is growing on me, the benefits will likely outweigh the annoyances for me, and I’ll post more later.

So back to this email thing. Filing these Trac issues for myself, for a lot of the tasks the “Next Action” is to email somebody and ask them for help or tell them something is ready to go. It would be very hand to paste in a reference to that email so I don’t have to dig through my old emails when coming back to the task. And it turns out I can do this … with a minor hack. First prerequisite is having Squirrelmail set up. Probably other web-based mail readers could work as well. The problem is that Squirrelmail refers to email messages using an integer whose value is relative to the other messages in the folder. So their program works, but it would be helpful and more extensible if they were pointing to the unique identifier for the email message. So here’s the other prequesite: this will only work if you use the Empty Inbox philosophy. I started doing the Empty Inbox thing last year and it changed my life (for the better). So I highly recommend it anyway.

So here you go, you are using the Empty Inbox. This means (for me anyway) that you have a non-inbox folder with all of your old mail in it. I call mine “__Archive.” Because the integer indexes that Squirrelmail uses are monitonically increasing, the URL for it will stay valid (as long as you don’t delete old email!!!!). Here is an example (fake) Squirrelmail URL for an email message. The HTTPS URL keeps the message from prying eyes, which is a bug or a feature depending on whether you want people that are not you to be able to read this particular message.

https://mail.foobar.com/src/read_body.php?mailbox=__Archive&passed_id=32311&startMessage=1

Phew … now I can paste references to email discussions into my Trac bugs and um … keep track of everything. It’s pretty ghetto though, hopefully in a year or two something more solid will crop up. Or (more likely) one of you lovely readers will leave an informative comment explaining how out of the loop I am and I should just use package BlahBlahBlah for email URLs :-)

Link to a review of the Blackberry Pearl
Link to Empty Inbox on 43 Folders