Tuesday, March 24, 2009

Ada Lovelace Day: Remembering Grace Hopper


I've always been a fan of Grace Hopper, the US Navy programmer who wrote the first compiler(!), popularized the term 'bug' for computer programming problems, pioneered software validation, and deeply influenced the early design and standardization of COBOL.

Hopper believed that programming in a human-readable language would unlock the potential of computing. She worked hard towards this end, and CS continues to benefit from that effort today.

March 24th, 2009 is Ada Lovelace Day - an international day of blogging to draw attention to women excelling in technology. Maybe you know someone who might have a knack for CS and is looking for a direction to go. Maybe you know a woman in CS, and haven't told her lately how much you appreciate her work.

Female perspectives can enhance many traditionally male disciplines. How can women make CS better?
A ship in a harbor is safe, but that is not what a ship is built for. - Grace Hopper
(More quotes from Grace Hopper)

Wednesday, March 18, 2009

Pidgin episode #8726

... in which I argue that frecency, while good for digging into a list of URLs, is not a good metaphor for presenting IM status.

Pidgin Trac #8726 (new enhancement): User selection of saved statuses for the quick/popular list

In a nutshell: having a predictable, configurable list of saved IM statuses is better than an algorithm that tries to guess based on what your most-often-and-recently-used ones are.

I also am insufferably pleased with myself for coining the phrase power user limbo: a state in which a user has graduated from novice in a particular portion of the interface, but is held back from transitioning to full power usage by a mismatch between the presented and implied interface design metaphors.
Populating the list using frecency data without allowing the power user to control the content leaves them in a kind of 'power user limbo': the user wants to use saved statuses for the purpose that they were designed for (ease of changing statuses), but they are subtly constrained in a way that contradicts that purpose.
Given how rare original thoughts are ("Failure, Mr. Jones, is hardly original!" - Bloom County), there's probably a much better phrase for this concept. But I like the visual that accompanies power user limbo, so I'm stickin' with it.

You can go back to whatever you were doing now.

Saturday, March 14, 2009

Automatic calorie counting for the digital diet

Have you ever gone to the computer to look up something "just really quickly", and then looked up to realize that it's 3am?

"Wow, where did the time go?" you ask yourself. And you feel sorta sad inside, because you've broken an implicit promise to yourself - the promise to not do that ... or at least, to not do it as often. If you've ever struggled with your weight, this sad feeling inside might seem familiar - like the moment when you realize you've just eaten an entire pint of ice cream.

These feelings are similar because they are both moments of reality. In an ad-hoc way, you've suddenly become aware of the difference between what you are doing and what you want to be doing.

The key to turning this from a moment of despair into a simple moment of data collection along the long arc of progress towards your goal is simple ... treat it as a data point. A data point to be measured, along with the others. A data point in a cast of thousands. A data point to be collected and judged in the larger context. In a word: science.

As a geek, I found the idea of turning self-flagellation into science to be transformative. I did the research, started counting calories (all of them), and it worked. I lost 35 pounds, about 2 pounds a week, like clockwork. All it took was scientific rigor: being fiercely honest with myself about the thing I was trying to change, recording all of the data - no discarding outliers.

Unfortunately, this data collection required energy -- physical, emotional, and motivational -- and it took a long time for me to start. If I could have found a way to automatically measure all of the calories I was taking in, I could have started along the path to reaching my goal much sooner.

It turns out that there is a calorie counter for your digital diet: Manictime (Windows).

Recently covered by Lifehacker, it's a simple system tray app that sits in the background, noting what applications you're using. By tracking the title of each window and exactly how long you spent on it, you can tell exactly where your time went - what web pages you looked at, which emails you composed, how long you spent on that document, etc.)

A key feature is Manictime's 100% customizable tagging. You can easily mark chunks of time by activity (socializing, working, paying bills, etc.), by project, by client, or any other way that makes sense to you.

The tagging is well-implemented. The same period of time can have overlapping tags. The tagging interface snaps to the closest change in activity when you get close to it, making it easy to start and end tagging at activity boundaries. And the realtime summary graphs total up the time spent at a per-application or per-tag level, depending on which bar you hover over with your mouse.

Best of all, the data is yours - locally stored, and easily exported as CSV. I never engaged with RescueTime (a similar application that uploads your data to a centralized server) precisely because I wasn't comfortable with uploading so much personal data.

The screenshots may look a little daunting, but let's face it: the myriad of things that people -- especially knowledge workers -- do with their silicon every day are complex.

If you look up and it's 3am, you know there's a problem. But the next morning over breakfast, it's easy to pretend that there's no problem, that the curve that best fits the points is OK with you.

But if -- in those flashing moments of realization -- you can be aware of all of the data, then you can see the pattern - and you can start changing it, and you can tell if your attempts to change are working or not.