Turn off tainting in brewed Perl.

I read that turning off tainting when building Perl can give you a speedup. Tainting also appears to be on the way out: it’s not needed for Mojolicious, for example. I brew my Perls so wondered how to do it. Some digging in the Perl distribution’s INSTALL file led me to a section on tainting. This suggested a flag. The next rabbit hole was how to get perlbrew to pass flags. Doing that and verifying with –verbose led me to:

perlbrew --verbose install perl-5.36.0 

And now some totally unscientific benchmarking using different Perl versions:

A simple benchmark suggested by David Farrell: https://www.perl.com/article/40/2013/9/29/How-to-benchmark-Perl-code-for-speed/

Perl-5.38.0 taint enabled:

equalsAssign: 11 wallclock secs 
(10.19 usr +  0.05 sys = 10.24 CPU) @ 200453.61/s (n=2052645)
shiftAssign: 10 wallclock secs 
(10.12 usr +  0.03 sys = 10.15 CPU) @ 202096.55/s (n=2051280)

Perl-5.38.0 taint disabled:

equalsAssign: 11 wallclock secs 
(10.52 usr +  0.02 sys = 10.54 CPU) @ 207983.40/s (n=2192145)
shiftAssign: 11 wallclock secs 
(10.51 usr +  0.01 sys = 10.52 CPU) @ 206375.10/s (n=2171066)
The code:

#!env perl

use strict;
use warnings;
use Benchmark qw/cmpthese timethese/;

