Sunday, December 14, 2008

How do I procrastinate?

Using a computer, of course. I set out to write something, say a blog post. After the requisite going for a beverage, and looking at the news, and checking my mail, I settle down to post my entry. Because I dislike typing directly into the web form on, I decide to use a local text editor. Because I’m easily distracted, I have to hide the desktop of my computer with an all black window. The menu bar has all of that text and icons, which makes it hard enough to think, I seek out a particular piece of writing software that has a very clean interface with minimal distractions.

Then I realize that this will only generate a file for me, and that I will have to go through a manual copy and paste process from word processor to web page. I will preview or post, discover typos or bad phrasing, edit locally, copy, paste, etc. Over and over, which is really tedious.

I seek out an offline blogging client. I want the clean interface without clutter, a screen that can be flipped from black on white to white on black with a single key stroke. I don’t want to have to use any menus, right clicks, or be distracted by scrollbars or buttons.

I want to store my documents off-line but be accessible online. I want the application to be free, but reliable and not buggy. I try to download one, but discover that nothing fully meets my needs. I will have to write my own.

To start coding, I fire up an IDE and start typing. But then I stop: this is the usual trouble I always get myself into. I just start writing the program without properly designing it or even thinking it through. To do a little design I start a drawing program. I want to create declarative diagrams are simple, yet reveal the structure of the program and make obvious bad patterns and potential trouble spots.

I struggle with which program to use. I try an open source drawing package, then find it too clunky and cumbersome, with odd key combinations and balky, flickering screen redraw. I try a feature limited commercial UML tool. It’s clunky in an entirely different, all of the kitchen sink features, kind of way. All buttons and features and trees of items. Besides it’s a trial version and puts ugly and distracting watermarks on each of my documents. I try a commercial drawing program, but it’s also a trial copy and only allows me a few shapes before it stops working and tells me to purchase a license.

Maybe a paint program would free me. Keep me from getting hung up on details.

An textual outlining program might be better, or a simple text editor, but neither are visual.

Maybe I should use graphviz, which is the best of both worlds: using simple text markup graphs I can render visual diagrams with arrows and lines and boxes that really express the dependencies between parts of my program.

But really, it’s too bad that there are no good online UML tools, because it would be great to be able to use the web, anytime I wanted to diagram software. I need an online, web-based, UML diagramming tool. Not only do I need it, but the world needs it. I will help programmers all over the world. I will achieve fame. My tool will become a commercial success. I will become rich.

I must understand what this piece of software must be. I will explore through writing.

But first, I need to write a piece of software that I need to write the software I need to write in order to write.

No comments: