The RoboPet Hack Project

We here at the BBC have become unhealthily obsessed with a new toy. Or, rather, an old toy. This little guy had been hiding out in the BBC storage vaults for a decade or so, and it is high time to bring him out to play.

The RoboPet

The RoboPet is puportedly an autonomous robotic dog, and given the limitations of the technology (and price point — this is a toy) of the day, it comes amazingly close. But if it’s going to become a full-fledged autonomous member of our cabal, then it needs to come much closer. And we’re going to help it reach this next level of evolution.

We already have a good start: we have inserted a small computer between its infrared receiver and its existing microcontroller, so we can embed programs into it that can do anything that can be done through the remote control. Ultimately, this isn’t good enough, but it will do for now.

You can find all the gory details of what we’ve learned and done over here. There is probably enough information there that you can replicate our efforts. We even have software!

Technodeterministic Utopian Chaoticians

chicken eggAnne Galloway made me think:

[…] these attitudes still suggest that wireless technologies were considered inevitable in the sense that someone was going to create them and push them out into the world. Interestingly, no one I spoke with considered herself or himself to be that someone. Nonetheless, almost everyone described their work as something they felt compelled to do so that these technologies were rolled out in the best (according to them) ways possible.

I think there is something simultaneously technodeterministic and utopian about all this. Continue Reading →

The Ook! Programming Language

Ook OokOok! is a programming language designed for orang-utans. Ook! is essentially isomorphic to the well-known esoteric language BrainF***, but has even fewer syntax elements.

Another minimalist programming language like Brainfuck and Whitespace, but this is objectively the funniest. Go here for more information about Ook!

Continue Reading →

The Brainfuck Programming Language

Brainfuck is the original minimalist programming language. With just 8 instructions, it is nonetheless a Turing-complete language that can be used to perform serious work. If you’re completely insane. To get an idea of how insane, here is a working BF program that prints its own source code:

->+>+++>>+>++>+>+++>>+>++>>>+>+>+>++>+>>>>+++>+>>++>+>+++>>++>++>>+>>+>++>++>+>>>>+++>+>>>>++>++>>>>+>>++>+>+++>>>++>>++++++>>+>>++>+>>>>+++>>+++++>>+>+++>>>++>>++>>+>>++>+>+++>>>++>>+++++++++++++>>+>>++>+>+++>+>+++>>>++>>++++>>+>>++>+>>>>+++>>+++++>>>>++>>>>+>+>++>>+++>+>>>>+++>+>>>>+++>+>>>>+++>>++>++>+>+++>+>++>++>>>>>>++>+>+++>>>>>+++>>>++>+>+++>+>+>++>>>>>>++>>>+>>>++>+>>>>+++>+>>>+>>++>+>++++++++++++++++++>>>>+>+>>>+>>++>+>+++>>>++>>++++++++>>+>>++>+>>>>+++>>++++++>>>+>++>>+++>+>+>++>+>+++>>>>>+++>>>+>+>>++>+>+++>>>++>>++++++++>>+>>++>+>>>>+++>>++++>>+>+++>>>>>>++>+>+++>>+>++>>>>+>+>++>+>>>>+++>>+++>>>+[[->>+<<]<+]+++++[->+++++++++<]>.[+]>>[<<+++++++[->+++++++++<]>-.------------------->-[-<.<+>>]<[+]<+>>>]<<<[-[-[-[>>+<++++++[->+++++<]]>++++++++++++++<]>+++<]++++++[->+++++++<]>+<<<-[->>>++<<<]>[->>.<<]<<]

Fortunately, we know who to blame for this monstrosity:

Brainfuck is the ungodly creation of Urban Müller, whose goal was apparently to create a Turing-complete language for which he could write the smallest compiler ever, for the Amiga OS 2.0. His compiler was 240 bytes in size.

Learn much more about Brainfuck here.

Naturally, where BF pioneered, others followed. If you don’t find Brainfuck mind-bending enough, we recommend this variation: Whitespace

When Music and Code Dance With Each Other

There are many things in my life, and particularly in my youth, that helped me to become a successful software engineer. One of the most important of them, and one of the most surprising, is music. For a while I was equally interested in both, but eventually a choice had to be made. I chose programming and gave up the music.

The music never left me, though. Composing music is conceptually the same as writing a computer program. In both cases, you are writing detailed, exacting instructions in a special language. In both cases, the instructions you write are being interpreted through an outside agency, and you have to take into account the peculiarities of that agency to get the results you want. In both cases, the overall flow is just as important as the getting the exact notes right.

Continue Reading →