Flow time, processes and tools

I am big on flow time. Whenever I am placed in a completely new environment I strive to find a way to achieve the maximum possible flow time.

Here’s a great description of this with an eye to human interruptions, which cites De Marco’s Peopleware and also makes the connection to ESR’s Jargon file.

You should not break without good reason the concentration of a
programmer while they are working. If at all possible, communicate via
e-mail or some other way that lets them react when they have the time.
What follows are some justifications as to why this is so

 – Cringe from Crossing a Concentrated Coder, by Lars Wirzenius

But note that this doesn’t stop with people, it happens with your choice on technology and tools as well. I think one of the reasons scripting languages have taken off the way they have is that, since they require little or no waiting between changing the file and seeing the results onscreen, they optimize the available flow time even with basic tools (Most of my rails development is currently done with vim and a shell window).

Stop for a few minutes, take a look at your day to day activities and ask yourself when your flow time is typically interrupted by your tools, and whether you can do something to eliminate that interruption. Good tools are designed to reduce or eliminate the flow time interruptions. Bad tools get in the way of that flow time.

Note that if you’re only learning to use your current set of tools now, you may find interruptions that are just a part of the learning process – those you can write off as learning time, since they will go away once you master your toolset. But if your process or tool forces you to stop your flow constantly, find a way to improve it or use different tools. You’ll be glad you did.

A perfect tool or IDE makes the write-build-test cycle feel so seamless that you forget to think about it, maximizing your flow time.

Finally, note that this optimization is only intended for development time. Your deploy process should still be using build script (i.e., no "building from your IDE" to put in qa or production, please!).

technorati tags: , , ,

Parse Picasa XML with Rails

Here’s a helper I just wrote for a site of mine. I use it with my picasa XML albums to generate the appropriate links for Lokesh Dhakar’s lightbox image viewer trick. You can change it to use your own image views by simply changing the "slideshow" method in the helper.

It is also a good example of parsing an XML resource in ruby. I am parsing most of the metadata so you should be able to do a lot more with this.

Continue reading “Parse Picasa XML with Rails”

Daily Del.icio.us bookmarks

I have many computers, so using Del.icio.us has helped me a lot. Recently I found some intructions on how to post your daily links on your blog. So that’s what I’m doing. Nightly, a post wll show up here with what I’ve linked to.

I figured it would make a nice addition.

UPDATE: As it turns out, it didn’t go so well. It worked, but a post a day makes the blog look more like a dumb list of my bookmarks and I don’t think this is what readers would want. You can still get to my latest list of links here (up on the top navigation, under “Links”). They are updated throughout the day with the latest I link to.

technorati tags: ,

Modal Dialogs and Outlook 2003

So I open an e-mail in outlook by double clicking on it (which opens it in a new window), from 10 new emails that are to a distribution list.

I want to create a rule from them so I go back o the main Inbox window. Then I say "Tools", "Rules and Alerts", "New Rule"…

Then I want to add a rule for messages sent to the distribution list, however now the address (which I promptly forgot because human brains tend to forget unimportant things) is obscured. Since both "Rules and Alerts", and "New Rule Wizard" dialogs are modal, I have to cancel not once, but twice, in order to move the window so I can see it.

Yes, I "could have" right-clicked on the mesage and say "Create Rule", but since the Inbox view doesn’t have a "To" column by default (and I agree, it is stupid to add one), I don’t actually know which of these messages are sent to the Distribution list and which are specifically to me, right?

Yes, I can also add "Create Rule" when the message is open, however this is on the "Actions" menu, when the rules engine on the Inbox is on the "Tools" menu. So for a while I don’t find it. I guess I need training – after all, I’ve only been using windows applications since Windows 2.0 came out.

Too many choices getting in the way, and not one matching the way a user thinks.


technorati tags: , ,

Zimbra – Check it out

Recently I posted a link to Mark McNeil’s entry about expecting more, and how as developers we need to get use to giving more. 

Well, on that note, Zimbra is pretty cool. It’s a very nice groupware, outlook-like email/calendaring solution that is open source and has some amazing use of ajax

A couple of things I love about it is that you can hover over an address on any text and see a yahoo map of the location. You can highlight a date, or even relative date words such as "Today", or "Next Thursday", and the system will show a popup with the calendar for the appropriate day.

And did I mention it’s Open source

technorati tags: , , ,