The monarchy

The Queen

Let’s start by asking the question: “how on earth in the 21st Century do we still have inherited wealth and privilege on this scale in a monarchy?” Most other civilised countries seem to do OK without it, and all the pomp and pageantry that goes with it. I’d sooner see an elected figurehead looking solemn than an inbreed who got there by chance of birth.

I’ve been collecting choice nuggets about the royal family on Facebook, so here they all are, and more, in one place. It’s by no means a complete list. Can you tell I’m not a fan of the monarchy?

  1. Prince Andrew was caught up in the Jeffrey Epstein scandal. This let to the family paying as much as £12 million to Virginia Giuffre.
  2. The royal family is notoriously racist. That’s probably to do with the queen’s cousin, Prince Philip, but have you ever seen a black footman?
  3. The Bowes Lyons had two children Nerissa and Katherine who were mentally diabled. So what did they do? Put them in an institution and never visited them.
  4. Because of a clause in the law, Charles doesn’t pay inheritance tax on the the £750 million he inherited from the queen.
  5. The Queen presided over the Malayan Emergency from 1948-1960, where an estimated 6,700 guerillas and 3,000 civilians were killed.
  6. In Kenya, the Mau Mau rebellion from 1952–1960 was brutally repressed leading to some 90,000 Kenyans killed or tortured.
  7. From 1962-1969 there was a covert war in Yemen. That led to around 200,000 deaths. My dad did his nation service there, ten years before that.
  8. From 1965-1966 there was a genocide in Indonesia which alongside the Americans, we had a large hand in.
  9. Obviously, there was Bloody Sunday in Northern Ireland in 1972. NI was a mess, obviously, but really?
  10. A lot of her wealth came down through slavery starting with the first Elizabeth. Meghan Markle’s treatment by The Firm shows that attitudes haven’t changed much.
  11. The queen has privately invested millions offshore.
  12. In 1949, before she became Queen, Elizabeth took a stance against women’s rights? She attended the rally for a conservative group and spoke out against women who divorce their husbands.. She was patron of this far-right organisation to the end.
  13. In 2010, the Queen applied for a poverty grant to heat the royal palaces.
  14. The Queen is heavily invested in uranium based weapons.
  15. The Queen and Prince Philip went trophy hunting and shot a tiger in 1961.
  16. New: The queen and the CIA attempted to overthrow the Australian Gough Witlam left-wing government in 1975.
  17. Charles was pretty tight with pedophile Jimmy Savile.
  18. Charles brokered a £4.4 billion arms deal with Saudi Arabia and recieved a suitcase of cash for “charitable” purposes.
  19. Charles is still backing homeopathy.

At least she continued the tradition of having her bees informed that she’d died.

That’s all I’ve got for now. If you have anything else, please leave it in the comments.


Running Oracle database server on a Mac.

Due to my upcoming job having a large part being Oracle, I figured I should install Oracle on my Mac. I found this article on the Oracle site that made running it in a virtual machine look easy. Simply, it’s:

git clone
cd vagrant-projects/OracleDatabase/21.3.0-XE 
# Optional: download the Oracle Database installation file and place it in this directory
vagrant up

And that’s where the wheels fell off. I haven’t used Vagrant for a couple of years. My Vagrant fell into a wibbling heap. I needed to do the following to drag everything up to date:

brew install vagrant

And then install Virtualbox from the Virtualbox downloads page. Bringing up vagrant then refreshes the vagrant image, brings the oracle image up to date and runs it.

    oracle21c-xe-vagrant: INSTALLER: Started up
    oracle21c-xe-vagrant: Oracle Linux 8 BaseOS Latest (x86_64)           3.3 MB/s |  49 MB     00:14
    oracle21c-xe-vagrant: Oracle Linux 8 Application Stream (x86_64)      3.2 MB/s |  37 MB     00:11
    oracle21c-xe-vagrant: INSTALLER: Oracle preinstall and openssl complete
    oracle21c-xe-vagrant: INSTALLER: Environment variables set
    oracle21c-xe-vagrant: INSTALLER: Downloading Oracle Database software

You’re going to need the instantclient libraries. Do the following in the instantclient directory, you might want to have copied *.dylib* into /usr/local/lib:

