Photo (c) Jan Trutzschler von Falkenstein; CC-BY-NCPhoto (c) Serge BelongiePhoto (c) Rain RabbitPhoto (c) Samuel Craven

Research

I am an academic computer scientist, conducting research into automatic analysis of bird sounds using machine learning.
 —> Click here for more about my research.

Music


Other

Older things: Evolutionary sound · MCLD software · Sponsored haircut · StepMania · Oddmusic · Knots · Tetrastar fractal generator · Cipher cracking · CV · Emancipation fanzine

Blog

I'm really excited about the developments going on around me. I'm working with great people on AI for biodiversity and sustainability, in two lovely academic departments in the Netherlands (Tilburg University and Naturalis Biodiversity Centre). You can join! That's part of what's exciting. We have job opportunities!

To see a bit more about what we're up to, look at the Arise project (Naturalis and others), the Cognitive Science and AI department at Tilburg (here's a sample of the recent research published from CSAI), and the Evolutionary Ecology research group at Naturalis.

Send me a message! Happy to give a little bit of advice or answer questions.

Naturalis and Tilburg front doors. Come in!

science · Fri 08 April 2022

Dutch people love a croquette ("kroket") and so it was only a matter of time before I attempted making one!

The Dutch croquette is typically eaten on a bread roll with mustard or mayo, and is sizeable enough to be a light lunch. The outside should be crispy and the inside quite liquid and oozy, so that when you crunch it in your bread roll it becomes a mess of sauce and crunchy bits. Many croquettes aren't vegetarian of course, and the standard vegetarian version is usually something like potato-and-mixed-veg.

This version is inspired by a flavour combination we saw on TV - pea and dill - and it's lovely and light, fresh, and spring-y. Should I confess that we saw it on the Dutch version of Bake-off?

Chop the potatoes into medium-sized cubes and put them in a big pan of hot water. Bring it to the boil and boil the potatoes for 15 minutes. You can prepare everything else while the potatoes are boiling - there's no need to worry about the potatoes too much, they need to be just need to be properly softened to make a soft mash. When the potatoes are done you can just drain them and leave them until you're ready.

Meanwhile, make a white sauce. In a saucepan on a medium heat, melt the vegan butter and add the flour. Stir this all around with a whisk and cook it for about 5 minutes, keeping it moving, until the raw flour smell has gone (careful not to burn). It should be quite a thick goo in the pan. Add a bit of the plant milk and mix it with the whisk, then a bit more, then all the plant milk, and make sure everything is evenly mixed. Allow it to continue to cook gently for a little while, while you prepare the flavourings. This should be quite a thick white sauce - it needs to be fairly thick so that it will hold its shape later.

Now is a good time to finely chop the dill, chives, mint and leek, if you haven't already.

The potatoes should be done and drained. Return them to the big pan you cooked them in, and mash them with a potato masher. Then add the peas and mash a bit more, to crush them lightly and distribute them through.

Add the dill, chives, mint, leek, and salt and pepper to the white sauce, making sure it's all mixed quite evenly. Then pour the white sauce all into the mashed potato pot, and mix to make sure everything is evenly distributed.

Leave this to cool in the pan until it's cool enough to work by hand, probably 1 hour. At that point you can also taste to check the seasoning. I needed to add more dill and salt+pepper than I had originally expected.

Next, it's time to add the breadcrumb coating. Set up a "breading station": 3 bowls side-by-side, with (a) flour (b) egg/plant-milk (c) breadcrumbs. You now need to take portions of the main mixture, perhaps golf-ball sized, and form them into little cylinders. How you do that is up to you! We did it by hand, which is messy, for sure... Other people on the internet have used a piping bag. For the Dutch kroket it should be a few centimetres long, which is too long to be shaped using two spoons as seen in some other receipes.

Anyway, you make your little cylinders, then with each one you roll it in flour then egg/plantmilk then breadcrumbs, to get a good coating. You could repeat the egg and breadbrumb stages to get a thicker crust. You might be able to get away with just breadcrumbs, depending on how sticky your mixture is.

Put these breaded cylinders into the fridge for at least 1 hour to firm up.

Using a deep fryer, or a pan fille dno more than 1/3 with vegetable oil, heat up the oil until it's hot. 180 C is the official temperature to use, but I don't have a way to measure that. Instead, I pop a tiny bit of the breadcrumb into the oil: it should be hot enough that the breadcrumb fizzles and floats to the top rather than just sinking. Then, put a batch of krokets carefully into the oil, and cook them for about 4 minutes. Make sure they're well-covered in oil. Be careful not to splash oil, and watch out for exploding krokets (which can sometimes happen, I'm told!). When they're nicely brown and crispy-looking all over, take them out and drain on kitchen paper, while you do the next batch.

OK! Now when your kroket is ready, serve it on a soft bread roll! This kroket does not go well with mustard, but a bit of mayo would be alright if that's what you like. But the delicate light flavour of the pea and dill should hopefully come through nicely!

recipes · Sun 27 March 2022

"Dark stores" is a stupid name. It refers to a new business model of rapid grocery deliveries (e.g. you can order some vegatables and milk and have it delivered in 10 minutes), and here in the Netherlands we see a lot of these shops popping up in towns with some fast-cycling bicycle couriers zooming around ("Gorillas" and "Getir" are the main brands we see around here).

The stupid name "dark stores" comes from an analogy with "dark kitchens", another recent invention: home takeaway food deliveries, where you might think you're ordering from "Wong's Palace", "Turkish Delight", or some other local restaurant with a cook who specialises in one particular cuisine - but in reality the food is prepared in some anonymous industrial-estate kitchen which churns out lots of different food under multiple assumed names. The yucky side of dark kitchens, even if they're done "well", is the dishonesty: using assumed names to give an aura of authenticity, and presumably stealing business from the genuine local restaurants who have been specialising in their own cuisines for years.

--- However, "dark stores" aren't dishonest at all. Assuming the business is done "well", then it's exactly the same as the established supermarket home-delivery services: groceries, sent out by couriers, but with a different approach to delivery planning and response times.

But these shops are coming in for criticism in the local press, and there's political discussion about what to do about them. It's often not quite clear what the complaint is, but it certainly includes:

From my perspective, I'm a little bit baffled about why this business model is the new bete noir for some local politics. They're pretty much entirely using cycle couriers here (not mopeds or vans), so it seems very low-impact, no fumes or engine noise. But I think all of those factors I've listed combine to make them a focus of irritation. Perhaps also there's a hint of the usual irritation when new and unexpected things happen in one's neighbourhood.

What should be done? Well:

  1. If these businesses shouldn't be setting up shops in the town centre or other neighbourhoods - they shouldn't have been giving licences to operate by the local council. I'm guessing that the local "zoning" and business regulations weren't designed with this business model in mind, so perhaps right now there's no way for town councils to regulate whether or not they should be in your high street. I'd imagine that an update to the zoning/regulations is needed, to make clear where they should put their depots. Amsterdam city council has "paused" any new locations opening up, and will spend this year deciding how to regulate them. Leiden's looking at it too, and other cities.
  2. The speed-demon couriers - yes, I'd say that's a genuine issue, because when a business offers guaranteed 10-minute delivery etc, there's no way for that to be achieved without strongly incentivising your couriers to go fast, take cheeky shortcuts, and make everyone else feel a little less safe. The solution, then, isn't to punish the couriers, but perhaps to regulate the market so that no-one is allowed to guarantee 10-minute delivery times, nor to incentivise their staff for anything shorter than 30-minute times? Although it might seem an odd thing to regulate, setting 30 minutes as the quickest guarantee doesn't seem unreasonable to me. It might not entirely fix the speed-demons but it takes away what is obviously a very big incentive.
