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?
- For many objects you don't have to write any code, just a configuration file.
- It includes security that you can apply on a per-object basis.
- It's easy to use: why should we force Perl to conform to the OO idea of accessors and mutators when we have tied hashes?
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:
- Introduction to Mock Objects and general testing practices
- Building Applications with OpenInteract2 the first part of a longer presentation I'll be giving at YAPC::NA 2004 in June.
- Building Applications with OpenInteract2 is the full presentation given at YAPC 2004.
- Workflows in Perl to a local user group in October
In 2003 I talked about:
- Creating a Template Toolkit plugin (brief, Pgh.pm)
- why INI files rock for human-edited configuration (brief, Pgh.pm and YAPC)
- An intro to SPOPS (long, particularly to the attendees; Pgh.pm)
- An intro to Class::Observable (brief, Pgh.pm)
Writings
- Installing Gentoo on an old laptop (7-Oct-2003)
- Code Generation for Fun and Profit (24-Sep-2002)
- Side Effects of Decent Design (17-Sep-2002)
- A short guide to setting up SQL Remote between two (or more) Sybase ASE databases
- Paper on Perl and DBI from yapc 99 proceedings (fixed from printed version)
- Paper on mod_perl from presentation to DC Perl Mongers
- Paper on Perl and DBI from presentation to DC Perl Mongers
-- vagabond@mcgurkus.circus.com (comp.infosystems.www.providers)







