marbles and holes

We’ve tried writing letters on the marbles to represent data. This fails because can’t distinguish between the letters.

Here’s a new strategy. We’re going to write letters on our marbles that can handle:

00/0000/00
loading…

all 1s

We’ve written a 1 on each marble. As long as we write the same thing on each marble, doesn’t need to “read” what’s written there — it can treat them all the same.

So we have a way of representing 1, but that’s not enough. To store information, we need a way to represent at least one other value.

note

When writing information on paper, we need at least two colours: the ink and the paper. It’s the contrast that lets us store information — just the ink alone isn’t enough.

But how can we represent a second value? All our marbles are already 1, so we can’t write anything else on them.

Imagine we label each cell with a 0:

00/0000/00
loading…

1s and 0s

Now:

  • Wherever there’s a marble marble we see a 1
  • Wherever there’s a hole hole, we see a 0.
definition

A hole is the absence of a marble.

The surface of a disk is a pattern of holes and marbles. As our pattern advances:

  • Marbles move, carrying 1s with them
  • Holes move, carrying 0s with them.
technical

We’re borrowing this terminology from physics, where a “hole” — the absence of a particle like an electron — is often treated like it’s a real particle.

reading data

This scheme allows us to read data directly off the disk.

If you see an area of holes and marbles that looks like holemarbleholeholemarblemarble, you can read that as 010011.

We’ve found a shared language, legible to both and humans. can manipulate marble and hole just fine, which means it can manipulate 1 and 0 — the first step towards letting it transform data.

We’ll return to this language later, extending it so we can represent more meaningful data. For now, let’s look at how we can use to manipulate these individual 1s and 0s.

continue