contrapunctus, by Christopher League
 

A productivity pickle

Pierre Loti cafe

The things I do (or plan to do) on any given day fall roughly into three categories:

  1. Tasks that must or should be done, usually under deadline, but that I find somewhat boring or distasteful. Examples: grading, planning committee meetings.
  2. Tasks that I generally enjoy doing, and are productive in a broad sense, but nobody will keep after me if I postpone or abandon them. Examples: writing software, reading research papers deeply, learning new programming languages or libraries.
  3. Tasks that are often considered time-wasters, but do yield some benefits over time, in greater connectedness and awareness of new technologies, issues, attitudes, etc. Examples: reading my dozens of RSS feeds, Twitter and the like.

Okay, that’s not a complete taxonomy, but it will do for my purposes here.

The problem is not so much that I procrastinate — I take that as given — the problem lately is how I procrastinate.  Usually I jump straight to category 3!  That stuff has its place, but if the history of my intellectual life has taught anything, it’s that the real action is in category 2. But I let angst over the unfinished commitments in #1 ruin my enthusiasm for working on the real stuff.

Sometimes I hear (even from adults!) advice like “finish your work before you play.” These adults must have very different notions of work than I do. First, for practical purposes, all three categories are infinite streams. You literally can’t get to the bottom of one and then move on to the next. Second, from my point of view, nothing is ever finished — at best, it’s good enough, and eventually, you just stop working on it.

Maybe that last point deserves further reflection and another post. Possibly it’s an unhealthy approach to work, but I’m sure it has been with me since grade school. It explains the need for deadlines to get things done, and the tendency to leave things for the last minute. If you start too far in advance of a deadline, the job expands to fill the available time! Better to postpone judiciously and work on some interesting stuff in the interim. I’m sure I taught myself computer programming while procrastinating on social studies assignments in junior high.

I suppose I should acknowledge my good luck to have the freedom for category 2 at all. The best way to honor that freedom is to exercise it. Ha — my new summer manifesto.

Send me a wave

I’m catching up on my feeds following a 2-week vacation, and I keep hearing about this “Google Wave” thing. So finally I watched the video. And because I’ve been looking for a reason to try out the timer feature of org-mode, I made some timed notes to go along with the video.

0:01:31
HTML5 app… will forget you’re looking at a pure
browser app.
0:02:02
Lars and Jens Rasmussen, behind Google Maps
0:04:06
Stephanie Hannon, project manager
0:05:11
email invented >40 years ago, before internet itself
0:05:47
what might email look like if it was invented today?
0:06:18
email systems collate related messages into
conversations
0:06:25
wave starts w/conversation = lightweight tree structure
of messages, and users participating.
0:06:40
conversation object = shared object, hosted on a server
somewhere.
0:07:38
built with Google Web Toolkit and HTML5
0:08:19
spelling auto-correction, like on iphone
0:09:35
reply to part of message by splitting it
0:10:35
Shiny.. firefly reference.
0:10:39
Character-by-character echo during IM.. speeds up
conversation.
0:12:47
adding new participants.. avoid the “cat and mouse”
where ppl reply to early one without all participants.
0:13:17
playback to see messages in order
0:14:10
GWT pronounced “gwit”
0:14:39
Private reply possible within the wave.
0:15:10
Any subtree can restrict access to subset of
participants.
0:15:31
Attachments… drag and drop photos.
0:16:26
DnD needs gears.. not part of HTML5 yet.
0:19:10
can embed waves on a page, like embedding maps.
0:21:02
embedded waves continue to be interactive.
0:22:06
unifies (so far): email, IM, blog comments, discussion
forum, photo sharing
0:22:46
aggregate conversations from various places into your
wave client.
0:22:56
more efficient flame wars.
0:24:36
embedded within Orkut (social network) means user list
can come from there.
0:26:52
not nearly as polished as Apple demos, but they’re
reasonably endearing anyway.
0:27:38
editing; updates live.. captions, but also
collaborative editing. Now unifies wiki (google docs).
0:29:45
Shows markup of changes, which also appears through
playback.
0:30:28
Collaboration and discussion in same tool.. inline
reply as before.
0:31:04
No actual distinction between conversation and
document.
0:33:34
extract current version of any document into fresh
wave, so you can omit discussion (branch and merge).
0:33:57
Now unifies version control too.
0:34:55
extensible content model.. starts with rich text
documents.
0:36:09
multiple people editing same doc at the same
time.. tracks remarkably well.
0:38:36
GWT (Java) translates to HTML, JS, CSS, etc.
0:41:19
easy hyperlinks to other waves
0:42:36
search results update immediately
0:44:22
contextual spell checker language model… extremely
cool… “been soup” -> “bean soup”. That alone is a
great invention.
0:45:41
Spelly and Linky.. cute. also Bloggy.
0:46:13
Server-side programs that participate in waves, with
all the power of human participants. And this is how
extensions work, such as Spelly.
0:47:35
Searchy = embedded google search.
0:50:09
switch seamlessly from discussion to wiki.
0:50:36
yes/no/maybe gadget.. an extension. Live polls,
etc. Now unifies evite and its web-2 successors.
0:52:15
playback integrates with gadgets.. games, etc.
0:52:23
persistence is great here.. good for functional data
structures.
0:54:58
client-side extensions (gadgets) vs. server-side
(robots)
0:55:59
Google forms, can fill collaboratively.
1:02:49
AWESOME integration with bug tracker on code.google.com
1:05:41
Open protocol, just like email.
1:05:56
Federation = you will be able to implement your own,
and share waves across those boundaries.
1:06:47
Open source most of the code too.
1:08:13
Initech = office space reference.
1:08:43
command-line curses UI, lol.
1:10:19
private data within an organization stays there, nice.
1:13:08
Rosy = auto-live translate, VERY COOL. Between any pair
of 40 languages. Another robot.
1:14:19
standing O, man.

HTML generated by org-mode 6.27a in emacs 22