Testing a Database-Intensive Application

If you’ve been bitten by the testing bug, you’ve surely encountered the problem of testing a database-intensive application. The problem this presents isn’t specific to SQL databases, nor is it just a database problem. Any data-driven application can be hard to test, regardless of how that data is stored and retrieved. The problem is that in order to test your code, you need data that at least passably resembles data that the app would work with in reality. With a …

Read more

The Purpose of Automated Tests

Recently, there was a question on stackoverflow that asked whether or not one should test that Moose generates accessors correctly. Here’s an example class:

Given that class definition, is there any value to writing tests like this?

Let’s look at why automated tests are useful. First, they give us some assurance that the code we wrote does what we expect. Second, tests protect us from breaking code as we change it. As we refactor, fix bugs, or add …

Read more

Benchmarking MooseX::Method::Signatures

I’ve been seeing some talk about MooseX::Method::Signatures and its speed. Specifically, Ævar Arnfjörð Bjarmason said says that MXMS is about 4 times slower than a regular method call. He determined this by comparing two different versions of a large program, Hailo. This is interesting, but I think a more focused benchmark might be useful. Specifically, I’m interested in comparing MXMS to something else that does similar validation. One of the main selling points of MXMS is its excellent integration of …

Read more

Moose Class in Minneapolis – Friday, February 5, 2009

I’m doing my one-day Moose class here in Minneapolis again, as part of Frozen Perl. The class is even cheaper this time, as a special deal for the workshop. It’s a mere $100 per person! The class is an interactive course, meaning you bring your laptop and do exercises in between lecture sections. It covers all the basics of Moose, and even gets into some of the more advanced bits. Here’s what students who took the class back in September …

Read more

Project Stack Push/Pop

I have an amazing ability to get distracted from my goals when programming. Sometimes it feels like each project I work on is just the latest distraction from what I was working on. Usually this happens because I’m happily hacking away on project A until I hit a roadblock. That roadblock might be a missing feature in a module I’m using, or maybe a module I need that doesn’t exist. Sometimes the roadblock is a gap in my understanding. I …

Read more

What’s the Point of Markdent?

Markdent is my new event-driven Markdown parser toolkit, but why should you care? First, let’s talk about Markdown. Markdown is yet another wiki-esque format for marking up plain text. What makes Markdown stand out is it’s emphasis on usability and “natural” usage. It’s syntax is based on things people have been doing to “mark up” plain text email for years. For example, if you wanted to list some items in a plain text email, you’d wite something like:

Well, …

Read more

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 …

Read more

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. I had thought …

Read more

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. …

Read more

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. You can register …

Read more