timethese(-10, {
        shiftAssign => sub {    my @alphabet = ('A'..'Z');
                                for (my $i = 0; $i < 26; $i++){
                                    my $letter = shift @alphabet;
        equalsAssign => sub {   my @alphabet = ('A'..'Z');
                                for (my $i = 0; $i < 26; $i++){
                                    my $letter = $alphabet[$i];

So all-in-all about 10% in a handwaving kind of way.

Software anti-patterns

Python – Don’t be afraid of the dark

You may have an enormous ball of mud written in Perl but there are many benefits to introducing a new language like Python or Go:

  • The communities are vibrant
  • It’s easier to hire someone
  • They can do everything Perl can do

Documentation – Have some

  • Do not strip the comments from the code. That reminds me of WWII UK when signposts were removed to confuse the enemy.
  • Have documentation for each sub saying what the inputs are, the outputs and if you have a god object, what the side effects are.
  • Have documentation, preferably in POD in the code that reflects precisely what the code does. You can do lots with this. And test it.

Don’t have an overly complicated branching strategy

  • Don’t have a main branch that isn’t main/master.
  • Have a branch for each story.
  • Have branches for releases.
  • Do gitflow, it’s simple.

Jumphosts – They’re a PITA

  • Don’t be SO paranoid about security
  • Are you so locked down you have to ssh through a jumphost? And the jumphost won’t do ssh forwarding?
  • That breaks so much: no sshfs, no remote editing in your chainsaw of choice.
  • For bonus points, the dev machine can’t see the git repo. Please. I don’t like coding with a paper bag on my head.

CI on commit – Do it automatically

  • Once you have tests, run the CI pipeline when the code gets committed.
  • Preferably deploy (CD) that branch to the/a dev machine.
  • It exercises your deployment process. Remove a speed bump.
  • Deploy to dev and scheduled to test. It’s a computer: automate it.
  • Make friends with Docker. It makes life SO simple. Having laptops able to see the database is a BIG WIN.
  • Keep your dev database up to date.

No tests – a classic

  • Write your code so it’s testable. Don’t do everything through a God object. Have subs that have defined inputs and outputs.
  • When using Test::Perl::Critic::Progressive (or equivalent) to make sure your code isn’t getting worse, you’ll probably need to copy t/.perlcritic-history into and out of the artefact store between each run.
  • Can your CI machine see a test database? If not, you’re entering mocking hell.
  • Tests provide code examples. This is good.
  • Put the tests on a pre-commit git hook. Remember to chmod +x it.
  • Graph the progress if you can.

Recruiters suck

As a freelancer for a long time, I have had periodic contact with recruiters from one-man “headhunters” to large, multinational agencies. I have to say my opinion can’t be lower.

As a freelancer for a long time, I have had periodic contact with recruiters from one-man “headhunters” to large, multinational agencies. I have to say my opinion can’t be lower. This is a collection of my postings to LinkedIn expressing my frustration with the market and an expansion of this blog from 2018.

I believe in the EU soon, jobs will have to show salary bands. This cartoon expresses my opinion on negotiating rates:

Or a variant on the rate discussion:

Mind you, I could go for this salary range:

Or this one:

Not sure I fancy this one:

I love job ads:

“Full-time · Entry level”

“…is looking for an experienced Python Developer…”

This is also a classic:

I also hate job ads that ask you to fill in your job history as a web form. It’s on my CV you twats! Also, forms that ask for cover letters. I conducted a poll on various social media platforms. As it turns out, 0% of recruiters I polled admitted to reading cover letters. I admit, I have sent the odd cover letter that ChatGPT has helped me with. Still no result.

Another good two things that get my goat. Firstly, recruitment seems to have been invaded by our friends from the Indian subcontinent; many of them have strong accents and I often have difficulty understanding them. “Send me an email”. Secondly, where the recruiter has a terrible phone connection. I’m in a city. I know my reception is great. If I’m in my flat then my phone is bonded to my WiFi. But SO many recruiters sound like they’re talking white noise, and again are hard to hear.

Please don’t ask me to submit a video with my application.

Please use a grammar checker. I use Grammarly. The free version is fine. Don’t do this:

“Due to large scale growth my client are currently recruiting multiple Platform Engineers to be based in there central London office .”

Or this:

“Do you agree to us holding and using your personal information for the purpose of recruitment for this roles”

Or especially this:

“Strong communication skills, with eexcellent spoken and written English.”

This is a classic. I’ve had a fair few agents with contracts half a country away, demanding two days a week in the office. That’s a no from me.

This phone introduction is a classic:

“Hi, this is David Hodgkinson.”

“Is that David?”


Me: Hi, it’s David Hodgkinson

Recruiter: Hi, this is Anand Prasad from xxx. How are you.

Me: I’m good.

Recruiter: I’m good thanks.

I didn’t ask you.

Don’t get me started on Applicant Tracking Systems. They’re up there with throwing half the CVs into the bin because they’re the unlucky ones. I can actually do the thing you think I can’t do.

Please don’t send me a link to book an interview slot and then there are no slots available.

Please don’t advertise a job that’s then filled internally.

Please have a direct dial number to your desk, with caller ID so when you hang up after a couple of seconds of static I can call you back.

Please don’t ask for references before the offer stage. Giving you new business opportunities is not my job.

Please don’t change the job requirements between advertising and the interview.

When you call me, tell me where the job is, whether it’s hybrid/remote and how much it is offering. I don’t want to know if you’re married, how many children you have and how little sleep you’re getting.

Please don’t send me rejections for jobs I’ve not applied for.

Please, if you say you’re going to send me the job spec, actually send it.

Please keep your own website up to date. That saves you even sending me the job spec.

My name is not Gordon.

So that’s a lot of what I’ve culled from my LinkedIn. Please feel free to comment below or on the social medias. The best comments will be included here.

Free Lunchtime Concerts

A local meetup did free lunchtime concerts but when I tried to snag a ticket, they we all gone. Turns out, this didn’t matter as they let people in without tickets and anyhow, when the concert started there were always a few free seats. I went ahead and booked myself five lunchtime concerts for May. First up, the Concertgebouw is a magnificent building. It would be nice to see something in the big room rather than the small one.

Recorder and banjo
Recorder and guitar thing

The first week was some kind of recorder and guitar thing.

Piano and flute
Piano and flute

The second week was piano and flute.


Week three was opera.

String trio and oboe
String trio and oboe
String quartet
String quartet

Week four was half string trio and oboe and half string quartet.

Middle-eastern instruments
Middle-eastern instruments

Week five was very much in the middle-eastern mould, in some musical mode us Westerners don’t get to hear very often.

All in all, a worthwhile experience.

Dutch Weekend

This weekend, thanks to a friend from Bristol, I did a typically Dutch thing and spent a couple of hours in the sun on a boat.

A boat
One of many other boats going in the wrong direction.
A Long Straight Canal
A Long Straight Canal

We went anti-clockwise from Brouwersgracht, up the Jordaan, past the Rijksmuseum, up the side of Museumplein, across to the Amstel, past Station Centraal then back home.

The Margere Brug, the “skinny bridge”. Legend has it that two sisters on either side of the canal built a bridge so that they could see each other.

Nemo, the science museum.
The central library
The central library, the Oba.
Station Centraal
Station Centraal

And so to home.

All in all, a lovely day even if the wind was a little nippy on the open water, despite it being a sunny 20C day. Only a little beer was consumed.

Vermeer exhibition

The Rijksmuseum is local to me so it’s churlish not to take a few hours and visit. The Vermeer exhibition sold out immediately months ago but on a tip-off from a chap on the internet, I risked going and getting a ticket from the desk inside.

The Rijksmuseum is local to me so it’s churlish not to take a few hours and visit. The Vermeer exhibition sold out immediately months ago but on a tip-off from a chap on the internet, I risked going and getting a ticket from the desk inside. It worked! I got a ticket to an exhibition that was really crowded, unlike the Geffen in LA which I mostly had to myself.

In terms of Dutch Artists, for me, Vermeer ranks top, followed by a versatile Van Gogh and a workmanlike Rembrandt. The Rijksmuseum has assembled roughly 2/3 of Vermeer’s surviving works and it was an amazing journey through a life spent painting.

Seeing a lifetime of painting laid out makes you appreciate how he progressed, but also how he used many of the same elements often: viewing through a window or curtain, lit from the left, often solo ladies with a musical instrument or focus item, occasionally a symbolic painting of a map or a cupid.

Het Straatje
Het Straatje. A street scene in Delft, possibly his aunt’s house.
Another view of Delft
The other surviving view of Delft
The Milkmaid. Note the vibrant light from the left as the maid makes, probably, bread pudding, the foot warmer at the back decorated with tiles.
Girl with the pearl earring.
And of course, the Girl with the Pearl Earring. Again, it’s beautifully lit and has excellent use of colour.

That’s a small sample of the paintings on show. I’d heartily recommend a visit to Amsterdam to risk being able to get tickets to the Vermeer exhibition. Having lived close to London’s museums, I can safely say this blows them away.

Climate Certificates

I recently spent a few hours getting these climate certificates. Man, that was depressing. By about 2100 we’re totally screwed. Global temperatures may well have risen by 4C and we’ll have run out of resources like fossil fuels for plastics and rare earth metals for our phones. Never mind the billion or more people who will be displaced by uninhabitable land. See Gaia Vince’s “Nomad Century” for the details in detail. And yet governments are still subsidising oil and gas exploration. It’s like they don’t want us to live.

Oil takes 5x the energy to extract than it used to and we have of it 50 years left. We only have 200 years of Uranium left.

TBH it’s really depressing and makes one want to go off the grid. Or get a job building huge numbers of wind turbines, planting trees or regrowing coral reefs. Wind, solar and water (for now) are renewable resources. We should start using them as much as possible immediately and start rationing the use of expendable resources like oil and gas. I have a Facebook group into which I drop links about climate-related stuff. Denmark is, I believe, almost net zero today. Now let’s get the USA and China to follow. If the money spent on militaries and war was spent on carbon emissions, we’d be golden.

The recent kerfuffle about 15 minute cities is a good one. I’d like to be able to walk, cycle or tram to what I need.

So remember the five Rs: Refuse (don’t buy it), Reduce (do less of it), Reuse, Recycle, Rot (make compost).

Azure DevOps cert

Six months too late, I’ve now been certified in basic Azure DevOps. Top tip: if you wholeheartedly embrace the Microsoft system it works so much better. What surprised me was that GitHub is now well-integrated. I still won’t use Azure for personal stuff since VSCode has connections to everything Open Source I use.

Sad London Bicycles, slightly happier Amsterdam ones

In the time I was a “real” photographer and in the time since when I’ve been armed with an iPhone camera, sad bicycles have caught my eye. Back in the day in London, very often wheels were bent or stolen completely. More recently in Amsterdam, the bicycles have just been collateral damage from the crappy weather. Anyhow by special Reddit request, here are the pictures. I believe the EXIF data should be intact, so if you really care, the phone photos should locate themselves. Why couldn’t SLRs do GPS?




Taipei is less about bicycles, although they are present, than scooters. I couldn’t find the photo I really wanted which was of a swarm of scooters waiting for a light to go green, pouring out fumes. I believe now there are many more electric ones, with convenient battery swapping stations. I do love the guy with gas bottles stacked on the back of his scooter.


So there you have it. The people of Amsterdam clearly value their bicycles more than Londoners, which given how much the Dutch travel by bike is only to be understood. Given the amount I’m walking at the moment, I daresay I shall encounter more, especially if I go to particularly bike-dense areas.