programming

Programming takes up a fair portion of my life, but unfortunately I'm not proficient enough to give back everything to the open source community it has given me. Anything I can do, however, will be here with at least a pointer.

Ongoing Projects

OpenInteract

While at intes.net I was the primary architect of the OpenInteract application server. It uses Apache and mod_perl to create a productive rapid application environment for building complex web applications.

Even though I'm no longer at intes.net, I'm still the primary developer on the project. (That's the magic of open source!) In fact, this site runs on OpenInteract. Extra packages I work on, unless they're specific to me (doubtful) will be up on the OI site as well under the file group 'extra_packages'. (Actually, they'll usually show up here first, but that's just for testing...)

SPOPS

As part of many projects, as well as OpenInteract, we found we needed to develop a consistent, easy to use, object persistence scheme. So we put together our experience and to tie it all together thought up a new acronym: SPOPS, which stands for Simple Perl Object Persistence with Security. Bonus: it's also a palindrome!

So, what's different about SPOPS?

SPOPS is available on CPAN and you can find out more at its homepage. There's also a set of slides from an intro presentation I gave in October 2003.

Workflow

Workflow is also available on CPAN. It implements a simple, generic and embeddable workflow system that you can adapt to your own needs. It was spawned from an existing project at Arvato Direct where I helped them take their specific framework into a reusable product.

This is a fairly new addition (May 2004) and it will be interesting to see if it takes root. The docs are pretty well fleshed out in the initial release and it also comes with a sample application where the same workflow and actions are accessible via a command-line tool and a standalone web server.

I gave a lightning talk on Workflow at YAPC::NA 2004 and a longer talk to the Pittsburgh Perlmongers in October 2004.

Class::Observable

Class::Observable is a fairly simple Perl class that implements the observer/observable pattern. Not surprisingly, it's much easier and more flexible than the Java implementation. It overlaps a bit with Class::Trigger but they use different implementations and interfaces.

In November 2003 I gave a brief presentation about C::O to the Pittsburgh Perlmongers.

Class::Factory

Class::Factory is a simple Perl class you can use as a factory. Subclass implementations of a particular interface register themselves (e.g., steelers => 'NFL::Team::Steelers') and you can then ask the parent class for a implementation based on a name ( 'NFL::Team->new( "steelers" )'). Easy stuff, makes a plugin architecture a piece of cake. Very high ratio of docs to code.

Presentations

I've given four presentations at YAPC. The first was in 1999 on introducing DBI the second in 2001 on introducing OpenInteract the third in 2003 on a system that generates Java using Perl and some implications for agile development, and the most recent at YAPC 2004 was a 3+-hour tutorial about OpenInteract2.

In 2004 I've given the following presentations:

In 2003 I talked about:

Writings

Designing pages in HTML is like having sex in a bathtub. If you don't know anything about sex, it won't do you any good to know a lot about bathtubs.
-- vagabond@mcgurkus.circus.com (comp.infosystems.www.providers)