Blog feed

Setting up Raspberry Pi in headless mode

6 Sep 2017, 11:13 p.m.

Quick notes (mainly for myself) to make SD card of Raspbian, configure wifi and make SSH run - all before booting the Raspberry Pi.

Read more…

Simple Transistor Guide

19 Jan 2017, 10:31 p.m.

Using transistors can be very frustrating if you don't know what you're doing. These are some basic steps I go through when I want to find one that will do the job and then wire it up. Hopefully this should be just enough information for you to switch things on and off.

Read more…

Laser mapping a home

18 Nov 2013, 3:59 p.m.

My employer, onefinestay, ran a tech team off-site event recently over a couple of days. I suggested an idea of using laser range finding equipment to map the layout of a home and a group of us got to work on a solution. A full description of what we did is on our tech blog so check it out.

Read more…

Using an SSH server as a SOCKS proxy

2 Oct 2013, 1:49 p.m.

SSH has support for SOCKS built in. If you have a remote SSH server you can use it as a proxy for web and other traffic.

Read more…

Compressed swap RAM

11 Feb 2013, 11:34 a.m.

I've been trying zram recently and have found it keeps my laptop very responsive when I would otherwise run out of physical RAM. It seems distributions like Ubuntu are considering turning this on by default but the the support already exists in most recent kernels and there are scripts (and a package in Ubuntu) to set it up easily.

Read more…

Samsung laptop firmware update check from Linux

1 Dec 2012, 12:07 p.m.

Update 2013-06-01: I now have a script that makes it easy to check for BIOS updates: samsung-bios-check.

Read more…

Simple Gnome Keyring reading with Python

17 Nov 2012, 6:07 p.m.

If you've ever need to write a script that needs a password to perform some sort of login, keeping that password in Gnome Keyring is a good idea as it will be properly encrypted with very little effort. I chose to manually add a password to a keyring using the GUI and then access that password with Python. The function below is all that is needed once you know the name of the keyring and the password. If you store your password under the 'login' keyring, it will be automatically unlocked when you login to your desktop session.

import gnomekeyring as gk

def get_password(keyring, name):
    for key_id in gk.list_item_ids_sync(keyring):                               
        item_info = gk.item_get_info_sync(keyring, key_id)                      
        if item_info.get_display_name() == name:                                
            return item_info.get_secret()                                       
    raise KeyError('No such password \'%s\' in keyring \'%s\'' % (name, keyring))

Read more…

VirtualBox networking for web development

16 Nov 2012, 10:07 p.m.

At work our development machines have quite a large stack of software including search services, database servers and other tools that are required to run the site. I like to upgrade my desktop linux distribution more regularly than we would upgrade servers, however this can cause problems with the web stack required for development. For this reason I decided to run the web stack as a VirtualBox virtual machine but there are a few networking scenarios that needed the be accounted for.

  • I needed to be able to access the internet from the guest VM to download package files etc.
  • I needed to be able to communicate directly between the host and guest VM even if there was no network available due to travelling outside the office.

Read more…

Recommended Gnome Shell Extensions

15 Nov 2012, 7:58 p.m.

Here's a list of some plugins I use with Gnome Shell and Gnome 3:

Read more…

Natural/Reverse scrolling

14 Nov 2012, 10:38 p.m.

I like using my touchpad/trackpad to scroll by emulating pushing the page like a touch screen phone or tablet rather than copying the action of a wheel mouse. This is often referred to as natural, reverse or inverted scrolling.

Read more…


Code (GitHub)

  • pushed to master at /photo-dataset-scraper
    4 months, 2 weeks ago
  • starred /photo-dataset-scraper
    4 months, 2 weeks ago
  • starred /tensorflow-image-classifier
    4 months, 2 weeks ago
  • pushed to master at /photo-dataset-scraper
    4 months, 2 weeks ago
  • pushed to master at /photo-dataset-scraper
    4 months, 2 weeks ago
  • pushed to master at /photo-dataset-scraper
    4 months, 2 weeks ago
  • starred /photo-manager
    4 months, 2 weeks ago
  • starred /photo-manager-classifier
    4 months, 2 weeks ago
  • pushed to master at /photo-dataset-scraper
    4 months, 2 weeks ago
  • created branch master at /photo-tag-dataset-scraper
    4 months, 2 weeks ago

Photos (Flickr)

µBlog (Twitter)

  • RT @TomLondon6: £70k fine for fraud helping win a General Election? Tories must be laughing - "tremendous value ha ha ha!" Need by-election…
    7 months ago
  • RT @hoop: Wow - what an end to the year. We're one of Apple's 10 Best Apps of the Year! Thank you everyone who's got us here so far. https:…
    10 months, 2 weeks ago
  • RT @Glinner: MPs quietly signed a bill which exempts themselves from surveillance the rest of us are to be subjected to.…
    10 months, 3 weeks ago
  • RT @HoopLondon: Big news. Hoop's now available in Brighton! You can now find fab family-friendly listings for Brighton on Hoop. https://t.…
    1 year, 1 month ago
  • Really nice that this person found a worthy use for my photo, told me about it and said thanks :) #creativecommons
    1 year, 2 months ago
  • London, Portsmouth, IoW, Brighton - mission complete. Horrible weather, reliable bikes @mangobikes @ParadiseCycles
    1 year, 6 months ago