Greetings, and offer of help

Darren Duncan darren at DarrenDuncan.net
Mon Aug 26 23:40:33 CDT 2002


Hello.  I'm glad to see there's now a group of people I can discuss Perl with that can be done in person rather than just over the internet, so kudos to whoever thought of setting this up in Victoria.

I'm not sure how many people are seeing this yet, since the ml is so new, so I may repeat it later when there are more people.

So here's a bit of an intro.

I'm Darren Duncan, 24 years old, and live around Sidney, BC.  I had graduated from the Computing Systems Technology program at Camosun over a year ago, and I have been working as a full-time programmer/designer with a 20-year-old Victoria software company, which makes its own reasonably large database-driven applications (the latest one is also web-based).  My paid programming experience in general goes back for about 3 years, and my hobbyist experience goes back at least 8 years.

I have been using Perl regularly since early 1998, when I learned it at camosun from Darrell Wick, who some of you may know.  He's quite possibly the best teacher in the computing field that Camosun has to offer.  I also started to get into full-time website development around the same time.  Mostly I've used Perl for web applications, but I've done a few reusable text or data processing scripts as well.  For the first few years, I used the Digital Unix server space that all comptech students got for my websites and Perl scripts; around early 2000 I switched to a Linux share hosted by BareMetal.com.  My home computer is a Macintosh, where I do all of my development; at first it ran MacPerl 5.004r20 under Mac OS 8-9, and then it ran the Unix Perl under Mac OS X.  I've also run Perl under Windows for short periods of time.

In general, Perl is my favorite language to work in, although I wish it was possible to make the language more strict than what "use strict" gives you.

Since June of 2000 I have been a member of CPAN (author id is DUNCAND), and have contributed 21 modules (7 are officially registered on the Modules list, and the others support or use those) in 6 distributions.  If you go to my website at "http://www.DarrenDuncan.net" then you can see links to my module's documentation and code.  They are all quite stable and they are fully documented, but where any have an earlier status than "Released" it just means I haven't written an exhaustive test suite yet.  I have also taken much time to make the modules robust, extensible, and easy to read.  I'm certainly not an obfuscationist of any sort.

My modules cover a varity of subject areas, from being useful anywhere to being intended mainly for web applications.  The largest distribution, "CGI::Portable", constitutes a medium-sized framework for web applications that makes them easy to modularize, as well as run under any kind of web server or file system without requiring changes to your code.  Of course, Perl itself is intended for high portability, but I take it further.  For one thing, by writing your app to my framework, it can run either under mod_perl or as a CGI, or without any web server at all (Perl itself implements the HTTP sockets) without changes.  CGI::Portable largely consists of an object that stores input from the client and output for the client in an organized fashion.  Most of your code would simply read from and write to this object instead of the normal web server interface, or instead of parsing the HTTP request and response yourself.  A set of thin interface classes, each specific for a particular server, populate said object when a request comes in and package its output when your response is done.  My framework also translates file system paths from one OS to another, all highly customizable.  My next largest module is HTML::FormTemplate, which takes a "form definition" (with semi-complex form control types) as input and does everything from generating the form HTML to error checking the user's input and making a report from the results.  This class does no I/O by itself, but takes input as Perl multi-dimensional data structures and returns output as strings.  The other classes are simpler, but also more generic.

While I haven't actively developed my modules since the fall of 2001 (I consider them stable and reasonably complete), I have moved on to building the applications that I wanted the modules to support; the applications are what I'm really interested in getting working at the moment.  You can see some of the simpler applications in production use right now; my entire web site is one such app.  The more complicated app is a multi-user large database-driven cross between a multimedia catalog and a genealogy program.  It is not yet ready for demonstration.  I have also used my modules to rapidly develop some cgi scripts for a few friends on the web, and they consisted of things like submission and voting forms, which also happen to send formatted emails of form contents.

Feel free to have a look at said modules and see if they are useful to you.  For example, the letter I responded to that announced the brand new Victoria.PM group said the group didn't have a website yet.  Perhaps I or my modules can be of some help here.

P.S.  Sorry if I sounded like I was bragging in this email, as it wasn't my intent.  And you can of course share your own accomplishments with the group.

P.P.S.  I also am greatly anticipating the production release of Perl 6 and other technologies built on Parrot.

Have a good day.

-- Darren Duncan



More information about the Victoria-pm mailing list