Being a programmer is about replacing problems with other problems.

The Haunted Island, a Frog Detective Game

On Steam:

A small sloth has been haunted for weeks by a mysterious ghost that nobody can seem to track down. There’s a mystery afoot, and the only one who can solve it is the renowned investigator known simply as The Detective. Finding clues and questioning suspects is just part of the job for such an experienced frog, but this case is a tough fly to catch.

I don’t think there’s anything wrong with the Slack logo. So it goes.

Migrating to WordPress: A brief retrospective

Last year I took the step to migrate content from a Jekyll-powered weblog and a defunct newsletter to a single WordPress-powered instance on

Sharing content on social media platforms is straightforward. I recognised for this initiative to succeed I had to ensure that posting on was just as easy.

To this end, I tailored WordPress to my needs:

  • Removed functionality that was superfluous, a distraction or maintenance burden.
  • Wrote a build script to tear down and rebuild the WordPress instance on Production.
  • Wrote a backup script to create backups of posts and the database.
  • Created a separate repository for the theme, using Vagrant to run the WordPress instance locally. GitLab’s Continuous Integration allows the theme to be updated and deployed to Production automagically.

I’ve been very happy with the results so far.

Separating concerns into three areas: build, backup and theme has worked remarkably well, and though upgrading WordPress and creating backups are currently manual processes, there’s no reason why these tasks couldn’t be automated in the future.

Can You Rescue Poorly Stored Mozzarella?

Step into Serious Eats and get ready to forget everything you know—or thought you knew—about what should and shouldn’t go in the refrigerator. Ed’s number one rule? Never, ever refrigerate fresh mozzarella. It ruins the texture. My question this week: can anything be done to rescue it?

Pickled ginger

I keep pickled ginger in the fridge at all times — a quick (and lazy) alternative to fresh ginger that I mince before using1. Whenever I’m frying onion and garlic, more often than not, I reach for the pickled ginger.


  • Ginger
  • Vinegar (I use malt vinegar but cider vinegar is also great)


  1. Take a speed peeler and peel the ginger root.
  2. Cut the ginger root in half lengthways, and again into ~1 centimetre thick batons2.
  3. Cut each baton into ~2 millimetre thin slices.
  4. Take a jam jar and pack the ginger slices in tight.
  5. Fill the jam jar to the top with malt vinegar.
  6. Stick in the fridge.

  1. Don’t forget to mince! Nobody wants to find themselves chewing pieces of ginger! 
  2. I don’t mince the ginger before pickling because I suspect it’d go mushy after sitting in vinegar for a while. 

On the formatting of recipe ingredients

When shopping from a recipe’s ingredient list I find it bothersome if each line doesn’t begin with the ingredient — the first thing I care about is what the ingredient is, followed by the quantity.

For example, consider the following list of ingredients:

  • 2 medium onions
  • 1 large carrot
  • 3 cloves of minced garlic

Rearranged ingredient first, the following is much more readable:

  • Onions, 2 medium, diced
  • Carrot, 1 large, cubed
  • Garlic, 3 cloves, minced

In addition, by adding the preparation the reader is able to prepare all the ingredients in advance, before the cooking takes place — helping create a mise en place.

Ingredient, Quantity, Preparation.

Adapted tomato soup

I adapted a recipe for tomato soup. It’s delicious, spiced and freezes well in sandwich bags.


  • Tomatoes, 1.25kg, cored and quartered
  • Garlic, 1 bulb, minced
  • Ginger, 1 inch, peeled and grated (or pickled ginger, 1 tablespoon, minced)
  • Onions, 2 medium, diced
  • Carrots, 2 medium, cubed
  • Celery, 2 ribs, cubed
  • Olive oil, a glug
  • Tomato purée, a good squirt
  • Harissa, a good squirt
  • Sugar, a good pinch
  • Bay leaf, 2
  • Oregano, dried, 1 tablespoon
  • Basil, dried, 1 tablespoon
  • Vegetable stock, 1.2 litres
  • Worcestershire sauce, a few shakes
  • Salt + pepper


  1. Put a large pan on a low heat (it’s best do the entire recipe on a low heat!), add a glug of olive oil, followed by the garlic, ginger and onion and fry until the onion is translucent.
  2. Add the carrot, celery and tomato and cook for ~10 mins or until the vegetables have started to turn.
  3. Add the tomato purée, harissa, bay leaf, basil, oregano and sugar then give the pan a good stir. Put the lid on the pan and cook until the tomatoes start to release their juices, stirring occasionally.
  4. Add the vegetable stock, season with salt and pepper, followed by a few shakes of Worcester sauce and stir well.
  5. Bring to the boil then turn down to simmer with the lid on for ~45 minutes, stirring occasionally.
  6. Remove the bay leaves.
  7. Blend (a hand blender makes this easy) until smooth and taste! If you want to boost the tomato flavour you can add some more tomato purée then blend again to mix.


Here’s the thing about cooking steak off the grill: it has to be done on a screaming hot, heavy slab of metal. A cast iron skillet is ideal but not necessary. I’d rather use a heavy casserole pan than a dainty skillet.


  • Steak, 1
  • Olive oil, a glug
  • Salt + pepper


  1. Turn your oven up to maximum temperature, place your heavy slab of metal at the top of the oven and leave in for 30 minutes or so.
  2. 15 minutes before cooking remove the steak from the refrigerator, drizzle with a little olive oil and use your hands to ensure the entire steak is coated.
  3. Season every surface of the steak with salt and pepper and leave to sit for 10 minutes.
  4. Carefully remove your screaming hot, heavy slab of metal from the oven and place on the largest gas burner and turn up to maximum heat (also turn the oven off).
  5. Place the steak in the pan then turn on the extractor fan and open doors and windows.
  6. Cooking time depends on the thickness of the steak. For a 1½ inch sirloin I turn every 20 seconds for 2 minutes for a rarer medium. I find turning the steak often develops a better crust than only turning once, but however you do it, your aim is to develop a decent crust on the surface of the steak.
  7. Once done, remove from the pan and leave to rest — usually for as long as you cooked it, or up to 5 minutes.

Why we’re changing Flickr free accounts

Just got around to upgrading my Flickr account to avoid having all my photos deleted next year:

Free members with more than 1,000 photos or videos uploaded to Flickr will no longer be able to upload new content after Tuesday, January 8, 2019 unless they upgrade to Pro. After February 5, 2019, free accounts that contain over 1,000 photos or videos will have content deleted — starting from oldest to newest date uploaded — to meet the new limit.


Growing up, “falling sand” games like this one provided me hours of entertainment and imagination. I want to particularly thank ha55ii’s Powder Game as the primary inspiration for sandspiel.

I’ve spent too much playing this.

Optician Sans

The LogMAR Chart is used by ophtalmologist, optometrists and vision scientist to estimate visual acuity. The chart consists of 10 letters and was developed at the National Vision Research Institute of Australia. Optician Sans is based on the same visual principles as the LogMAR chart, adjusted to be used as a fully functional display typeface.

DOOM XMAS (MF Doom remixes)

DOOM XMAS is the result of blending acapellas from the super villain MF Doom with some exclusive Cookin Soul Xmas-inspired instrumentals sampling and chopping classics such as “The Grinch” or “Chestnuts roasting on an open fire” by Nat King Cole…

I quite like this.