157 Posts

September 2017
Rails Data Migrations

Migrating a schema when deploying code is a fairly solved problem in Rails, and many other languages/frameworks. What hasn't quite be...

September 2017
Git push without a named remote

Although what I'm about to talk about is well documented[1], I've never come across it in my 10 year career using Git. I stumbled...

September 2017
Rails + Webpacker Deployments on Heroku

A few weeks ago I decided to take the leap and implement Webpacker into an existing Rails project. Initially this seemed like a great ide...

May 2017
Write only S3 permissions

Time and time again I've found myself needing to limit access to S3 repositories via write-only. Read-Only access is widely used for ...

January 2017
PostgreSQL Create User

I've lost count of the amount of times I've forgotten the syntax for creating users, databases and permissions within postgresql....

November 2016
Install Nokogiri on macOS Sierra

Today, I made the mistake of running gem pristine while helping someone debug an issue. Not only did this not resolve their issue, but no...

August 2015
Remove Deleted Git Branches

Due to using to Github flow quite heavily, I end up with a lot of rogue branches locally that I'm always forgetting to cleanup. The s...

August 2015
PostgreSQL: Distinct JSONB Keys

I'm currently building an application which makes heavy use of JSONB in PostgreSQL. After a while of searching I was unable to find a...

July 2015
Docker Dotenv

Today, I was preparing a Docker container for production release and found managing environment variables was a bit of a pain. As a ruby ...

July 2015
Hosted GoStatic now runs on OpenResty

I spent a lot my time this weekend looking into a long overdue infrastructure upgrade for all of our hosted GoStatic sites and found some...

May 2014
GoStatic Search API Beta

One of the huge down-sides of having a static site is the in-ability to do search. It's not impossible, but the solutions out there a...

April 2014
Model Errors in EmberJS

Today, I spent longer than I feel comfortable admitting solving a supposedly simple problem in my EmberJS application. Since this particu...

April 2014
April 2014 Redesign

I've had the same dull blog layout for years. Even in my transition from Blogger to Wordpress and finally Jekyll I've still kept ...

April 2014
Nginx Tap moves to Homebrew Organization

The community tap I created for custom Nginx modules within Homebrew just got accepted into the official Homebrew organization. This is h...

January 2014
Jekyll with Boxen

Not only does Jekyll power this blog but it has been one of the main tools I use on a daily basis for almost 2 months now. Due to it'...

January 2014
Jekyll is no longer Hyde-ing

After convincing myself all year that I will finally Go Static and get rid of my custom CMS for this blog, I decided to finally launch it...

October 2013
My First Week at Givey

As some of you may know I recently left my position at Performance Horizon to take on a Senior Developer role with Givey. This is a quick...

October 2013
SSL All The Things

Lately there has been a lot of buzz around security when using web services. Everyone seems to be very paranoid all of a sudden and encry...

July 2013
Server Backups with s3cmd

I've been asked a few times how I back up my servers at Digital Ocean. It seems this topic is quite popular due to the fact they just...

June 2013
Homebrew Nginx Tap

I've recently been working on an Nginx Tap for Mac OS X Homebrew and now I think it's time to share with the world. Originally I created ...

June 2013
Open Source Challenge Complete!

For those of you that follow my blog reguarly, a few weeks ago I announced I was undertaking my Open Source Challenge. Today marks the 32...

June 2013
StatsD PHP Library

Today, I just created a StatsD PHP Library and released it on Github . Before you start with "but there are already loads..", I do realis...

May 2013
Open Source Challenge

It's bank Holiday Monday and I think it's about time for a new challenge. I've been working a lot with Open Source lately, both contribut...

May 2013
Why I use Digital Ocean Hosting

In the last few years I've used a lot of hosting providers. Until now I've never actually found any that have been able to satisfy my nee...

May 2013
Why I learned Ruby

For a while now I've been hearing a lot of people taking about the programming language Ruby. Not that it's anything new, it just seems t...

April 2013
Using Cloudflare Page Rules

Today, I decided to explore Cloudflare features in a bit more depth. I currently manage quite a few applications, both personal and busin...

March 2013
New Writing Topics

I've been neglecting my Blog lately mainly because I feel like I need to always write masses of code examples and showcase my own project...

February 2013
MongoMinify Launched

Today I finally released the beta version of my MongoDB compression library for PHP. There still a lot of work to be done, but it's stabl...

January 2013
Proud to be Sponsoring Search on Romhut

A new project has emerged for developers to host their custom built Android ROMs for free and have users download them all in one place....

December 2012
Sublime Text 2 Snippets

The other day I stumbled across an amazing feature of Sublime Text 2 that doesn't require a plugin to work, yet somehow after 1 year of u...

December 2012
My new Gaming Rig Specs

I've had a few people asking about the specs on my new gaming machine, so here they are! This upgrade should have came about a year ago b...

December 2012
Install RabbitMQ on Ubuntu 12.04 Quickly

I've put together this simple install script that I compiled from the various tutorials on the rabbitmq site. It's not intended to be any...

November 2012
Awesome Tools I've Been Using

I recently just passed my probation period and got hired full time at Performance Horizon which means I get to work on awesome technology...

November 2012
Free Hosting with Github Pages

I've been meaning to try out Github Pages for quite a while, but never had a project that was suitable as nearly all of my work is built ...

October 2012
No more Wordpress!

I've decided that having my Blog hosted on 3rd party software is no longer an option. After 3+ years of posting originally on Blogger, th...

October 2012
Beware of Hamachi IPv4 Subnet

Today I found a major flaw with a piece of software I use heavily every single day, as do a lot of people I know. Logmein Hamachi is curr...

September 2012
MongoDB MMS via Hamachi VPN

Today, I stumbled across a great way to use 10gen's MMS system with my Macbook Pro today without any kind of router reconfigure, firewall...

September 2012
It's September already?

Where has the time gone! I've been working at my new job for almost a whole month now and it still feels like I've just started! For thos...

July 2012
Recover from Interrupted Ubuntu Release Upgrade

Today I finally got around to upgrading my home media server to Ubuntu 12.04. I'd been putting it off for a while, mainly because I was b...

July 2012
Installing GeoIP on CentOS

I mainly write these blog posts for my own personal reference, so I don't forget how to install all of these various packages, but also b...

June 2012
MongoDB UK Workshops

Today, I attended the workshops leading up to the MongoDB UK event and learned so much from the amazing solutions experts over at 10gen. ...

June 2012
Google Code Prettify

I've updated my Blog to support Google Code Prettify since I'm going to be posting a lot more coding and example posts.

June 2012
Install MongoDB on Ubuntu 12.04

Here is a small script I whipped up while I was bored in the Travelodge waiting for #MongoDBUK. It's basically a drop in script to make s...

June 2012
Samsung S3

I am now the proud owner of the Samsung S3. In fact, I'm actually writing this post from it using the WordPress for android...

June 2012
How to Rename a Field in MongoDB

Since MongoDB is technically a schema-less database, there aren't fields or columns that you are used to in things such as MySQL, and cer...

April 2012
JavaScript Racing Game Prototype

I've just finished working on the first prototype for my up and coming racing engine written in JavaScript. It's nowhere near finished...

April 2012
Using Curl to Download Files via Command Line

I recently just discovered that Mac OSX doesn't have wget functionality, and that's one of the most useful things about the command line ...

February 2012
Order By Folders First in Mac OSX Lion

A pet hate of mine on Mac is the inability to order directories with folders at the top. It makes perfectly logical sense to put things i...

February 2012
Adding User to a Group on OSX Lion

It's quite annoying how non-simple OSX is to Linux, so nearly all of the commands I'm used to don't actually work anymore so I have a lot...

February 2012
Mass Effect Addiction

I'm so excited for the launch of Mass Effect 3 that I felt like I had to write about it to get it out of my system. I was extremely di...

February 2012
Deploying Websites with Git

Are you still using FTP for website deployment? Don't. If you're like me, and think there isn't a better solution then look no further th...

January 2012
Ubuntu Samba Authentication

I've just finished linking up all of my servers using a mixture of Hamachi, Samba and Rsync for ease of access and simplified backups. I ...

January 2012
Varnish Cache Accelerator Introduction

Recently I've been looking into a lot of Technology and Software to improve the performance and scalability of some of the projects I've ...

December 2011
CURL Post Data in PHP

This post is an introduction to a new series I will be writing about CURL in PHP. To start with I am assuming you have basic knowledge of...

December 2011
Installing CURL on Ubuntu with PHP5

This is a quick post explaning how to quickly install the CURL module on PHP5 in preperation for my next few posts. Below is the code to ...

November 2011
Upgrading to Ubuntu 11.10 using Command Line

Here is a very simple script to update from Ubuntu 11.04 to 11.10. I have just launched a few new servers and this was the first thing I ...

November 2011
Installing Node.js on Ubuntu 11.10

This is a quick post demonstrating the quickest way to get node.js running on Ubuntu 11.10. I've tested this on both Desktop and Server e...

November 2011
Introduction to Node.js: Building a Web Server

Lately I've been looking into different technologies for making real time communication better for my sites, games and apps. Node.js has ...

September 2011
Pixel Perfect Collision Detection in JavaScript

I'm working on a simple game to refresh my canvas knowledge. I decided to built the game entirly in JavaScript, which isn't easy ...

August 2011
Google Profanity API

Some developers discovered the Google Profanity API a week or two ago, and it looks to be an interesting service. It's not an official re...

August 2011
Updating Timezone on Ubuntu Server

Here is a quick snippet for updating the time zone on Ubuntu Servers via the command line. This will be part of the series I'm writing on...

August 2011
Moving to Open Source

Recently I've been thinking a lot about open source, and whether or not it's a good idea for me. I can see why it benefits groups of deve...

August 2011
Installing Memcache on Windows

This week a colleague needed to work from home to finish up some code for our new internal site launch next week. Unfortunately, since we...

August 2011
Codecademy: Learn to Code the fun way

This morning, I just stumbled across a cool site which teaches people who to code, without it being an entirely tedious task. The site tr...

August 2011
Removing Password from SSL Key

I recently just setup a new SSL Certificate on marcqualie.com and ran into a little glitch that wasn't explained in the setup process, bu...

August 2011
Streaming Media from Linux to Xbox 360

Today I woke up with the vision of watching Dexter while working on my laptop because I'm sick of sitting at my desk. This left me with 4...

July 2011
Shutdown Ubuntu Server 11.04

This is just a quick post to hopefully help you out if you're having the same problem as me. I recently purchased a HP Proliant Microserv...

July 2011
Advanced Object Binding in JavaScript

For way too long now I've taken advantage of the amazing bind method build into the Mootools core framework, so when I started using jQue...

July 2011
Improving SSH Security on Linux

This is a quick post to inform you of some ways to keep your Linux machines well protected from hackers and bots. Today I realised some o...

May 2011
Installing 64-bit Flash Player on Ubuntu

I recently just dusted down an old laptop to use as at work, and I felt Ubuntu was the smart option since I'm becoming very fond of Linix...

May 2011
Secure Proxy with Squid and SSH Tunnels

Today I decided to build myself a small, yet very secure proxy tunnel to use at work. Not that I have anything to hide, I'd just prefer m...

April 2011
Molehill Gaming Launched!

Hey guys! It's a while since I posted, but it's all for a good cause, I promise. Recently I joined forces with a friend and we become a s...

March 2011
Google Guru Simplifies Searching

Google have just realised a useful new tool called Guru. Guru is a little chat bot that you can add to your Google Talk contacts. It's a ...

March 2011
XML to JSON using Google Feed API

If you're like me and you work heavily in JSON, then you're probably wondering the best way to get XML feeds into JSON format? Over the y...

March 2011
Laser Beam Techno Harp

I really want to make something like this so I thought I'd share.

March 2011
My posters are up!

Just a quick post to say I finally got my posters from the Oatmeal! Now Everytime I get a moron as a client I can just glance up at my wa...

February 2011
TouchEvent in FlashDevelop?

Today I received my Kinect Cable (oh yeah!) so I could start playing around with some hacks. Unfortunately, I was in a lazy mood, so Inst...

February 2011
Secure Proxy with Hamachi2 on Linux

Recently I read an article on how to secure my public browsing using LogMeIn Hamachi Client. I was using Hamachi for a while prior to th...

February 2011
I Just Bought an Oatmeal Poster

After months of putting it off I've finaly decided to buy the poster I wanted from The Oatmeal! The poster I bought was, of course, How ...

February 2011
Installing Varnish Cache on CentOS

Today, I installed Varnish Cache onto my Amazon EC2 server to test drive it's performance. I had recently discovered sites such as Facebo...

February 2011
APC (Alternate PHP Cache) Drawback

Today I was experimenting with various caching techniques in PHP and Apache to try to speed up my site, while still keep all of my conten...

February 2011
Facebook Rolling out new Messaging System

Facebook have finally started rolling out their new messaging system to all users! I wrote about this along with the new profiles a few ...

February 2011
Detect Selected Radio Input in JavaScript [Mootools]

A collegue brought up an interesting subject today at work; how do you detect which radio button out of set has been selected in JavaScri...

February 2011
Flash 10.2 gives web video a Boost

Thanks to Adobe's newest release of Flash Player 10.2, web video will use much less of your processor, and improve battery life on mobile...

February 2011
Facebook now supports SSL

I've been waiting for this for quite a while, so now that Facebook have officially released native SSL (Secure Sockets Layer) I'm a very ...

January 2011
AS3 Matrix Animation

This started out as a little project to wake me up after work before starting to small design projects I had planned to do. To my supris...

January 2011
Blender Energy Drink Advertisement Tutorial

Create an Eye Catching Energy Drink Advertisement from Andrew Price. I want to make my own Energy drink now! He makes it so simple, but p...

January 2011
3D Car Gallery in Flash

I've been designing a 3D Flash Gallery that can render .3ds models fully in Flash. The models aren't mine, they belong to a friend, who ...

January 2011
My Personal QR Code

I got bored and decided to change my profile photo on my social networks to a QR code pointing to my website. I've been interested in th...

January 2011
Go To Google, Type in Google..

We've all met people like this. I meet meet people like this on a daily basis due to the nature of my work and I think they should al...

January 2011
Huge BlendSwap Update

I'm pretty new to Blender, and hadn't really heard of BlendSwap until today. It's basically a repository where users can subm...

January 2011
Microsoft Mocks Google using Failed Esperanto Language

Below is an article from MSDN, where a Microsoft employee openly mocks Google's decision to no longer support H.264 video which I wro...

January 2011
Google is to drop support for H.264 video format

Google has announced that it will be dropping support for the H.264 video format in favour of more open standards. They will be pushing p...

January 2011
My Healthy Cooking

Admittedly the sausage isn't very healthy, however the vegetables consist of almost everything nasty and healthy I could imagine! All co...

January 2011
Drawing Minecraft using HTML5

I would love to be able to draw like this. This must have taken the guys hours, and it is clearly a masterpiece!

January 2011
Kinect Hack: Real-time Motion Capture

This hacker is using a blender model and Kinect to replicate his movements in real-time. Quite impressive how accurate it is.

January 2011
Android 3.0 Honeycomb Preview

This is the way a tablet should be. Google have built the interface from the ground up, making it totally different from previous version...

January 2011
Kinect hack Midi Controller

Not really much to say about this one apart from how clearly awesome this thing could be. I'd loved to be able to compose music witho...

December 2010
Kinect hack for World Of Warcraft

As many of you may know, Xbox Kinect has been hacked many times for various different reasons on the PC. Now the millions of gamers can ...

December 2010
Advantages of Chrome OS

It's been a while since I've seen one of Google's little playtime videos as I like to call them. If only I could have this much fun demo...

December 2010
Teaser Video for Android 3.0 Tablet

Above is a video of Andy Rubin showing off the Motorola Prototype which is loaded with the unreleased Android 3.0 (Honeycomb). If you're...

December 2010
Google Wave is now Apache Wave

Thanks to the Open Source Community over at Apache, Google Wave will now be able to live on in it's new home where many eager developers ...

December 2010
New Facebook Profiles

Well, that was quick! Mark Zuckerberg wasn't planning to reveal the new Facebook Profiles until later tonight, but it looks like they're ...

December 2010
Mark Zuckerberg to Unveil New Profile Pages Tonight

New Facebook? Yes please. In my opinion, as many of you know, Facebook isn't much use. Yes, you can talk to your friends, share content ...

December 2010
Razorfish Davinci making Physics cool on Kinect

DaVinci prototype on Xbox Kinect from Razorfish – Emerging Experiences. This is one of the most impressive things I've seen in a ve...

December 2010
Groupon Rejects Google's $6 Billion Deal

It has just been confirmed that Groupon, the group buying website, has turned down a rather staggering $6 Billion deal from Google. Group...

December 2010
I am an Opera Code Cracker!

Earlier today, Opera passed the 150 million user mark. Many of you won't know what Opera is, unless you've used it on your mobile at some...

November 2010
Convenience vs Performance in PHP

PHP, while known for it's simplicity and scalability, is an overall slow and memory consuming language. I my 5 years of programming, I've...

November 2010
Canvas GPU Acceleration in Chrome Fails

As you may know I recently relaunched Squiggle Canvas. Whilst re-coding the site I noticed the entire engine was very glitchy, and the Ja...

November 2010
Squiggle Canvas Returns!

I decided to do something constructive with my weekend. I have a lot of projects lying around unfinished, and random optimizations to do...

November 2010
Minecraft is a Dropbox Overkill

I'm assuming you have all heard of Minecraft, as it's one of the most popular games with nerds on the Internet right now. It's basically...

October 2010
Binary Clock

Today, I saw a lovely clock whilst browsing ThinkGeek. It was a very simple interface, with gorgeous LED lights. So simple in fact, ...

October 2010
Pagination with PHP and MySQL

This is a quick tutorial on how to code basic pagination using a combination of PHP and MySQL. Pagination is basically splitting a list o...

October 2010
Pixel Perfect Collision Detection AS3

Hi guys! It's been a long time since I've posted on here, but I've been a very busy little worker bee! I will explain more ab...

October 2010
Facebook's Recent Updates

I haven't wrote about Facebook in quite a while, mainly because I don't like it.However, it appears they have been doing some pretty awe...

October 2010
Create Symlinks using PHP

Did you know you can also create symlinks using PHP? Now when you have a lot of files you want to symlink in bulk, such as Apache project...

September 2010
Ever wanted images to be smaller and load faster?

Over at Google they are always trying to make the internet faster, and just generally better for all of us Speed Craving Humanoids. They ...

September 2010
Symbolic Links and Drop Box

Do you have certain files you need to keep synced up on many different machines? For example, home work and a spare laptop? Well with Dr...

September 2010
Animation Vs. Animator II [Flash]

This is the sequel to my previous post. Again, all credit goes to Alan Becker.

September 2010
Animation Vs. Animator [Flash]

This is actually amazing. I was literally wowed when I saw this. It took the guy a whole 3 months to make, but it was most deffinetly wo...

September 2010
Aardvark Review

Aardvark have just decided to post theirselves on Facebook and Twitter. I've used this service for a few months now and answered a lot o...

September 2010
Mozilla Concept Phone

If this were a real phone, I would most likely sell everything I own just to have one. Seriously, amazing.

September 2010
What is Super WiFi?

Well, Super WiFi, is in fact, standard WiFi. It will still give you the same data, and be accessed the same way, but...

September 2010
Google New!

If you're anything like me, and you like to keep up to date with modern Technology, then Google New is the perfect place for you. The on...

September 2010
Dating Before the Internet

Dating before the internet! This had us all very amused at the office, maybe we should make our own?

September 2010
Symbolic Links are my new Best Friend

The other day I posted an article about Symbolic Links in Windows 7. I just want to write an update on how amazing these things actually...

September 2010
ItelliType Pro Fails with Spotify

Recently I purchased a new Keyboard and Mouse desk set, which I have been very impressed with so far.; It's a Microsoft Wireless Deskset ...

September 2010
Is Facebook becoming the new Google?

Just a quick rant about how Facebook is trying to become the new Google. Facebook started off as a social network and has slowly been exp...

September 2010
Operation Social Cleanup: Facebook

I've decided there are way too many people on my Facebook account that I simply don't know, or that don't talk and just polute the homep...

September 2010
Symbolic Links in Windows 7

Today I decided to link up some servers so I could develop faster and they would be almost identical. Unfortunately, symbolic links aren'...

September 2010
Internet Explorer 9 Beta Released

Yesterday, Microsoft revealed it's new Browser into public Beta. I've had a few of the platform previews before and was slightly impress...

September 2010
Modern Art: The Beginning

So, today I decided it would be a good idea to start drawing again. There was a spare tablet at work, and it could help my new project, ...

August 2010
Android Development Account

Hey guys, this is my 50th Blog post, didn't realise I'd end up getting this far but I think well done to me for not getting bored! This ...

August 2010
Ruby On Rails vs Cold Fusion Video

This is possibly one of the funniest sets of video's I've seen in a while. You all remember the Mac vs. PC ads, right? Of course you do, ...

July 2010
70 Billion Pixel Photo of Budapest

Many of you may have heard of the Gigapixel project made in Dubai a few months ago. This was quite and impressive photo allowing you to ...

July 2010
How Modern Tools Were Meant To Be Used

It's so true. How often is modern technology used for anything constructive or educational? In fact, almost everyone I know who uses the...

July 2010
Google Chrome: Canary Builds

Today, I read a post about the new version of Chrome which Google have released. It's basically a secondary browser, which can be install...

July 2010
Site and Blog Updated, No Thanks To Google!

Yes, shock horror, Marc is annoyed at Google! The one night in the past month or two I've had the motivation to update my project si...

July 2010
3D In Flash using Away3D Engine

Hey guys! Been a while since I've blogged but it's worth it, honestly! Lately I've been so busy working on so much stuff I barely have ti...

June 2010
Internet Procrastination At It's Best

I do this on a daily basis, looks like I'm not the only one!

June 2010
Google Napping Pods

Ok, seriously. Who doesn't have this as a dream addition to the office? I know i would kill to have a napping pod at work! Maybe I will ...

June 2010
Classic Coder Excuse

This makes me want to start working with compiled languages a lot more! Not that I would do this, of course..

June 2010
Currently On My Mind

It's 3am so i'm lying in bed posting from my phone, how awesome! Anyways I thought I would share what's on my mind.

June 2010
iPhone OS 4.0, Oh Please!

So today, Apple decided to release what they call an “upgrade” to their iPhone OS (now named iOS). First of all, this may be ...

June 2010
Squiggle Canvas Update

The last few days I've been working n major improvements to the Squiggle Canvas project. Not only is it faster to use, works in more brow...

June 2010
Epiphany, Or Whatever..

So today I realised I'm pretty much doing nothing with my spare time. Sucks, right? Wrong! It's awesome.. but also lazy. So here's my pla...

May 2010
AS3 Music Visualiser Project

Last night I decided to make a quick project to test out how flash can read data from audio on the fly. Turns out it has quite an advance...

May 2010
Cross Browser Nightmares

This weekend was meant to be all about releasing my new product, Squiggle. However I've ran into quite a lot of issues when testing the n...

May 2010
Google Chrome: Faster Than A Speeding Potato

Out of all the random things Google have come up with to demonstrate their products, this has to be the most fun I've seen. While we&...

May 2010
Productive Bank Holiday Weekend

Well, the 3 day weekend was nice while it lasted. Sadly back to work tomorrow, however I made great use of the extra day! Normally I d...

April 2010
Squiggle Update: 4 New Brush Styles

*Update* Since posting this article I've moved Squiggle to a new location on squigglecanvas.com, I rewrote the entire application, and it...

April 2010
Will the web become self-aware?

Anyone else ever thought to themselves that The Terminator movie has a hint of truth to it? Clearly technology is becoming more advanced ...

April 2010
iPhone, iPad.. basically iHate!

Personally, I despise Apple as a corporation. This does not make me a Windows Fan Boy or an Android Geek, it simply means I simply hav...

April 2010
My First Chrome Extension

Today, I finally got around to taking a look at Google Chrome Extension API. Interesting stuff to play with, and very simple tp get start...

March 2010
CSS Compressor API

It only took a few months but I finally got it released. It's been sitting there in a little folder on my desktop for god know how long, ...

March 2010
How much does Technology control our lives?

Today, whilst updating my site I suddenly realised, nearly everything I do is Google-Based! I imagine I'm not the only one either. It'...

February 2010
My First Blog Post, Ever!

So I finally decided to start blogging, yay for me! Took me long enough. I got annoyed at myself for putting everything off, always sayin...