weblogging at the beach

« June 2006 | Main | August 2006 »

July 27, 2006

Getting Things Done (GTD)

I'm not a full-on GTD nut; in fact, I've had a love-hate relationship with years with to-do lists, organizers, PDAs, and the like. I love the organization they bring to my life; I hate the fact that I can see I'm so busy.

If that makes sense to you, read on.

These past few months, I've had quite a bit on my mind: finishing and defending a doctoral thesis, transitioning to a postdoctoral post (little devices, languages, and operating systems related), and all the while generally jetting around the world (Houston (USA), Denmark, Scotland, Los Angeles (USA), Cleveland (USA), and Portugal). Really, when I signed up, they didn't tell me about the travel. Honest.

So what do I do? I'm not such a fan of calendars; they're heavyweight. As a Mac user, and fan of outliners, I like Kinkless GTD + OmniOutliner Pro. However, at some level, this is heavy. Nice, but heavy; it requires several applications (OmniOutliner, iCal) plus some big Applescripts.

Recently, I found ToDo.txt. This looks promising for the old-school GTD nut in you. It's a couple of shell scripts that maintain a text file, using things like sed, awk, and grep to update and present your GTD lists. Now, this looks promising, but I'm torn in two directions. In one, it's simplicity itself. In the other, I abhor shell scripts; they're the ugliest sin ever inflicted on programmers after C, and plain text is about as far from a robust back-end as you can get. (Accessible via vi? Yes. Any consistency guarantees? No.)

As you can see, tools are toys---they are what we look at when we don't really want to Get Things Done. At the same time, I've found that using Kinkless + OOP has been very useful. It just... isn't quite what I want yet. It seems like a GTD system should be very easy to use (quick), omnipresent, and portable---I should never have to be without my to-do list.

Part of me thinks that I just need to use an old-fashioned Hipster PDA, and be done with it. Another part of me says that my soon-to-arrive Irex Iliad may become a useful tool for carrying around plain-text GTD lists---it is, after all, should be a very portable, low-power eInk device well suited to this kind of thing. Something that combines the ease-of-use of ToDo.txt with the ability to render and synchronize those lists to my Iliad... it's possible, anyway.

If I stumble onto something amazing, I'll let you know.

Posted by jadudm at 09:11 PM | Comments (1)

Paul Graham: Digg vs Reddit

Paul Graham (an investor in Reddit) writes that it appears Digg are removing from their home page stories about Reddit. I don't really have much to say about this, other than it is very shoddy practice if true, and another interesting point to add to my previous post on Digg and Reddit.

Posted by Noel at 04:04 PM | Comments (0)

July 21, 2006

The Case for Whitespace

It's how you say it that counts.

Posted by Noel at 08:18 PM | Comments (1)

July 20, 2006

Martin Fowler on Meetings

There's no better way to fill an empty day at the office than by calling a meeting. If, on the other hand, you want to actually get some work done, but still have to communicate with other people, Martin Fowler has some great tips on how to run more effective meetings. Summary: keep them short and to the point.

Posted by Noel at 01:44 PM | Comments (0)

Hiding Complexity and the Expert User

37signals are developing a calendar application. Watch the demo and you'll see appointments are entered as natural language (for example “3pm Dentist”). Compared to Yahoo's calendar it looks pretty simple.

Think about it a bit more and you'll realise the complexity is still there, just hidden behind a different interface. The GUI represents all the options graphically. The text box hides the options in the murky workings of the parser. 37signal's example never shows what happens if you enter text the application doesn't understand. For example, what happens if I write “Appointment with Dentist at 3pm”? Done badly it will be like those early Sierra games where half the challenge was discovering the words the program understood. Not a lot of fun, at least when you're trying to enter your Dentist appointment rather than save a princess.

Now if the grammar is quite restricted it should be relatively easy to code up a bit of Javascript to prompt the user with correct words, like most IDEs do for programmers. Get this to work well and I think it will be a very nice interface. GUI interfaces have a shallow learning curve, but are slow to use. Textual interfaces are the reverse: they favour the expert over the beginner, by being fast to use but difficult to learn. Add prompting to the textual interface and perhaps the end result will be the best of both worlds.

Note that there are other ways to solve this problem. Circle menus are a relatively unknown GUI device that allow faster input than traditional pull-down menus. I'm sure there are other innovative ideas out there. It is possible to create interfaces for complex tasks that suit both the beginner and expert alike.

Posted by Noel at 01:10 PM | Comments (1)

July 16, 2006

Doctor Jadud is in the house!

Congratulations to Dr Matt Jadud who passed his viva on Friday!

Posted by Noel at 03:52 PM | Comments (0)

July 14, 2006

Unaccustomed as I am to Public Speaking

If you happen to be in Birmingham on the 18th I'm presenting our current ideas on web development as part of the School of Computer Science's Cake Talk series. The abstract is below. If you intend to attend follow the link for location and time. My slides will go up after the talk.

Functional Programming and the Web

Continuations, functional reactive programming, and bidirectional programming. A random walk down Lambda the Ultimate or the next Big Thing in web development? In the long and glorious tradition of Cake Talks I will present some half-baked ideas that argue for the later interpretation. Turn up and decide for yourself.

