DarkSnow

Freelance Web Developer

DarkSnow

DIY laptop stand

DIY laptop stand

Like many, I quickly tire of hunching over a laptop so when I’m at home it’s much better to plug into a keyboard and mouse and get comfortable. The natural progression from there is a bigger display and somewhere to put the laptop that’s a bit easier to look at....

Off-canvas menu without JavaScript

Off-canvas menu without JavaScript

I really like working with JavaScript, especially when I can keep things clean in the browser. While things like jQuery really helped clear up cross browser issues, they can be overkill for a lot of smaller tasks. In fact, sometimes JavaScript is simply not needed for a lot functionality. Here...

Technology Driven Design

Technology Driven Design

Below is my submission to the Boagworld podcast. For season 18 of the podcast, Paul Boag decided to do an “Open Mic” season, allowing first time speakers a chance to appear on the podcast. You can hear the full podcast on Paul’s site, or subscribe to the...

LEGO maze solver

LEGO maze solver

In my code club I asked the kids to solve a maze. This is an easy enough task for primary school kids but what I was really leading them to was a means of solving any maze. Maze traversal is...

Fixed Table Headers

Fixed Table Headers

I’ve been working on a calendar app in Angular and decided that I needed a table which scrolls both horizontally and vertically at the same time. Now, this in itself is easy enough to achieve. Just restrict the size of the <table> element and set scroll bars on it. Job...

Lego phone holder

Lego phone holder

While testing sites on mobile you need a real test platform. Virtualisation tools are great and everything, but to see performance issues and really get a feel for how a site will work on mobile, there’s no substitute for a real device. Having a phone sitting flat on the desk...

Drupal Done Quick

Drupal Done Quick

How fast can we put together a complete, feature rich website? What if I told you that I could put together, from an empty directory on a web server, a complete Drupal installation in less time than it will take me to write this post? Now, a quick and dirty...

A very Arduino Christmas

A very Arduino Christmas

This Christmas I thought it was finally time to start on a hardware project that I’ve been thinking about for a long time. So, to that end I ask my brothers for an Arduino starter pack, and they dutifully delivered. I am now the proud owner of an Arduino Uno,...

CSS3 Transitions

CSS3 Transitions

Recently I’ve been messing with the cool new features of CSS3 for a client project and I was inspired to see what sort of interface features could be done with it. The nice things, like drop shadows, gradient background and curved corners, make things look great without having to reach...

Even Microsoft Hate IE

Even Microsoft Hate IE

While wandering the web looking for a work around to a bug in IE (versions 7 upwards) I came across a very interesting little website run by Microsoft. The IE6 Countdown. From this very website: 10 years ago a browser was born. Its name was Internet Explorer 6....

Leaving the world of work

Leaving the world of work

It’s been a while since I’ve written anything on here, and I have a fair bit to write about now. In September I quit my full time job to stay at home and look after my then one year old daughter. While the wife was paying the bills I decided...

Nifty Glass

Nifty Glass

I had decided to create the “glass” effect popularised by OSX and Vista and while following various guides and creating some graphics in the GNU Image Manipulation Package I spotted a pattern and decided to come up with a way to create the now popular glass effect in CSS,...

Code URI Component

Code URI Component

JavaScript has a handy function built in called encodeURIComponent(), and the corresponding function decodeURIComponent(). These functions allow you effectively strip out parts of a string that could cause problems when sent in a URI, in a get request for example. I also recently found it handy for encoding strings for...

A JavaScript Framework

A JavaScript Framework

When I decided to learn JavaScript I found, quite quickly, that while it is a powerful language, which came as a surprise since I always thought of it as a simple automation lauguage for browsers, there are numerous holes. These holes were filled by numerous framework libraries for doing all...

Ajax Library

Ajax Library

Like everyone else, when I started dabbling in AJAX code I found myself repeatedly creating the same code to do the same things. There was always code to make sure I could create the XMLHttpRequest if it was there, or the Microsoft equivalent for the awkward browser. There was always...

Lots of Little Flags

Lots of Little Flags

A lot of world flags, for use on websites for internationalisation purposes, or, as I’ve used them, to put a nationality next to a user. A clean version of this file, with all the images, can be found at /downloads/images/flags/. #colchange div { float: left; width: 14em;...

Canvas Big Ben

Canvas Big Ben

My latest exploration of the canvas tag was a sort of extension of the canvas clocks I already made but the scope was far greater. function BigBenBezel() { edge = 5; smlArc = Math.PI/7.45; subR = 20.6; //...

Canvas Clocks

Canvas Clocks

Following on from my initial work with the canvas tag to create the canvas site logo generator, I worked on the dynamic aspects of the canvas tag, to prove to myself it could be used to create the sort of animations Flash and Silverlight are designed for. This example...

Canvas Logo Generator

Canvas Logo Generator

A while ago I discovered the canvas tag and thought I would have a play around with it. This page is the first result of that exploration and has been used to quickly create bitmaps of the site logo. The canvas tag, and libraries built on it, could become a...

Web Safe Colour Palette

Web Safe Colour Palette

I’m not convinced that this is relevant any more, but I find it handy to see the web safe colours all together like this when making sites. The web safe palette also limits your options which makes it a little easier to make a decision about which particular green you’re...