One Day Blinding Stew

Everybody’s talking about the one day blinding stew but how do you make it? This stew is also known as “stew that makes you blind”, “stew that makes you blind for one day”, or “Hunter’s sightless stew”. One day blinding stew is an ideal punishment for biting hair. Ingredients 3 blinding mushrooms (see image), roughly … Continued

Matching simply

A little over ten years ago, when Perl 5.18 was approaching its release date, I released match::simple. This was mostly in response to the smartmatch operator (~~) being deprecated, but also a solution to the incredibly arcane rules for…

Introducing Exporter::Almighty

Consider a simple module like this: package MyApp::Util::Maths; use strict; use warnings; use constant PI => 3.14159265358979; use constant EULER => 2.71828182845905; use base ‘Exporter’; our @EXPORT_OK = qw( PI EULER add ); our %EXPORT_TAGS = ( arithmetic =>…

Prosody vs Synapse

I recently decided to experiment by setting up a Matrix account. And because I always dive head first into things, I of course set up my own Matrix server rather than making an account on a public one. At the same time, I noticed my Jabber/XMPP account had stopped working, so I decided to self-host … Continued

Top Five Disney Villain Songs

Here’s my top five Disney villain songs. I’m only including songs from Walt Disney Animation Studios, so nothing from Pixar, etc. 5. Mother Knows Best — Tangled (2010) “Men with pointy teeth.” It’s a fun song, and quite dark in places. 4. Be Prepared — The Lion King (1994) Jeremy Irons singing with Whoopi Goldberg … Continued

Using Type::Params Effectively

One of the modules bundled with Type::Tiny is Type::Params, a module that allows you to validate subroutine signatures using type constraints. It’s one of the more popular parts of the suite. This article provides a few hints for using…

Setting up WordPress in 2023

Here is my recipe for quickly spinning up a WordPress site with: Plugins and themes managed by PHP Composer, so they can be checked into version control. Several of my favourite plugins installed, including FooGallery and Advanced Custom Fields. A minimal theme combining Roots Sage 10 and Bootstrap 5.2 (at the time of writing this … Continued

Perl Testing in 2023

With my open source work, I’ve historically taken an approach which relies more on integration testing than unit testing, but with some of my newer projects, I’ve tried adopting principles from $paidwork and applying them to my free software. This…

Type::Tiny v2 is Coming

Eagle-eyed watchers of CPAN may have noticed that I’ve recently been releasing Type::Tiny development releases with version numbers 1.999_XYZ. Type::Tiny v2 is intended to be compatible with Type::Tiny v1. If you’ve used Type::Tiny v1, you shouldn’t need to change…

RFC: new API for Type::Params

Firstly, I’m not planning on breaking compatibility with Type::Params. The new API would live under a different namespace, such as Type::Params2. The API for Type::Params is currently: use feature ‘state’; use Type::Params qw( compile compile_named_oo ); use Types::Standard -types; sub…

New Laptop

Recently ordered a new Lenovo IdeaPad 3i laptop. Twice as much disk space as my old laptop. 50% more memory. 4 cm bigger screen. WiFi 6. Fuller keyboard. Paid extra for a backlit keyboard as I loved that in my old laptop. Uses the same charger as my old one, which I already had two … Continued

Some software is too reliable

So my email client has been giving me warnings for a few weeks about my mail server’s certificate having expired. I trust the server, so I assumed something had gone wrong with certbot and the renewal process hadn’t worked. I put fixing it on my todo list. Today I finally got a chance to look … Continued