$ chmod u+w *
$ xattr -r -d -s instantclient_19_3

vagrant ssh into the Virtualbox, sudo su – to root, thence to the oracle user and sqlplus sys as sysdba gets you in. This isn’t wildly useful but it’s a start.


Chstsworth – a good day out.

So I happened to be up in the Peak District and obviously had to visit Chatsworth. Ok, between paying for parking, a tour book, access to the house and garden and finally spending money at their farm shop, it was not cheap. It was worth it! The Cavendishes are currently showing off their art collection which ranges from the ancient, through Picasso to Damien Hirst and a collection of sculptures in the gardens.

From the ancient
To the modern

One thing that really stood out to me was the chairs. Having been to the chair museum in Copenhagen, it takes a lot to impress me, but these did!

Obviously the wildlife was amazing. Aside from finches begging for crumbs, I also saw a load of wagtails.


he geology was impressive. I didn’t even walk through the coal tunnel. Yes, the Chatsworth greenhouses were lush.

And finally, the farm shop.

So, if you’re in the vicinity and want to kill a day, do visit.

Selenium: “Failed to decode response from marionette.”

“Failed to decode response from marionette.”

We were trying to move our Selenium tests into a docker container and were getting the above error response. First Google suggested increasing the memory of the container to 2G. We increased it to 3G to no effect. Deeper Googling then suggested increasing shared memory. Initially, it was 64m. We raised it to 256m and it magically worked! Our script for creating the container:

docker build . -f docker/Dockerfile --label cdx_selenium -t cdx_selenium
docker run --shm-size=256m -m3000m --cpus=4 --privileged -d  --name  cdx_selenium cdx_selenium 
docker exec cdx_selenium bash -c 'systemctl daemon-reload && systemctl enable xvfb.service && systemctl start xvfb.service'

We also needed to install dbus-x11. In theory we shouldn’t need to do the systemctl outside the Dockerfile.

MacOS Big Sur 11.5 update failed.

This repeated MacOS upgrade fail annoyed me. I saw stuff on the internet about Apple’s servers being overwhelmed. That wasn’t it. It turns out I only had 4G of free disk space left.

I’m never getting only 128G of SSD again. Deleting 8G of Spotify cache, and it worked smoothly, if slowly.


Edit: had a major fail going to 12.4. The system locked, unbootably so. I took it to the Apple store and the very nice man poked it with some electrons and the update completed.

Interview questions for your new employer


Following on from my previous post about how to avoid major development speedbumps, here’s a list of interview questions to ask when they think they’re interviewing you and you’re actually interviewing them. You want your employer to help you do your job, right?

  1. Are you using GitHub or similar? I’ve used Gitlab most recently, and I especially like Docker in Docker. Within that, how close to GitFlow are you? Having experienced an awful version control system, this is key. GitHub is really flexible and gives you enough rope to hang yourself in the foot. A fun thing is commenting commits correctly.
  2. What’s your branching strategy? How long do you expect a branch to live? Branch lifetime should be of the order of a day. Any longer than that, have a quiet word with your SCRUM master.
  3. How automated are your deployments? Do you create .rpms/.debs? Packages make deployments and rollbacks so much easier. Add YYYYMMddhhmmss to the name so you can keep track of them, or a build number so you can identify them.
  4. Which CI system do you use? If not Jenkins, GitHub or Gitlab, why not?
  5. Test automation is great. It builds, runs tests and creates modules. And anything else that makes your life easier. It’s also the ultimate in QA. If you have good test coverage and your tests pass, you’re good to go. It’s part of CI, right? Do you measure test coverage?
  6. CI is also a good time to run code hygiene tests like pylint or perlcritic even if you have them on your commit hook. OWASP recommend some code security scanners and Snyk seems quite plausible.
  7. How is your test data managed? Do you create a temporary database and populate it or do you have one database and run your tests within a transaction?
  8. Security? How close to the developers is this managed? Separate security departments are often understaffed. Do you keep an eye on the OWASP top ten? Are you religious about escaping strings when composing SQL queries?
  9. How close to continuous delivery are you? How long do rollbacks take? Do you use something like Ansible or puppet to manage your systems? Bonus points for terraform or docker. How fungible are your live servers?
  10. How loosely coupled is your architecture or is it a big ball of mud? This is another thing that burned me recently. With mod_perl potentially going away in some form, parts of the system should have been moved to a new framework.
  11. What other tools do you have and who chose them? Are you running popular systems for monitoring or code review or some open-source system that might wither on the vine?
  12. Are you agile? Do you do SCRUM or KANBAN? Do you have a SCRUM master and a product owner? So many teams think they are agile when they’re merely doing some agile type things sandwiched in a blob of waterfall.
  13. Who authorises changes? Do the developers do it or do you have a separate approvals board? It’s so much better to have decisions made at the lowest level by team members than to be farmed out to some remote change approvers.
  14. What system monitoring do you have? What is your average time to fix?
  15. What is your ticketing system, and why isn’t it JIRA, GitHub or Gitlab? Does your SCRUM master visualise progress and use all the tools to measure the team performance. Does your SCRUM master measure project velocity?
  16. Has management bought into the k8s kool-aid? Are you using kompose and rancher to help manage it?

