Braised lamb shanks

A key part of this recipe is to ensure the casserole pan is sufficiently full so that the lamb shanks don’t dry out. I use a casserole pan that is a couple of inches wider than the length of the lamb shank, and the contents usually fill the pan to a couple of inches from the top, with the liquid just about covering the lamb shanks.

Ingredients

  • Lamb shank, 2
  • Chicken stock, 500ml
  • Red wine, 500ml
  • Carrots, 2, scrubbed, cut into into ½ inch cubes
  • Celery, 3 ribs, diced
  • Onion, 1, diced
  • Garlic, 2 cloves, minced
  • Tomato purée, 1 tbsp
  • Fresh thyme, handful, tied up
  • Bay leaf, 1
  • Worcester sauce, 1 tbsp
  • Baking paper
  • Salt + pepper

Instructions

  1. Take a heavy-lidded casserole pan, add a touch of oil and brown the lamb shanks, then remove from the pan and set aside.
  2. Add the garlic, onion, carrots and celery and cook on a medium heat until the onion goes translucent.
  3. Add the tomato purée and cook for a further few minutes.
  4. Add the stock, red wine, Worcester sauce, thyme and bay leaves and stir well, then bring the pan to a slow simmer.
  5. Add the lamb shanks and season well with salt and pepper.
  6. Place a piece of baking paper on top of the pan, then place the lid on top of the baking paper to seal.
  7. Cook in the oven at 170°C for 2 hours, or until the lamb is almost fall-apart tender.
  8. Gently remove the lamb shanks from the pan, wrap in foil to keep warm and set aside.
  9. Take a fresh pan and pass the sauce through a sieve, using a large spoon to press all the sauce out. Discard the contents of the sieve.
  10. Using a fresh pan and sieve, strain the contents of the casserole pan. Use a large spoon to press all the sauce out. Discard the contents of the sieve.
  11. If you like, you can reduce the sauce to preference.

Quick pickled fennel

Ingredients

  • Fennel, 1 whole
  • Lemon, ½, juiced
  • Cider vinegar, ~1 tbsp
  • Olive oil, ½ tsp
  • Fennel seeds, 1 tsp
  • Caraway seeds, 1 tsp
  • Coriander seeds, 1 tsp
  • Salt + pepper

Instructions

  1. Cut the fennel into thin slices (or run through the mandolin!) and stir into a good-sized bowl with the juice of half a lemon.
  2. Using a pestle and mortar, bash up the fennel, caraway and coriander seeds until fine and add to the bowl with a good pinch of salt and pepper.
  3. Add the olive oil and cider vinegar and stir well.
  4. Put the bowl in the fridge for half an hour or so to marinade.

Roast goose

For this recipe I bought a baster and a v-shaped roasting rack for a more relaxing time.

I got the cooking times from this Nigel Slater recipe:

Allow 15 minutes in the oven per 450g, plus 20 minutes extra

Ingredients

  • Goose, 5.5kg
  • Large handful of herbs (I used lemon balm, marjoram and thyme from the garden)
  • Onion, 1 large, peeled
  • Lemon, 1 large

Instructions

  • The night before, remove the goose from the packaging and the giblets from the cavity. Leave the goose uncovered in the fridge to dry out.
  • Pre-heat the oven to 220℃.
  • Season the bird cavity and skin generously.
  • Stuff the goose with the lemon, herbs and onion.
  • Place the roasting rack in a deep roasting tray then take care to locate the goose on the roasting rack so that it fits neatly and isn’t hanging over the edge of the roasting tray.
  • Roast for 10 minutes at 220℃ then reduce to 180℃ and roast for 3 hours 13 minutes (3 hours 23 minutes in total).
  • Every 45 minutes or so, baste the goose using the fat from the roasting tray, then drain the goose fat using a baster into a large bowl (there is a lot of fat!).
  • Once done, loosely cover with tin foil and rest for 45 minutes.

Slow roasted leg of goat

You can use this for lamb, mutton or goat.

Ingredients

  • Goat leg, ~3kg
  • Natural yoghurt, 500g
  • Olive oil, 2 tbsp
  • Cumin, 1 tbsp
  • Sumac, 1 tbsp
  • Chilli flakes (or chilli powder), 1 tbsp
  • Ginger, 2 inches, peeled and grated
  • Garlic, 1 bulb, bashed up in a pestle and mortar
  • Coriander, good handful, chopped fine
  • Parsley, good handful, chopped fine
  • Lemon, 2, juiced
  • Salt + pepper