Posted by Noel at 03:06 PM | Comments (0)

July 12, 2006

Unlib unchained

We're pleased to announce the release of Unlib, a library of utility functions. Like most PLT Scheme libraries it is available from PLaneT. You can also track development via our Subversion server. For now the URL is https://ssl.untyped.com/svn/repos/untyped.com/unlib/ so you can checkout the code like this:

svn checkout https://ssl.untyped.com/svn/repos/untyped.com/unlib/trunk unlib

It's mostly Dave G's work, so congratulations to Dave! (And extra congratulation to Dave G who graduated yesterday with a PhD in Computer Science!!)

Posted by Noel at 02:19 PM | Comments (0)

July 11, 2006

Pollground

Pollground has a good concept that definitely has a market somewhere, but I'm not sure their implementation is ideal. Psychologists, for example, are big users of online surveys. They would pay for better tools to generate and score their surveys. It looks like Pollground are going the 'on-line billboard' route, intending to rely on advertising, but it is really too early to say what their strategy is.

One problem with online surveys -- it is open to abuse. To their credit Pollground haven't yanked it (yet). Cover-ups never work on the Internet.

Posted by Noel at 04:31 PM | Comments (0)

Digg vs Reddit

Digg is a technology focused news site that uses social filtering to rank stories. Translated from geek-speak it means people vote on news stories that interest them, and the stories with the most votes end up on the home page where the most people will see them.

digg

Reddit is a technology focused news site that uses social filtering to rank stories. Translated from geek-speak it means people vote on news stories that interest them, and the stories with the most votes end up on the home page where the most people will see them.

reddit

Digg is straight from the Fisher-Price school of Web 2.0 design, all rounded corners and gradient fills. It's the new shiny happy web your grandma uses. Reddit is like a VT100 terminal, all text and minimal colour. It's the old school web with thick glasses and a stack of textbooks next to the PC.

On the Digg homepage you're likely to find articles on consumer electronics and IT industry gossip. On the Reddit homepage there is a good chance you'll find the notes from a postgraduate level Computer Science course.

Digg has twenty times the traffic of Reddit

It's interesting that two sites serving the same purpose have such drastically different cultures and designs.

Posted by Noel at 12:05 PM | Comments (2)

July 05, 2006

The Duel: Part II

It was a hell of a day. We managed to document most of Unlib -- much more work than we thought -- and made considerable progress on the content management part of our latest project. We also busted some phat riffs on Dave's synth. The result: (computer) science is the winner.

Posted by Noel at 06:27 PM | Comments (0)

The Duel: Part I

Today Dave and I are going head-to-head to see who can finish the most active tickets by the end of the day. On my plate:

  1. Release Unlib
  2. Release Snooze
  3. Release update to Instaweb
  4. And a few other things that are confidential

Dave's stuff is all confidential, so I can't list them here. Check back in 8 hours to see who wins the duel!

Posted by Noel at 11:46 AM | Comments (0)

July 04, 2006

mod_authz_svn versus htpasswd

mod_authz_svn files have commas separating members of a group, but htpasswd files don't. Don't spend an hour wondering why your Subversion configuration isn't working because of this difference.

Posted by Noel at 02:46 PM | Comments (0)

July 03, 2006

More on the Pre-registration Project

Time for a bit more detail on the SBCS pre-registration project.

A bit of background: at QMUL, student information is held by the central Registry, but each School is responsible for collecting that information and verifying it. The old system collected all the information on paper. This information has to be checked for correctness (is the student's name spelled correctly; are they on the right degree programme; have they registred for the correct units?) before being typed up and sent on. With a thousand students you can imagine how much work this is during the short registration period at the beginning of the semester.

We've created an online replacement for the old system. Using a variety of information sources we've uploaded information on students, staff, programmes, and courses. Students are assigned to members of staff who act as their advisors, and are responsible for editing their registration information. Certain members of staff are capable of editing the other information we store, including programme and course descriptions. In effect we've created a complete custom content management system for all information related to registration. The School is very happy with the result, and so are we.

As we mentioned before, the site runs on PLT Scheme and SQLite, with Apache forwarding to the PLT web server. We use the 3m version of PLT Scheme. Memory consumption seems stable at around 200MB. We don't have any impressive uptime stats to report as we've been updating our PLT Scheme installation quite regularly which neccesitates bringing down the web server (current uptime is about a day). Peak load is modest; there are about 40 advisors who will be using the site at any one time. So far our highest daily load has been about a thousand hits. Last I checked we had about 20K lines of code. It has probably increased since.

Development has been interesting. We've run into two bugs in the PLT web server (both fixed), and found a way to reliably make SQLite crash (also now fixed). Oh yeah, and we've had our server flooded. We will be releasing some of our libraries as open-source as we get time to clean them up. Look for Unlib, our utility library, Snooze, our persistence manager, and Lylux, our web framework, at a PLaneT near you.

Finally, we made the claim “This is, to our knowledge, first large site to run the PLT Scheme web server continuously for any length of time”. There are at least two other prior contenders for the crown: Jacob Matthews, who puts the science back into speed-dating, and Shriram Krishnamurthi et al with Continue.

Posted by Noel at 04:09 PM | Comments (0)