This is your government on metadata (with pictures!)

Data retention and warrantless government spying are starting to come out as two of the biggest issues of the century. And about time too - this is a war that has been going on for decades, hidden behind the screens of software developers, tech geeks and hacker kids where everything looks technical and boring to the outside observer and prevents anyone from really paying much attention to what's going on.

There is a lot being said about what our representatives are trying to legalise here, but what is already legal? What is already going on behind closed doors?

The issue has been raised in Europe - and rejected as a violation of basic human rights. It has been raised in England - and allowed to happen against the wishes of the people. It has been raised in America - brought to light after it surfaced that the American government has been secretly storing communications from the entire internet despite this obvious conflict with their constitution. Now the Australian Government is having its turn at the grab for more power. (more)

Terms & conditons, tracking and choices

It alarms me setting up a new phone.

Once you have linked your online accounts, whether they be @gmail.com or @mac.com or @live.com, you get to the annoying setup wizard that we all loathe and rush through. The screens wherein we mash 'next' impatiently so we can get to the end and start using it.

Nobody pays any attention to these things, everybody wants the convenience of knowing their online stuff 'just works' and that they won't lose their emails. But what is the real cost here? (more)

Git deployment script

Deploying your projects via git (or any kind of version control, for that matter) is a no-brainer. It's been discussed many times (this is probably my favourite) and as we all know, it takes all the manual labour, time and human error out of the process.

You don't often find deployment scripts though. Perhaps it's just me failing at Google, I don't know; but perhaps people just don't tend to write them generic enough. Or perhaps they are too simple to be bothered sharing them. In any case, I didn't like the idea of writing single-use shell scripts and so I whipped up something that does the job rather well, and in a generic and reusable way. (more)

Responsive web design and layouts

Recently I've been doing a lot of responsive sites for clients. They're fun and often challenging things to work with; opinions and solutions from various developers and designers scattered liberally throughout the internet. So I suppose it's about my turn to chime in on it all. (more)

Percona Cluster on Ubuntu 12.10 (Quantal Quetzal)

Recently it's been a task of mine to setup a new SQL database cluster. My favourite database engine of late has been Percona's XtraDB, and so naturally I was quick to choose Percona Cluster as a solution.

This installation was a Cluster 5.5.28 install performed on a RackSpace public cloud server using a clean Ubuntu 12.10 image- your mileage with other platforms, OSes and Percona Server versions may vary. (more)

A good Webalizer user agent grouping

Recently I had to go about setting up my own configurations for Webalizer. Grouping user-agents into meaningful sections seemed a worthwhile cause, so I ran through the mobile user-agent string list and setup matches for mobile devices on top of some of the more straightforward ones for desktop. The result is a pretty clean config that handles (in my experience) about 90% of my incoming traffic. I've also tried to provide a little bit of forward-planning for version numbers on some of the browsers which now update their major version almost daily (curse you, chrome), but you should plan to keep that aspect up to date yourself. (more)

Google Apps email administration guide

Whilst they offer some great free services (edit: Google Apps is now only offered on paid subscriptions, even under the previous 5 user cap. But if you got in beforehand, you do get to keep it for free...), Google's products with their user-friendly interfaces can occaisonally be confusing for those of us who know what we're doing - a whole new set of terminology to learn just to be able to do what you had previously learned in the 'normal' / 'homebrew' / whatever way.

This is a quick cheatsheet on how to achieve some of the fundamental and more advanced mail behaviours and operations that you'd expect from any mailserver via your Google Apps admin console. (more)

JSON Schema Cheatsheet

JSON schema is the modern equivalent to XSchema/DDML or the good old ancient DTDs. It provides a lightweight, self-describing and abstract protocol for describing and validating data formats and models. There are validator implementations in many languages, but the most obvious use is in pre-send validation for frontend JavaScript applications. A good validator and some simple wrappers or data binding (like say, this...) and you can code up a complex and powerful new application in days.

Its simple JSON structure and savviness of the community has thus far kept any kind of introductory documentation from cropping up, instead one must simply read through the spec and digest it for themselves. Since this is a time-consuming process, I did up a quick cheatsheet of the properties involved in schema declarations so that once one understands the basic principle you don't have to go back and check for what the name of something was repeatedly. (more)

List of git tips

Generally, I take it upon myself to push git onto other developers wherever I go. It is a wonderous, joyful world where your work is never impeded by a network connection and everything is far more powerful and flexible. Often you hear "why would I ever want to move away from Subversion?", which is a bit like saying "why would I ever want to stop riding a horse to work", but that's a topic for another post. This page is a first-stop manual for those new to working in teams or working with git, and lays out some good practises you'll probably want to follow early on until you become a more advanced user. (more)