Archives: June 2009

Ziggurat

Not a book but a short story in the latest issue of the New Yorker.

I usually like the fiction pieces in the NY but this particular story, in its surrealism, seemed to tell me a truth I already knew but had forgotten. I immediately sat down to google Stephen O’Connor (the author) to find out more. He sounds like a compelling person.

The religious nature of the story continues a recent trend in NY fiction. Last week’s story was also very compelling, a kind of Flannery O’Connor-esque morality tale. O’Connor. There’s another trend. I expect next week’s fiction piece to have an O’Connor connection as well.

Speaking of New Yorker threads, has anyone else noticed the subtle vocabulary threads in each issue, where a single uncommon word might appear in multiple pieces in the issue? The editors must enjoy finding those connections in their submissions.

Get your degree <i>now</i>!

I get literally hundreds of spam messages urging me to buy a higher education degree. I realized today why these kinds of messages must appeal, because I’ve had more than one dream in which I realized I had never graduated from high school or college and was completely unprepared to meet fill in challenge here.

These spam must be aimed at a kind of Jungian-level subconscious anxiety that manifests itself as the Unfinished Degree. Of course, there are plenty of folks who really do have unfinished degrees and are struggling in a competitive marketplace. But even a college-degreed person like myself still localizes my dream-time anxiety about life in not having finished school, and I suspect that is also at play.

The Unfinished Degree… <cue Jaws theme…>

PHP ORMs

Object-relational mappers are a nice way of simplifying data store interactions, by abstracting the data model into a OO class structure. Or put another way, don’t write SQL, write code that is storage agnostic.

 my $thing = Thing->new( id => 123 )->load;
 $thing->foo('bar');
 $thing->save;
 #
 # the above is mock code 
 # representing something like:
 #
 BEGIN TRANSACTION;
 UPDATE table things 
    SET foo = 'bar' 
    WHERE ID = 123;
 END TRANSACTION;

I’ve used a couple of different Perl ORMs over the last four years with great joy: DBIx::Class and (mostly) Rose::DB::Object. Now I’m looking for a suitable PHP project for my toolbelt.

Wikipedia has a good starting list.

Some contenders include:

Xyster
Looks nice but depends on Zend Framework so a bit heavy. Handles cascading actions on related objects.
Doctrine
The most popular (or at least most-mentioned). It has its own special query language (DQL), which is a philosophical turn-off. Isn’t SQL+PHP good enough? But I see the DQL is optional.
Rocks PHP Library
Ambitious. The docs make it seem a little like the Rose framework in its goals: an ORM, a Form manager, a web framework. There’s a DB abstraction layer that claims to support many different db flavors. It seems pretty young though.
Propel
Mature. But it uses this external XML definition file which just seems crazy. Again, isn’t SQL+PHP enough?
DABL
Based on Propel but simpler. No external XML file (+1). Uses same PDO db abstraction layer as Propel.
LightORM
I was initially hopeful about this one but it appears abandoned.
DataMapper
My co-worker turned me on to this one (thanks Sean!). I really like the looks of it so far and will be spending some quality time testing it out.

Recovering /op status on freenode

I hang out as karpet on freenode.net in the #swish-e channel, where there is occasionally meaningful conversation related to the project. I have registered the channel under my nick, but I often logout and back in and forget how to regain operator status. Here’s the cheatsheet for my own memory:

/msg nickserv identify karpet mypassword
/msg chanserv op #swish-e karpet

Not too complicated but I always have to hunt around to find the right bots to /msg to.