How to make Karma / Jasmine tests fail on console errors

I had a good google for this problem, and couldn’t find a solution, so I though I’d put my own here.

I’m running Jasmine tests through Karma. One of the components I’m testing logs error messages to the console, which is the desired behaviour in production but makes testing hard because methods fail silently.

This code snippet causes any calls to console.error(message) to throw an exception, ensuring that any tests that trigger errors will fail.

Continue reading How to make Karma / Jasmine tests fail on console errors

Daphne’s tweeting catflap

Daphne the Wondercat: monarch, fluffball, evil genius.

daphcrown-2_400x400Daphne often takes to social media to rant about the inadequate service provided by her staff (tech journalist Kate Bevan). This activity is cathartic, and highly recommended for any household pet. Unfortunately, Daphne’s catflap was until recently mute, and couldn’t tell the world about its thoughts and feelings.

This was a pity, because Daphne’s catflap actually has a lot to tell the world. You see, the catflap *loves* daphne. Each time daphne passes through, its universe lights up with joy. Every time Daphne’s whisker brushes against it, a tremor of excitement passes through its little plastic body.

In this project, we gave the catflap a voice.

Continue reading Daphne’s tweeting catflap

Bernie’s Big Web Graphics Programming Environment Shootout

In which I harness the power of public expectation to motivate myself to write more software posts, by loudly committing to write a series of three.

A graphics programming environment is a language or library suitable for drawing pretty patterns. In this series I’m interested in raster drawing environments, in which you can directly manipulate pixels rather than using higher level constructs like HTML or SVG. I intend to implement the same app in several different environments and compare the results.

Continue reading Bernie’s Big Web Graphics Programming Environment Shootout

Introducing OGRE

I have a project to show y’all. I’ve been working on it in my spare time for the last half year, and while its not yet complete enough to be considered a product, the underlying technology is solid.

OGRE is a platform neutral technology for taking a data set on a server and creating real-time replicated slaves on clients. It’s fast. Very fast. It’s also highly extensible so it’s likely that OGRE can be adapted to fit your project, not vice versa.

Continue reading Introducing OGRE

A full page map for WordPress and WP Geo

You might want to skip to the installation instructions or read this article in Serbo-Croatian care of Jovana Milutinovic, French from Kate Bondareva, or Kazakh by John Vorohovsky.

When I started writing a travel blog almost half a year ago, I had a specific vision of how it would look. I wanted a big world map, onto which I would drop little pins. Each pin would be a single blog post, and clicking that pin would allow you to read the post in one of those little Google Maps speech bubble thingies.

Continue reading A full page map for WordPress and WP Geo

Inamo case study

This case study describes my role in the creation of inamo: a restaurant quite unlike any other.

At inamo, customers sit at square white tables illuminated from above by a projector. The Flash user interface presents an animated menu that customers use to place food and drink orders. These orders are sent directly to the kitchen, from where they will be delivered to the customer “in a moment” (Ha! get it? No, I didn’t come up with the name).

When the two company founders needed a software architect to turn their ideas into working software, they hired me. We developed prototypes, worked with hardware designers, designed production software, built the first restaurant installation and hired a team of developers to continue work on the product. Three years later the concept is receiving rave reviews and is being marketed around the world.

Continue reading Inamo case study