« March 2004 | Main | May 2004 »

April 2004

April 27, 2004

End of the Knowledge Worker?

Knowledge work is dying. We all need to move up the ladder if we’re to keep our jobs.

Continue reading "End of the Knowledge Worker?" »

April 13, 2004

Broken Raspberries

I came across (yet another) example of real-life broken windows last night.

I went to the supermarket about 6:30pm to buy some lettuce. Big mistake. At that time of night it’s crowded, full of folks on their way home. All the checkout lanes were four people deep, and every employee was working a register. It was chaotic, and a high pressure environment for those who worked there. Customers picked up on the tension: everyone was a little on edge.

Then, three people ahead of me in line, a women dropped a box of raspberries out of her cart. They spread out in a patch maybe 18" across. The woman was embarrassed, and pointed out the spill to the guy running the checkout. He craned his head to look, then looked at the length of the line and the expression on the face of the person he was serving. "I’m too busy to deal with that now," he said. But he did call out to the floor manager. She was on her way to start up a new checkout, clearly harried. "No time" she called. So the raspberries lay there. As the line moved forward, the woman tried to move the raspberries out of the way, but she wasn’t too successful. In fact she managed to squash a few of them. The next person in line also tried to be careful, but his trolley ran over some, and got raspberry juice on the wheels. And so it went. By the time I checked out, the raspberries were a purple-red mess on the floor. The mess had spread from a small, contained spot to a large stain, and there were red tracks leading from the checkout to the two doors. The stains were already drying. It was going to take someone a while to clean it all up.

On the way home, I thought "that’s another great ‘broken windows’ story." Fail to fix something early, and reap a whole lot of extra work later. Had the assistant said to the line: "Let me clean these up before they get all over your shoes" and spent 30 seconds with a broom, the problem would have gone away, and no one would have complained. In fact, the customers would have left the store glad that someone actually cleaned things up. Instead, we walked away with a bad impression and red-stained shoes.

It’s the same on software projects. Even when (especially when) things are chaotic and pressured, make the time to fix the small stuff. Otherwise it’ll just become big stuff, and your customers will end up seeing red.

Movable Style

Chad has written a new RubLog template that is compatible with MovableStyle stylesheets. All you have to do to include a style in your blog is.
  1. Get the latest CVS of RubLog
  2. Choose a style from MovableStyle and download the corresponding stylesheet (and any other required images).
  3. Alter your rublog,cgi to use Chad’s template with the new stylesheet. This requires two changes.
    1. In the line where you create the blog, use "movable" as a parameter to CGIRequest.new.
    2. In the parameter settings, set the name of the external stylesheet to use.

A typical configuration might look like the following:

    blog = RubLog.new("/Users/cvs/blog", CGIRequest.new("movable")) do
      set_top_title                 "My Blog"
      set_max_entries_per_page      5
      set_rss_description           "Dave's Weblog"
      set_rss_image_title           'PragDave'
      set_rss_image_link            'http://pragprog.com/pragdave'
      set_rss_image_url             'http://pragprog.com/scary.png'
      set_rss_encoding              'iso-8859-1'
      set_copyright                 "#{Time.now.year} Dave Thomas"
      set_external_stylesheet        "http://pragprog.com/styles/Mac_Stripe/styles-site.css"
      set_ignore_directory_pattern   /Secret/
      set_ignore_filename_pattern    /Comp|Unreleased/
    end

Remember to read the MovableStyles FAQ for details on attributing any style you use.

April 06, 2004

Drop Target for my Brain

At the recent No Fluff symposium in St Louis, I was privileged to see a pre-release demo of Near-Time's Flow application. Stu Halloway’s been talking about his latest venture for a while now, but to be honest it always sounded too good to be true. Now that I’ve seen it in the flesh, I realize that he wasn’t just being the proud parent—Flow really is something special.

Imagine something like a wiki: an information system that simply accepts text and stores it away in a simple hierarchy. Now imagine it accepting that text from just about any source and (here’s where it gets fun) imagine it remembering that source. Say you’re doing web research on "rubber ducks." As you browse the web, you highlight paragraphs from interesting pages and drop them into Flow. Gradually you build your research into a local Flow document. You can annotate that document, adding your own notes. And, if you need more details, you can click on any of the original text and Flow will pop you over to the original web page. The linking works with files, images, whatever (we worked hard on Stu to get him to support e-mail too, but there are some issues with Mail.app to contend with).

Flow also contains smart pages: pages whose content is generated dynamically from other pages. Think of it as being something like an RSS aggregator for all the work you do. And if the aggregation doesn’t help, Flow has a speedy built-in full-text search engine.

Then (it keeps getting better), Flow maintains the full history of each page. Down the bottom, there’s a slider. Move it across, and Flow rolls back time, showing you the page as it appeared in the past. Slide the other way, and you move back to the present.

And then (better, again), Flow supports collaboration. But this isn’t your your father’s standard centralized-database-style collaboration. Instead, Flow is like a push-version of P2P: you tell it to share subtrees of your information with other Flow users, and it works out how to get it done. Say I was sitting in the airport using a wireless network and I tell Flow to share a 10Mb folder with Andy. Half way through, the flight is called and I close down my laptop, with only 8Mb transferred. When I get to my clients, it turns out that their firewall blocks Flow, but allows e-mail. No problem. Flow works it out and sends the remaining data in a bunch of separate e-mails. At the other end all this data gets reassembled into my original folder.

From an individual perspective, Flow looks like it could be a life saver: I’m constantly dropping bookmarks into folders, and then forgetting them. I’m constantly struggling to maintain to-do lists from a variety of sources. And I’m always trying to keep track of ideas for talks. Flow seems ideal for all these things: it becomes the drop target proxy for my atrocious memory.

Then, if I could convince Andy to switch to a Mac, I can see the collaboration stuff really suiting the loose way we work.

Flow is a great example of taking a couple of metaphors, then writing a whole bunch of intelligent code to make them look simple and intuitive. That’s not easy: my hat’s off to the Near-Time folk.

Now in Beta

  • Programming Ruby, 3rd Edition
    Third Edition, Covering Ruby 1.9, now in beta
My Photo

Pragmatic Stuff

Photos

  • www.flickr.com
    This is a Flickr badge showing public photos from pragdave tagged with pragdave_badge. Make your own badge here.

Site Search

  • Google Search

    The web
    PragDave