- The Bigme B6 Color E-Ink Tablet: I’ve owned plenty of Kindles and Android tablets over the years, but I’ve been curious about colour e-ink for a while - whether it’s actually useful or just a gimmick....androide-inkreview
- Why can't I read this picture book?: I’ve spent the last five years reading picture books with my kids at bedtime. Hundreds of them - and I’m still going, even as my eldest moves on to chapter...accessibilitydesignux
- Installing Android on the Nintendo Switch: A banned Switch sitting on a shelf is prime hardware for Android. Turns out the Tegra X1 that powered Breath of the Wild runs a full Android OS surprisingly well....androidguidenintendo-switchretro-gaming
- Building an emoji-only chat app: My daughter finds emoji hilarious. She’s 6 and will scroll through an emoji picker for ages. My wife and I started by letting her use WhatsApp’s emoji picker to send...emojijavascriptweb-development
- Moving to GitHub Actions (and adding .txt posts): This year I moved the blog from GitHub Pages’ built-in Jekyll to a GitHub Actions workflow, then added .txt URL support for posts. Inspired by Terence Eden’s blog post about...guidejekyll
- Building a Balatro-lite game with vanilla web tech: I’ve spent countless hours playing Balatro, and I’ve always wanted to create my own game with similar mechanics. When TrinketOS announced a game jam, it was the perfect excuse to...game-developmentjavascripttypescript
- Exploring OTA firmware updates on the Mangmi Air X: After reviewing the Mangmi Air X, I got curious about how the firmware updates worked. Mangmi have been pushing updates fairly regularly, which is great to see on a budget...androidguide
- The Mangmi Air X: Back in 2015 when I reviewed devices like the GPD XD and similar Android handhelds, the whole ecosystem felt half-baked. Emulation wasn’t particularly good yet, the devices came from obscure...androidhandheldretro-gamingreview
- Replacing the macOS audio switcher with SwiftBar: The built-in audio output menu in macOS has always felt a bit limited. The icons aren’t very helpful, the device names can’t be customised, and if you’ve got a few...guide
- The end of Dingoonity: If you were familiar with Dingoonity, you might have noticed by now that I’ve made the decision to shut down the website. archivaldingoonity
- The Movies I Watched in 2022: Through 2022 I kept track of most the movies I watched. In this post I’ll talk about how I took that data and, combined with the OMDb API, used the...guidejekyll
- Using a Raspberry Pi to Host a local Visual Studio Code Server: I tend to work on this blog from multiple machines in my home. These include a desktop PC running Windows, a MacBook Pro running macOS, and a Chromebook with the...guideraspberry-pi
- A Bit of a Bodge To Make MASSIVE Emoji: I’ve been fiddling with an instance of Known over on social.omgmog.net. As part of my fiddling I’ve been trying out some of the plugins for Known. I came across the...guideindieweb
- Installing Chrome OS on a Late 2009 MacBook: I’ve got an old 2009 MacBook 6,1 (A1342) kicking about in my office that I’ve been playing with on and off lately. chrome-osguide
- Adding support for Webmentions: I’ve added Webmention support to the posts on this blog. Webmentions are a method for websites to know that they’ve been linked to (or mentioned) from elsewhere on the web....guideindiewebjavascriptjekyllweb-development
- DevTerm Stuff: I helped crowdfund the DevTerm from ClockworkPi back in November 2020 and it arrived in January 2022. It’s a nice device, but it’s not perfect. Here’s some of the mods...clockwork-pidevterm
- The Inevitable Oculus Quest Post: I sold my HTC Vive back in 2020 and bought an Oculus Quest. Was it an impulsive lockdown treat? Perhaps; but it was time for an upgrade. I went for...gaminghardwarereviewvr
- Adding an internal speaker to the Pocket CHIP: The Pocket CHIP doesn’t come with internal speakers. It has the GPIO pins for audio, but nothing is hooked up. On the CHIP itself there is a 3.5mm audio jack...chipdiyguidehardware
- Adding Global Volume Control to the Pocket CHIP: I’ve been gradually adding internal speakers to each of my Pocket CHIPs lately and found it cumbersome to have to either open alsamixer or use the volume control page in...chipcustomizationguidelinux
- GameShell Stuff: I bought a ClockworkPi GameShell back in October 2019. I’ve been playing with it a bit lately (in anticipation of the ClockworkPi DevTerm shipping!) and I realised I haven’t yet...clockwork-pigameshell
- The Raspberry Pi Pico and the Pimoroni Pico RGB Keypad: In January the Raspberry Pi Pico was announced. The Pico is a RP2040 microcontroller featuring a dual-core Arm Cortex-M0+ processor with 264KB internal RAM and support for up to 16MB...guidehardwarepythonraspberry-pi
- CHIP Stuff: This page is a changing document. I’ll probably add more notes to it in the future. These are just some notes that I’ve put together in the past about flashing...chipguidehardwarelinux
- Using ORCA with FluidSynth on the Pocket CHIP: This post is about using the ORCA livecoding playground on the Pocket CHIP From the ORCA wiki: Orca is a two-dimensional esoteric programming language in which every letter of the...chip
- Using a Chromebook in 2020: I’ve just got hold of a Lenovo Ideapad Duet 2-in-1 Chromebook/tablet. ChromeOS seems to have come quite a long way since I last used the HP Chromebook 11 back in...chromebookhardwarereview
- Pico-8 on the Raspberry Pi with Game HAT: I’ve been playing with Pico-8 a lot lately. I’ve got a small Pico-8 project site to launch soon, but in the mean time I’m more occupied with getting Pico-8 running...guidepico-8raspberry-pi
- A Foray Into Home Automation: This is an overview of why and how I decided to automate part of my home, and build my first IoT device… home-automation
- 3D Printing a new remote control: I bought a 3D printer back in November last year and have been steadily filling my home office with 3D-printed miniatures, things to fiddle with, and functional solutions to problems...3d-printinghardware
- The Deepoon DPVR E3 Virtual Reality Headset: Today I’m reviewing the DPVR E3. This is a Virtual Reality headset with a high resolution display, comfortable straps and an experience that’s similar to the Oculus Rift. reviewvr
- The Virtoba S1 Daydream VR Bluetooth Controller: The Virtoba S1 is a Daydream compatible controller from China that costs around £15 ($20). Let me just start with saying I’ve got a lot of cheap Bluetooth controllers –...reviewvr
- My workflow for discovering new VR content: Since launching the UX of VR website last year I’ve been looking for ways to keep on top of new VR content. For most of the last year I relied...vr
- The GPD Pocket Ultra-mobile PC UMPC Laptop: The GPD Pocket is a 7” Ultra-mobile PC that at first glance resembles a shrunken Apple Laptop, but it’s metal unibody exterior is where the similarities end. reviewumpc
- The inevitable HTC Vive post: I bought an HTC Vive last November (a week before the Black Friday sales, doh!) and have spent the time since trying to get the most out of it. So...gaminghardwarereviewvr
- Well that has been a crazy couple of months... Onward!: In October 2016 I spent every day of the month creating something for Google Cardboard using JavaScript — Cardboctober. Since then I’ve been preoccupied with a couple of other mostly...vr
- 31: Something in the Shadows: Today is the last day of Cardboctober! And less surprisingly, it’s also Halloween 🎃 - For today’s hack I’ve made something spooky. If you don’t like spiders, you should look...cardboctobervr
- 30: Github Contributions: For today’s Cardboctober, having shed the burden of creating Tetris in VR, I decided to hack around with data visualisation. cardboctobervr
- 29: Blocks out of the pram: Bit of a lame one for today. I feel like I’ve not been making much progress with the Tetris rewrite, and tackling collision detection with unexpected results is getting quite...cardboctobervr
- 28: Planning Revisited: I thought it’d be weird to drop a hardware post in this week as I’ve not finished the Tevris game yet, so this week’s post will continue the Tetris theme...cardboctobervr
- 27: Moving with gaze: Today’s hack is more an aside while I’m focussing on yet another Tevris rewrite. cardboctobervr
- 26: Rotating Pieces: For today’s Cardboctober we’re still working with Tetris. The task today is to make the pieces rotate. cardboctobervr
- 25: Creating and Moving Pieces: Today we’re going to be looking at creating Tetromino pieces and moving them around the board. cardboctobervr
- 24: Basic Game Board: For today’s hack we’re going to start putting the teVRis game board together. We’ve already looked at positioning objects in a circle around the camera, but that doesn’t solve the...cardboctobervr
- 23: Planning Tetrominoes in VR: I outlined the plan for the week yesterday: To make a tetromino game. So here’s how we’re going to do that. cardboctobervr
- 22: Putting it all together: We’re starting the final (full) week of Cardboctober now, so I thought I’d do a week-long project to pull together some of the ideas from Cardboctober. cardboctobervr
- 21: One size doesn't fit all: An important factor in whether VR works for you or not is how well the hardware fits – both in terms of fitting your head shape and being aligned with...cardboctobervr
- 20: Which way is North? Part 2: In yesterday’s post I talked about the problem of using Cardinal North with device orientation, and how Three.js’ Device Orientation Camera provides a utility function for setting the alphaOffsetAngle, today...cardboctobervr
- 19: Which way is North? Part 1: When developing for Google Cardboard VR with JavaScript we’re depending on the browser’s support of device orientation to know which way the user is looking. You can’t guarantee the user...cardboctobervr
- 18: Moving around in VR: Unless your VR experience is a roller coaster or some other sort of rail-based experience, you shouldn’t take movement control away from the user. Lack of movement control can cause...cardboctobervr
- 17: Displaying Pertinent Information: Some Cardboard experiences might require pertinent information to always be visible to the user. As we’re working with a stereoscopic and not particularly high resolution screen this raises a couple...cardboctobervr
- 16: Getting in and out of Fullscreen: Today we’re looking at the task of getting in and out of Fullscreen. Fullscreen helps maintain an immersive experience. When using JavaScript as we’re confined to the capabilities of the...cardboctobervr
- 15: The Hierarchy of Needs in Quick Google Cardboard Hacks: This week I’m going to be writing about some of the UX challenges encountered while creating Cardboctober hacks. In VR experiences it’s important to consider the needs of the person...cardboctobervr
- 14: Debugging your Cardboard with Chrome: Today I’m going to be talking about how I test and debug while working on this Cardboctober hacks. If you make it to the end I’ll have a recap of...cardboctobervr
- 13: AAAAH! More Zombies: For today’s hack I’m revisiting yesterday’s zombie game again. With a full re-write to un-bodge the implementation. cardboctobervr
- 12: AAAAH! Zombies: Today’s hack was going to be built around the gamepad API – but I utterly failed to get it working nicely with any of my USB or Bluetooth controllers. Not...cardboctobervr
- 11: Webaudio Beat Sequencer: For today’s hack I’ve decided to make a VR beat sequencer. Nothing says inclusive-fun like a VR experience that makes noise! So let’s get on with that. cardboctobervr
- 10: HTML5 Video: Today we’re looking at HTML5 video – well not in the traditional sense. We’re looking at using the <video> element to create a texture and then applying it to an...cardboctobervr
- 09: Speech recognition: Today’s hack is using the speechRecognition API. How can this be useful in Google Cardboard VR? It can add another level of input to our limited arsenal. So let’s take...cardboctobervr
- 08: Playing sounds: Kicking off Cardboctober week 2 (in which I’ll be talking about using various Web APIs) today we’re looking at audio. Or more specifically how to get audio in to your...cardboctobervr
- 07: Cardboard hardware (cardware?): Today’s hack (and each Friday for the rest of October) is going to be hardware rather than software themed. If you get all the way to the end of the...cardboctobervr
- 06: VR Pairs Game: Todays hack is intended more as an activity to pull together various bits from the first week of Cardboctober and make a game. So here we go, it’s a “pairs”...cardboctobervr
- 05: Loading external models: Using a couple of Three.js plugins you can load external models in to your scene. The plugins are: OBJLoader.js MTLLoader.js OBJLoader lets you load .obj format models, and MTLLoader lets...cardboctobervr
- 04: Skyboxes and generating meshes: Skyboxes There are a couple of ways you can create a skybox in Three.js Using a skydome (a textured sphere) Using a skybox (a textured cube) I’m using the textured...cardboctobervr
- 03: Even better gazed based look interaction: Improving on yesterday’s Raycaster based look interaction, I’ve improved the raycasting experience. I’m using a library called vreticle.js, though I’ve tweaked it a bit. cardboctobervr
- 02: Raycaster based look interaction: For today’s Cardboctober hack I’m doing some basic look interaction. As you look at each ghost in the circle surrounding you the ghost will cover their eyes. cardboctobervr
- 01: Basic VR: Kicking off Cardboctober I’ve decided to go with something very simple. This is actually pretty much one of the JSCard demos that I created last November for my 20 Minutes...cardboctobervr
- Announcing Cardboctober: Throughout October Ben and I are working on a project called Cardboctober. The challenge is hacking on something new every day using Google Cardboard. cardboctobervr
- The Chuwi Vi10 Plus Windows and Android Tablet: I’ve been on the hunt for a 10” tablet for a couple of months now. Besides Google’s Pixel C, there isn’t much choice in this area (ignoring the iPad). There...androidchuwi-vi10-plushardwarereviewwindows
- Upgrading to El Capitan with an old installer: I upgrade my Macbook to El Capitan as soon as I could, and have had very few issues with the release. On my iMac at work though, I’ve been putting...guidemac-os-x
- Summer of Hacks: Game Dev Day: As part of the JS Oxford-organised Summer of Hacks, I co-organised the “Game Dev Day” hack day in Oxford. This is the second time I’ve held an event during the...hackdayvr
- Getting to know @for, @each and @while in Sass: I use Sass every day, both professionally and in my side projects. One thing that never seems to stick in my mind though is the correct way to use @for,...cssguidesass
- 20 Minutes into the Future with Google Cardboard and JavaScript: I gave this talk at JS Oxford in November 2015. The talk is about using JavaScript and various web APIs to create Google Cardboard experiences. talkvr
- Downgrading Nexus 5 from Android 6.0 to Android 5.1.1: I jumped on Android 6.0 Marshmallow as soon as the developer images were available to flash, and to be honest as far as “major releases” go, it was pretty underwhelming....androidguidenexus-5
- UX in Virtual Reality: I’ve been trying to find resources on the subject of User Experience and User Interface design in Virtual Reality a lot lately, as I’m thinking about Google Cardboard, and preparing...designguideuxvr
- The GPD XD Portable Android Games Console: I’m back with another Android console out of China from GPD, the GPD XD. I’ve had the GPD XD for a couple of weeks now, and to be honest I’ve...androidgpd-xdhardwarereview
- In which I find a better Imgur screenshot uploading application: … Well not much of a battle really, rather just some comments on my needs of an Imgur uploader, what I’ve been using historically, and what I’m now going to...appimgurmac-os-x
- On being spammed for being interested: The amount of personal data that we give away these days is insane. It’s true of a huge number of online services that “free isn’t free”, and that your personal...emailprivacy
- Getting Notified when a process is using 100% CPU on Mac OS X: Lately I’ve noticed node.js occasionally spawning a process that’s using 100% CPU. When this happens, the battery on my MacBook quickly drains. guidemac-os-x
- Jekyll Antipatterns: If you’ve used any framework or language for long enough, you might find that you’ve got parts of your code that are not using the language in it’s current state...jekyllweb-development
- Creating an icon font: I’ve recently been doing a lot of working designing an icon font that works well at small sizes for my day job. Here’s an overview of the process I’m using...designguidesvgweb-development
- Extract the first image from a post in Jekyll: I decided that I want to show an image next to posts in my “article list” type pages in Jekyll. It would be tedious to go through each post and...guidejekyll
- Launching Sketch Toolbox from inside Sketch: I’ve been making use of Sketch a lot lately. One of the coolest features of Sketch is it’s plugin support. I’m using a tool called Sketch Toolbox to manage plugins...guide
- My face and words in print: Recently I was contacted to provide a short quote about why CSS preprocessors are awesome. This wasn’t a hard task as I spend a lot of time evangelising the use...cssweb-development
- The Revo K101 Plus Portable Games Console: Today I’m refreshed to be reviewing a console that doesn’t try to cram too much in to the form factor, but instead tried to focus on doing one thing well....handheldretro-gamingreview
- Maintaining updates for a bunch of WordPress sites with Google Spreadsheets: Here’s a useful trick I’ve come up with, to maintain a list of WordPress installations and easily see if they’re up to date. google-spreadsheetsguidewordpress
- Vivaldi: Another contender to the array of Webkit-derived browsers: Earlier this week a new browser called “Vivaldi” sprung up across many of my early-morning technology news feeds. I managed to put off trying it out for a couple of...browservivaldi
- Creating 'Material Design' shadows in Photoshop: Somebody over on Designer News asked how to re-create the various z-height shadow effects from Google’s Material Design in Photoshop. designguidephotoshop
- So you want to organise a hack day?: These are based on my experience of organising SusHack in 2013 and 2014. For more information about SusHack, check out https://sushack.github.io guidehackday
- Better link underlines with Sass: There has been some talk lately about how iOS 8 has started to handle typography descenders when text is underlined. They’ve done away with the usual overlapping line intersect in...cssguidesassweb-development
- The Tronsmart Mars G01 Game Pad: A different sort of review today, the Mars G01 Game Pad from Tronsmart. Geekbuying provided me with this G01 to review, so first of all a thanks to them for...gamepadhardwarereview
- The GPD G5A Portable Android Games Console: I’ve got another Android gaming handheld to review, the GPD G5A from GamePad Digital. I’ve had this device for a little while now, and have played with it loads. This...androidgpd-g5ahardwarereview
- SusHack #2: This past weekend was the second SusHack. Following on from the success of the first SusHack there was some demand for a second one, so a little later than planned...hackday
- jQuery Conference 2014: Another year, another jQuery UK conference. I wrote previously about the jQuery UK conferences that I attended in 2012 and 2013, now I’ve finally gotten around to writing up my...conferencejquery
- Why your reasons for no-longer using a CSS pre-processor are wrong, and you're wrong, and you should feel bad.: I read an article recently that explained why a web design agency had stopped using CSS pre-processing as part of their development process, as a means to “optimise [their] internal...csssassweb-development
- Some approaches for creating diagonal section separators for your website: In their simplest form, web pages are made of stacked rectangles. Every block-level element takes up as much vertical space as the content requires, and fills as much horizontal space...cssguideweb-development
- Max Glenister Uses This: This is a Q/A article in the style of “The Setup”. interview
- Making suspend on lid-close work with Arch Linux on the HP Chromebook 11: The more time that I spend using Arch Linux on my HP Chromebook 11, the more things I find to tweak and tinker with. The latest thing I’ve addressed is...arch-linuxchromebookguidelinux
- Using the Zed editor with Arch Linux ARM on your Chromebook: I’ve been using Arch Linux on my HP Chromebook 11 for a little while now. One of the problems I’ve had with the setup has been that Sublime Text is...arch-linuxchromebookeditorguide
- Compressing PDF files from your Mac or Linux terminal with Ghostscript: I arrived at this solution recently when looking to compress a massive print-quality PDF for the web. If you search for “compressing pdf files on mac” you’ll get lots of...bashghostscriptguidelinuxmac-os-xpdf
- Using "jekyll-redirect-from" with GitHub Pages: Last week GitHub finally added support for some useful plugins to their implementation of Jekyll used for GitHub Pages. The most notable of these is the support for the jekyll-redirect-from...github-pagesguidejekyll
- Jekyll for dummies: 2014 has been heralded as “the year of flat-file websites”. This blog in fact uses Jekyll to generate the very blog post you are reading. I’ve been using Jekyll in...github-pagesguidejekyll
- Video: Installing Arch Linux ARM on the HP Chromebook 11: Just to follow up from my earlier post about Installing Arch Linux on the HP Chromebook 11, I’ve put together a video of the process to show how simple it...arch-linuxchromebooklinuxvideo
- The GPD G7 Portable Android Games Console: Hot on the heels of my last Android device review I’m back with another device: The GPD G7 Quad-core from GamePad Digital. The G7 is very similar to the JXD...androidgpd-g7hardwarereview
- Installing Arch Linux ARM on the HP Chromebook 11: I concluded in my previous post about the HP Chromebook 11 that it’s a good device for casually browsing the internet, but it’s no replacement for a regular laptop or...arch-linuxchromebookguidelinux
- Getting started with using Sass in your existing website: Sass is a CSS-compatible preprocessor for CSS. It allows you to reduce the amount of duplication and complexity in your CSS by using variables, mixins (functions), nesting, and other cool...cssguidesassweb-development
- On the subject of "Pixel-perfect PSD to HTML/CSS": I read an article on the subject of implementing a PSD design of a website perfectly in HTML/CSS, and without wanting to spend my time writing a lengthy response in...web-designweb-development
- So, I've got all of these Raspberry Pi accessories... now what?: I wrote back in May about having a Raspberry Pi, and very few ideas about what to do with it. Here’s an update on the subject. hardwarekickstarterraspberry-pi
- The JXD 7800B Portable Android Games Console: It has been a while since I’ve had a new portable console to play with (and I’m still waiting for my GCW to arrive!), so let’s ease back in to...androidhardwarejxd-7800breview
- The HP Chromebook 11: I bought a HP Chromebook 11 as soon as I possibly could when it was announced. I’ve had a couple of weeks to play with it now, so here are...chromebookhardware
- SusHack #1: Building the foundations of the Oxford Flood Network Stack: This past weekend I held my first hack day. This is a recollection of why/how SusHack came to be, and how the day went. hackday
- Migrating from Outlook .pst to mbox and then uploading to an IMAP mail server: Microsoft Outlook uses a stupid/proprietary format to store mail locally. This is the burden I had to deal with recently while attempting to rescue mail from a friends dying computer....emailguideoutlook
- Gamification of life with the Fitbit Flex: Earlier this year, Jenny got a Fitbit Zip, it’s basically a pedometer, but with the added cool-factor that it can synchronise over Bluetoooth with your computer (and some mobile devices),...fitbithardware
- Adventures in IMAP: Migrating lots of mail to Atmail: Besides my day job as a front-end developer at 2degrees, I run my own web design company with my partner, called Marmalade & Jam. When launching Marmalade & Jam, I...emailguideimap
- Making Postgres work nicely on OS X Mountain Lion: Postgres on OS X has been a pain in the ass for as long as I have had to use it. To start with, the version that comes with OS...guidemac-os-xpostgresql
- Adding support for <!-- more --> tag to Jekyll without plugins: Here’s a quick tip for an approach I’ve started using to split post content at a given point for displaying in an archive page, without using a plugin. guidejekyll
- Awesome Bash arrays: Just some examples of how to do things with Bash arrays, and their analogous examples in Javascript. bashguide
- On second thought...: … Google Hangouts for Chrome needs some work. appgoogle
- Converting SVG to PNG online and in your terminal: This post is mostly for my own benefit on the rare occasion that I have to convert SVG files to PNG. I always spend a large amount of time looking...guide
- Chrome 'Add to Trello' extension: I attended the third Refresh Oxford hack day yesterday, hosted at Incuna’s offices in Summertown. chromeextensiontrello
- Removing the Blackberry Desktop Software for Mac without having to re-download a 70mb installer from Blackberry: If you happen to have installed the Blackberry Desktop Software and you want to remove it and it’s annoying persistant daemons, you might have discovered that this can only be...blackberryguidemac-os-x
- Google's relaunched Hangouts -- Wow.: The long-speculated consolidation of Google Talk, Google+ Hangouts, and Google Video Chat has finally occured, and it’s pretty spectacular. My digital life is so dependent on Google services that it’s...androidappgoogle
- So I've got a Raspberry Pi, now what?: I was going to title this post “In which I moan about the Raspberry Pi”, read on to find out why. I’ve had a Model B Raspberry Pi in my...hardwareraspberry-pi
- Meta post about making this blog responsive and not using px: If you’re a returning visitor to blomg you might notice some changes to the design. cssjekyllresponsive-designweb-development
- jQuery UK 2013 - A tale of beer, colourful cakes and no wifi: Yesterday I attended the second jQuery conference in the UK (the first being last year, which I blogged about here). I failed to get any nice pictures at the event...conferencejquery
- Fluid video embeds for your responsive website: Recently I came across an interesting problem, fluidly scaling iframe/embed code on a responsive design. The problem surfaced because I was using a fluid width and a fixed height for...cssguideresponsive-designweb-development
- These tabs they are a changin': The latest update to Chrome (25.0.1364.99) seems to have brought some slight tweaks the interface. The tab bar has seen some tweaks to the spacing of the close button, as...chromedesign
- Factory resetting a Nokia N900 from Mac OS X Mountain Lion: I had a Nokia N900 when they first came out, this was unfortunately shortly before Android had matured to a usable state, and so I didn’t use my Nokia N900...guidemac-os-xnokia-n900
- Testing responsive layouts with the RWD bookmarklet: Lately I’ve been doing some work with responsive CSS and media queries. This bookmarklet has been very useful. It allows you to switch between four different browser widths (for iPad...chromeresponsive-designweb-development
- The woes of trailing commas in IE: If you leave a trailing comma in your JavaScript code, you’re a terrible person. It’s right up there with omitting semicolons as far as I’m concerned. guideinternet-explorerjavascript
- Ubuntu (native) on the Nexus 7: Last week, a Ubuntu native installer for the Nexus 7 was released, along with instructions on how to install Ubuntu on the Nexus 7. The plan is that the Nexus...guidelinuxnexus-7ubuntu
- A simple 'stacked paper sheets' effect with CSS3: This is just a short post about an unobtrusive CSS3 effect that I”ve used on some projects lately. Using the ::before and ::after CSS pseudo elements and some CSS3 styles...cssguideweb-development
- Installing MySQL on OS X Mountain Lion: I was having some issues getting MySQL installed on OS X 10.8 Mountain Lion, and then I came across a useful article describing how to do it. guidemac-os-xmysql
- The Nexus 7 Android Tablet from Google: I’ve been putting this post off, and it has been hard. I usually like to declare my love for a new gadget just moments or hours after unboxing it; I’ve...androidhardwarenexus-7review
- Making HTML5 input placeholder text behave in Safari: Making assumptions during web development is never a good idea – especially if your assumptions are about the way a new feature will behave across modern browsers. This is an...csssafariweb-development
- Getting to grips with git log: git is a powerful tool. After using it for the past couple of years I’m still finding new/powerful things that can be done with it. bashgitguide
- Saving your CSS changes in the Google Chrome inspector: In the process of rapid prototyping and trying out new CSS styles I often find myself making changes to styles within the inspector in Google Chrome. This works quite well,...chromecssguide
- Dynamic location based desktop on your Mac with Satellite Eyes: I came across this awesome application today, it sets your wallpaper to a satellite view of your current location. The application features a number of rendering mode, and full support...appmac-os-x
- The Mele A2000 Android TV Box: I decided to buy an Android-powered set top box because my Apple TV 1 didn’t cut it for playing HD media, and I find it inconvenient to hook my MacBook...androidhardwaremele-a2000
- Dealing with crappy memory management in OS X: Using a lot of memory-intensive programs throughout the day, such as Virtualbox virtual machines, Photoshop and numerous browsers each with a couple of handfuls of tabs, you come to realise...guidemac-os-x
- Using jQuery to create a custom thumbnail for an embedded video: Recently Jenny asked me for a way to embed a YouTube video with a custom thumbnail that would play the video when clicked. guidejavascriptjqueryyoutube
- A possible solution to 'bad interpreter: operation not permitted' error on Mac OS X Lion: Out of the blue I started having an issue in my Terminal.app on Lion where downloaded scripts/applications wouldn’t run. I first noticed this when trying to setup the Android SDK....guidemac-os-x
- High fidelity in low fidelity emails: Recently it was pointed out to me that Pizza Express provide a nice fallback for photos on their picture-heavy emails. Take the following example, from a promotional email they sent...designemail
- On scrolling: Scrolling on the web is something that we take for granted when thinking about how users will interact with our website. There are two schools of thought on the subject:...uxweb-development
- Video integration with Jekyll: Adding some functionality to Jekyll to allow integration of YouTube videos is a pretty easy task. First we need a couple of things: A nice video hosted on YouTube The...guidejekyllyoutube
- Upgrading my Macbook Pro: I’ve had my Macbook Pro for about a year now. It’s the Early-2011 15” bells and whistles model. The specs (the bits we care about, if you can’t be bothered...hardwaremac-os-x
- Updates to my 'install all firefox' bash script for Mac OS X: I wrote briefly about my install-all-firefox shell script back in December last year. Since then the script has received a complete rewrite, and some new features. bashfirefoxguidemac-os-x
- jQuery UK Conference 2012: Yesterday I attended the first European jQuery conference, which was hosted here in Oxford at the Saïd Business School. This was the first big conference I’ve been to (though I’ve...conferencejquery
- Adding more post metadata to Jekyll with YAML: NB: This flurry of content might be shortlived, but for now I’m excited to be posting again so shush! Jekyll, as it turns out, is a really nice blogging platform...guidejekyllyaml
- On migrating from Tumblr to Jekyll Bootstrap: I’ve been toying with the idea of moving away from Tumblr for a long time now, having had my own share of problems with Tumblr downtime. github-pagesguidejekylltumblr
- Synchronising your Sublime Text 2 preferences with Dropbox: I use Sublime Text 2 both at work and at home, and it’s hard to manually keep my settings/packages in sync. dropboxguidesublime-text
- prev/next to left/right arrow key bind userscript: This is a userscript for Google Chrome (it might work with Firefox/Greasemonkey but I haven’t tested). It binds the left/right keys to click on prev/next links. chromeuserscripts
- Bash script to install all major versions of Firefox on OS X: I wrote a nice bash script that automatically downloads and installs the major versions of Firefox, sets up profiles for each and modifies the .app launchers so that they start...bashfirefoxmac-os-x
- Imgur Url Changer and pics/funny comment link subreddit remover aka reddit link stuff: I know, it sure is a catchy name! This is just a modification of my previous “Imgur to Filmot url changer” userscript for reddit.com reddituserscripts
- Reddit open imgur links in new window/tab: Derivative of the previous reddit/imgur userscript I wrote, this one simply makes all imgur links open in new window/tab (target="_blank") Download reddituserscripts
- Reddit imgur to filmot url changer: Browsing Reddit while at work probably isn’t the best thing to do if trying to be productive, but sometimes it’s necessary to unwind periodically. Inside our intranet at work imgur...reddituserscripts
- My solution to the JavaScript challenge 07/03/11: Okay so this solution is a bit later than I planned, but a busy working week and lack of motivation toward the end kind of got the better of me....javascript
- Javascript function to group repeated values of an array with totals: Something that took a little while to pull of well while working on the JS challenge this week, thought I’d throw it up here as it has its uses practically...javascript
- Javascript/jQuery challenge of the week 07/03/11: Okay well this is something Tomas and I have been planning to do for ages, and in fact we did something like this a year ago, but it didn’t amount...javascript
- Building JavaScript arrays from HTML using regular expressions: Bit of idea ping-pong with Tomas this evening, to provide a solution to something he is working on. He had some text in a table cell that needed to be...javascript
- Redesigning and relaunching Dingoonity: Over the weekend I relaunched Dingoonity.org. I launched the site back in November 2009, a bit of a rush job as far as the design of the boards was concerned...dingoonityweb-development
- Using Greasemonkey scripts with Google Chrome: This isn’t new news, but it’s something I’ve found quite useful. You can use userscripts created for Firefox/Greasemonkey in Google Chrome. Many of the scripts that you can find over...chromeguidejavascriptuserscripts
- Upgrading Mac OS X Snow Leopard on the Dell Inspiron 1525 to 10.6.4: In this part of the guide, I’ll be covering upgrading to 10.6.4. You can read the first part of this guide here - Installing Mac OS X Snow Leopard on the...guidehackintoshmac-os-x
- Installing Mac OS X Snow Leopard on the Dell Inspiron 1525: This is an update to my previous guide. I’ve since changed platform for my site — and even changed computers — but there is enough interest in this guide to...guidehackintoshmac-os-x
Looking for even more? I recently had a Spring clean and archived a bunch of old posts. You can find the raw posts in the Archive on Github