So there you have it. How to extend an interview beyond the allotted time.

Did I miss anything? Comments, as always, welcome.

Efficient programming

Coming out of a job where I was working on a 20-year old Perl codebase, I’ve got some burns to get off my chest. I’m reading “Accelerate” by Forsgren, Humble and Kim which claims to have scientific backing for what makes for efficient development in a team. In my recent experience:

  1. Use decent version control. To me, that means GitHub. Use a branching strategy to code each branch to a JIRA. Make the branches short-lived, preferably a day. GitHub is stateless. Diffs are resolved at merge-time when pull requests are made. Under NO circumstances use something like Perforce. That is like putting a large speed bump under a low slung car. It’s stateful. Mapping a repo into your filesystem is a pain. Rewinding commits is a royal pain. Ugh.
  2. Release often, releases should be easy. A marker of a high performing team is how frequently they release software. A release should not be confined to one person on the team and take half a day.
  3. Great balls of mud are hopeless. We’ve been writing new software as microservices for a while now, and more recently bundling them up in Docker containers (and if you’re really advanced then using Kubernetes). In the Perl world that means using a framework such as Mojolicious, Catalyst or Dancer with excellent modules like the Template Toolkit for the view and DBIx::Class for the model and not v1 of view software that’s barely been touched for years and v2 exists. It also highly bound to Apache and hard to use elsewhere.
  4. Ongoing support for mod_perl in Apache 2.x is ongoing. It’s already been abandoned in Apache 1.x so I would note that software is doomed at some point.
  5. Be very careful layering software upon software. Or using features that make things opaque. Oh, and having magic variables and not documenting them. For example, you have Puppet. That’s great. Why not layer Heira on top and render most of the puppet documentation useless. Or use a templating system that magically calls in a hierarchy of other templates. Oh, and where does that database handle come from? Somewhere in the bowels of that page startup. Not sure which module.

In summary, I’d say be aware of the speedbumps. How can you improve them?

Ron Weasley’s worst Australian spider nightmare


Macksville resident Melanie Williams was also shocked by a swarm of spiders climbing the outer wall of her home as they fled for higher ground. “I occasionally see spiders around the place but never anything like that, it was just insane,” she told the ABC.

The spiders outside her home were “horrific” but her neighbour told her there were twice as many inside his garage, she told Guardian Australia.

Poor Ronald.

Podcast Marketing

Someone asked me to investigate what goes on behind a podcast and especially podcast marketing. I went down a rabbit hole. This is a summary of the various tips I came across.

Soft Stuff of Podcast marketing

There are a million podcasts, what sets you apart? Is your podcast sticky – what keeps people coming back?

Is your podcast valuable – what do people gain? Is it worth someone’s while listening to it? Can you get them to do podcast marketing for you?

Will your content change their lives in any way? I listen to Brian Cox. He won’t change my life but he’s interesting. I listen to Jim al Khalili. He’s a good communicator

Is your podcast unique? Do the broadcasters have distinctive voices? Do they have experience in the field and can elucidate their points?

Be patient. It can take 6 months to build an audience.

Have awesome guests. Then leverage your guest’s audience. That’s good podcast marketing.

