Flink SQL examples with click tracking events

January 12th, 2026

In this post, I introduce a few core Flink SQL functions using worked examples of processing a stream of click tracking events from a retail website.

I find that a practical, real-world (ish) example can help to explain how to use Flink SQL in a way that abstract descriptions, such as processing coloured blocks sometimes doesn’t quite achieve.

I’ll use this post to give examples of my most-used Flink SQL functions, in the context of a retail scenario: a stream of events from customers on the website for a clothing retailer.

Note: I used Event Processing to create the flows, as the assistants in the canvas helped me create examples quickly. Everything I’ve created is standard Apache Flink SQL, so you don’t need to have Event Processing to try these examples.

Read the rest of this entry »

Explaining role prompting in Scratch

January 11th, 2026

In this post, I want to share a recent worksheet I wrote for Machine Learning for Kids. It is a hands-on project to give students an insight into an aspect of prompt engineering with language models.

Students create a Scratch project that lets them have a conversation with a small language model. They try to have the same conversation multiple times, and they set up the Scratch project so that adds a short role instruction to the context at the start (e.g. “Answer like a pirate”).

The instruction changes how the model answers, and students have to try and work out from the responses they get from the model which persona has been selected.


screen recording of the Scratch project on YouTube

By repeating the activity several times, they should notice something important: the same language model gives very different answers to the same questions, just because of a small change in the instructions. This observation is the key lesson here.

Read the rest of this entry »

2025 in music (last.fm)

January 3rd, 2026

Spotify has data for most music I choose to listen to – on my computer, my phone, in the car, on smart speakers, etc. So Spotify’s end of year review is more complete.

Last.fm only has data for music I listen on my laptop, but I prefer their end of year reports for the amount of geeky detail they go into!

They have two Year In Review options: a page of graphs, and a more infographic/animation-focused report.

Read the rest of this entry »

2025 in beers (Untappd)

January 2nd, 2026

Untappd is a site for tracking beers that you drink. Their end of year review is called Recappd – this is mine.

Read the rest of this entry »

2025 in gaming (Backloggd)

January 1st, 2026

Backloggd is a site for tracking video game playing. My end-of-year recap is at backloggd.com/u/dalelane/recap which is the best place to look at it, but I’ve made a copy here.

Read the rest of this entry »

2025 in travel (Google Maps)

December 31st, 2025

Google Maps don’t produce a Year In Review email any more, since they moved location history data to be stored on-device instead of in the cloud. That’s a shame, so I asked Claude to make me one of my own using the data from Google Maps on my iPhone.

It came up with: dalelane.github.io/googlemaps-year-in-review

Read the rest of this entry »

2025 in books (Goodreads)

December 30th, 2025

I got out of the habit of logging what I read, but this year I got back into Goodreads after wanting a way to share what I read on holiday.

Goodreads have two flavours of “year in review” reports:

  • an infographic-heavy report that they send you by email which is generated with data up to mid-December (so excluding everything I read over Christmas)
  • a much-simpler web-based one that they keep up to date

Read the rest of this entry »

2025 in podcasts (Overcast)

December 23rd, 2025

I’ve long used podcasts as a way to distract me while travelling for business trips, doing housework at the weekends, shopping, and much more…

This year, I listened to even more podcasts than usual – the increased time I’ve spent walking this year gave me an extra couple of hours a day.

I use the (brilliant) Overcast podcast player, which generates a report of how much time I’ve spent listening to each podcast this year.

Read the rest of this entry »