ADS-B receiver – Want Better Results ? Give away technology. 

A raspberry pi I bought in a NYC vending machine and left in cupboard in Faridabad, India found it’s way to Los Angles, USA in 2016. I was a little surprised, as I have also left a unopened bottle of Bombay Sapphire which was untouched.

The Raspberry Pi is a single-board computer about the size of a credit card.  My very clever cousin, Ankush, an avid aeronautical enthusiast turned the device into a ADS–B. I had to look it up too. Apparently ADS–B determines an aircraft position via satellite navigation. He told me that to buy a commercial device it would have cost him about $800-$1000 or more. This one cost him around $140 and it included dual band, weather and traffic reports.  On the ground trials produced traffic reports for a 60 kms radius but he is hoping to track 150+ when he finally gets the device on a plane.

He told me “It wasn’t a big deal. An hour. Just assembly and some tweaking. Need better spanners “!

Productivity Algorithms for Humans – The Zero Inbox and The Happiness Diary

In 2011 I was working flat-out but stopped for lunch with Steve. He was buying. As part of thanking me for a work introduction he imparted his productivity techniques from his workshops that cost gillisions. Steve (hi) I do hope they cost gillisions. Three days later I was on the phone to Steve berating him for his advice. It wasn’t his fault we had an Olympics to stage and we still had several years of work to fit into a year.

So began my quest for inbox sanity.

It seems the world has recently caught up with its perpetual circulating internet articles of life hacks. Why are we obsessed with hacks ? When I write code I want it to be gorgeous, poetic, readable. A classic. Algorithms for the soul.

Obviously that isn’t what happens. My code gets unwieldily as does my task list and those productivity techniques become pesky distractions as does reading those hundreds of productivity articles on twitter. So this post is about documenting and refining how I manage my task list via my diary and how to avoid being a slave to constant flow of email’s.

Email Processing

The goal of the algorithm is to reduce the amount of time we spend looking at our email. An empty inbox.

This algorithm is solid. Refined over several years. I start each working day with it and I reach for it when I am feeling overwhelmed. Just the art of processing my e-mails has a soothing effect.

Mind you, so does a Gin and Tonic. Just like the state guidelines on drinking too many Gin and Tonic’s it is important to limit how many units of email’s you process a day. I suggest running the algorithm once a day max twice. Some people like to do this before stopping work so they can unplug from work knowing they are done. I like to do it as I start work like a clear desk it’s less distracting as most of my work involves writing an email.

Continue reading “Productivity Algorithms for Humans – The Zero Inbox and The Happiness Diary”

How to Attempt a Guinness World Record

On Saturday 13 June, The British Computing Society Women brought together 1093 people across 30 sites in the UK to attempt a Guinness World Record and promoted it as an Appathon. This is what I learnt;

Not getting your first choice can be good.

I signed up to the challenge late. Of course I did. So I ended up at The Crystal one of the world’s most sustainable buildings. Located in east London its somewhere I had never been before. They kindly threw open their doors to their cities exhibition which was fun.

Kids are programmingProgramming Class

With so many articles about skills shortage in the industry, to find myself in a room of kids and their parents who knew tons about programming, lifted my spirits.

I love programming

I had forgotten how much I loved this stuff. For the second time this year BCS had taught me a programming language and boy am I delighted. Continue reading “How to Attempt a Guinness World Record”

What WikiReverse Teaches Me

Some weeks you talk to your colleagues and watch a documentary and feel unprepared to understand the world. This was one of those weeks. Ross was back in Camden and the last time he was here he had helped me take baby cloud steps while he got started on WikiReverse.

Two and bit years later WikiReverse has been launched and this is what I learnt.

There is this thing. Its called the Common Crawl.

Really – you have crawled the internet again. Again ? Haven’t we been doing this since gopher was mistaken for a red squirrel and everything was still in black and white, or was that black and green ?

Unlike Ross I  wasn’t really that excited, when, back in 2012 Common Crawl, using Nutch, started dumping everything they found on the Internet into Amazon (AWS). Making it accessible for free (yes as in freedom).

But today I am much more interested in the Common Crawl project because…
Continue reading “What WikiReverse Teaches Me”

VPython 3d Programming

A few weeks ago I headed over to Finland and upon arriving in Helsinki was greeted with a pot luck picnic. Somewhere between courses of rogue jaffa cakes and polenta lasagne I met Andrew.

Screen shot 2013-07-21 at 13.36.06

I was forwarned, Andrew was a programmer. A keen fish enthusiast displaced from his home in kentucky USA he had chosen vPython to create himself a fish tank. A few weeks later I invited him to address the various iris digital teams scattered between London and Asia.

Andrew spoke about VPython, simple and clean 3d programming. It takes minutes to set up and launch. Actually it took me a while because my machine ran out of battery. However Bouncing Ball the hello world of this language took 15 seconds to launch. The guys in London got it launched while the talk took place.

Screen Shot 2013-07-20 at 8.16.29 PM

Londinium MMXII Hackathon.

As the Olympics opened its crazy schedule of sports Hackathon was taking place at near Tottenham Court Road in London.

Just in case you are wondering I couldn’t possibly attend as I was mostly sleeping, working or watching beach volleyball that weekend. In fact I was mostly sleeping, as at that point I had worked five nights straight.

I digress, details on the Hackathon can be found at;

And the result web page

I was a bit disappointed that non of my lovely travel data. However I think there are genuinely a couple of great ideas here for future sporting events.


Travel, Open Data, London 2012, Wired Magazine

Working with the Olympic Delivery Authority (ODA) it seemed important to ensure that as much road and travel changes due to staging the biggest sporting event in the word made it into the public domain.

For spectators this means a dedicated website with travel information organised by the rail operators a year in advance on the web and mobile.

Road data has been released under an open data structure as part of an agreement that has seen the ODA’s Travel Demand Managment team working closely with Transport for London. Wired Magazine explains more.

Inspire coders, value coders and make coding accessible

The lovely Dr Sue Black has created a little facebook poll asking us about our first programming language. Mine was Basic. I must have been 12. My family were on the usual Saturday drudge around central Milton Keynes shopping centre. Instead of spending it in the library we wandered into a store selling computers and walkman‘s. My dad walked up to a computer and showed me how to program the following ;

10 Print "Hello World";
20 Goto 10;

Within a week I was locking up school computers with naughty hacks of the above. Within a year I was buying computer magazines and copying out assembler code on my Acorn Electron.

It wasn’t my first machine. That was a games console called Soundic. I was 4.  Continue reading “Inspire coders, value coders and make coding accessible”

Mac, MS Exchange and Mobile Phone Happiness

For the longest time I have wanted a Calendar that works as well as an IMAP e-mail account. Every time I change my phone or computer I spend ages getting set up. A remote access Calendar will save me oodles of time.

After the death of my iPhone, my requirement for a remote hosted calendar become urgent. The obvious choice is Google. Frankly it creeps me out Google will  happily trawl your content in the hopes of better advertising. I know it’s not a sentient application but I wouldn’t let anyone read my diary or correspondence, so by extension, potentially bug ridden programs are objectionable.
Continue reading “Mac, MS Exchange and Mobile Phone Happiness”

Where my iPhone thinks I have been

After all the fuss this week I decided to see if my iPhone really tracked my movements or like my iPhone Google maps it was flaky. It was flaky.

I used Peter Warden’s nifty code iPhoneTracker.

This is my ski trip to Norway. I love the cluster of 4 spots north of 253. I didn’t go there, but there was a transmitter up on that side of the valley.

iPhone Tracking


My First Steps with Ruby On Rails

It is time I become acquainted with the Ruby programming language. It served me well on a recent project and my friends at Indaba Music love it.

Installation on a Mac

I did try the following, but I think actually you can go straight to the tutorial and follow the steps there.

  1. Download the latest zip file
  2. Unpack into a directory and move into your directory
  3. Open a Terminal
  4. cd from your home directory into the new directory  (cd rubygems-1.3.X/)
  5. run: sudo ruby setup.rb


It appears that Ruby on Rails has changed a lot between versions. So starting the server was harder than the Internet said it would be (as script/server approach has become defunct). So I spent some time getting confused by online tutorials, such as Apple. Installing XCode from the Apple Developer Center however was useful.

Learning Rails

I have found much more joy by following the tutorial at and a basics tutorial. Oh and my good friend jcn helped explain some stuff too.

Creating a Basic Form

Next I wanted to create a basic HTML Form where the Controller catches and processes the results. I got most of what I needed from an online answer. However I needed to know that creating the controller is done at command line using

rails generate controller Searches

and then place in the following code.

class SearchesController < ActionController::Base


def search

lookup = params[:lookup]

@models = Model.find_by_lookup(lookup)



And place in the following code for the view.

<% form_tag searches_path do %>
<label for="lookup">Lookup</label>
<%= text_field_tag :lookup %>
<%= submit_tag "Submit" %>
<% end %>

But the stumbling block for me was linking the View to Controller by placing the following in the config/routes.rb file

resources :searches

Drupal’s Invite Module Install Notes

Recently we added a competition to to encourage our current users to invite their friends to use the website.