Go on other podcasts (you have expertise, right?).

Collaborate with similar brands.

Solicit feedback. Most broadcast media let you have real-time comments. Later broadcasts still let you leave comments.

Have calls to action. Don’t let your podcast just be passive. Involve your audience. It doesn’t have to be The Great British Bird Watch. Something smaller, local and relevant.

Create a regular release schedule (and therefore a planned calendar of guests). Spam all the academics and figureheads in your area and get them to participate with their specialties. Build a calendar.

The show shouldn’t be explicit marketing for your products or services.

Whine about getting more subscribers in your podcast.

Make sure your podcast has a good strapline.

Hard stuff

Have you got a good recording quality? Drape lots of blankets around or mattresses. A lot of the sciencey podcasts I watch or listen to have people in their attic rooms and the sound is really echoey. Don’t do that. Equally, have a decent microphone. The one on my PC laptop is pretty bad, the one on my Apple headphones is pretty good.

Put your unedited podcasts on Patreon (@robinince does this). You might want 30 minutes out into the public domain, but you might get 60 minutes of content from your guest. Let people pay for access.a

Got a decent editor for audio? I’ve seen Audacity recommended. Apparently it records too.

Do you want your podcast to be audio or video? If it’s video, convert video to YouTube. Do live broadcasts then upload to YouTube in perpetuity. Pro zoom is up to £480/year. There’s always Microsoft Teams.

Start with three episodes. (People hate finding only one). This popped up in a couple of listicles I read. Apparently, people hate finding a good podcast with only one episode.

Get an optimised web site. seems cool. $12 for 3hrs per month. I’m sure there are more out there. The site should be SEO optimised.

Promote on social media (@robinince is big on twitter). While we’re talking money, look at HootSuite for posting to many channels. The professional version for posting to up to 10 social accounts is £39 per month.

Edit: appears to be a decent place to host, is free and owned now by Spotify.

Obviously you should have an RSS feed but I’ve found that less than useful. For me, most useful is an email with a link to the podcast with a calendar gizmo so it goes in my diary, URL and all. Also, I hate secret podcasts that send me the URL shortly before they go live. Why are they trying to hide their podcast?

Put the podcast page URL in your email .sig. That way, any time you send an email, your podcast gets out there.

Create an email newsletter. (I think this is important). A lot of the museum podcasts I view/listen to prompt me from their mailing lists. Mailchimp is the gold standard but there are others. The classic original is mailman. Many of the podcasts I listen to, I listen to because I’m prompted by an email.

Sell merchandise maybe if you have a strong visual brand. Cafépress has worked well for us.

Look at analytics. These guys seem switched on: $190-$490 their service comes in at per year.

Got a photographer on the team? (Instagram can be a good channel).

It looks like that for me, the Apple podcasts app is the nexus for me, but there are lots of other PodCasts out there that don’t fit that format. Expecially scheduled ones.

Submit to podcast aggregators and directories:

  • iTunes (allegedly drives 70% of podcast traffic)
  • Spotify
  • Google Play
  • TuneIn
  • iHeartRadio
  • SoundCloud
  • Podbay
  • Podtail
  • Overcast
  • Stitcher
  • Podcast Addict
  • PodcastLand (your podcast is automatically listed here if it’s in iTunes)
  • Castro
  • Podcast Republic
  • Downcast
  • Podcasters’ Support Group
  • Bello Collective
  • Podcasting Technology Resource Group
  • TuneIn
  • Podcast Hackers (this is our group – join us!)
  • /r/podcasts on Reddit
  • The New York Times Podcast Club
  • Podcasting (Meetup)
  • Producing Podcasts (Apple)
  • Podcasters’ Hangout

Cardiff Wetlands

I’d found out about the Newport wetlands and after a kerfuffle on Reddit, found there was a Cardiff Wetlands down in the bay. We went and had a mosey. That was disappointing. It’s a patch of land inside the barrage, probably left over from a dock back in the day. Despite the enthusiasm of the signposts, the wildlife was disappointingly vanilla: ducks, swans, tits, crows, magpies and so on. The air was reassuringly noisy, but if there were exotic birds, they were shy. It’s worth a little walk. Once. Enjoy some pictures.

[smartslider3 slider=”6″]