Ian's Blog

Coffee goes in, words come out.

Fun With Playbulb

Playbulbs are colour LED lights sold by a company called Mipow. They come with an iOS and Android app that can set their colour and various patterns via Bluetooth. There’s no security on them whatsoever, so any nearby device can connect and change their colour. That seems pretty bad — especially when you consider that as well as the small “candle” style lights we have, they also sell room lighting versions that play music and can probably flash fast enough to trigger photosensitive epilepsy. Controlled by your neighbours!

Despite the security problem, this does have one advantage: it’s easy to get any other device controlling the Playbulb, not just a phone with their official app. Anything with a Bluetooth 4.0 Low Energy transceiver can easily control the Playbulb using tools like those provided by BlueZ under Linux, and the protocol is somewhat understood. This means it’s pretty easy to control a Playbulb programatically using the language of your choice.

Here’s a demonstration I knocked up this morning: mailcheck. This python script checks an IMAP mailbox at a defined interval, and will set the Playbulb colour to red if there are no unread messages, or green (with a brief flash) when you have unread mail. It was inspired by similar “ambient electronic devices” such as Nabaztag. Here it is in action:

It’s BSD-licenced open source, so if you have a Playbulb you want to have some fun with, please take my code and use it for your own ends!

IKEA Navigational Cheats

It was suggested on IRC last night that the sad, cautionary tale of Sultan Hamnvik may have its roots in my simple lack of knowledge — particularly of the “cheats” that allow for easier navigation around IKEA’s torturous, non-Euclidean shop floors.

I’d like to take this opportunity to refute that claim by presenting a set of simple IKEA navigational cheats that I feel will help newcomers avoid the Sultan’s fate.

1. Set off the Fire Alarm

Amid thousands of fleeing people, not only does the fire escape become an exit route that can be used without arousing suspicion, but the Dread Guardians of the Store will be forced to flee also. This gives you the perfect opportunity to make your escape and flee into the night, never to return.

Break glass with IKEA for Mice™ sledgehammer.

2. Disassemble Partition Walls

IKEA is known for forcing its victims on a torturous journey around what, once upon a time, would have been an open space. Luckily, this can be rectified. A number of tools are available for purchase in IKEA, such as screwdrivers, hammers and drills. Use these to disassemble partition walls to open up a more direct route to the exit.

If you have one, wear a high-vis jacket for this cheat. No-one questions why you’re removing a wall if you’re wearing a high-vis jacket.

Beyond the wall lies freedom from tyranny.

3. Man the Barricades

Flat-pack products can, with some difficulty, be turned into functioning beds and tables. With a little more effort they can also be built into functioning barricades, which you can deploy at key points in the store and refuse to leave until the CEO of IKEA is sent to the guillotine. Without its head, the Beast Known as IKEA will slowly disintegrate into dust.

This method will earn you 1240 exp and 300 gold.

And a role in a prominent West End musical.

4. A Class at Miskatonic University

For those who have knowledge of such dark and insidious things as the workings of IKEA, the subtle geometry of their stores can be exploited. Seek refuge in shadow, blend in and slip through darkened corners into worlds of eternal night, emerging at will in other places and other times. Hopefully ones well away from IKEA. Beware the Yellow Sign.

HÜNDEN ÄV TINDÄLÖS, £10.99.

5. Flat is Easy

Navigating the store becomes easy when it is reduced to rubble by a period of sustained naval bombardment. Shelter in the basement until the explosions stop, then emerge to discover a brighter, IKEA-free world.

Croydon IKEA (before bombardment)

6. Through the Wardrobe

Head to the bedroom section and seek out a pine-effect wardrobe called “NÄRNIJÄ”. Enter it to find yourself in a snow-bound fantasy land. You will be harassed by the minions of the White Witch, but I think we can all agree that this is safer and more enjoyable than the average visit to IKEA.

Defeat the witch to emerge in your grandparents’ attic in the year 1942, conveniently giving you the opportunity to stop IKEA from being created in the first place.

The IKEA board of directors meets for the Monday morning leadership briefing.

7. The Only Way to be Sure

Nuke it from orbit. It is, as they say, the only way to be sure.

Some collateral damage to local populations is to be expected, but I think you’ll agree this is a small price to pay to rid the land of the monstrous beast that is IKEA.

All those poor meatballs. Rest in peace, mixed with delicious iodine-131 sauce.

8. An Alternative Approach

Don’t go to IKEA.

All-Terrain Raspberry Pi!

Another year, another childrens’ toy with a Raspberry Pi needlessly attached to it.

Over the past few weeks, I’ve been taking one of my son’s old broken RC toys and turning it into something a bit more fun — by strapping a computer to it, naturally.

The result is the “All-Terrain Pi”, a robot which can be controlled by smartphone as if it were a racing game, or by using the kid-friendly Scratch programming language.

