[2026]
Archive Archaeology
Using emoji to bypass FRP on a decade-old tablet
Using split view in Chrome
Downgrading the OnePlus 7 Pro for LineageOS
The LinYuvo KS42 Wireless Joycons for the Nintendo Switch
Plugins instead of patches
The Bigme B6 Color E-Ink Tablet
Why can't I read this picture book?
Installing Android on the Nintendo Switch
Building an emoji-only chat app
Moving to GitHub Actions (and adding .txt posts)
Building a Balatro-lite game with vanilla web tech
[2025]
Exploring OTA firmware updates on the Mangmi Air X
The Mangmi Air X
Replacing the macOS audio switcher with SwiftBar
[2023]
[2022]
Using a Raspberry Pi to Host a local Visual Studio Code Server
A Bit of a Bodge To Make MASSIVE Emoji
Installing Chrome OS on a Late 2009 MacBook
Adding support for Webmentions
DevTerm Stuff
The Inevitable Oculus Quest Post
[2021]
Adding an internal speaker to the Pocket CHIP
Adding Global Volume Control to the Pocket CHIP
GameShell Stuff
The Raspberry Pi Pico and the Pimoroni Pico RGB Keypad
CHIP Stuff
Using ORCA with FluidSynth on the Pocket CHIP
[2020]
[2019]
Installing Ubuntu on MacBookPro 8,2
Pico-8 on the Raspberry Pi with Game HAT
Approaches for a simple state system
Outlining text and sprites
[2018]
Some Notes About Android Virtual Devices
A custom font
A Foray Into Home Automation
A Dialog System
Pocket Sprite Laptop Mount
Extra small extra macro keys v2.0
Extra small extra macro keys v1.0
New Printer Standoffs and a Rebuild
Shower Bracket Spacer
New Filament!
An Audio Amp v2.0
Kitchen Tongs Spacer
An Audio Amp v1.0
3D Printing a new remote control
New Filament!
What's in the box?
LED Lighting and a Kill Switch
Recycled Parts
[2017]
Merry Grootmas
Is this art?
My Birthday and Problems Printing Spidey
Xenomorph Gift and Box
Tablet Mounting Brackets from Scratch
Garden Bin Hinge Pin
Pug, Alpaca, Hodor.
I am Groot.
Print in Place Elephant
Dialing in the Anycubic Kossel
The start of a new hobby
The Deepoon DPVR E3 Virtual Reality Headset
VPN Connection Indication on Windows
The Virtoba S1 Daydream VR Bluetooth Controller
Enabling Google Daydream Support on OnePlus 3T
My workflow for discovering new VR content
The GPD Pocket Ultra-mobile PC UMPC Laptop
Children of Time book review
The inevitable HTC Vive post
Useful bash aliases for VPS
Well that has been a crazy couple of months... Onward!
[2016]
31: Something in the Shadows
30: Github Contributions
29: Blocks out of the pram
28: Planning Revisited
27: Moving with gaze
26: Rotating Pieces
25: Creating and Moving Pieces
24: Basic Game Board
23: Planning Tetrominoes in VR
22: Putting it all together
21: One size doesn't fit all
20: Which way is North? Part 2
19: Which way is North? Part 1
18: Moving around in VR
17: Displaying Pertinent Information
16: Getting in and out of Fullscreen
15: The Hierarchy of Needs in Quick Google Cardboard Hacks
14: Debugging your Cardboard with Chrome
13: AAAAH! More Zombies
12: AAAAH! Zombies
11: Webaudio Beat Sequencer
10: HTML5 Video
09: Speech recognition
08: Playing sounds
07: Cardboard hardware (cardware?)
06: VR Pairs Game
05: Loading external models
04: Skyboxes and generating meshes
03: Even better gazed based look interaction
02: Raycaster based look interaction
01: Basic VR
Announcing Cardboctober
The Chuwi Vi10 Plus Windows and Android Tablet
Upgrading to El Capitan with an old installer
Summer of Hacks: Game Dev Day
Getting to know @for, @each and @while in Sass
[2015]
20 Minutes into the Future with Google Cardboard and JavaScript
Downgrading Nexus 5 from Android 6.0 to Android 5.1.1
UX in Virtual Reality
The GPD XD Portable Android Games Console
In which I find a better Imgur screenshot uploading application
On being spammed for being interested
Getting Notified when a process is using 100% CPU on Mac OS X
Jekyll Antipatterns
Creating an icon font
Extract the first image from a post in Jekyll
Launching Sketch Toolbox from inside Sketch
My face and words in print
The Revo K101 Plus Portable Games Console
Maintaining updates for a bunch of WordPress sites with Google Spreadsheets
Vivaldi: Another contender to the array of Webkit-derived browsers
Creating 'Material Design' shadows in Photoshop
[2014]
So you want to organise a hack day?
Better link underlines with Sass
The Tronsmart Mars G01 Game Pad
The GPD G5A Portable Android Games Console
SusHack #2
jQuery Conference 2014
Why your reasons for no-longer using a CSS pre-processor are wrong, and you're wrong, and you should feel bad.
Some approaches for creating diagonal section separators for your website
Max Glenister Uses This
Making suspend on lid-close work with Arch Linux on the HP Chromebook 11
Using the Zed editor with Arch Linux ARM on your Chromebook
Compressing PDF files from your Mac or Linux terminal with Ghostscript
Using "jekyll-redirect-from" with GitHub Pages
Jekyll for dummies
Video: Installing Arch Linux ARM on the HP Chromebook 11
The GPD G7 Portable Android Games Console
Installing Arch Linux ARM on the HP Chromebook 11
Getting started with using Sass in your existing website
On the subject of "Pixel-perfect PSD to HTML/CSS"
So, I've got all of these Raspberry Pi accessories... now what?
[2013]
The JXD 7800B Portable Android Games Console
The HP Chromebook 11
SusHack #1: Building the foundations of the Oxford Flood Network Stack
Migrating from Outlook .pst to mbox and then uploading to an IMAP mail server
Gamification of life with the Fitbit Flex
Adventures in IMAP: Migrating lots of mail to Atmail
Making Postgres work nicely on OS X Mountain Lion
Adding support for <!-- more --> tag to Jekyll without plugins
Awesome Bash arrays
On second thought...
Converting SVG to PNG online and in your terminal
Chrome 'Add to Trello' extension
Removing the Blackberry Desktop Software for Mac without having to re-download a 70mb installer from Blackberry
Google's relaunched Hangouts -- Wow.
So I've got a Raspberry Pi, now what?
Meta post about making this blog responsive and not using px
jQuery UK 2013 - A tale of beer, colourful cakes and no wifi
Fluid video embeds for your responsive website
These tabs they are a changin'
Factory resetting a Nokia N900 from Mac OS X Mountain Lion
Testing responsive layouts with the RWD bookmarklet
[2012]
The woes of trailing commas in IE
Ubuntu (native) on the Nexus 7
A simple 'stacked paper sheets' effect with CSS3
Installing MySQL on OS X Mountain Lion
The Nexus 7 Android Tablet from Google
Making HTML5 input placeholder text behave in Safari
Getting to grips with git log
Saving your CSS changes in the Google Chrome inspector
Dynamic location based desktop on your Mac with Satellite Eyes
The Mele A2000 Android TV Box
Dealing with crappy memory management in OS X
Using jQuery to create a custom thumbnail for an embedded video
A possible solution to 'bad interpreter: operation not permitted' error on Mac OS X Lion
High fidelity in low fidelity emails
On scrolling
Video integration with Jekyll
Moving away from Twitter Bootstrap - Hello new design!
Upgrading my Macbook Pro
Updates to my 'install all firefox' bash script for Mac OS X
jQuery UK Conference 2012
Adding more post metadata to Jekyll with YAML
On migrating from Tumblr to Jekyll Bootstrap
Synchronising your Sublime Text 2 preferences with Dropbox
[2011]
prev/next to left/right arrow key bind userscript
Bash script to install all major versions of Firefox on OS X
Trying coffeescript
Notched - indicate if Notch has replied to a topic on /r/minecraft comments
Imgur Url Changer and pics/funny comment link subreddit remover aka reddit link stuff
Google Plus userstyle for Reddit
Reddit open imgur links in new window/tab
Reddit imgur to filmot url changer
My solution to the JavaScript challenge 07/03/11
Javascript function to group repeated values of an array with totals
Javascript/jQuery challenge of the week 07/03/11
Building JavaScript arrays from HTML using regular expressions
Review: The Smashing Book #2
Grooveshark view-modes userscript for Fluidapp/Chrome/GreaseMonkey
Redesigning and relaunching Dingoonity
[2010]
Wills & Kate unofficial commemorative mug by Chris Shipton
A simple solution for a jQuery animation loop memory leak
Using Greasemonkey scripts with Google Chrome
Waka Waka - Pacman Moleskine! and some Objective-C
Minecraft and cinnamon coffee
Minecraft player skins
Upgrading Mac OS X Snow Leopard on the Dell Inspiron 1525 to 10.6.4
My first half-week with Kindle
Installing Mac OS X Snow Leopard on the Dell Inspiron 1525
Using jQuery to supply and clear default input values
[2009]
I've been busy
Installing OS X Snow Leopard on the Dell Inspiron 1525
Creating the moanlog search form with CSS
[2007]
[2006]
DS Lite
Site Changes
heart rating icons for foobar
My foobar setup
College
Grey Media Icons
Absent
Harmless Fun
Icecons
Finally working on a new design
New Columns_UI Config
Mog Blue Icons
Foobar2000 Tutorial
CSS Tabs, ala mog
Site updates
Silk utorrent icon
No-hue Icons
Pixel-level Detail
Lego USB Stick
With a lack of better words..
Pointless software
The great return
[2005]
[2004]
wow thats great.
..humbug, christmas break, and assignments
december.
while the crowbar gets rusty..
well, this sucks.
no, no! dont do that!
eugh - i'm bored.
Pizza & icecream.
css, xhtml, and faking "jet lag"
Busy busy
</summer>
The wonders of validation
Out of sync
A few more things
So the site returns
it's here
Well.
bling bling.
...
For your convenience
and it begins
set back?
over the next few weeks…
le sigh
Well then
Voyeurism
Boing.
Jeans jeans jeans jeans
monday.. aaah, monday :)
*pushes new pc to the side*
Two posts in one day...
Well...
So, what?
Good news bad news