41554 blogs · [ { "id": "01a08766-75ac-731c-abed-740b9854f990", "title": "Adding support for remote jar fetching in Flink session clusters", "url": "https://dalelane.co.uk/blog/?p=6140", "published_at": "2026-08-23T23:00:41+00:00" }, { "id": "01a08766-75ac-731c-abed-740b985f6f38", "title": "Why we can’t have nice things", "url": "https://dalelane.co.uk/blog/?p=6130", "published_at": "2026-08-09T12:22:35+00:00" }, { "id": "01a08766-75ac-731c-abed-740b9923775e", "title": "Importing and exporting projects in Machine Learning for Kids", "url": "https://dalelane.co.uk/blog/?p=6127", "published_at": "2026-08-08T20:07:54+00:00" }, { "id": "01a08766-75ac-731c-abed-740b99d13f93", "title": "Running Flink jobs in MiniCluster using the Kubernetes Operator", "url": "https://dalelane.co.uk/blog/?p=6123", "published_at": "2026-08-05T21:52:36+00:00" }, { "id": "01a08766-75ac-731c-abed-740b9a378bf7", "title": "Generative AI with tool calling in Scratch", "url": "https://dalelane.co.uk/blog/?p=6116", "published_at": "2026-07-10T01:45:53+00:00" }, { "id": "01a08766-75ac-731c-abed-740b9a80edd9", "title": "Why I enjoy my commute", "url": "https://dalelane.co.uk/blog/?p=6100", "published_at": "2026-07-05T09:14:16+00:00" }, { "id": "01a08766-75ac-731c-abed-740b9b3e1bde", "title": "I have a new job!", "url": "https://dalelane.co.uk/blog/?p=6083", "published_at": "2026-07-04T14:48:33+00:00" }, { "id": "01a08766-75ac-731c-abed-740b9b7e036a", "title": "iTunes extension for Scratch", "url": "https://dalelane.co.uk/blog/?p=6065", "published_at": "2026-06-09T21:23:12+00:00" }, { "id": "01a08766-75ac-731c-abed-740b9bfbf859", "title": "Presenting at Current / Kafka Summit", "url": "https://dalelane.co.uk/blog/?p=6056", "published_at": "2026-05-21T10:19:51+00:00" }, { "id": "01a08766-75ac-731c-abed-740b9cd0e202", "title": "Embedding Tiny Language Models in Flink SQL", "url": "https://dalelane.co.uk/blog/?p=6052", "published_at": "2026-05-20T16:26:44+00:00" }, { "id": "01a08766-75ac-731c-abed-740b9cedd4aa", "title": "Instrumenting a Kafka Connect connector with metrics", "url": "https://dalelane.co.uk/blog/?p=6045", "published_at": "2026-05-02T12:03:49+00:00" }, { "id": "01a08766-75ac-731c-abed-740b9dc6d3f6", "title": "How to create a Scratch extension", "url": "https://dalelane.co.uk/blog/?p=6039", "published_at": "2026-04-27T22:02:48+00:00" }, { "id": "01a0c505-5df6-736d-ac8f-26206610228f", "title": "22 years at IBM", "url": "https://dalelane.co.uk/blog/?p=6027", "published_at": "2026-04-26T13:06:01+00:00" }, { "id": "01a0c505-5df6-736d-ac8f-262066d7e232", "title": "What do people use to access Machine Learning for Kids?", "url": "https://dalelane.co.uk/blog/?p=6019", "published_at": "2026-04-23T21:07:14+00:00" }, { "id": "01a0c505-5df6-736d-ac8f-26206720c96d", "title": "“How many Kafka events will Flink process per second?”", "url": "https://dalelane.co.uk/blog/?p=6001", "published_at": "2026-04-11T16:28:05+00:00" }, { "id": "01a0c505-5df6-736d-ac8f-262067f91504", "title": "Paying for image hosting", "url": "https://dalelane.co.uk/blog/?p=5998", "published_at": "2026-04-06T15:15:29+00:00" }, { "id": "01a0c505-5df6-736d-ac8f-262068f51d1f", "title": "Another break in Devon", "url": "https://dalelane.co.uk/blog/?p=5993", "published_at": "2026-04-04T11:50:39+00:00" }, { "id": "01a0c505-5df6-736d-ac8f-262069188900", "title": "Extending Flink SQL", "url": "https://dalelane.co.uk/blog/?p=5920", "published_at": "2026-03-29T01:00:19+00:00" }, { "id": "01a0c505-5df6-736d-ac8f-262069d6f9d3", "title": "Talking at TechCon about AI and EDA", "url": "https://dalelane.co.uk/blog/?p=5917", "published_at": "2026-03-22T11:00:00+00:00" }, { "id": "01a0c505-5df6-736d-ac8f-26206a2e2d0d", "title": "Talking at TechCon about metrics and monitoring", "url": "https://dalelane.co.uk/blog/?p=5914", "published_at": "2026-03-21T11:00:00+00:00" }, { "id": "01a0c505-5df6-736d-ac8f-26206adbdb2d", "title": "Deploying Apache Flink jobs into Kubernetes", "url": "https://dalelane.co.uk/blog/?p=5906", "published_at": "2026-03-20T15:29:22+00:00" }, { "id": "01a0c505-5df6-736d-ac8f-26206af90a8d", "title": "Processing JSON with Kafka Connect", "url": "https://dalelane.co.uk/blog/?p=5857", "published_at": "2026-02-18T18:28:10+00:00" }, { "id": "01a0c505-5df6-736d-ac8f-26206b262ffe", "title": "How to explain Generative AI in the classroom", "url": "https://dalelane.co.uk/blog/?p=5847", "published_at": "2026-01-28T23:22:41+00:00" }, { "id": "01a0c505-5df6-736d-ac8f-26206b817355", "title": "Explaining few-shot prompting in Scratch", "url": "https://dalelane.co.uk/blog/?p=5837", "published_at": "2026-01-20T01:18:38+00:00" }, { "id": "01a0c517-24bc-73d9-bab4-38eb1706abd3", "title": "Improving support for older computers and mobile devices on Machine Learning for Kids", "url": "https://dalelane.co.uk/blog/?p=5833", "published_at": "2026-01-16T00:50:33+00:00" }, { "id": "01a0c517-24bc-73d9-bab4-38eb17cb672f", "title": "2025 Year In Review", "url": "https://dalelane.co.uk/blog/?p=5829", "published_at": "2026-01-14T10:30:00+00:00" }, { "id": "01a0c517-24bc-73d9-bab4-38eb1841a1c2", "title": "2025 in gaming (Nintendo)", "url": "https://dalelane.co.uk/blog/?p=5819", "published_at": "2026-01-13T20:50:51+00:00" }, { "id": "01a0c517-24bc-73d9-bab4-38eb18b8f3d8", "title": "Flink SQL examples with click tracking events", "url": "https://dalelane.co.uk/blog/?p=5806", "published_at": "2026-01-12T16:28:42+00:00" }, { "id": "01a0c517-24bc-73d9-bab4-38eb198d0390", "title": "Explaining role prompting in Scratch", "url": "https://dalelane.co.uk/blog/?p=5799", "published_at": "2026-01-11T20:15:42+00:00" }, { "id": "01a0c517-24bc-73d9-bab4-38eb1a170330", "title": "2025 in music (last.fm)", "url": "https://dalelane.co.uk/blog/?p=5796", "published_at": "2026-01-03T10:42:00+00:00" }, { "id": "01a0c517-24bc-73d9-bab4-38eb1ae1d53e", "title": "2025 in beers (Untappd)", "url": "https://dalelane.co.uk/blog/?p=5794", "published_at": "2026-01-02T09:30:00+00:00" }, { "id": "01a0c517-24bc-73d9-bab4-38eb1b5201f0", "title": "2025 in gaming (Backloggd)", "url": "https://dalelane.co.uk/blog/?p=5791", "published_at": "2026-01-01T13:25:31+00:00" }, { "id": "01a0c517-24bc-73d9-bab4-38eb1bc66ace", "title": "2025 in travel (Google Maps)", "url": "https://dalelane.co.uk/blog/?p=5788", "published_at": "2025-12-31T15:06:00+00:00" }, { "id": "01a0c517-24bc-73d9-bab4-38eb1cb0a375", "title": "2025 in books (Goodreads)", "url": "https://dalelane.co.uk/blog/?p=5779", "published_at": "2025-12-30T11:01:01+00:00" }, { "id": "01a0c517-24bc-73d9-bab4-38eb1cd9d948", "title": "2025 in podcasts (Overcast)", "url": "https://dalelane.co.uk/blog/?p=5776", "published_at": "2025-12-23T22:33:51+00:00" }, { "id": "01a0c517-24bc-73d9-bab4-38eb1ce45527", "title": "2025 in exercise (Apple Health)", "url": "https://dalelane.co.uk/blog/?p=5767", "published_at": "2025-12-22T22:59:52+00:00" }, { "id": "01a0c521-fbc9-73b1-b0d8-5202f169f1cd", "title": "2025 in social media (Bluesky and Mastodon)", "url": "https://dalelane.co.uk/blog/?p=5762", "published_at": "2025-12-21T10:39:45+00:00" }, { "id": "01a0c521-fbcc-7154-92c6-65c7d173b8f8", "title": "2025 in video creation (YouTube)", "url": "https://dalelane.co.uk/blog/?p=5758", "published_at": "2025-12-20T17:00:38+00:00" }, { "id": "01a0c521-fbcc-7154-92c6-65c7d250dd9e", "title": "2025 in Xbox gaming (TrueAchievements)", "url": "https://dalelane.co.uk/blog/?p=5754", "published_at": "2025-12-19T13:00:00+00:00" }, { "id": "01a0c521-fbcc-7154-92c6-65c7d3206df8", "title": "2025 in video (YouTube)", "url": "https://dalelane.co.uk/blog/?p=5750", "published_at": "2025-12-18T17:11:29+00:00" }, { "id": "01a0c521-fbcc-7154-92c6-65c7d3c1f83c", "title": "2025 in music (Spotify)", "url": "https://dalelane.co.uk/blog/?p=5746", "published_at": "2025-12-17T13:40:45+00:00" }, { "id": "01a0c521-fbcc-7154-92c6-65c7d4906267", "title": "2025 in writing (WordPress)", "url": "https://dalelane.co.uk/blog/?p=5735", "published_at": "2025-12-16T21:55:20+00:00" }, { "id": "01a0c521-fbcc-7154-92c6-65c7d55289fe", "title": "Maverick Dark Castle", "url": "https://dalelane.co.uk/blog/?p=5723", "published_at": "2025-11-17T22:46:45+00:00" }, { "id": "01a0c521-fbcc-7154-92c6-65c7d58018c2", "title": "Introducing Generative AI into Code Clubs", "url": "https://dalelane.co.uk/blog/?p=5719", "published_at": "2025-11-14T16:12:48+00:00" }, { "id": "01a0c521-fbcc-7154-92c6-65c7d604eac5", "title": "Flink SQL aggregate functions", "url": "https://dalelane.co.uk/blog/?p=5713", "published_at": "2025-11-03T17:34:37+00:00" }, { "id": "01a0c521-fbcc-7154-92c6-65c7d6cf5f60", "title": "AI patterns in event driven architectures", "url": "https://dalelane.co.uk/blog/?p=5706", "published_at": "2025-11-03T07:42:00+00:00" }, { "id": "01a0c521-fbcc-7154-92c6-65c7d7120522", "title": "Using streams of events to train machine learning models", "url": "https://dalelane.co.uk/blog/?p=5699", "published_at": "2025-11-02T08:37:18+00:00" }, { "id": "01a0c521-fbcc-7154-92c6-65c7d718f428", "title": "Using event streams to provide real-time context for agentic AI", "url": "https://dalelane.co.uk/blog/?p=5692", "published_at": "2025-11-01T16:18:54+00:00" }, { "id": "01a0c52d-8187-70a5-9605-59d4af8803b1", "title": "Triggering agentic AI from event streams", "url": "https://dalelane.co.uk/blog/?p=5686", "published_at": "2025-10-31T13:33:58+00:00" }, { "id": "01a0c52d-8187-70a5-9605-59d4b024ea89", "title": "Using AI to augment event stream processing", "url": "https://dalelane.co.uk/blog/?p=5682", "published_at": "2025-10-30T11:30:29+00:00" }, { "id": "01a0c52d-8187-70a5-9605-59d4b11e997b", "title": "From Event Streams to Smart Streams : Powering AI / ML with your Kafka topics", "url": "https://dalelane.co.uk/blog/?p=5678", "published_at": "2025-10-29T14:38:16+00:00" }, { "id": "01a0c52d-8187-70a5-9605-59d4b1c99793", "title": "Introducing LLM benchmarks using Scratch", "url": "https://dalelane.co.uk/blog/?p=5669", "published_at": "2025-10-18T19:01:12+00:00" }, { "id": "01a0c52d-8187-70a5-9605-59d4b23c2df6", "title": "Event-driven sessions at IBM TechXchange 2025", "url": "https://dalelane.co.uk/blog/?p=5659", "published_at": "2025-09-30T10:40:00+00:00" }, { "id": "01a0c52d-8187-70a5-9605-59d4b2aea98f", "title": "What are we missing in AsyncAPI?", "url": "https://dalelane.co.uk/blog/?p=5656", "published_at": "2025-09-29T18:37:39+00:00" }, { "id": "01a0c52d-8187-70a5-9605-59d4b392b02a", "title": "Fun things to do with Strava", "url": "https://dalelane.co.uk/blog/?p=5633", "published_at": "2025-08-10T20:36:10+00:00" }, { "id": "01a0c52d-8187-70a5-9605-59d4b429873b", "title": "Using time series models with IBM Event Automation", "url": "https://dalelane.co.uk/blog/?p=5612", "published_at": "2025-07-22T00:56:06+00:00" }, { "id": "01a0c52d-8187-70a5-9605-59d4b4418032", "title": "A mid-year (non-work) checkpoint", "url": "https://dalelane.co.uk/blog/?p=5603", "published_at": "2025-07-01T05:45:59+00:00" }, { "id": "01a0c52d-8187-70a5-9605-59d4b4bd8caf", "title": "How to use kafka-console-consumer.sh to view the contents of Apache Avro-encoded events", "url": "https://dalelane.co.uk/blog/?p=5594", "published_at": "2025-06-12T22:59:25+00:00" }, { "id": "01a0c52d-8187-70a5-9605-59d4b4ea4031", "title": "Using annotations to store info about Kafka topics in Strimzi", "url": "https://dalelane.co.uk/blog/?p=5580", "published_at": "2025-06-01T22:00:43+00:00" }, { "id": "01a0c52d-8187-70a5-9605-59d4b56ee269", "title": "npx dalelane", "url": "https://dalelane.co.uk/blog/?p=5570", "published_at": "2025-05-13T15:57:36+00:00" }, { "id": "01a0c538-299f-72f4-8937-54f0f9c11e48", "title": "Visualising Apache Kafka events in Grafana", "url": "https://dalelane.co.uk/blog/?p=5560", "published_at": "2025-05-05T11:52:10+00:00" }, { "id": "01a0c538-299f-72f4-8937-54f0fa288bd3", "title": "A break in Devon", "url": "https://dalelane.co.uk/blog/?p=5552", "published_at": "2025-04-21T16:00:00+00:00" }, { "id": "01a0c538-299f-72f4-8937-54f0fa7a50a5", "title": "Exploring Language Models in Scratch with Machine Learning for Kids", "url": "https://dalelane.co.uk/blog/?p=5538", "published_at": "2025-03-02T01:05:06+00:00" }, { "id": "01a0c538-299f-72f4-8937-54f0fa9d2e40", "title": "Using MirrorMaker 2 for simple stream processing", "url": "https://dalelane.co.uk/blog/?p=5518", "published_at": "2025-02-13T16:06:54+00:00" }, { "id": "01a0c538-299f-72f4-8937-54f0faa5fe31", "title": "Running OpenMessaging benchmarks on your Kafka cluster", "url": "https://dalelane.co.uk/blog/?p=5505", "published_at": "2025-02-03T20:58:20+00:00" }, { "id": "01a0c538-299f-72f4-8937-54f0fb41ae30", "title": "Understanding event processing behaviour with OpenTelemetry", "url": "https://dalelane.co.uk/blog/?p=5483", "published_at": "2025-01-31T14:01:15+00:00" }, { "id": "01a0c538-299f-72f4-8937-54f0fb9ad841", "title": "Turning noise into actionable alerts using Flink", "url": "https://dalelane.co.uk/blog/?p=5477", "published_at": "2025-01-28T22:36:14+00:00" }, { "id": "01a0c538-299f-72f4-8937-54f0fc1640ea", "title": "“Shoebox”: an artificial intelligence history project", "url": "https://dalelane.co.uk/blog/?p=5463", "published_at": "2025-01-11T00:26:00+00:00" }, { "id": "01a0c538-299f-72f4-8937-54f0fc551f5d", "title": "API Enrichment in Event Processing", "url": "https://dalelane.co.uk/blog/?p=5452", "published_at": "2024-12-02T20:38:06+00:00" }, { "id": "01a0c538-299f-72f4-8937-54f0fc69ec27", "title": "Using Kafka Streams for a Kafka Event Projection", "url": "https://dalelane.co.uk/blog/?p=5437", "published_at": "2024-12-02T00:05:32+00:00" }, { "id": "01a0c538-299f-72f4-8937-54f0fd4128c1", "title": "Stuff I got this year (and loved)", "url": "https://dalelane.co.uk/blog/?p=5431", "published_at": "2024-11-30T09:06:59+00:00" }, { "id": "01a0c538-299f-72f4-8937-54f0fe3c94fe", "title": "Using a database for a Kafka Event Projection", "url": "https://dalelane.co.uk/blog/?p=5422", "published_at": "2024-11-29T14:31:11+00:00" }, { "id": "01a0c541-b99b-714f-85ea-05d873229146", "title": "Using an in-memory lookup table for a Kafka Event Projection", "url": "https://dalelane.co.uk/blog/?p=5409", "published_at": "2024-11-28T18:22:51+00:00" }, { "id": "01a0c541-b99c-734e-8cf0-7f084347c39a", "title": "Comparing approaches to maintaining an Event Projection from Kafka topics", "url": "https://dalelane.co.uk/blog/?p=5392", "published_at": "2024-11-28T14:41:53+00:00" }, { "id": "01a0c541-b99c-734e-8cf0-7f084350e349", "title": "Using MobileNet in Scratch", "url": "https://dalelane.co.uk/blog/?p=5376", "published_at": "2024-11-25T23:46:16+00:00" }, { "id": "01a0c541-b99c-734e-8cf0-7f08435816b9", "title": "Focusing on my health", "url": "https://dalelane.co.uk/blog/?p=5367", "published_at": "2024-11-23T14:44:26+00:00" }, { "id": "01a0c541-b99c-734e-8cf0-7f0843fa188f", "title": "Social media updates with Kafka Connect", "url": "https://dalelane.co.uk/blog/?p=5354", "published_at": "2024-11-19T21:48:05+00:00" }, { "id": "01a0c541-b99c-734e-8cf0-7f0844a236d9", "title": "Using IBM Event Processing with rules engines", "url": "https://dalelane.co.uk/blog/?p=5351", "published_at": "2024-11-12T23:15:36+00:00" }, { "id": "01a0c541-b99c-734e-8cf0-7f0844fdaec2", "title": "Creating custom record builders for the Kafka Connect MQ Source Connector", "url": "https://dalelane.co.uk/blog/?p=5337", "published_at": "2024-10-28T20:03:23+00:00" }, { "id": "01a0c541-b99c-734e-8cf0-7f08457578cb", "title": "Analysing IBM MQ messages in IBM Event Processing", "url": "https://dalelane.co.uk/blog/?p=5328", "published_at": "2024-10-27T13:25:31+00:00" }, { "id": "01a0c541-b99c-734e-8cf0-7f084588b713", "title": "Event-driven tech at IBM TechXchange", "url": "https://dalelane.co.uk/blog/?p=5311", "published_at": "2024-10-19T21:29:48+00:00" }, { "id": "01a0c541-b99c-734e-8cf0-7f08461a5c3a", "title": "Analysing Wikipedia edits with IBM Event Processing", "url": "https://dalelane.co.uk/blog/?p=5304", "published_at": "2024-10-14T20:13:25+00:00" }, { "id": "01a0c541-b99c-734e-8cf0-7f0846291574", "title": "Analysing social media sentiment with IBM Event Processing", "url": "https://dalelane.co.uk/blog/?p=5298", "published_at": "2024-10-10T17:10:34+00:00" }, { "id": "01a0c541-b99c-734e-8cf0-7f0846a26fd4", "title": "Taming the Kafka topics Wild West", "url": "https://dalelane.co.uk/blog/?p=5293", "published_at": "2024-09-17T10:03:29+00:00" }, { "id": "01a0c54a-a878-71da-a1d5-94015aac313c", "title": "Flink can recognize when you’re cheating", "url": "https://dalelane.co.uk/blog/?p=5286", "published_at": "2024-09-13T12:44:51+00:00" }, { "id": "01a0c54a-a878-71da-a1d5-94015b74790e", "title": "Using quotas with Event Endpoint Management", "url": "https://dalelane.co.uk/blog/?p=5281", "published_at": "2024-09-12T10:55:16+00:00" }, { "id": "01a0c54a-a878-71da-a1d5-94015c50a83c", "title": "Using IBM Event Endpoint Management with Kafka Connect", "url": "https://dalelane.co.uk/blog/?p=5277", "published_at": "2024-09-11T12:30:57+00:00" }, { "id": "01a0c54a-a878-71da-a1d5-94015ca9ff9a", "title": "Event Gateway topologies for IBM Event Endpoint Management", "url": "https://dalelane.co.uk/blog/?p=5270", "published_at": "2024-06-30T11:52:10+00:00" }, { "id": "01a0c54a-a878-71da-a1d5-94015d317160", "title": "Unleash real-time responsiveness by enriching streams of events", "url": "https://dalelane.co.uk/blog/?p=5266", "published_at": "2024-06-19T09:59:28+00:00" }, { "id": "01a0c54a-a878-71da-a1d5-94015e300aae", "title": "Using IBM Event Automation with watsonx", "url": "https://dalelane.co.uk/blog/?p=5250", "published_at": "2024-05-29T07:57:47+00:00" }, { "id": "01a0c54a-a878-71da-a1d5-94015eeccadc", "title": "Using books data in Scratch", "url": "https://dalelane.co.uk/blog/?p=5244", "published_at": "2024-05-19T21:33:04+00:00" }, { "id": "01a0c54a-a878-71da-a1d5-94015eefbfaa", "title": "Processing XML with Kafka Connect", "url": "https://dalelane.co.uk/blog/?p=5238", "published_at": "2024-05-15T18:13:53+00:00" }, { "id": "01a0c54a-a878-71da-a1d5-94015f03d621", "title": "Processing Apache Avro-serialized messages from Kafka using IBM App Connect Enterprise", "url": "https://dalelane.co.uk/blog/?p=5228", "published_at": "2024-05-13T22:29:01+00:00" }, { "id": "01a0c54a-a878-71da-a1d5-94015ff104e7", "title": "Using IBM Event Automation with Azure Event Hubs", "url": "https://dalelane.co.uk/blog/?p=5223", "published_at": "2024-04-26T17:38:01+00:00" }, { "id": "01a0c54a-a878-71da-a1d5-9401605539b2", "title": "Hoops (a Machine Learning for Kids worksheet)", "url": "https://dalelane.co.uk/blog/?p=5200", "published_at": "2024-04-21T13:36:52+00:00" }, { "id": "01a0c54a-a878-71da-a1d5-940161537d1b", "title": "Using Mirror Maker 2 with IBM Event Streams to migrate to a new cluster", "url": "https://dalelane.co.uk/blog/?p=5191", "published_at": "2024-04-18T20:04:52+00:00" }, { "id": "01a0c552-f92f-703f-a67f-4febecf36376", "title": "Shoot the bug (a Machine Learning for Kids worksheet)", "url": "https://dalelane.co.uk/blog/?p=5181", "published_at": "2024-04-17T22:15:11+00:00" }, { "id": "01a0c552-f92f-703f-a67f-4febed8fe95d", "title": "Using Mirror Maker 2 with IBM Event Streams to restore from a backup cluster", "url": "https://dalelane.co.uk/blog/?p=5171", "published_at": "2024-04-12T19:32:17+00:00" }, { "id": "01a0c552-f92f-703f-a67f-4febedb19f72", "title": "Using Mirror Maker 2 with IBM Event Streams to create a failover cluster", "url": "https://dalelane.co.uk/blog/?p=5152", "published_at": "2024-04-08T21:14:43+00:00" }, { "id": "01a0c552-f92f-703f-a67f-4febee8ee4bc", "title": "Using Mirror Maker 2 with IBM Event Streams to share topics across multiple regions", "url": "https://dalelane.co.uk/blog/?p=5142", "published_at": "2024-04-05T13:22:48+00:00" } ] posts Claim your blog
Back to dalelane.co.uk
Blog · corpus.blog/blogs/dalelane.co.uk/posts

dalelane.co.uk

dalelane.co.uk

2026

2025

2024