After much research we chose the Invite Module.  When downloading this module grab the token module as well.  Upload both modules to your Drupal Server and extract. I can never remember how to do this so I use a video to remind me.

First enable the Token module in your admin section of Drupal. Once done go back and enable the  Invite Statistics and Invite at the same time

For the “Invite a friend” appeared in exactly the right place on the left hand navigation. However this can be changed in the admin section.

Next customise the way the email is written and test that it works.

Finally for SEO  add a page talking about your new function or in our case the competition. Then add a link on a menu that is visible without logging in.

Now tell the the people using your site about your cool new recommend a friend function.

Drupal Logs and favicon’s

Where are my Drupal Error Logs ?

Weirdly I found them inside the Admin http://[domain]/[site name]/admin/reports/dblog.

However I don’t know where this is physically on the server.

How do I add a favicon.ico ?

I added the icon to both the root and the /[site]/misc/ location where I found the drupal favicon. Then remembered that I needed to refresh the cache inside the Drupal   /admin/settings/performance section

Mac, Drupal and XAMPP

Loving XAMPP . It’s a kin to having the messiah arrive in Trafalgar Sq without media coverage.

The team on suggested I use XAMPP when I asked for a replica dev environment on my shiny new Mac. As I used to have a 10 page installation guide for Digital Deli (a LAMP setup) I was somewhat reticent to embark on this adventure. Especially on a mac, which reminds me of the La Nausée opening chapter by Jean-Paul Sartre

Firstly check out . If you are also installing Drupal then ignore it’s flipant remark of getting the latest version. Instead get the one that has a php version in line with the Drupal you want.

So I used version o.7.1 which uses php 5.2.9 and drupal-6.15. As did the dev team at

As a slow newbie it took me a couple of hours to find the sexy self installing version in the complex folder structure on sourceforge. Scroll down to XAMPP for mac and download the dmg version.


Tracking Vists on another website is a Clothes Size Calculator which recommends great clothes based on your actually body measurements.  This month I want to track my visitor journey on third party websites to establish how well is doing in finding the right clothes  for our users. uses Google Analytics and after a heck of a lot of surfing (hence this post) I found an article on the Google Analytics website that might help. To test the article I created a basic html page on another completely different domain (

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <title>My Page Title</title>

Step 1

Step 1 of the google article isn’t clear, but assuming you have already implemented Google Analytics on your main website and it’s working, simply copy this same tracking code and paste it between the <head> tags on the external page you wish to track.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <title>My Page Title</title>
 <script type="text/javascript">
  var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
  document.write(unescape("%3Cscript src='" + gaJsHost + "' type='text/javascript'%3E%3C/script%3E"));
 <script type="text/javascript">
  var pageTracker = _gat._getTracker("UA-xxxxxx-x");

Step 2

Simply ask add a few tracking parameters to your normal link to the third party site. So mine is as follows ;

<a href=”” onclick=”pageTracker._link(this.href); return false;”>Testing Link</a>

But lets face it my nice visitors on whatsmysize are going to wander around the third party website so just link through the page that makes sense on that site and when they get to the page that needs tracking google will work it out.

<a href="" onclick="pageTracker._link(this.href); return false;">Testing Link</a>

Step 3

Finally we want to track what money has been spent on the third party site. So lets use the addTrans function as found in the api.

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "' type='text/javascript'%3E%3C/script%3E"));
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-7680084-1");
"[order ID]", // order ID - required
"[reference name]", // affiliation or store name
"[order total price]", // total - required
"[vat]", // vat
"[shipping cost]", // shipping
"[customer city]", // city
"[customer state or shire]", // state or province
"[customer country]" // country
// the following add item ideally will be called for every item in the shopping cart
"[order ID]", // order ID - necessary to associate item with transaction
"[SKU]", // SKU/code - required
"[product name]", // product name
"[description]", // category or variation
"[item price]", // unit price - required
"[quantity]" // quantity - required
pageTracker._trackTrans(); //submits transaction to the analytics servers
} catch(err) {}

Test it is working

Once done and a you have clicked through a few times we can check Google is tracking this new page. Open up your Google Analytics account and navigate through to  Top Content and you should see an entry for this page you are tracking. You may have to wait a while (in my case two hours) before Google updates itself.

entry in google analytics


my first website

Update : I can’t find the code but this what I said about it for my final year programming class in May 1996;

This assignment is designed to implement a Web page which demonstrates the use of a form. The form initiates a CGI script at the server. As requested the form demonstrates the use of;

Input Boxes (radio, text and checkboxes).
Selection Boxes (multiple and single selections).
Inputs A Block Of Text.

The CGI script;
accepts the form and validate it -invalid entries produce a request to reenter data