Instructions

  1. Take a large bowl and add the yoghurt, olive oil, cumin, sumac, chilli flakes, ginger, garlic, coriander, parsley and lemon juice. Season generously with salt and pepper then stir well!
  2. Overlap a couple of pieces of cling film on your worktop, large enough to place your goat leg on with room to spare.
  3. Take out your goat leg, pat dry then place in the middle of the cling film.
  4. Pour the marinade over the goat leg. Use your hands to rub the marinade into goat leg, taking care to get the marinade into all the nooks and crannies.
  5. Carefully take in the sides of the cling film and fold over the goat leg. Take some more cling film and wrap the goat leg tight.
  6. Pop in the fridge to marinate overnight.
  7. Take the goat leg out the fridge and allow to come to room temperature.
  8. Remove the cling film and place the goat leg in a deep roasting tray (squeeze out any remaining marinade from the cling film into the roasting tray!).
  9. Cut a piece of baking paper for the inside of the roasting tray, and place on top of the goat leg.
  10. Cover the roasting tray with 4 layers of tin foil, ensuring the tray is well sealed.
  11. Cook for 6 hours at 140℃.

Roast mallard

Having roasted mallard a few times, it wasn’t until I got a good food thermometer that it start coming out medium rare.

Ingredients

  • Mallard, brace of
  • Salt and pepper

Instructions

  1. Take the mallard out of the fridge, unwrap, pat dry and allow to come to room temperature.
  2. Preheat the oven to 220°C.
  3. Season the cavity and skin of each bird generously.
  4. Put a large, non-stick pan on a medium heat and brown the birds on all sides for a couple of minutes.
  5. Place the birds in a roasting tray and place in the middle of the oven and turn down to 200°C.
  6. Roast until the internal temperature reaches 58°C for medium rare. I tend to check the temperature a couple of times and it usually takes ~20 minutes.
  7. Rest under a sheet of tin foil for ~10 minutes.

Internal temperatures (°C)1

  • Rare 54
  • Medium Rare 58
  • Medium 61
  • Medium Well Done 65
  • Well Done 72

  1. Internal temperatures from this Farmison & Co recipe for roast mallard

Tandoori masala lamb chops

These tandoori masala lamb chops are particularly good when grilled over an open fire.

Ingredients

  • Barnsley lamb chops, 2, ~400g
  • Tandoori masala1, ~2 tbsp
  • Natural yoghurt, ~350g
  • Harissa, 1 tsp
  • Lemon, ½, juiced
  • Extra virgin olive oil, 1 tsp
  • Black pepper

Instructions

  1. Take a bowl and add the yoghurt, harissa, lemon juice, extra virgin olive oil and black pepper and stir well.
  2. Add a little of the tandoori masala, stir well then taste and repeat. I find it’s about right when the marinade starts to taste a little too salty, but be careful not to go overboard.
  3. Pop in the fridge to marinate (ideally the night before, or the morning of the day you want to cook).
  4. Cook on a hot grill, a couple of minutes either side!

Ted Lasso

A remarkably charming television programme that nails British sense of humour.

★★★★☆

Biryani

This recipe is based on one I got from my father. Please treat the measurements as rough and adapt based on the size of your pan1.

Ingredients

  • Lamb neck2, 500g, cut into 1 inch pieces
  • Potato, 500g, peeled, cut into 1 inch pieces
  • Onion, 1 medium, sliced thin
  • Basmati rice, 450g
  • Plain yoghurt, ~250g
  • Garlic, 6 cloves, crushed
  • Ginger, 1 inch, peeled and grated
  • Cumin, 1 tablespoon
  • Turmeric, 1 teaspoon
  • Cardamom, 4 pods, gently crushed
  • Cinnamon, 2 sticks
  • Saffron, ~5 strands
  • Coriander, a generous handful, roughly chopped
  • Olive oil, 3 tablespoons
  • Harissa, a squirt
  • Lemon, ½, juiced
  • Frozen peas, a handful
  • Salt + pepper
  • Baking paper

Instructions

Marinade

  1. Take a pan and add the yoghurt, garlic, ginger, cumin, 2 cardamom, 1 cinnamon stick, 2 saffron strands, coriander, olive oil, harissa, lemon juice, olive oil, salt + pepper then stir well to combine the ingredients.
  2. Add the meat and potatoes and stir well.
  3. Pop in the fridge to marinate (ideally the night before, or the morning of the day you want to cook).

