Fifty Fizzbuzzes

One of the many things I learned from Evelyn Eastmond in my time working with her is this technique for deeply exploring, releasing yourself from preconceptions, thinking in new ways.

This technique is called “Make 50 of Something”, and to do it, you make 50 of something. In one big marathon. Maybe over a few days, but it’s important to do them one after another, exhausting your possibilities to break and illuminate habits. This is in contrast with thing-a-day or thing-a-week marathons, where you’re making habits and have time to think between things.

50 is a LOT, and it takes you on this weird journey of ups and downs and complexifying and simplifying and combining and taking apart. It can be oddly emotional and intense. It gets at something and teaches us something that is hard to find if we space things out or wait for inspiration.

This technique was meant for artists, but my research group has used it for VR stuff and programming language design too. So now to learn python, over the weekend I made 50 implementations of fizzbuzz.

Fizzbuzz is a classic kids game where you take turns counting, but if the number is divisible by 3 you say “fizz”, and if it’s divisible for 5 you say “buzz”, and if it’s divisible by both you say “fizzbuzz”. Now it has become a common programming exercise and interview question.

Fifty is a lot of programs, even if many are just 1 to 5 lines. It was an intense exercise. The first 20 or so are fairly normal programming exercises. But 50 is a lot, and things start to get weird.

Some of my fizzbuzzes output the solution. Some of them are flagrantly wrong. Some write you poetry, some play you songs.

Some favourites you might check out:

#22, which uses a linear regression and proves AI is smarter than humans.

#32, which plays a quite musical auralization of the algorithm.

#40, a chatbot that will listen to you and write you a poem.

#48, a complete text adventure with sound effects and monsters to fight.

Twitter user @quasiben was kind enough to figure out how to host an interactive version with all the dependencies.

To play with it, go here and click Fifty Fizzbuzzes.ipynb (it might take a minute to load).

It’s also on my github here, where it’s read-only, unless you download the file and run it, for which you’ll need jupyter python stuff. I use Anaconda.


This project made possible by my supporters on Patreon. Thank you, good humans!