ZeroOne: the editor for programmers who think in binary

February 19, 2011

One of my buddies has turned into a bit of a Pinball Junkie lately.

That's a picture of him above. He takes things to extremes.

His new goal in life is to get his name at the top of the high scores.

Which left a few of us wondering how data entry works on a pinball machine.

If there are only two buttons, left and right, it must be hard to enter your initials for the high score. My guess was that you'd scroll back and forth through the letters, but I wasn't sure how you'd confirm your letter, once you found it. Rhys was confident that you could do it with only two options, by some kind of binary tree navigation exercise.

How could a pinball machine inspire a programmer's editor?

The conversation quickly devolved into a design for an editor with just two buttons, one and zero. This would be a serious improvement over fuv.

You might have seen this famous cartoon before: 'Real Programmers Code In Binary'

(I'm not the only person annoyed by the extraneous use of an 'enter' key in that image... I've gone and fixed that.)

And of course you've seen the infamous xkcd 378 which deals with the same topic.

So Build It Already

As soon as I had a chance I started work on just such an editor, and it's available now from codeplex.

Visit ZeroOne on codeplex

And you can download it, too:

Download ZO.exe

Only two buttons are needed for input - Zero and One. So the editor is called ZeroOne, or 'zo' for short.

If it helps, you can think of one and zero as the left and right buttons on a pinball machine.

If you enter 'esc' (by typing 0011011) you enter 'Command mode'.

In command mode there are three commands - 'o' (open), 's' (save) and 'q' (quit).

For example, in command mode if you enter 'oc:\fred.txt' the first letter is the 'o' command and the remainder is the file path and name. So a file 'fred.txt' would be opened from 'c:\'.

To save a file you need to specify the filename. E.g. 'sc:\fred.txt'. Again, the first letter ('s') is the command.

To execute your command, enter a line feed character (0001010).

To exit command mode, enter 'esc' again (0011011).

If you press any key other than Zero or One, your document is wiped. (This is a fuvism) See screenshot at right.

If you send the wrong character into the editor, ZO can be quite forgiving: you can enter a Backspace by typing 0001000. There are no navigation commands though, so you should endeavor to enter the right text from the very start.

I've put together a short screencast to demonstrate ZO in action.

ZeroOne - the editor where you can only press Zero and One from secretGeek on Vimeo.

... and what was my friend's reaction when I showed him ZeroOne in action? I think his face says it all:

My book "Choose Your First Product" is available now.

It gives you 4 easy steps to find and validate a humble product idea.

Learn more.