Archive for November, 2008

Geek Christmas Tree

Posted in humor on November 30th, 2008 by ben – 1 Comment

In the car this morning, in response to one of Micah’s silly questions: “what will we do with this cell phone car charger now that you have a new phone?” Amy flippantly answered, “we’ll hang it on the Christmas tree.”

“Hey, what if we really did that?” she asked.  We brainstormed for a bit, all about reusing dead or outdated tech as decoration:

  • CDs
  • PS/2 mice
  • Hard drive platters
  • Keyboard keys, strung together like popcorn
Wouldn’t it be a fun office project for the holidays?  Other ideas?

Treating GTD links as first-class

Posted in opinion on November 29th, 2008 by ben – Be the first to comment

I’ve been thinking a lot about a wiki-like system to facilitate the habits of GTD.  It’s a wiki in the sense that everything is an item, and there is no explicit hierarchy.  There are no folders, and no binary parent/child relationships between projects and tasks.

But its not enough to depend on a simple wiki, since wikis don’t treat links as first-class objects.  Wikis automatically link outward from the item to other items referenced in the context, and if they’re good, they can also report which items are linking to items.

If a link were a first-class object, it would have other attributes, such as

 

  • Strength – think of the links that connect you to your friends in Facebook – some friendships are stronger than others, with the strongest being your spouse, weakening down to the point of the folks you added just to play Mob Wars
  • Directionality – if you’re using links to establish task sequencing, obviously one of the items is a prerequisite to the other
  • Why – the “link type”, possibly including
    • blocked by – for “waiting for” items, could be blocked by another person or task
    • revision of – when a newer item overrides the content of a previous item
    • reference – when two things are related just because they are part of the same project
    • source – where did the item come from
    • member of – for mimicking parent/child relationships

 

I have a few questions:

 

  1. What is the smallest set of link types that can suffice to map all the items used for system that captures all your GTD activity?
  2. Do links have “completeness” ? Can a link itself be marked as finished?  Or is it the item that is marked as finished?  (Think about when a task is delegated to someone.)
  3. Do links have age?  Like twine left in the rain, do links fade over time?

 

Starting Grails

Posted in diary on November 27th, 2008 by ben – Be the first to comment

I started my first Grails project today, using the basic project in NetBeans.  I was going to start with vanilla Groovy, but learning thick client Java seemed like more work than going whole hog into Grails.

I’ve said for some time, I’m scared to try Groovy/Grails, since I’ll probably get angry at all the time spent doing plumbing work rather than real code.  I’m on track for that to be true.  Some of the things it does by default are just scary – the scaffold pages for list/view/edit are pretty.  

The prototype I’m working on goes beyond a basic CRUD app, but I could see how this framework closes a RAD gap for the java world.

Google has been my friend – almost any question I come up with has been answered in a blog post or email message.  I haven’t acquired a book yet, although I probably should.  A series of articles at IBM developerWorks has also been a good start

Some vagaries I’m stumbling on

  • When does hot deploy work or not?  Some changes are immediately viewable (and my Bootstrap method has been refreshed), and others require restarting the app.
  • Why doesn’t code completion work in BootStrap.groovy  (Netbeans 6.5)

GTD suffers from the lack of an implementation

Posted in opinion on November 26th, 2008 by ben – Be the first to comment

Given the background about my use of GTD, now I get to into some new opinions.

I’ve been thinking a lot about personal productivity after getting a blast from the past and the emails it spawned about the persistent poor state of high volume email management.

In object oriented programming terms, GTD is an interface, and it doesn’t come with a reference implementation.  It is exactly this lack of an implementation that leaves people struggling with the use of the system and its habits.  

Each person implements GTD according to their primary constraint.  For instance, if you have a high email volume to balance, you tend to look for a system that deals with your inbox and sorting and categorizing the emails into projects and next actions.  If you’re highly nomadic, you might look for a more physical implementation such as as hipster PDA, so that you’re confident your system is always at hand.

Each of these systems needs to apologize for its underpinnings.  The hipster folks have techniques for dealing with email, and the email folks might make tickler emails for the voicemails that they need to return.  Or maybe they try a grander email system that integrates calendaring and todo items.  But every time you integrate with a pre-existing system or concept, you have to compromise to put your round peg into the square hole.

