Zak Burke

  • I wrote an IMAP-Bugify connector that polls an email account and translates the messages into Bugify issues using the awesome Bugify API.
  • PHP ORM parent class and derived class
    I don't like CodeIgniter's ActiveRecord implementation because its methods return raw stdClass objects rather than instances of your own custom classes. This completely misses the point of returning objects, rather than associative arrays: instead of (1) writing instance methods, (2) keeping all your data logic in one class and (3) having access to public/protected/private methods, you have to put everything in Helper functions which means (1) you have to pass in the object as an argument, (2) the functions are in a separate file and (3) because they are functions instead of methods, by definition they are all public.
    Yes, there are many other excellent PHP persistence frameworks with more features. This is a much smaller solution than any of those, which also makes it simpler. Derived classes implement a few methods (tableName, fieldNames, primaryKeyName) and inherit CRUD operations, including traversal and caching of related objects (joins), from the parent class.
  • Kbzb, a Perl port of CodeIgniter
    I'm also not a big fan of PHP, although I do use it all the time. Since I am a big fan of Perl, I wrote a Perl port of CodeIgniter. It was partly an academic exercise to see what it would it would take and to learn the framework better, but I've also worked for a few places that used both Perl and PHP, and I figured this framework could be useful in those situations.
  • WebObjects EOF validation methods
    These simple validation methods provide object uniquing. Obviously, you can do this at the DB level with a unique constraint on a field, but EOF operates at a very far remove from the DB. Trapping the error at the higher level makes it much easier to handle elegantly.
  • In 2006 I completed a thesis for my Master of Liberal Arts in Information Technology Degree at Harvard Extension School. I wrote several applications using Perl, Java and sh. The content and code appendix are both available from the link above.