Build

  1. Fry the onion until caramelised and set aside.
  2. Take the pan out the fridge and slowly add water to the marinade, mixing as you go. Stop adding water when the marinade is almost level with the contents.
  3. Arrange the meat and potatoes so that the potatoes are at the bottom of the pan with the meat on top: a layer of potato topped with a layer of meat. Set aside.
  4. Rinse the rice well, drain, then add to a pan with 2 cardamom, 1 cinnamon stick, 2 saffron strands, turmeric and salt. Stir well.
  5. Add enough water to cover the rice then put a lid on.
  6. Bring the rice to the boil, then immediately lower the heat and simmer until the water has been absorbed, then remove from the heat. The rice will be predominantly uncooked — that’s fine.
  7. Use a large spoon to carefully place the rice on top of the marinade, then use a fork to evenly (and gently!) distribute: a layer of rice on top of the layer of meat.
  8. Top with the caramelised onion and handful of frozen peas.
  9. Cut a circular piece of baking paper, an inch larger than the pan, place on top, followed by the lid. Press down to form a seal.

Cook!

  1. Cook on a low heat for 2 hours3 then serve like you might a cake.

  1. Pan size is important: you want a pan that will fit the ingredients comfortably (not too big, not too small). 
  2. You can use any meat you fancy. I’ve used this recipe with chicken thighs, lamb chops, etc. 
  3. When cooking this recipe, you want the potato to get a bit crispy on the bottom, without burning. I find cooking it on a low heat for a longer amount of time more fault tolerant. 

Delete your tweets using GitHub Actions

A few years ago I hacked together a bash script that you could use to backup and delete your tweets on a regular basis. For fun, I decided to do something similar using GitHub Actions.

tweet-delete doesn’t create backups, and deletes your tweets on a weekly basis. In addition, since the Twitter API only lets you get a maximum of 200 tweets per request, it won’t work if you have more than 200 tweets1. Many moons ago, I deleted all my tweets and started from scratch and since I don’t post more than 200 tweets in a week it works for me.

To use tweet-delete, clone the tweet-delete repo and edit tweet-delete.sh, replacing the twitter_user variable with your own Twitter user name.

Next, create an app on the Twitter Developer portal and add the following secrets to the GitHub repo using the names:

  • twitter_consumer_api_key
  • twitter_consumer_api_secret_key
  • twitter_access_token
  • twitter_access_token_secret

After committing your changes, a git push to the master branch will kick off the workflow2 and it’ll run automagically every Sunday at 23:453.


  1. I suspect it’ll delete the 200 most recent. 
  2. Delete the “Run when pushed to master” event from tweet-delete.ymlto run only on a schedule. 
  3. Configurable in the tweet-delete.yml file

Farfalle pasta with mackerel and tomato

This superquick pasta recipe takes ~10 minutes from start to finish and makes enough for two.

Ingredients

  • Farfalle pasta, 100g
  • Mackerel in olive oil, 1 tin, flaked
  • Fresh basil, small handful, roughly chopped
  • Chopped tomatoes, 227g tin
  • Harissa, a small blob
  • Parmigiano-Reggiano, 1 tbsp, grated
  • Balsamic vinegar, 1 tsp
  • Extra virgin olive oil, 1 tsp
  • Salt + pepper

Instructions

  1. Bring a salted pan of water to a rolling boil and add the pasta.
  2. Take a bowl, add the tomatoes, mackerel, harissa, basil, balsamic vinegar and extra virgin olive oil. Stir well, cover, then throw in the microwave for 2 minutes.
  3. When the pasta is a bit before al dente, drain, chuck the pasta back in the pan then add the sauce.
  4. Reduce the sauce for ~1 minute on a medium heat then add the Parmigiano-Reggiano, a touch of pepper, stir well and enjoy.

Fish and prawn stew

Fish prawn stew

Serve with bread, potatoes or rice.

Ingredients

  • Fresh prawns, 500g, shelled
  • Cod loin, 250g, cut into chunks
  • Fresh lime, 2 juicy, juiced
  • Coriander, small handful, chopped fine
  • Parsley, small handful, chopped fine
  • Large onion, diced
  • Cumin, 1 tsp
  • Paprika, 1 tsp
  • Garlic, 4 cloves, minced
  • Bay leaf, 1
  • Spring onion, 3, chopped
  • Mild chilli powder, 1 tsp
  • Gammon stock, 500ml
  • Large tomatoes, 2, diced
  • Chopped tomatoes, 1 tin
  • Salt + pepper

