I’ve done some more reading about Alzabo. Sounds good, for what it does, but it does less than I want. Looks like I’ll be building my own broker class again. After thinking about it for a while, I’ve realized that some of the things that I didn’t like about the PAESSO broker design are actually required.
I wanted to do away with the actual broker class, and just have any class that inherits from ‘Brokerable’ be automagically Brokered. I wasn’t really thinking this through all the way; there’s some setup that needs to be done. With a virtual ‘Brokerable’ parent class, there’s no time to do the setup. In other words, everything you need to do when the Broker class is created has to happen sometime. If you don’t have a broker, then you have to make a mess hiding that setup code.
Fortunately, I wrote a nice broker class before, so updating and adapting it should be quick and painless. If I wasn’t buying a house, working, and getting ready to have a baby, it’d be a snap. It’s probably healthy that children, family, and employment are higher on my priority list than Open Source. Shh! Don’t tell anyone.
Wow. So today was the first ultrasound . Turns out that it’s a girl. Woohoo! I hadn’t had much preference in the boy/girl debate. My grandfather wanted a boy, to “carry on the family name”, but he was being morbid about how we needed to get this accomplished so that he could die in peace. Since I’m not real enthusiatic about my grandfather’s death, having a girl means he has to stick around for a while, and I’m all in favor of that.
Not to say that I haven’t wanted to pass on the family name, and all that, but I’m really excited either way. You get this sort of familial pressure particularly when you have an obscure surname, and you’re the only male of child-raising age. I imagine if you’re named “Chen” or “Smith” or “Gonzales” the pressure is significantly less.
Also, it looks like the house is going to go through, which is pretty cool also.
In the blog-engine project, I got Mason installed today. (Previously this seemed hard since I use Apache2, and didn’t have the Mason prerequisites installed.) It turned out to be relatively easy. I also stumbled across Alzabo, which is described in a article in LinuxJournal. Alzabo is a perl-based RDBMS-OO mapping tool, (among other things,) which is basically what I’m looking for. I did some prototyping over the last few weeks on a “Brokerable” virtual class, but I wasn’t very happy with it. (I was trying to avoid building an actual “Broker” class (i.e. by hiding the broker methods as class methods). I wasn’t very satisfied with the result, largely because of the ugly hacks I’d have to do for initialization at class-load time.
For decent performance, a broker needs to cache it’s database connections and/or prepared SQL statements. When a brokerable class is first loaded, the database connections aren’t necessarily set up yet. So you have to prepare your database connections and queries in a lazy fashion, and it ends up being a big mess.