Archive for the ‘tech’ Category

Why are Kafka messages still on the topic after the retention time has expired?

Sunday, February 9th, 2020

We had an interesting Kafka question from an Event Streams user. The answer isn’t immediately obvious unless you know a bit about Kafka internals, and after a little searching I couldn’t find an explanation online, so I thought I’d share the answer here (obviously anonymised and heavily simplified).

What is retention?

Retention is a Kafka feature to help you manage the amount of disk space your topics use.

It lets you specify how long you want Kafka to keep messages on a topic for. You can specify this by time (e.g. “I want messages on this topic to be preserved for at least X days”) or by disk usage (e.g. “I want at least the last X gb of messages on this topic to be preserved”).

After the retention time or disk threshold is exceeded, messages become eligible for being automatically deleted by Kafka.

What was wrong in this case?

screenshot

They had created a topic with a retention time of 7 days.

They had assumed that this meant messages older than 7 days would be deleted.

When they looked at the messages on their topic, they could see some messages older than 7 days were there, and were surprised.

They thought this might mean retention wasn’t working.

(more…)

Explaining machine learning with decision trees

Sunday, August 18th, 2019

Machine Learning for Kids now includes interactive visualisations that explain how some of the machine learning models that children create work.

The tool lets children learn about artificial intelligence by training machine learning models, and using that to make projects using tools like Scratch. I’ve described how I’ve seen children learn a lot about machine learning principles by being able to play and experiment with it. But I still want the site to do more to explain how the tech actually works, and this new feature is an attempt to do that.

(more…)

Explaining Machine Learning for Kids (again)

Wednesday, August 7th, 2019

Two years ago, I made a video demo of Machine Learning for Kids. It still gets a lot of views by teachers (either individually or as part of CPD sessions) and volunteers (preparing for running a code club).

It has been looking increasingly out of date as the site has changed a bit in the last couple of years! So I’ve recorded a new walkthrough:

In the video, I show a variety of AI projects that school children have made, and discuss how they reacted to them and what I think they learned.

Curated sample training datasets for Machine Learning for Kids

Wednesday, June 26th, 2019

Machine Learning for Kids now includes support for a curated collection of training data sets, to enable children to create different types of machine learning projects.


Click to enlarge

The tool lets children make things using machine learning. The principle I’ve worked to is that children train their own machine learning models, as doing this is a great way to teach them about how this tech works.

Preparing their own training data is a useful exercise, but it is time-consuming. Project worksheets I’ve written so far have all been written with the assumption that the student will prepare the training data within a single lesson. This has been a limiting factor on the kinds of ML projects I’ve been able to include.

(more…)

How Machine Learning for Kids is being used

Friday, July 27th, 2018

Machine Learning for Kids has been running for nearly a year now (originally as a closed beta until Oct 29th 2017, but I first shared it widely in early August 2017).

It’s evolved and grown in the last year, but from the start my idea was to provide schools and code clubs with:

  • a child-friendly tool for training a variety of types of machine learning model
  • tight integration with the Scratch visual programming language to allow kids to make AI powered games and projects
  • a set of worksheets that explain real-world uses of artificial intelligence by giving step-by-step instructions to make simple examples

The anniversary feels like a good time to look at some of the ways the tool has been used. It’s been amazing to see it being picked up and used in so many different ways, not just in the schools and code clubs near to me but all around the world. I’ve used Wakelet to collect some examples of what people have done with the site.

(more…)

Running a multi-region Cloud Foundry application in IBM Cloud

Sunday, June 3rd, 2018

A few technical details on how I’m implementing global load balancing to improve the availability of Machine Learning for Kids.

This wasn’t a great week for Machine Learning for Kids. I think the site was unavailable for a couple of days in total this week, spread across a few outages – the worst one lasting over twelve hours. I know I’ve lost some users as a result – a few teachers / coding group leaders did email me to say (not at all unreasonably) that they can’t use a tool that they can’t rely on.

I wrote in my last post that I would be making changes to prevent this sort of thing from happening again. Now that I’ve done it, I thought it’d be good to share a few details on how I did it.

(more…)

Teaching artificial intelligence using Scratch

Friday, May 18th, 2018

This is a recording of a talk I did at DevoxxUK last week. Devoxx is a community developer event, run in London. I had 50 minutes to talk about what I’m doing with Machine Learning for Kids.

Groups like Code Club, CoderDojo, Code.org and many others are doing amazing work in helping to introduce kids to coding. Initiatives like Hour of Code have highlighted how those of us in tech can help to support and inspire the next generation of developers.

How can we extend this to include artificial intelligence and machine learning?

How can we use the cloud-based machine learning APIs that are increasingly available to us as developers to extend the tools used to teach kids about coding?

In this session, I’ll share the work I’ve been doing to introduce machine learning to kids, and demo the resources that are available to give kids hands-on experiences at training and using machine learning models for themselves.

If you’re familiar with AI and ML technologies, this session will hopefully enable you to share your expertise with local schools, colleges and coding groups.

If you’re not as familiar with ML, this session will show you how quick and simple cloud-based machine learning APIs are today, and perhaps inspire you to use them in your next project.

Explaining crowd-sourcing in machine learning

Wednesday, January 31st, 2018

I pushed a new feature to Machine Learning for Kids last night: “class projects”. Now a whole class of students can work on a project together – all helping to train a shared, group machine learning model.

I’ll write some proper documentation for it, but in the meantime I thought I’d share a few quick thoughts on how this works and what it’s for.

(more…)