Want Good Tools? Break Your Problems Down

I’ve been working a new a project recently, Markdent, an event-driven Markdown parser toolkit. Why? Because the existing Perl Markdown tools just aren’t flexible enough. They bundle up Markdown parsing with HTML conversion all in one API, and I need to do more than convert to HTML. This sort of inflexibility is quite common when I look at CPAN libraries. Looking back at the Perl DateTime Project, one of my big problems with all the other date/time modules on CPAN was their lack of flexibility.

My Outreach for Animals Week 2009 Leafleting Experience

I did my Outreach for Animals Week leafleting today, and it went surprisingly well. I say surprisingly, because I thought that the weather was conspiring against me, but I was wrong. It was raining outside, but it turns out that the University of Minnesota does allow leafleting inside academic buildings (but not inside the student union). Unny suggested I try either Blegen or Willey Hall on the West Bank. I went to Willey near the Gopher Express.

Support Me in a Leaflet-a-thon

First off, there’s no technical content in this blog post. Sorry. I’ll be participating in a leaflet-a-thon next week with my animal advocacy group, Compassionate Action for Animals. This is like a walkathon, but with less walking and more handing stuff out. To those within the light of my pixels, if you’d like to support me, you can do so by making a donation online. Even if you don’t particularly support the cause, please consider doing this to support me.

Moose Class in Minneapolis – September 23, 2009

The class is scheduled for Wednesday, September 23, 2009, from 8:30am to 5:00pm. The class will be at the Days Inn in Minneapolis near the U of MN campus. There is free on-site parking at the hotel. The class will run all day, with an hour or so lunch break. I will not be serving food or drinks, but you are welcome to bring your own, of course. In order to attend, you must register in advance.

More on Catalyst Models

Marcus Ramberg responded to my post on How I Use Catalyst, and I’d like to respond to a few points he made. Marcus wrote: I disagree that $schema->resultset(‘Person’) is a significant improvement on $c->model(‘DBIC::Person’). Me too! I don’t think the former is a significant improvement over the latter. They are, after all, more or less the same. The one big problem is that the latter version uses a nonexisting DBIC::Person namespace.

She Said What?!

I created a new website as a fun little personal project, She Said What?! It was a fun experiment both in minimal web design, and also in minimal code. I can update it from the command line just by typing: 1 ssw 'A quote goes here|and commentary goes here' This adds a quote to the quote “database”, which is just a directory of timestamped flat files on my desktop. Then it regenerates the site as static HTML and pushes it to the live server.

How I Use Catalyst

Now that I’ve written about My Way of the Webapp and what Catalyst really is, I’ll explain what I don’t like about Catalyst. I’m not going to talk about things I know the Catalyst developers are aware of. In particular, the use of subroutine attributes for dispatching is horrible, and they know it. I’m excited to see CatalystX::Declare, since something like that should be the future of Catalyst controllers. Another well-known misfeature is the rampant use of subclassing for plugins and the lack of well-defined APIs.

Moose Class in Minneapolis?

I have this one day Moose class I’ve developed. I was supposed to give it at YAPC, but I was sick and cancelled my trip. Here’s the class summary I wrote for YAPC: This will be an interactive hands-on course all about Moose. Moose is an OO system for Perl 5 that provides a simple declarative layer of “sugar” on top of a powerful, extensible meta-model. With Moose, simple classes can be created without writing any subroutines, and complex classes can be simplified.

My Way of the Webapp

I’ve been working on web applications for a long time, and over the years I’ve developed a specific approach to structuring web application code. In the past few years, this has been strongly influenced by REST concepts. My approach leads me to make use of some existing concepts, like cookies and sessions, in an idiosyncratic way. Sometimes in discussions about web application I’ll refer to these idiosyncrasies, but seen in isolation they may make no sense to anyone but me.

I Am the Master of Wheels

It occurred to me today that if you look at my history as a CPAN author, you’ll see that I’ve either written or heavily participated in every popular target of re-invention on CPAN! I started off by writing an ORM, Alzabo. Back when I released it, this was one of the very first ORMs for Perl. Amusingly, I re-invented the whole ORM concept pretty much independently. I don’t think I even heard the term until after Alzabo was released.