it’s a blog, yo — by brian copeland

MonthFebruary 2020

The Reverse Geocache Puzzle

You’ve heard of geocaching, right? Go to a location specified by GPS coordinates and find a hidden cache?

Mikal Hart created a box with a GPS inside that only opens when the box is at a set of GPS coordinates.

…a puzzle box that won’t open until it is taken to a certain location.

Quoted from http://arduiniana.org/projects/the-reverse-geo-cache-puzzle/

It’s such a cool idea, I really want to be the kind of person that makes something like this. I especially love the end of his writeup:

This little box is a novel way of combining a GPS, a servo, a button and a display. How many more marvelous combinations lurk out there, if only someone has the imagination to put them together the right way?

Quoted from http://arduiniana.org/projects/the-reverse-geo-cache-puzzle/

Fizz Buzz Enterprise Edition

This one’s hard to explain unless you’re a programmer, so bear with me…

The first thing you learn when programming is how to print “Hello, world!”. Very shortly afterwards, they teach you to do something slightly more complicated, the “fizz buzz” problem, meant to teach children about division:

[Children] generally sit in a circle. The player designated to go first says the number “1”, and each player thenceforth counts one number in turn. However, any number divisible by three is replaced by the word fizz and any number divisible by five by the word buzz. Numbers divisible by 15 become fizz buzz. A player who hesitates or makes a mistake is eliminated from the game.

quoted from https://en.wikipedia.org/wiki/Fizz_buzz

It’s not meant to be hard, just a toy problem to program. The code you write should output something like:

1
2
fizz
4
buzz
fizz
7
...

Working in Corporate America™, you code differently. Clear, concise code doesn’t get you ahead: “scalable”, jargon-filled code does. You’re supposed to write code that can run on computers around the world and serve billions of users. If one’s code is too simple and straight forward, the bosses will think one’s work is too easy.

Enter one of my favorite coding projects: Fizz Buzz Enterprise Edition.

FizzBuzz Enterprise Edition is a no-nonsense implementation of FizzBuzz made by serious businessmen for serious business purposes.

Project description from Fizz Buzz Enterprise Edition

Normally, fizz buzz can be written in a few lines:

for number in range(1, 100):
    if number % 3 == 0 and not number % 5 == 0:
        print("fizz")
    elif not number % 3 == 0 and number % 5 == 0:
        print("buzz")
    elif number % 3 == 0 and number % 5 == 0:
        print("fizzbuzz")
    else:
        print(number)

Fizz Buzz Enterprise Edition (FBEE) spreads this same logic across dozens of files. It’s really a work of art.

Now, explaining a joke sorta kills it, but here’s a few bullet points to help you get the joke. FBEE:

  • …is configurable to print on numbers other than 3 and 5
  • …can alter what “division” means
  • …has a rigorous testing package to ensure it performs accurately
  • …features a Contributor Code of Conduct

Not being a java programmer, my eyes sorta glaze over reading it. But I really appreciate the effort put into it. It’s also an open source project, which means anyone can contribute. This leads to a ton of issues raised by the community, such as #429:

It is apparent that people are pirating FizzBuzzEnterpriseEdition at an alarming rate, which the Accounting and Finance Team says is having a dramatic effect on our bottom line.

We need to look into options to protect our investment and our IP. I suggest some kind of Enterprise license manager with a USB dongle and quarterly subscription model.

Issue #429 submitted by drelephant

There’s a special place in my heart for a joke being taken as far as possible.

Woodburn Fractals

It’s a month into 2020 and I’m still clearing out my todo list. I don’t know about you, but I have a habit of bookmarking things I love with the intent of returning to them. But those bookmarks sit dormant and start to weigh me down with regret; why aren’t I doing cool stuff like this?!?

Because it’s a new decade, it’s time for a new approach. For the next several days, I’ll be blogging a few things I’ve stumbled across that inspire me. These are things I wish I had done myself, but it’s time to admit defeat and just admire the creativity of others.

First up is this amazing project where Kevindk9 saturates particle board wood in water, then uses a microwave oven transformer to burn beautiful patterns in said wood.

If you browse Kevindk9’s profile, it looks like he does a ton of cool stuff. Browse the gallery for some amazing close-ups of his work, then browse his profile for other crazy science-art. You won’t be disappointed.