A lot has happened since I wrote last, at the pace of about one thing per day. If I’d been making entries every day, this wouldn’t be such a chore, but I haven’t so it is. I need to get this stuff written down, before I forget it all, but it’s harder and harder to make entries as I buffer more and more material to put in them.

So, let’s see how I do…


Birthday Week Present: “Failure” by King Missile. Awesome album.


Work was so-so. I got some things done, but not enough of them on Epitaxy::Substrate, which really does want some more work done against it. I need to abstract Epitaxy::Persister, I think, to handle all Epitaxy objects, as I did with the Renderer. I don’t like having no one with whom to talk about these ideas, though, and it’s really demotivating. I’m not sure I’ve been able to have a technical discussion about proprietary work code with another programmer, ever. I mean, I’ve tried, but it doesn’t come together.

On the weekend, Casey West and I (and some others) had talked about a way to return really simple-but-useful values from subs, and we said that it would be keen to write some kind of Return::Value class to provide simple functions to do just that. I said I’d have a go at it this week, and yesterday I got it all working. Casey also decided to write an implementation, and put it on the CPAN yesterday afternoon. I was a little tweaked, but got over it, and sent him a patch to make his code more like mine, where mine was better (and leave it the same, where his was better). I also changed a bunch of the interface, so I’m guessing that the next actual release will look like a compromise between his implementation and mine, and that’s good.

So, really, despite being initially annoyed at the conflict, I’m pretty happy to be collaborating with another human being. I also think Return::Value is going to be darn useful.

Birthday Week Present: Um Jammer Lammy, the game between Parappa and Parappa 2.


Birthday Week Present: The Non-Designers Design Manual; time to update my business card!

tuesday (module-starter)

Another module I’ve been collaborating on is Module::Starter. Basically, I’d seen Module::Starter and Module::Setup::Template show up around the same time that I was pondering writing a n2pm (where n is “nothing”) tool to replace h2xs, which I hate hate hate. Module::Setup::Template was my initial first-choice, because I didn’t like the skeleton .pm files created by Starter and it wasn’t, well, templated. After looking at both, though, I decided that Starter looked easier to hack on. I talked to Andy, who seemed neither excited nor put off by the changes, but was pretty open to looking at patches.

The first order of business was to make Module::Starter into a class, so that I could subclass it. Then I split up all the output-producing bits into their own subs, so they could be overridden without overriding the file-creation bits. That, plus some other stuff, got rolled into what is now Module::Starter 1.22

I committed a new Module::Starter to CVS this morning; it’s all plugin-based, although the plugins are more like mixins. I’ll document it tonight or this weekend sometime, and maybe we’ll get a developer release out this weekend. I do like the Perlish versioning that Andy uses, with 1.21_0n versions preceding 1.22. I might start using it myself, but it would stop me from using my CVS revision number as the version. The thing is, of course, that CVS numbers are convenient for me, but not very meaningful.

Either way, Module::Starter will be available as a pluggable module Soonish. I’ve already got a few plugins (template storage, TT2, etc) written, and I’ve got a few more to write. Most of those, I think, will go in their own distributions.

Andy and I aren’t working closely on every change, but it’s still nice to be collaborating. I wonder if I’ll ever be doing this at work.

Birthday Week Present: “Guns” by Negativland. They rule.

the weekend

A lot happened, and it was worth remembering, but I don’t. It’s so frustrating! I need to keep notes on my day, every day, and I need to do it in a way that doesn’t require much work.

I got a new tire for my bike. It’s a Mustang ASYM, and it’s a nice tire, and it ran about $150 so it damn well better be a nice tire. I also started putting my copy of Zinn (and the Art of Mountain Bike Maintenance) to work. I adjusted my brakes and cleaned every darn surface of my bike. It’s super-clean, except for a few places that I couldn’t get at. Next up, better adjustment of brakes and derailleur. Then, maybe I’ll disassemble my entire drivetrain for a thorough cleaning and adjustment. I’m still worried that my chain may need replacing.

Written on July 16, 2004
🏷 code
🐫 perl