politics · Sun 06 March 2022

The Dutch and British COVID figures are both a bit misleading at the moment, but for different reasons.

Both countries have had an overwhelm of their testing services. The UK's PCR testing (in December) was overloaded, getting so many cases that their results were getting delayed. But there's an extra reason now...

In January the UK Government decided that, because the rate of positive cases was so high nationally, they would no longer require someone with a positive LF test to get an official PCR test. The theoretical justification is plausible: when the rates are so high, the informational benefit you get from the expensive and labour-intensive PCR test becomes less, and the LF tests might be considered "good enough" for official stats. But - and here's where the data go strange - as soon as this announcement was made, I thought to myself, "The case numbers will go down, because instead of officially reporting their positive test-at-home test, people will put themselves in quarantine and not bother reporting it."

I think we can see this in the data. The official UK Government test statistics show a notable drop from the December peak to January, down to about 50% of what they were.

This might be a true drop-off, or it might be a drop-off in reporting, or a mixture of the two. So let's compare it to data that isn't affected by the rule change. First, the Zoe covid symptoms study data -- these show a fall from the December peak but not much of a fall, down to maybe 80%. Second, the ONS infection survey, where the fall is down to maybe 75%.

Making a rough engineer's approximation, then, I would offer a simple guess that about half of the drop in the case stats is due to an actual drop, and half of it is due to a fall-off in self-reporting. Or in other words, the official case rates since the rule-change (mid-January) can be estimated to have about a third of their cases missing. You should remember this when looking at any graphs comparing the situation internationally, because these incomplete figures are the ones that are shown.

UPDATE: Prof Christna Pagel also points this out and she's an actual expert. She stresses that the ONS survey is excellent, and should be the main source from now on for checking the UK's case rates.

The Dutch system has also been a bit overwhelmed by the sheer numbers, in January. But more recently, there was a data processing issue that meant approx 76,000 positive tests (in late Jan/early Feb) were not included in the stats. Those have now been "found" and incorporated into the official figures. It'll take a little bit of time before we can look at the graphs and sensibly see what's going on, I guess.

Overall, I'm trying to judge the situation here in NL and also back home in the UK. We had to do that in December while deciding to cancel our Christmas plans. Well - right now I've no idea who's doing better or worse, in numbers terms at least. Both countries' governments are starting to roll back restrictions, more rapidly than the scientific advisers are advising - but one of the countries has (now!) a stable government, while the other has a crisis of leadership at the top...

I should make clear that I'm not a medical expert. It's useful to blog these things sometimes, though - not least so that when I look back at all this, I'll be able to reflect on how right or wrong were my amateur's/engineer's reckonings. I've definitely mis-predicted peaks and troughs of the waves, so far, and I bet you have too...

health · Wed 09 February 2022

If you are working with me e.g. for your MSc project, here are some starting points for reading, and for tooling up:

Recommended reading:

  1. Computational Analysis of Sound Scenes and Events - a good textbook from 2018. Chapter 2 is a very good intro to many of the fundamentals in audio processing for machine learning.
  2. Computational bioacoustics with deep learning: a review and roadmap - a very up-to-date review paper by me, for animal sound in particular.
  3. The Good Research Code Handbook - Read this!
  4. Suggested reading: getting going with deep learning - a list of useful reading that our lab members rely on (from 2019).
  5. Probabilistic Machine Learning: An introduction by Kevin Murphy - a very good comprehensive textbook (new edition 2022).

Useful software tools:

I'm assuming you will be using Python, as well as one of the standard deep learning frameworks and/or scikit-learn, and also git to keep track of your code. These are standard (and you'll see some of that in the "Good Research Code Handbook" above). Slightly more specialist:

Thanks to my PhD and MSc students for top tips added to this list!

science · Fri 21 January 2022

