Archive for the ‘tech’ Category

Using MirrorMaker 2

Wednesday, July 15th, 2020

I’ve been talking about MirrorMaker 2 this week – the Apache Kafka tool for replicating data across two Kafka clusters. You can use it to make a copy of messages on your Kafka cluster to a remote Kafka cluster running on a different data centre, and keep that copy up to date in the background.

For the discussion we had, I needed to give examples of how you might use MirrorMaker 2, which essentially meant I spent an afternoon drawing pictures. As some of them were a little pretty, I thought I’d tidy them up and share them here.

We went through several different use cases, but I’ll just describe two examples here.
(more…)

Using repl.it with Machine Learning for Kids

Sunday, May 10th, 2020

Students can work on machine learning projects in Python entirely in the browser, without any need for setup, installs, or registration.

(more…)

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…)