I contend that even GTD suffers from its underpinnings of trying to be all things to all people.  Because it lacks a system, it has introduced more elements than are necessary.  For instance:

  • The weekly review - It’s amazing how good this sounds, but it in practice its job is to patch up all the cracks resulting from a lack of an implementation.  Known as “closing the open loops,” it wouldn’t be necessary if your implementation prevented the loops from getting buried in a folder.  For example, if you have a high volume of next actions, you probably track those items per context.  So each weekly review you have to review the lists to make sure the fact that you haven’t gone to the store this week isn’t blocking the ingredients need for the cake for the party this weekend.
  • The project list - If I have faithfully made a folder for each project, why do I need to keep another piece of paper itemizing the folders in my stack?
  • Actions vs Projects - Allen defines a project as anything that takes more than one task to complete.  But since large projects aren’t a strict sequence of tasks, you end up with sub-projects.  Suddenly, the scope of an item is obscured,  and you lose the big view of your projects.  ”Should I make a folder for this smaller item?”
  • Hard edges –  We’re encouraged to keep hard edges between the categories of things to keep track of.  When the book lists the 7 primary types of things, they’re supposed to stay separate, or you’ll get really confused.  But today’s “waiting for” list is tomorrow’s reference for why the project is late.

I know the book addresses many of these points.  I’m not trying to throw out the whole system, or impugn the value of the habits and flow that GTD promotes.  But I want to build the case for a fresh implementation of something that doesn’t have to apologize for its roots.

Comments are welcome.  I’m actually hoping that this blog can become more of a discussion than just my soap box.

My GTD System

Posted in mine on November 25th, 2008 by ben – Be the first to comment

My previous post covers any background that can fill in the gaps if you’re unfamiliar with Getting Things Done.  This post establishes the baseline of where I’m at for GTD tech.

My current system is MonkeyGTD on a thumb drive.  MonkeyGTD is a micro-wiki, running standalone in a browser without any infrastructure than the browser that opens it.   Being able to move it between my work PC and home Mac is a huge win.  (From a web developer’s pespective, it’s an amazing bit of code.)

As a GTD system, it has all the core features: projects, next actions, ticklers, contexts, waiting on, someday/maybe, etc. Some of the features that have been extra valuable:

 

  • Tickler scheduling – both single instance ticklers on a specific date and ticklers that repeat.  You can set weekly ticklers, and when you’ve done them, it’s 1 click to push it out to the next week and it falls off your view.
  • Realms – besides the traditional context, all the items are associated to a realm, enabling you to have the same file function for Work and Home tasks.  You can turn on and off display of each realm, hiding the Home tasks during your working hours and vice versa, without having to maintain 2 systems.
  • View “waiting on” by person
  • List projects without a Next Action
There are weaknesses, intrinsic to its nature as a file-based wiki:
  • It gets lost among all other windows on my desktop.  It ends up being a tab among many in firefox, so it’s not always instantly reachable when I want to put something on the list
  • No integration with email.  When I want to work on Inbox Zero, I need to make next actions for those longer tasks associated with a message I’ve moved to a folder.  I end up with lots of items in my list that are “respond to X in folder Y”

Getting Things Done Background

Posted in Reference on November 25th, 2008 by ben – 2 Comments

I am a big fan of David Allen’s Getting Things Done (GTD) system for personal productivity.  I anticipate several of my upcoming posts to be on this subject, so I’m including this post as boilerplate.

I’m not going to make this another blog about GTD.  Nor am I going to make this post a reference post.  Here are a few links that are relevant

A few things about GTDers

  • The evangelize heavily
  • They get frustrated at folks that don’t practice GTD, since things don’t get done as quickly, and it takes more effort to pick of the slack of folks that are too overwhelmed
  • They like to focus on tools.  There are endless blog posts about the dangers of spending so much time focusing on your system, rather that the habits of using what you have.  

I’m not a poster child for GTD.  I’ve never been completely successful at the full implementation of the ideas. In 2.5 years, I’ve done maybe 3 weekly reviews.  Over the last 2 months, I’ve achieved email Inbox Zero maybe 15 times, while my physical inbox has never been empty.  Despite all that, I’ve always held it out there as a personal goal to achieve “mind like water.”

The Beginning

Posted in meta on November 25th, 2008 by ben – 1 Comment

I’ve named this blog “Pragmatic Geek.”  At my core, I’m a pragmatist, and these are thoughts about how that overlaps with being a geek.  (I’m also a realistic enough to realize that my thoughts aren’t that unique, and this could likely be “another blog.”)

Pragmatic: concerned with making decisions and actions that are useful in practice, not just theory

Geek: an expert in a technical field, particularly to do with computers.

As a pragmatic geek, I

  • don’t dig into every latest buzzword.  The “new” is often just a rebranded “old.”  Rich Internet Apps are just yesterday’s green screens.
  • don’t covet the latest gadgets.  There’s a tradeoff between blowing your money on the latest, when the last generation stuff ends up collecting dust after it has lots its “shininess.”
  • wait for convergence.  I don’t want to carry one of every device with me, but I’ll be ecstatic when I can get a two-fer. (or three-fer)
  • demand good design.  Technology should be enjoyable to use on many fronts, not just because it does the job faster than the competition.
  • require a good return on “investment.”  Investment is in quotes, since it’s not just about cash, it’s about the effort spent to get the return.  

I welcome you to link to the RSS, and see the updates as they happen.  

-benJ