Here’s a video of the smartphone interface. It all runs in the web browser, with no need to install an app on the phone. Full-screen (ish) video streams from the robot’s on-board camera, while speed and turning are controlled using touch and tilt controls implemented in Javascript.

Programming in Scratch is possible too, recreating the 80s/90s Logo “Turtle” experience for a new generation. As with the smartphone interface there’s a Python program behind the scenes controlling the motor driver board, but this time it receives commands via Scratch’s “Remote Sensors Protocol”.

It didn’t take long for my son to get into controlling the robot, both with the game-like smartphone interface and using Scratch, which he has some experience with from school. (They start programming young now!) We took it to last weekend’s Constructorium hackerspace event at the library, where it was a big hit — by the end of the afternoon, he was teaching the grown-ups!

“Proud” is an understatement.

I’ve finished all the things I set out to achieve with this robot, in a total of only 20 hours or so. Thanks to a pre-made motor driver board and a Raspberry Pi camera fork of mjpg-streamer, some of the hardest bits of the project turned out to be very easy, so I’m very grateful to everyone whose work I’ve built upon to create this robot.

I’m hoping we might be allowed to take the robot into school and maybe hold a competition for the kids to write a program to steer it around an obstacle course; or something similar — to make programming more exciting by taking it off the computer screen and into the real world. If the teachers don’t let us do that, we might hook it up to the internet and have it controlled using redstone circuits on my son’s Minecraft server.

You can find a step-by-step guide to how I built the robot on the All-Terrain Pi page and all the code is open source!

Fun With Parental Controls

Now that our son is getting older, it’s inevitable that his computer use is no longer closely scrutinised — we no longer need to be hanging over his shoulder, showing him what to click on.

Although his web browsing habits run only as far as Planet Minecraft and whatever flash game they’re currently peddling on the Disney Channel, the convenience of App Stores means that he has thousands of poorly-made and wholly inappropriate games available at the click of a mouse. It’s time for something I hoped we wouldn’t have to use — parental controls.

I think we have a five-year window at most between enabling them and him discovering proxies, live CD operating systems or that the administrator password is an easily brute-forceable dictionary word.

But even now, they’re a long way from being useful. We initially decided that “12+” was a reasonable setting for the level of control, since Microsoft already considers most of the games he plays to be rated 12. But the user-supplied ratings of games in the App Store make it all kind of pointless. Here’s MSN Sport, rated 16+ in case it contains some truly horrible material, like American Football.

And the much more wholesome Zombie Sniper 3D (“Beautiful 3D visuals!”), rated 12+.

I suppose that no matter how hard the providers try, parental controls never will be a substitute for being there, checking things out; actual parenting.

Another Year Gone By

Lights flicker and fade, drawing the year to a close. Outside, the weather is warming and slowly burning the frost away; a tiny ripple before the wave of heat to come, before it is summer again.

2014 has been a year of travel, with three trips abroad setting a new record for the furthest south and east I’ve travelled across the world — records I hope to beat before too many more years pass.

Madha wadi, UAE-Oman border

This year also contained what felt like at least 24 months stuck in the office writing documentation and trying to get sales people to stop changing the system design every five minutes.

But for all that, the year has really been about friends and family. August was spent between Galicia and Yorkshire, with those branches of the family we don’t often see.

Family in Galicia

It was the year of RABIES 10, an annual party we started at university that, against all logic and reason, is still going after so many years. It still grows steadily year on year, from the 20-person sit-down dinner of 2005 to what’s now a barbecue with a head count of over 50. This was Joseph’s first year in attendance — he brought along a card game and out-geeked the geeks.

Playing Fluxx at RABIES 10

It was the year of my twenty-ninth birthday, the last before the looming milestone of thirty. I still can’t drive a car, but I am married, I have a child, a good job and plenty of friends, and when I think of all that, thirty doesn’t seem so scary.

And it was Joseph’s seventh birthday too.

As December dawned and winter descended, we were surrounded by our family and friends once again — just as always, and I wouldn’t have it any other way.

Christmas with Friends

Christmas with Family

So tonight, I raise a glass — to family and friends, near and far. To all of you.

Happy new year.

Faded Dreams in Winter

Like many, I came of age with a head full of dreams about what my adult life would be like. I thought maybe I’d live in a big old cottage, raise my children in a little village by the sea, have a wood fire burning through the winter and I’d decorate the house for every season. We’d have a garden to grow vegetables and keep hens, we’d have plenty of money and the house would always be tidy, and we’d be together at home each Christmas morning.

This is now my thirieth winter on this Earth. If my early twenties were “about” anything, they were about going with the flow — accepting what life threw my way and learning to be happy with it regardless.

If my late twenties were “about” something, they may have been about letting old dreams die quietly, replaced with newer and more realistic things. It’s inevitable that those dreams needed to fade and die some time; too many are dependent on things outside my control — responsibilities to family and friends, jobs, even the state of the economy that will forever keep that old cottage by the sea out of my grasp.

I have a flat in town and a son in school there; I couldn’t move to the country even if we had the money. I have in-laws to placate and one day will have parents to look after. My house will always be messy and our savings account always empty.

But I have a family now, and friends, and a home here. I am older. Time to let the dreams of a child fade and die like the passing year, and replace them with new ones.

All I Want for Christmas

As December gets into full swing, one of the joyous seasonal activities that must be undertaken is the ritual filling of my Amazon wishlist with a bunch of crap I don’t need. This is all to help those stubborn relatives who can’t bring themselves to believe I’m telling the truth when I say “I don’t want anything”.

What I really want for Christmas is a tree covered in lights, a table to sit my friends and family around, a dinner to cook for as many as possible, a bottle of wine to drink and stories to tell.

But these days, it rarely seems like that’s an option. Every year we are deluged by adverts exhorting us to buy more and more needless stuff in the vague hope that it will make our families happy and our lives complete.

Spoilers: it doesn’t.

Consumerism has given us little but a yearly orgy of spending, credit card bills and vague disappointment; it’s given us nothing but the idea that happiness is inextricably linked to wealth. It’s benefitted not the middle classes and certainly not the poor — it’s benefitted bankers, politicians, advertising executives; the very people we love to hate but keep shovelling money at year after year.

So please, buy less stuff. Stop stressing about finding the perfect gift. Stop binge-buying in sales, stop watching 24-hour telesales channels, stop racking up debt buying things nobody really needs.

Sit down and eat Christmas dinner with your family.

If you must throw money at something, buy dinner for someone who can’t afford it. Give someone less fortunate a place to spend Christmas with their friends.

“Consumer culture” is bullshit, your friends and family deserve better.

Touchdown, Half a Billion Miles Away

On March 2nd 2004, without great fanfare, an Ariane 5 rocket blasted off into orbit carrying a payload designed by the European Space Agency to investigate a nearby comet. Its name was Rosetta, and it set off on one of the most complex gravitational trick-shots we have ever attempted.

Ten years later, Rosetta finally arrived at comet 67P/Churyumov-Gerasimenko earlier this year. An impressive enough feat by itself, the orbiter is already sending back useful scientific data on the structure and composition of the comet. The world was duly impressed, in a reserved sort of way.

But today; today Rosetta set free a payload of its own — a lander named Philae. We watched with bated breath as it slowly fell in the comet’s barelt felt gravity.

Its descent was live-streamed. It was live-tweeted. It was live-comiced.

The comet’s surface approached.

At 16:03 GMT, Philae successfully touched down on the surface of 67P/Churyumov-Gerasimenko. And our nerdy corner of the internet went wild.

Today, after ten years and half a million miles from home, the scientists and engineers of the European Space Agency landed a robot no bigger than a washing machine, on a comet with gravity one ten-thousandth of Earth’s… exactly where they aimed it.

For the first time in our history — for all we know, the first time it has ever been done in the 14 billion year history of the universe — our species has landed something on a comet.

Today, humanity stands proud of its place in the cosmos.

Gathering Dusk

Dusk falls across Dorset, darkening the fields from Christchurch in the east, past me, way past me out to Lyme Regis in the west.

My week is done, and with it October, and with it the harvest and the last of the warmth that summer left behind. The night will grow dark now, and the year cold, until Christmas comes and winter has us in its grip once more.

And so I raise a glass to those departed — men, women and years all the same. My thirtieth summer has come and gone, and many more remain.

To Lugh and to Loki, to trickster gods and the hosts unseelie, I salute you and drink in your name. A happy Hallowe’en and a blessed Samhain to all of you.

On GamerGate

Dear GamerGate supporters, trolls, flamers and everyone associated:

Here is a pale blue dot.

Really, it’s the pale blue dot.

To abuse the words of Carl Sagan: That’s here. That’s home. That’s us. That’s you, everyone you have ever loved, and everyone you’ve ever hated. It’s every videogame player, creator and journalist. It’s Zoe Quinn and everyone she may or may not have slept with. It’s Anita Sarkeesian and everyone who’s ever sent her death threats. It’s all of 4chan and 8chan and Reddit and everyone who’s ever posted there.

We are alone in space, the only inhabited planet we know of in a universe unimaginably wide.

We are the pinnacle of four billion years of evolutionary history. There has never been a species as intelligent and as capable of wonder as our own. Maybe there never will be again.

We have more than any previous generation. We have built great modern wonders that have brought us closer together, allowed us to understand each other better than ever before. Languages and cultures are no longer a barrier to us.

We alone have come together as a species, shared our skills and our technologies, and sent our representatives to other worlds.

So please, can we stop threatening each other on the internet? It’s beneath us, and we should know better.