Archive for the ‘Open Source’ Category

Wuthering Bytes 2014 Talk – SPI and I2C

Tuesday, August 19th, 2014


Here are the slides to the SPI and I2C talk I gave at Wuthering Bytes 2014 at Hebden Bridge, here in the UK.

WutheringBytes 2014 Talk – Linux Bootloaders and Kernel Config

Saturday, August 16th, 2014


Here are the slides to the Loaders talk I gave at Wuthering Bytes 2014 at Hebden Bridge, here in the UK.

OSH Camp 2012 – Flickr Group

Thursday, September 20th, 2012

There is a Flickr group for the Open Source Hardware User Group (OSHUG) and photos from this years camp have been uploaded to it. The photos below are courtesy of Carrier Detect. The group can be found at

Me speaking

Hippiegunnut interfacing to her Pi

OSHCamp 2012 Talk – Developing Linux on Embedded Devices Slides

Saturday, September 15th, 2012

Here are the slides to the talk I gave at Open Source Hardware Camp 2012 here in the UK.

Upgrading your UK T-Mobile Google G1 (HTC Dream) to Android 2.x

Friday, October 22nd, 2010

I’m currently developing a new project. Its a bluetooth enabled bracelet. I wanted to write an iPhone app to control it. However, much as I like my iPhone 4, Apple’s policy about locking the thing down sucks. So I then looked at writing an Android application for my G1. The problem with that is that bluetooth support only arrived in Android 2.0 and T-Mobile/HTC ceased upgrades at 1.6 on the G1. Since my G1 is two years old and out of contract I decided to be brave and upgrade it to Android 2.2. Note the G1 is called the HTC Dream in many markets.


Maker Faire UK 2010

Thursday, April 22nd, 2010

So in the middle of March I was panicking about whether I would get everything ready in time for Maker Faire UK. Like last year Maker Faire UK was held at the Life Science’s Centre in Newcastle-upon-Tyne as part of the Science Week there. Unlike last year, this year I had been accepted as an exhibitor and was going to display a variety of projects, so I took the Friday as vacation for final preparation and I needed it. (more…)

DPC – Dutch PHP Conference 2010

Thursday, April 22nd, 2010

Rather belatedly I am delighted to announce that I have been accepted to speak at the Dutch PHP Conference in Amsterdam this June. DPC is the premier European PHP conference and is sponsored by iBuildings.

I will be running a tutorial Writing a PHP extension in C and speaking about Web Sevices for Consumer Devices. I look forward to seeing you there.

Manchester Geek Girl Afternoon Tea

Monday, January 11th, 2010

While I’m announcing appearances I am excited to announce that I am presenting an Arduino workshop at Manchester Geek Girl Afternoon Tea this month at Madlab, Manchester’s Hackspace in the Northern Quarter.

I will be bringing a long several Arduino-a-likes together with a variety of components and CDs of the IDE so that we can get together in groups, code and play.

T’info about Dash

Thursday, December 24th, 2009

Once upon a time there was the Bourne command shell. sh as it is known is core at the heart of any UNIXy type operating system and others too. However for some it didn’t do enough so the Bourne Again shell, bash, was written and nearly every system ships with that. These shells are not the same. The have similar syntax but do not behave similarly.

There are other shells which have a completely different syntax and other scripting languages such as Perl and PHP so when writing a shell script you can indicate the correct interpreter using the ‘hash bang bin bash’ comment to indicate you are using bash. I.e.


Some lazy programmers don’t indicate the exact shell they require and use


to mean bash when it means sh.

Ubuntu, in their wisdom, have decided to go for dash as their shell. It is an evolution of the Almquist shell and is smaller and lighter weight than bash however they install bash anyway. dash and bash have the common subset of sh commands but are different. So if you find you have a problem building or similar on Ubuntu it may be that the wrong shell is being used. Ubuntu has a symlink as follows:

lrwxrwxrwx 1 root root       4 Mar 29  2009 sh -> dash

You may need to change this to point to dash as follows:

$ cd /bin
$ sudo rm sh
$ sudo ln -s bash sh

While we’re handling Ubuntu oddities building against NCurses, the terminal output library, can also be problematical. A little while ago NCurses was split in to two libraries, and Some badly written software will try and link explicitly with directly rather than trying first. Ubuntu does not split these two libraries but provides just the one library so if you have an issue with a missing you will need to add symlinks in to your library directory as follows:

$ cd /usr/lib
$ ln -s
$ ln -s

Building PHP C extensions on Ubuntu 9.10

Tuesday, December 1st, 2009

I have just taken over maintenance of the PECL Direct IO extension as it has been unmaintained for a while. Naturally the first thing I did before writing any new code was to check out the extension from SVN and try and build it. Building the source was fine but when I tried make test it failed producing output like the following:

PHP Warning:  PHP Startup: Unable to load dynamic library 'modules/' - 
modules/ cannot open shared object file: No such file or 
directory in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'modules/' - 
modules/ cannot open shared object file: No such file or 
directory in Unknown on line 0

The default PHP package on Ubuntu 9.10 is fairly minimalist. Most extensions are provided as separate packages which include an INI file and a dynamic library. The dynamic library is stored in:


And the INI file for each extension is in:


The make tests rule in the generated Makefile in the extension you are compiling modifies the path that PHP searches for extensions by to point to the modules directory within the extension source. So PHP, which is used to run the tests, cannot find the extensions.

I’ve found the easiest way (if slightly hacky) to fix the make test failure is just to copy the .so files from the PHP5 extension directory in to the modules directory within the extension source.