• Website:
  • About: Freelance Perl/Testing/Agile consultant and trainer. See for our services. If you have a problem with Perl, we will solve it for you. And don't forget to buy my book!
  • Commented on DBIx::Class::Report - generate ad-hoc dbic classes from SQL
    kablamo, DBIx::Raw is very different. It's useful, but doesn't serve the needs I have now. In short, if you have a DBIx::Class based system, using DBIx::Raw doesn't help because you're still stuck with hashrefs, or assigning the data directly. DBIx::Class::Report...
  • Posted Tiny Games with Perl 6 to Ovid

    Note: due to positive feedback on the post and at a client, I've released DBIx::Class::Report to the CPAN. You can read the original announcement

  • Posted DBIx::Class::Report - generate ad-hoc dbic classes from SQL to Ovid

    Object-Relational Mappers (ORMs) are awesome if you think about your database a collection of objects. They're awful if you think about your database as a database. My primary client right now is ZipRecruiter and my work involves rewriting one of…

  • Posted Fake Amazon Book Reviews Are Hurting My Book to Ovid

    Update: I really can't say as much as I would like (there's stuff I can't share), but my publisher had a face-to-face with an Amazon rep and internal action was taken. Amazon's investigation is apparently over. The internal position seems to be "we're making money, there are…

  • Commented on CPAN PR-Challenge: February Report
    As an aside, until I struck out on my own for business, I never realized the insane amount of time it takes....
  • Commented on CPAN PR-Challenge: February Report
    My apologies for not answering. I've been so very, very busy and tons of people have been sending me email that I've been doing triage on email. I'm sorry you feel through the cracks. Your fix looked reasonable, by the...
  • Posted Perl 6 for Mere Mortals - FOSDEM Video to Ovid

    My FOSDEM talk, Perl 6 for Mere Mortals, is now online:

    You can see the rest of the Perl dev room videos here

  • Commented on Avoid a Common Software Bug By Using Perl 6
    Manuel, That's actually deliberate. Perl 6 does have a type inference engine in the optimizer. However, type inference can often generate obscure errors that are hard to understand. Larry Wall has said that until they have a better handle on...
  • Posted Building a Thin Controller to Ovid

    I haven't updated about Veure in a while and though this post isn't really about Veure, per se, I'll use some code from it to illustrate a "thin controller."

    There's a lot of confusion abou…

  • Posted Avoid a Common Software Bug By Using Perl 6 to Ovid

    Back in 2001 I was working for a company who had a client who was in a serious bind: the maker of their point of sale (POS) system suddenly jacked up the license fee to the point where our client would go out of business. They needed a new POS in 21 days.

    We grabbed an open source POS syst…

  • Commented on git-refresh: Automatically rebase current branch onto master
    confuseAcat: I do merge back to master. And my branch names often look like this: feature-description-$ticket feature-description-$ticket-2 feature-description-$ticket-3 feature-description-$ticket-4 The trailing number means "part X". I merge tiny pieces back to master all of them time, but there are enough...
  • Posted git-refresh: Automatically rebase current branch onto master to Ovid

    Different people have different workflows with git. Mine is pretty simple.

    1. Branch from master
    2. Hack, hack, hack,
    3. git stash; git checkout master; git pull --ff-only; git checkout $branch; git rebase master; git stash pop
    4. Goto …
  • Posted A little thing to love about Perl 6 (and COBOL) to Ovid

    By now you've heard the announcement that the Perl 6 team is cautiously hopeful that Perl 6.0.0 will be released this year. There are three things they need to finish:

    • The Great List Refactor (which should improve performance)
    • Native Shaped Arrays (tell Perl 6 that you only …
  • Commented on Can you provide an x/y Point class in other languages?
    brian, your point about the default value is well taken. Thanks. For the Java comments, I'll leave that to Damian, but I'll add this: I've sat in those Java classes and it's a bloody nightmare with students either trying to...
  • Posted Can you provide an x/y Point class in other languages? to Ovid

    Update: Thanks for all of the replies. However, I now need to block further replies due to the huge amount of spam this post is getting.

    I'm writing a talk for Fosdem entitled "Perl 6 -- A Dynamic Language for Mere Mortals." The talk…

  • Commented on ZipRecruiter Wants You
    Mithaldu: I'm not in HR, so I can't say. I live in France and they've invited me to swing by the offices while I was in the US, but I've haven't been there. I know of other devs who have...
  • Posted ZipRecruiter Wants You to Ovid

    By now I'm sure that some of you have heard about ZipRecruiter, the job board startup that recently picked up $63 million dollars in…

  • Commented on Of course you can `requires` attributes!
    A cleaner way (in my opinion, yours may differ), is to use forward declarations. The promise a subroutine will be there, even if it doesn't exist at compile time. That means you can put your with statement wherever you like....
  • Commented on Using Role as Partial Classes
    Movement is a single responsibility, so it should be its own class. No. A movement is an action. It's an abstract thing which doesn't stand on its own, like a character or a space station. It has to be attached...
  • Commented on Using Role as Partial Classes
    Thanks for your comments, Sid. I saw some interesting things in the second part of your series of posts and I made some comments there about them. Next, you wrote "Movement" for example should be a behaviour that is re-usable....
  • Commented on Inheritance is Bad: Code Reuse Part II
    First, you should generally be consuming all of your roles in a single with statement: with qw(Destroyable PositionRW); By composing those separately as you have (two separate with statement),you’re lose the composition safety of roles and your code is reduced...
  • Posted Using Role as Partial Classes to Ovid

    For Veure, my text MMORPG, I found myself worrying about the Character class turning into a god object. At over 2,300…

  • Posted A small puzzle for you to Ovid

    This had me stumped for a bit, but I was quite pleased when I came up with a relatively simple solution.

    Given several arrays, each of which has elements which are a subset of allowed elements, and given that every allowed element appears at least once in each array, how do I rewrite all a…

  • Commented on Stop Putting AUTO_INCREMENT IDs in URLs
    Ed, you're perfectly correct. I do have those access controls in place, with a fair amount of tests in place to ensure they don't get broken at some point in the future (though someone will find a way to cheat,...
  • Posted Stop Putting AUTO_INCREMENT IDs in URLs to Ovid

    Recently someone posted about an online job:

  • Posted Veure Update: Missions to Ovid

    Just a quick update for those who are following the progress of Veure. Here's the current character stats page.

    That's just a hint of some of what's new.…

  • Commented on Legal Issues in Game Software Creation
    Mithaldu, That's a huge gamble. Going to court still takes a lot of time and money. That's time you're not building your business and that's money that may run out before the judgment comes in. You still have to pay...
  • Posted Legal Issues in Game Software Creation to Ovid

    Note: I am not a lawyer and the following should not be considered legal advice. Double-check everything and hire a lawyer.

    As I continue to work on Veure, I have the added fun of l…

  • Posted Veure Update to Ovid

    Just in case you're curious, I'm still hacking on Veure, though the last month has kept me busy on a bunch of other things (our daughter just started school, so that's a big one!)

    I've been building so much of the infrastructure that you might be surprised to realize that I've only just go…

  • Posted Understanding Behavior Driven Development to Ovid

    I think I'm on the verge of drinking the Cucumber flavored Kool-Aid, which is odd because I've never done Behavior Driven Development (BDD) before. If you've followed my blogs over the years, you know that I am…

Subscribe to feed Recent Actions from Ovid

  • Mithaldu commented on ZipRecruiter Wants You

    That's more detail than before, and useful to me. Thanks. :)

  • brian d foy commented on Can you provide an x/y Point class in other languages?

    I think Damian makes the mistake most people do when criticizing a language. They conflate the language itself with the stupid libraries and idiotic ecosystem. It's not the syntax and design of the language that makes it so and I've seen some really talented programmers make Java do some amazing things. They just go around all the other shit though.

    Consider that a lot of the criticism of Perl is CPAN. It's not what you can do with the language that's to blame for what other people did with it.

    But, remember mjd's Why I Like Jav…

  • Belden commented on git-refresh: Automatically rebase current branch onto master

    Being able to specify a different base branch name than 'master' might be handy.

  • Offer Kaye commented on Avoid a Common Software Bug By Using Perl 6

    Very nice article, thank you very much Ovid!

    One question though, about this code:

    die unless $_[0] =~ /^\d+$/;

    One obvious bug is that it will accept octal numbers such as "040". Will the Perl6 "Int" type prevent such numbers?

  • Alberto Simões commented on CPAN PR-Challenge: February Report

    Hi, Ovid. Sorry if my post feels like I am complaining. That is not the idea. Just marking this PR as done and going for the next one. Nevertheless, I am happy to maintain the PR until it gets good to be merged. So, just comment on it with something you would like to be added, and I will try to do it.

Subscribe to feed Responses to Comments from Ovid

About is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is run by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.