August 2011 Archives

The life and death (well, deprecation) of a wrapper module

Earlier this year I was frustrated with Salvador Fandiño García's otherwise excellent Net::SFTP::Foreign package. It was in almost all respects the best choice for my current project at work, but the then-current version required me to check the return values of method calls for success or failure, and then use an error method to get any reasons for failure that might be waiting. The rest of my code used exceptions courtesy of…

My first module: Data::Compare::Plugins::Set::Object

I wrote Data::Compare::Plugins::Set::Object (blech, what a mouthful) a couple months into my job at GSI. At the time I wasn't sure what if any their policy was on open source releases, so I was careful to do it on the side and assign copyright to myself. I still haven't found an explicit policy beyond my manager's "just use your best judgment" statement. Maybe that's for the best.

It's a tiny tiny little module (less than 40 lines of code) that does a tiny tiny little t…

DBIx::Class::Schema::Critic and parameterized roles

I originally started DBIx::Class::Schema::Critic as a code sample for a job application, but I thought it was worth releasing and continued independent development. Inspired by Perl::Critic, it's a package for comparing relational database schemas against a collection of best practice policies using the DBIx::Class Object/Relational Mapper.

At mst's behest I converted it from the /users/mark_gardner/2011/08/index.html

About me

I'm a developer currently working as a build automation engineer for an e-commerce services company. I've been working with Perl since 1994, and although I started focused on web applications I've gradually moved into toolsmithing and custom applications.

My PAUSE/CPAN ID is MJGARDNER, and I usually host my public development efforts on GitHub.

About Mark Gardner

user-pic I help professional Perl developers to engineer modern, disciplined applications in the cloud so they can become experts that write easy-to-maintain code with confidence, increase their relevance in the market and get the best positions, high salaries, and work on interesting projects.