Sam Gentle.com

Prototype Wrapup #5

Well, things escalated pretty seriously since last week. I committed to 3 prototypes under 3 hours each. The good news I did 3 prototypes, the bad news is that they may have taken a touch more than I was hoping they would.

Metaknight

source

This is a little thing I made to mess around with AST tricks. I've always been a little bit annoyed that when people don't design their functions right I have to add the overhead of another function to wrap theirs. Well, not any more! It can do neat things like swap arguments around and replace them with constant values that you supply.

Time: 5 hours.

Scrawl

source demo

I'm really pleased with this one. It's an iterative scribbling tool based on the way I tend to draw in notebooks when I'm bored. I spent a lot of time messing around with all the little shapes and rules to get a thing that was fun to use. The upshot was that I really enjoyed making it, but I may have gotten a little bit carried away with the time...

Time: 14 hours.

Kata

post source demo

This is one I'd been wanting to get started on for a while. It's a system for doing simple, repetitive code exercises for practice or learning. The problem is that there are a few tricky things involved in generating random but plausible code and dealing with all the AST data structures. Luckily, Metaknight had me prepared a little because I'd already had a bit of time messing around with the parser and generator and that crazy AST tomfoolery.

Time: 10 hours.

So, uh, as you can see the amount of time the prototypes are taking seems to be increasing, not decreasing. I'm not convinced that just trying to cut down is going to do it. I need a new approach, one that encourages me to start with as little as I can get away with and build up from there. My last post was about this problem and figuring out what tradeoffs I'd need to make. Based on that I've come up with a new plan that I'm happy with...

One continuous hour! Like a hackathon, or an episode of 24 complete with countdown clock. I think what's missing is an obsessive focus on time. Instead of trying to make something and hope it takes less than the time, I'm going to write code for exactly as long as the clock takes, and whatever's done after the hour is done.