Recently I've been learning more and more how to cook vegan. It seems hard at first to be totally plant-based, for sure. There are some super cheap ingredients which I had no idea were so useful! So here are my absolute top tips, things to put in your store cupboard and you can use every week, for all kinds of uses.

  1. Peanut butter. It's surprising how useful this stuff is - not just for spreading on your toast! But also for providing a big nutritious boost as well as a thick sauce in various stews, or thickening up the dough in cakes and cookies. Try these:
    • West African peanut stew - this is a lovely dish, and easy enough for a midweek meal.
    • Pad thai
    • Indonesian peanut sauce. This is a popular sauce in the Netherlands, a bit like "satay sauce" - a dark, sweet and thick peanut/chilli/soy sauce. (NB needs tamarind, and also kecap manis, but the latter can be substituted with soy+sugar.) You can serve this is loads of ways - a big dollop of it on top of your fried rice; "gado gado" (an Indonesian platter of veg+egg to dip into your peanut sauce), or just dip your chips (fries) in it!
    • Kidney bean & peanut butter burgers - very cheap and cheerful
    • Vegan peanut butter and rasberry jam Blondies - a slightly posh recipe since it uses chia seeds and coconut oil, but tasty.
    • TBC: peanut butter cookies. Seems obvious, but I haven't tried making those.
  2. Chickpeas. We don't have a lot of chickpea recipes in British cooking, so I didn't expect them to be that useful, and I certainly didn't think of putting them in the oven or in a frying pan...! The famous chickpea food is certainly hummus, and making your own hummus is very easy, quick and satisfying. Chickpea curry is also a go-to option when you want a big batch of curry!
    • Home-made hummus: chickpeas, garlic, tahini, olive oil, lemon juice, and a touch of salt, all in the blender. Easy! ... If you don't have a blender you can even make "rough hummus" by just mashing it all up with a fork or a masher, resulting in a kind of hummusy salad which is nice on toast.
    • Warm spiced cauliflower and chickpea salad with pomegranate seeds (a Nigella recipe)
    • Roasted / slow-fried chickpeas
    • Katte chhole (chickpea curry). I use a recipe from "Vegan Street Food" by Jackie Kearney, which infuses the chickpeas in tea (using a teabag) for some extra flavour depth. Other recipes online e.g. this one.
    • Chana chaat - this one takes a bit of work, but it's an awesome sort-of indian chickpea "nachos"-type salad dish, layers of amazing flavour.
  3. Gram flour (chickpea flour). Chickpea flour is common in Indian cooking (it's used for pakora and onion bhaji), and it's quite different from wheat flour - it's very handy to know how to use it. The thing you need to get right is the ratio of water to flour: in some cases you need a very liquid batter, and in some recipes you need it to be thicker so it doesn't "fall off". You'll get the hang of it!
    • Cecina - an italian thing, a kind of oven-baked dish - you can include whatever flavours you like, but I totally recommend the rosemary.
    • Spanish tortilla
    • Sweetcorn fritters
    • Panisse - it's a bit like polenta, you can make up a batch of big panisse "chunky chips" with a smooth texture and a crispy outer crust.
    • Pakora and/or onion bhaji
    • Herby jackfruit fritters
  4. Black beans. You can get all sorts of beans, but black beans are special because they have a good dark and ever-so-slightly meaty taste which helps add flavour to various veggie meals.

So: pick an ingredient, put it in your store cupboard, and learn how to make MORE dishes with that one ingredient. It's good to get better, and the practice comes in handy when you're low on ideas mid-week some time.

Of course there are some much more well-known ingredients which everyone associates with vegetarians: lentils, tofu. I'm assuming that you don't need as many tips about those, you can find recipes everywhere.

food · Tue 04 January 2022

This Indonesian-style peanut sauce is much loved by the Dutch in their "adopted" (!) Indonesian taste. It goes really well as a basis for gado gado, and also with many other indonesian dishes. Having never been to Indonesia, I can only claim this is a good match to the sauce we get in the Netherlands!

NOTE: If you have "kecap manis", then use it! -- you can replace half the soy sauce with kecap manis, and reduce the sugar (leaving out perhaps a third of it). That gives a more authentic full flavour. It's not very common in Britain.

Ingredients:

If using tamarind "block", remember to prep it first (by soaking the right amount in warm water for a few minutes at least).

In a small blender whizz up everything except for the garlic and the water. You can add a bit of the water, to make it easier to get it out again.

Crush the garlic and fry it in a little veg oil, in a milk pan or similar, just until softened (don't let it burn), Then add the blended mixture and cook it for ten minutes or more, stirring. Add water as it cooks, enough to get the consistency right.

Recipes · Mon 03 January 2022

My mum's pear frangipane tart is a classic. Rich almondy frangipane, and soft pears, go together really well. Here, I've made a vegan version, partly by adapting Domestic Gothess's frangipane recipe. (Follow that link for lots of photos and tips on the process.)

The rich taste of frangipane is traditionally made with butter and egg. In this version, the egg is replaced by cornflour, flour and aquafaba. Aquafaba is the liquid from a tin of chickpeas (!) and can be whipped up in various ways. Here you do NOT need to whip the aquafaba, it (and the cornflour) simply help to bind the mixture around all that ground almond, plus a bit of baking powder for rise. Instead of butter, it's good to use a vegan "block" butter instead of margarine, to ensure this vegan version has a good rich impression. I used Violife, DG uses Naturli. Non-vegans can use old-fashioned butter.

You get great results using tinned pears in syrup for this tart. Apparently you can also use fresh pears, but that didn't work so well when I tried it (perhaps I should have poached them slightly first?). Anyway, a tin of pears in syrup is great for this.

Makes a single tart good for 8-10 portions.

FOR THE PASTRY:

FOR THE FILLING:

To make the pastry: mix the flour, almonds, sugar and salt together. Add the butter, cold and diced, and rub it into the dry ingredients with your fingertips until it resembles fine breadcrumbs. Then add the vodka/water, bit by bit, mixing with your fingers or a utensil until the pastry comes together in a ball. (You can also do all this in a food processor.)

Shape the pastry into a disc, wrap in clingfilm, and place in the fridge for at least half an hour.

Preheat the oven to 180 degrees C. Grease a springform tart tin, about 9 inches / 20 cm diameter.

Take the pastry from the fridge and roll it out to a disc large enough to fill the tin and go up the sides. (If you have to roll it back into a ball and roll it out again, that's fine.) Carefully lift it into the tin. Trim off excess pastry from the top. We probably only need it to be about 1cm deep, but deeper is fine.

Prick the pastry all over the base with a fork, then blind bake it, as follows. Place a sheet of baking paper or tinfoil in that will cover the whole base. Put baking beans (or rice, lentils...) in to fill the floor of the pastry, making sure they go right to the edge. Bake this in the oven for 25 minutes, then take out the baking beans and the baking paper/foil, and return to the oven for another 5 minutes of cooking.

During that last bit of cooking, make the frangipane. Whisk together the melted vegan butter and the sugar, then the flour and cornflour, followed by the aquafaba. Finally, mix in the ground almonds, baking powder, and vanilla/almond extract. I also added some of the juice (30ml?) from the pear tin, to make the frangipane liquid enough to pour a bit more easily, and of course for a bit of flavour.

Now assemble the tart. Take the pastry base out of the oven, and arrange the pear-halves nicely in it, cut side down. I used all five pear-halves in my tin. Pour the frangipane into the gaps where the pears are not, making a nice even layer in the pastry case. Spread it out evenly.

Return to the oven and cook for 30 minutes

Leave to cool in the tins for 20 minutes before turning out. Serve with cream, plain yogurt, or something like that; the tart is delicious warm or cold. Store any leftovers in an airtight container for up to 3 days.

recipes · Mon 03 January 2022

Other recent posts: