<Marc Qualie/>

118 Blog Posts

August 2024
Accessing dev environment from another device

Sometimes you want to test your web project from a physical device. Simply shrinking the screen size on a desktop browser can certainly help...

February 2024
Disable PS5 Controller button on MacOS

I often use my PS5 controller on my Mac Studio with PS Remote Play to quickly login and check something or pick up a time-bound item without...

July 2022
Add Prettier to NextJS

Out of the box NextJS comes with eslint, but this only helps with code quality and does not enforce any kind of formatting. You can heavily ...

Cleanup dev resources

When working on a bunch of development projects, specifically JavaScript, drives can fill up pretty fast with useless data. The most common ...

macOS set hostname

Recently I've been using Tailscale for easily linking and managing my personal devices. I love the simplicity of it, but I got annoyed when ...

May 2021
Upgrading legacy Terraform providers

I recenty worked on some pretty old Terraform projects (built using v0.10.x I believe). The state on these projects is no longer compatible ...

January 2021
Testing Rails 6 Zeitwerk Autoloading

Rails 6 introduced a new autoloader called Zeitwerk. While it has many many improvements, one of the main changes is how strict it is with f...

July 2020
Rendering templates in Rails API controllers

I found myself with an odd scenario the other day where I needed to render a rails partial (using HAML with some templates, styles, and a la...

May 2020
Carbon Offsetting

Over the last few years I've started to become a lot more aware of various carbon emissions created by myself and the people around me. From...

IAM Policy for humans

Configuring IAM is essential for any AWS account. The most common use case is granting access to EC2 instances, or allowing web apps to read...

April 2019
pyenv install with zlib

I've lost count of the amount of times I've had to research this on a fresh install or different machine. Since python is not a language I u...

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 been solv...

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 across it ...

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 idea a...

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 public ...

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. After spen...

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 now m...

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 snippet ...

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 any solu...

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 dev...

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 aw...

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 are no w...

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 particular...

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 the look si...

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 huge...

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.

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 on...

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 po...

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 encrypti...

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 starte...

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 a p...

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 32nd ...

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 realise t...

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 contributing...

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 needs ...

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 to b...

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 business...

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 stable e...

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 usin...

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 but ...

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 anythi...

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 wi...

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 on ...

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, then ...

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 current...

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 those o...

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 busy...

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 beca...

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. I c...

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 sure...

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 certai...

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, but ...

Using Curl to Download Files via Command Line

I recently just discovered that Mac OSX doesn't have &lt;a href="https://github.com/mirror/wget" target="_blank""&gt;wget functionality, and...

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 in A...

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 mo...

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 disappoi...

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 than ...

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 bee...

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 run...

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 had...

Installing NodeJS 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 edit...

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 bee...

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 to do due t...

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 ge...

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 develop...

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 de...

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 tries...

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, but l...

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 op...

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 Microserver ...

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 jQuery ...

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 of t...

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 la...

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 my b...

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 sing...

March 2011
Laser Beam Techno Harp

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

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 Instead...

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 Facebook ...

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 JavaScript?...

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 content r...

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 de...

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 all be ba...

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]({% post_url 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 peop...

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!

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.

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 without ever...

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 play...

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 wai...

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 ma...

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 JavaS...

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 of c...

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 about that in my ...

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 fi...

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 wer...

Mozilla Concept Phone

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

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 3000...

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't s...

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 installed ...

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 time ...

June 2010
Internet Procrastination At It's Best

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

Classic Coder Excuse

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

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 an upgrade to t...

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're all ...

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 by ...

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 saying I...