2011.08.03 in #2Ovid is loving 5.14
With a small example Ovid is showing several new features of Perl 5.14. The actual explanations by Hercynium are in the comments.
2011.08.09 in #3Binary search versus hash lookup - benchmarking
As usual Ovid makes and excellent post with an excellent code example. He is comparing binary search of sorted data vs creating a lookup table and using it. The numbers speak for themself. Or do they?
2011.10.07 in #11Querying ElasticSearch from VIM
It is a bit unclear to me why did Ovid give this title while it seems the interesting part of his blog entry was the Perl script that highlights the character where a json file has a syntax error. The funny thing is that the Perl Weekly is based on a JSON file and I am writing it in Padre. So I already wanted to write a plugin to do syntax checking of JSON files. Now I can just take what Ovid wrote.
2011.12.29 in #23A regex for my book
Ovid showed us a horrific regex that he is going to include in his new book. First he got some comments on Facebook and then blogged about it with a modified version of the same thing.
2011.12.30 in #23Syntax Highlighting Perl Debugger on github
It seems Ovid does not spend enough time on his book, blogging and moving from Amsterdam to Paris so he wrote color highlighting for the built-in debugger of Perl.
2012.02.09 in #29Unicode and Passwords
Do you allow strange characters in the username field? What about the password field? Don't have people enough problem typing with Caps-lock on by mistake? Check some of the issues with Unicode and passwords as Curtis (Ovid) Poe thinks about them.
2012.03.02 in #32perlfind - perldoc on steroids
This wheel has been reinvented so many times already, but for some reason none of them became widely accepted. I'd really like to see this take off as it can make our life a lot easier. This one is from Ovid.
2012.03.31 in #36Major DB::Color update (Perl QA Hackathon)
Ovid improved DB::Color that allows you to have color while using the built-in debugger of Perl. He also discovered some bugs in Syntax::Highlight::Engine::Kate that I maintain. As it was in the SVN repository of Padre I quickly converted it to Github and Ovid already pushed some regression tests. It would be nice if some good soul took a look at that module as I probably won't have much time for it.
2012.06.14 in #47Read Beginner Perl by Ovid online for free
Ovid mentiones that his new, not-yet-published book is now available free of charge for on-line readers. Go read it while it is available.
2012.09.26 in #62Beginning Perl (Wrox) is now released
Ovid is announcing the availability of his Perl book. As he writes: If you're interested in Perl but worried about the title, the book actually takes you all the way through OO programming and even has introductory sections on Catalyst, DBIx::Class, Plack, and other tools. It's fairly comprehensive.
2012.10.14 in #64Mojolicious: an unexpected result
The original article by Ovid in which he suggests that companies using the Mojolicious (with its no-CPAN-dependency policy) tend to be avoid using CPAN and tend to reinvent the rest of the wheels themselves. As I can tell, Ovid does not say which is the cause and which is the result.
2012.12.07 in #72Finding Duplicate Code in Perl
One of the biggest problem I encounter when starting to clean up legacy code, is locating and eliminating duplicate code. For a long time I planned to write something to find them, but I never felt up to the task. I am glad Ovid started to work on this. I think this will be extremely useful in a lot of places.
2012.12.19 in #74Test::Class + Moose?
Ovid has started to build a module for testing applications using Moose.
2012.12.26 in #75Refactoring When Tests Are Failing
What happens when your co-worker left the code in a broken state and he is gone for 2 weeks during the holidays? how do you avoid the constant nagging of the failing tests, and how do you make sure you don't get used to them saying 'Oh we expect those to fail...'. As usual Ovid comes with an interesting solution, though I think I'd stick to TODO block + big red sticker on co-workers screen.
2013.01.05 in #76How to write a test description
Too often, peeps eschew test descriptions in TAP suites. Ovid explains why this is sub-optimal, and how those descriptions can be leveraged to make tests as self-documenting as possible.
2013.01.29 in #80Test::Class::Moose on the CPAN
A new contender in the JUnit-type testing arena. This one is from Ovid, and throws Moose goodness in the mix.
2013.02.18 in #82Red-Black Trees in Perl 6 Explained
Ovid took the solution from Rosetta Code and first explained what Red-Black Trees are and how they can be implemented in Perl 6.
2013.02.20 in #83A follow up on three-value logic in Perl
Do you like to upset your boss? Neither do I. Apparently Ovid wants avoid that too. So how do you compare undef with a number in a way that it won't mean 0?
2013.03.15 in #86Discoverable tests and creating testing standards
You have so many tests associated with your perl code that it's becoming a problem to wade through it in search of a specific testcase? Oh, how do I envy you. But still, Ovid proposes a standard (with heplful vim scripts) to make things as neat and as organized as possible.
2013.03.17 in #86Using Roles with Test::Class::Moose
Just like Moose can tremendously simplify your OO classes, Test:::Class::Moose can do wonders for your test suites. Ovid shows us how it can leverage inheritance and roles to great advantages.
2013.04.12 in #90How to be agile without testing
For a developer, it's all bugs. Well, it ain't, Ovid points out: there is bugs, and then there is unforeseen behaviors. And while the first group is almost always bad news, the second group can be... surprising.
2013.04.21 in #91When Must You Test Your Code?
Ovid continues his thoughts on the balance between the need for 'well tested code' and 'useful code'. In other settings people say 'making more money for the business is the only important thing', but what are the limits? Ovid uses the expressions 'do no harm' and 'mitigate harm' and 'ethical choice'. Where do you stand? Where does the company you work for stands?
2013.05.06 in #94Tags now available with Test::Class::Moose
There is now a way to attach meta-data to your test suite, and then based on that meta data select which test you'd like to run.
2013.05.30 in #97If there's a shortage of programmers, why aren't wages up?
Peoples bemoans that good programmers are hard to find, yet our wages aren't going through the roof. What's up with that? Ovid looks at the various factors that are in play in the equation.
2013.06.05 in #98A Test::Class Anti-Pattern
You have test fixtures that you need to run in a certain order. So you name them 'aaa_first()', 'bbb_second()', right? Wrong! That's a classic anti-pattern, and Ovid shows us how to deal with ordering fictures in a much more elegant way.
2013.06.19 in #100Being nice to colleagues with git pre-commit hooks
The article is about test code, but this could apply to regular code as well. How many times have you added print statements or other 'debugging code' to your application? And how many times have you forgotten to remove it before committing to Git? You can avoid it using pre-commit hooks.
2013.07.03 in #102Encapsulating Responsibility in Methods
Ovid explains how Object Oriented programming can hide complexities. If you follow the pattern he outlines, you will see the number of parameters you need to pass shrinking. Which is always a good thing.
2013.07.13 in #103The grep test - my personal experience
The grep test basically means that you should be able to grep for any meaningful string in your code base to find out the usage of those keywords. This sounds like a very reasonable approach and a good way to explain it, but what would you do if you had a piece of code where you get the name of a method passed to you and you call that method using the variable name? How can the name of that method grepped?
2013.07.24 in #105How to fake a database design
You've heard of database normalization, but ain't too sure of what it's truly about? Ovid provides us here with a handy introduction to that core concept of (sane) database design.
2013.07.29 in #106Perl Startups: Recollect.net
Ovid continues his weekly interviews with Perl-based start-up companies. This week it was with Luke Closs, the CTO of recollect.net.
2013.08.12 in #108You are in a forest ...
Remember those good ol' text games of yore? Ovid does too, and he wrote a Perl engine to run those vintage adventures.
2013.09.03 in #111Test::Class::Moose introductory video
For most cases, Test::More is all you need. But sometimes, just sometimes, you have to get the big guns. Ovid presents here one of those high caliber solutions.
2013.09.04 in #111Using git-bisect to track down warnings in your test suite
Sleuthing for when a bug appeared is no fun. Fortunately, 'git bisect' can help to zero in quickly on where things went South. Ovid here shares a few tricks to use this tool efficiently.
2013.09.26 in #114Building your own Moose
Moose by itself is already scrumptious, but most of us top it with MooseX:: extras to make it even better. In this article, Ovid shows how to shave on the boilerplate that the import of all those extra modules require.
2013.10.14 in #117The Problem With Perl Testing
The Perl testing culture. Is it good? You betcha. Is it perfect? Not even remotely close. Ovid brings up this laundry list of the typical sins we commit in our test suites, and how we can, and should improve on it.
2013.10.18 in #117Fighting a 30-year-old software bug
Halloween is approaching, and in that spirit Ovid shares with us the terrifying tale of how he battled an ancient evil, born of an Age all but forgotten.
2013.11.08 in #120A Tiny Code Quiz
Think you know Perl? Ovid has an itsy bitzy little quiz for you...
2013.11.17 in #121Context and the Comma Operator
Apparently I missed the Tiny Code Quiz Ovid posted last week, but now chromatic took upon the task to try to explain the seemingly (?) unexpected behavior of perl.
2013.11.30 in #123Why Are Fast Tests Important?
Great story by Ovid about the BBC, and why reducing the test run-time can increase the productivity of your team.
2013.12.12 in #125Single process versus parallel tests
Ovid discusses the advantages of running tests in parallel - which are quite obvious (you get home earlier) - or maybe it isn't? He also describes his work on Test::Class, and Test::Class::Moose to make parallel processing a possibility there too.
2013.12.26 in #127Merry Christmas! Parallel testing with Test::Class::Moose has arrived
If you were looking for a Christmas present, here is one from Ovid. He says he can make your test 24 times faster. Or, at least, the one he had was made so much faster. Oh, and he is using Parallel::ForkManager. Luckily, I just fixed a stupid bug there that I introduced a while ago.
2013.12.26 in #127Profile Your Tests (One Test Class Per File)
chromatic agrees with 90% of what Ovid write in a different article but does not tell us the 10% he disagrees with. But then he goes on explaining why he thinks using Test::Class was probably a good choice in their case. If you write tests, and I really hope you do, then it is worth reading these articles and thinking about the implications.
2014.01.08 in #129Why I Didn't Submit A Patch
It's a harsh reality, but it stands to reason: for your project to get contributions, you have to reduce the hoops the wannabe contributors has to jump through to as close as zero as possible. That can mean, amongst other things and for better or worse, having your project using the VCS and/or hosting site that is the de-facto standard in your community. Ovid explains how, in his case, that made the difference between investing time into pushing a patch, or not.
2014.01.12 in #129Major Test::Class::Moose Update
A new version of Ovid's Test::Class::Moose is out. Parallel testing is now supported, along some other nice goodies.
2014.01.14 in #130Ditching A Language
Ovid explains why replacing the programming language and rewriting your whole application might not solve all your problems after all, and how much can it cost you. Maybe your job?
2014.01.18 in #130Testing Random Dice Rolls
Ovid shows how to check if the dice you are rolling (with your computer program) are cheating, or if the randomization works correctly.
2014.01.20 in #131Test Suite Organization
Ovid explains why mirroring the class-structure of your module in the tests as well is a good idea, and also gives some tips how to go about doing it.
2014.02.06 in #133Making our training material public
Curtis 'Ovid' Poe, who runs the company called 'All Around the World' with his wife, has released some of their test-training materials under the Creative Commons by-nc license.
2014.02.10 in #134Using DBIx::Class::Schema::Loader to find design flaws
DBIx::Class is a pretty useful piece of software. Ovid, however, takes it one step further and leverages its mechanisms to help in the design and sanity-check of database schemas.
2014.02.16 in #134Easy Fixtures With DBIx::Class
Testing with databases is typically hard and messy. Yet, sanity might shines at the end of the tunnel: Ovid has a new way to manage those unruly fixtures.
2014.02.24 in #136Easier Database Fixtures
Ovid improved DBIx::Class::EasyFixture eliminating half the lines you had to write for setting up some data in a database for testing.
2014.04.06 in #141Custom DBIx::Class ResultSets
DBIx::Class's resultset classes are often slim, logic-less affairs. But Ovid shows us here how they can also be used to create a much smarter interaction with the database.
2014.04.08 in #142Why Companies Turn Me Down For Contracts
The story telling capabilities of Ovid are clearly good. In this article, he explains how searching for the next contract takes away time he could spend on writing open source code, and how you could help by getting your employer to hire him.
2014.05.07 in #146Using Perl on Red Hat's OpenShift Cloud
Ovid explains how to use this Platform as a Service (PaaS) system to avoid the need to handle sysadmin tasks while building a web application.
2014.05.16 in #147Automatic variable highlighting in vim
If Vim is your editor of choice, you have to see this new utility Ovid brilliantly stole and adapted for our Perlish needs.
2014.06.10 in #151Sick of being mocked by unit tests
Ovid has used to much mocking and it hurt. The bottom line: don't overdo it. He also embedded an excellent video, a conversation between Martin Fowler, Kent Beck and David Heinemeier Hansson.
2014.07.04 in #154Making git bisect more useful
When hunting down the moment a bug has been introduced in a codebase, 'git bisect' is a blessing. Ovid reminds us here that the labeling of the different commits as 'good' or 'bad' can be automated, making the search for the commit where all went wrong all the faster.
2014.07.05 in #154Procedural Quest Generation in Perl
For his MMORPG game, Ovid needs to generate quests. He shows us how that can be fairly easily achieved with a little bit of code.
2014.08.12 in #160Creating an MMORPG in Perl
Ovid discusses at a high-level the challenges and intricacies that goes in writing a MMORPG.
2014.08.13 in #160Quickly Check for Database Design Flaws
Database schemas are hard to get right. Ovid tries to help us along the way, and shares a quick checks that is likely to make some of its flaws come out of the woodwork.
2014.08.27 in #162Try rakudobrew and play with concurrency
Apparently, Ovid got excited by recent improvement in Rakudo, tried it and even wrote about it. Moore's law is coming to an end. Easy-ish threading is the solution.
2014.09.18 in #165Understanding Behavior Driven Development
Ovid, who knows quite a bit about testing and Agile software development has just started to like BDD and Cucumber. He shows what is a good and a bad 'story' and how the good 'story' can be easily expressed in Test::Cukes, the Perl implementation of Cucumber.
2014.10.10 in #177The Moose::Role Required "attributes" Bug
Annoyed that you have to punt 'with' statements at the very bottom of class declarations? Read on, as Ovid has a workaround for that.
2014.10.30 in #171Veure Update: Missions
Veure is an MMORPG created by Curis 'Ovid' Poe in Perl with some nice images.
2014.12.04 in #176Using Roles as Partial Classes
Curtis Poe describes how roles can be treated as partial classes, a concept in some languages, where a class can be split into multiple files. A bit like roles, you might be thinking.
2014.12.04 in #176Pretty-printing multiple arrays
Curtis Poe posted a small programming challenge, and a bunch of people gave their solutions (in the comments, gists, etc).
2014.12.17 in #178ZipRecruiter Wants You ZipRecruiter is a job board startup based in California, and they're looking for Perl developers. A few people you might have heard of already work / contract there, and they allow remote work.
2015.01.07 in #181Can you provide an x/y Point class in other languages?
Ovid needs you! He's crafting a Perl 6 presentation, and as a comparative exercise, he needs to have implementations of the classic Point class written in different languages.
2015.02.22 in #187Avoid a Common Software Bug By Using Perl 6
Curtis shows how Perl 6's gradual typing can prevent certain types of bugs in your code. He throws some other Perl 6 titbits in as well.
2015.03.19 in #191DBIx::Class::Report - generate ad-hoc dbic classes from SQL
Wouldn't it be nice if we could just take a chunk of arbitrary SQL and get a resultset from it? - Ovid asks and responds to himself with the release of DBIx::Class::Report. But when would you need it?
2015.07.13 in #208Testing your sqitch changes
Sqitch is a is tool (written in Perl) to manage changes in databases. Of course it is not perfect, but some of its flaws can be avoided, or at least detected by a simple test script Ovid shares with us.
2015.09.05 in #215Dave Cross and Modern PERL
Following Dave's YAPC::EU lightning talk, Ovid shares some real-life code he saw in the wild. Warning: the code you're about to see may makes you groan, sigh, or heartfully head-desk.
2015.09.14 in #217Turning points
Ovid talks about past turning points in the history of Perl, and the one approaching, when Perl 6 is released. He argues that we should see this as an opportunity to promote both Perl 5 and Perl 6, and the community. For example, perl.com could really do with a facelift before the big day. Duration: 55 minutes
2015.10.14 in #221Divas Need Not Apply
A rant by Ovid on how some Perl programmers cannot communicate properly. Not even when it is about finding a new job. Though it is unclear if he refers to some of the people in the active Perl community or other people who 'just' use Perl.
2015.12.04 in #228The Veure MMORPG Saga Continues
Ovid teases us with can be described as a tantalizing textual trailer to his upcoming space MMORPG, Veure.
2016.03.16 in #243Perl 6 — Why People Are So Excited
A video of Curtis's talk at FOSDEM earlier this year. The audio for the first 3 minutes is sadly borked, but stick with it.
2016.04.08 in #246Private Moose Attributes
Curtis shows how they've been creating private Moose attributes in a project he's working on, and in the comments other people have shared how they do it.
2016.04.18 in #248Veure's Test Suite
In case you are interested how Ovid is actually writing and running tests.
2016.05.04 in #250Why I try to avoid Perl's punctuation variables
A discussion on the classic theme of "things you can do but probably shouldn't unless you really, really like mobs, torches and pitchforks."
2016.05.19 in #252Veure's Database
Ovid takes us through some of the database-related decisions they've made while working on their Veure game.
2016.11.04 in #276Seeing the SQL in DBIx::Class
Ovid found it hard to find out what SQL was being run by DBIx::Class, and showed how he does it. In the comments you'll see that there's an easier, but perhaps hard to discover in the documentation, way to do it.
2017.03.23 in #296Saving your test suite history
Test::Class::Moose::History helps you know which tests have failed on master and when? Which tests are fragile and which are robust?
2017.04.06 in #298Better SQL tracing with DBIx::Class
When you write some code and then the other developer shows you the switch to turn on the same thing in the existing solution. Or maybe not exactly.
2017.06.13 in #308Writing Declarative Perl
Learn a little about declarative code as a way to model complex object actions (speaking at TPC:US 2017!)
2018.04.18 in #352Tau Station is now live!
It's a free-to-play post-apocalyptic interstellar MMORPG that runs in a browser, tablet, or mobile. The backend is written in Perl.
2018.07.24 in #366The Future of Perl 5
Ovid discussing the features that he expects in future Perl 5.
2019.03.29 in #401Enforcing Simple Standards with One Module
How long is the boilerplate use-statements at the beginning of each one of your files? How many time do you need to make changes to it? What if there was a better solution than copy-paste?
2019.04.08 in #403Atomic Updates with DBIx::Class
So how can you handle bank account movements using Perl so that neither your client nor the bank loses money?
2019.04.18 in #404Fixing MVC in Web Applications
Curtis shares the common mistakes by the developers implementing MVC in Web Applications. In the end, he shows the better implmentation of MVC. Highly Recommended.
2019.05.06 in #407Renaming modules from the command line
Renaming a file in git is easy. Renaming a module is always a pain as you need to change the name of the file. The name of the 'package' inside. Every place where it is used in every other file. Including the tests. You also need to update the documentation. Here is a script that will do it for you. All that without using the word 'refactoring' even once.
2019.05.17 in #408The Worst Job Offer
Curtis talks about how the Perl role not adequately being paid.
2019.07.15 in #417The Perl Conference in Riga
Short version: He'll be there. Long version: life was not very easy for Ovid and his family for the past year or so. Details in blog post.
2019.09.03 in #424Signatures vs. Methods
Ovid blog always starts interesting discussion, this time around it is not different. You can't afford to miss out.
2019.10.12 in #429Larry has approved renaming Perl 6 to raku
There are a lot of good points in this post, but Ovid also writes: "Though support for a rename was overwhelming, there was a loud minority who objected", but he shows no evidence of this. For all I know there were 8 billion people who silently supported the name change and 20 'loudmouthes' who were actually involved in the project who opposed it. I don't know. It just seems like bending the truth. It is definitely trumping on the people who 'lost' the argument. Then giving them a bone by writing: "But through it all, one thing remained clear: everyone meant well.". And all this is coming from a well-respected member of the Perl community.
2019.10.16 in #430Cor - A proposal for core Perl OO
Curtis shared the little secret project that he is working with Sawyer X and Steven Little. Please do checkout the article for more details.
2019.10.23 in #431Cor - Background core Perl OO
Showing 'a perfectly non-sensical, Moose code (which nonetheless runs just fine)' that Cor will fix.
2020.10.03 in #481The Tau Station Kickstarter is still alive!
This is the first ever MMO BIBILIO-RPG, as they call it, and you have the opportunity to push it forward to its success. Check out and support the Kickstarter campaign! It looks really nice and you also have the opportunity to help a major Perl success take place and enhance the cool-factor of the language and the ecosystem around it.
2021.02.04 in #498Managing a Test Database
Curtis, once again, shared his real life experience managing test databases. Some very thoughtful insights. I enjoyed it thoroughly.
2021.02.20 in #500Corinna Project
If you have followed the Corinna project and have thoughts about it being in the Perl core, then why not share with the team?
2021.03.01 in #502No :builder for the MVP
Big announcement by Curtis about the removal of :builder from Corinna.
2021.03.11 in #503The Unknown Design Pattern
The Entity-Component-System to create a class that can represent a military grade combat suit that functions as armor, as a weapon, and even as a medkit.
2021.03.22 in #505Managing a Test Database
Test databases are very easy to get wrong. Very easy. Ovid shows some bad examples and points in the direction of good solutions. One thing that I especially like is the idea that the test database is left on the system for inspection for some time and then automatically cleaned up by the system.
2021.03.30 in #506The Zen of Test Suites
This should be used as a text for any beginner learning to code. I found it very useful and will definitely bookmark it for future reference.
2021.04.20 in #509Use Immutable Objects
The little I understand the state of programming, I think there is a trend going towards more immutable objects. In Perl there are not many such objects, even constants are just functions. So it will be interesting to see how this works out. Will having immutables reduce the bugs in our code as promised by many or will it just increase the complexity?
2021.06.13 in #516Proposed RFC for Corinna
Curtis' proposal for creating an RFC for Corinna. What do you think? Please share your suggestions.
2021.08.21 in #526Politics in Programming
Curtis discusses the design aspects of Corinna. You really don't want to miss it.
2021.09 in #528Corinna RFC
Rough table of contents for the Corinna RFC by Curtis
2021.11.14 in #538Language Design Consistency
As we know, Curtis and his team are working on Corinna and we keep getting regular updates. The latest blog post is talking about design consistency.
2022.01.15 in #547Unofficial Corinna Update
The goal of the Corinna project is to get modern object-oriented programming into the Perl core. Ovid is looking for feedback on Reddit.
2022.01.23 in #548Git::Critic
Do you like Perl::Critic but you can't use it against your legacy codebase because it reports too many problems? Then you should try this new module and share your experience with the author.
2022.05.22 in #565MooseX::Extreme Needs a New Name
How to create a version of Moose which is safer and easier to use, including removing a lot of boilerplate?
2022.05.26 in #566Introducing MooseX::Extended for Perl
If you are Moose user then you are going to love this extension. It would help you with less boilerplate code.
2022.08.07 in #576MooseX::Extended
Curtis announced proper try/catch support in the latest release of MooseX::Extended. Please give it a try.
2022.08.18 in #578Corinna MVP
Curtis shared the different stages of Corinna MVP as planned.
2022.09.02 in #580Naming and Object-Oriented Code
Curtis is back with yet another interesting blog about a subtle issue with naming in object-oriented code. Highly recommended.
2022.10.02 in #584warnings::unused
If you could add new, but not default, warnings to the Perl language, what warnings would you add?
2022.12.11 in #594RedBlack tree mockup in Corinna
Yves Orton wanted to see a complex class implemented in Corinna, so I mocked up a red-black tree.
2022.12.22 in #598Typed variables
Typed variables in Perl? Well do checkout the post.
2022.12.25 in #596First round of feature 'class'
Paul "LeoNerd" Evans has created the first pull request for Corinna, the modern OOP system for Perl. Merry Christmas!
2023.12.20 in #648Microservices Pros and Cons
Microservies used to be hot potatoes little while ago. Nice to see pros/cons from the master himself. Thanks for sharing.
2024.02.18 in #656Will You Lose Your Job to AI?
Not specific to Perl but worth every second of yours. The topic is something you do not want to miss.