Instructions

  1. Shell your prawns and chop the fish into 1 inch cubes (maybe slightly bigger), stick them in the fridge for later.
  2. Add the onion and garlic to a medium-large pan and fry until starting to get soft.
  3. Add the cumin, paprika and chilli powder, fry until the mixture gets a bit tacky.
  4. Add the chopped tomatoes, gammon stock, lime juice, coriander, parsley, spring onion, bay leaf and salt + pepper and give it a good stir.
  5. Let that simmer for about 15/20 minutes, your nose will tell you when it’s done.
  6. Take out the bay leaf!
  7. Blend until smooth. If at this point it looks a bit thick, add some vegetable stock.
  8. Put the the bay leaf back in and bring back to simmer for another 10 minutes.
  9. Add the fish and prawns.
  10. Simmer until the fish and prawns have cooked.

The Experiment

For one week, starting tomorrow, I’ll be temporarily parking my iPhone 8 and instead using a Nokia 130 feature phone.

I’m not sure what to expect, but in preparation I’ve charged my Kindle and I’m eyeballing the London A-Z sitting on the bookshelf.

I’m hoping the experience will be somewhat more insightful than a lesson in inconvenience — join me on this incredible journey!

UPDATE

First impressions after a few weeks with AirPods Pro

Having owned the first generation AirPods for a couple of years and found them to be a terrific (and convenient!) piece of kit, I decided to upgrade to the AirPods Pro primarily for their noise cancelling functionality.

  • The headphones are quite tricky to take out of the case as it’s hard to get a grip on the slippery plastic.
  • The AirPods Pro case doesn’t seem to be as sturdy as the AirPods case. The “landscape” orientation of the case doesn’t feel quite right in the hand.
  • I’ve found the Noise Cancellation mode to be good and Transparent mode works a treat.
  • The force sensor took some getting used to: both using the press and press-and-hold actions. It still feels a bit awkward. I miss the AirPods’ double-tap action on the headphone to pause (etc).
  • I wish the stalks were a little longer: it would make them easier to take out one’s ear and a larger surface area to use the force sensor.
  • The headphones are comfortable to wear for extended periods, more so than the first generation AirPods.
  • Having gotten used to having the first generation AirPods case in my pocket all the time, the larger size AirPods Pro case is quite noticeable.

If you use Prompt and have upgraded your Apple device to iOS 13 then you’ll notice that SSH connections disconnect on the regular. I found a help document regarding this new behaviour:

From what we can tell, our available background time in iOS 13 has been drastically reduced from earlier versions of iOS. It appears that if you’re running one of our iOS apps on iOS 13, you’ll only get about 30 seconds of background time before needing to switch back to the app to prevent your connection from being terminated. As this is something that is controlled by the OS, there’s not a lot we can do.

jetpack-markdown

I use the jetpack-markdown WordPress plugin to write my weblog posts in Markdown. Although jetpack-markdown is no longer maintained, it was still available to download using wp-cli. Whilst doing some maintenance on reyhan.org, I discovered this is no longer the case1:

wp plugin install jetpack-markdown --activate
Warning: jetpack-markdown: Plugin not found.
Error: No plugins installed.

With little inclination to research a replacement, I went looking for the source code and was thankful that it’s still online. In addition, the latest version still seems to be available to download2:

wp plugin install https://downloads.wordpress.org/plugin/jetpack-markdown.3.9.6.zip
Downloading installation package from https://downloads.wordpress.org/plugin/jetpack-markdown.3.9.6.zip...                                                   
Unpacking the package...
Installing the plugin...
Plugin installed successfully.
Activating 'jetpack-markdown'...
Plugin 'jetpack-markdown' activated.

  1. From the plugin description: This plugin was closed on April 28, 2019 and is no longer available for download. 
  2. Though who knows how long for? I downloaded the zip and added it to my build process for future use. 

Free yourself from Gmail tyranny

  1. Open Gmail Settings and click Filters and Blocked Addresses
  2. Click Create a new filter
  3. In the To field, add your Gmail address
  4. In the Doesn’t have field, add your secret word
  5. Click Create filter
  6. Check the Delete it box

Hooray!

If somebody sends you an email without popping your secret word in the subject or message then it’ll automagically be sent to Trash. Feel free to rotate your secret word every so often.

Category: standard