Tuesday, December 4, 2012

The Web Developers Mistake

If like me you do web development there is probably one mistake you often make over and over again in terms of UX.

We assume that our experience using our app under development will mirror the end users and there are a few reasons why that is probably not true.

First is our workstation. Like many developers I am using a modern computer with a lot of memory. In my case it is a macbook air with 8GB of ram and a 23" external monitor. But our users may have very different hardware. And by different I mean older. For those users who are not power users it would not be crazy to think that they are using a 5-6 year old computer with a 17" monitor. And for many uses such a computer is of course a practical machine. However if your website or app does not work well on it then they will go use something else.

Second is the network. When I do web development I am using a server that is either on my laptop or maybe on the linux box sitting next to it. In both cases these machines are very lightly loaded as I am the only one hitting this server. But more importantly it is local. It is connected over a 100mbs Ethernet wire.

Our end users may be in a very different ballgame. If, for example, you host your application in Amazon's East Coast Data center (as many sites are) your user may well be half way around the world from the server. In addition depending on what country they are in their network connection speed may be congested. As such it would not be crazy for a network round trip for your local development server to take 1-2ms while for the production server to take 300ms or more. So the time to connect to the server would be as much as 300x slower!

Of course there are ways to help this. Combine scripts and images and using a CDN will help a lot.

However the most important way to combat these problems is just to keep them in mind as you build your applications.

Why are backups so hard?

Like everyone else I need  a backup solution and I have been putting this off to long. Here is the thing I want this to be as simple as possible. I have my laptop with stuff on it and I have a file server with free space. So it should be simple right? Choose what to back up (and what not too) and have it make a compressed copy of everything to backup onto the file server. Ideally compress it at the same time.

I looked at Apple's Time Machine and it wants either a directly attached drive or their backup server. No Joy there :( I don't want to buy their thingy and Don't want to buy a hard drive just for this.

I looked at a bunch of other things online all of which seem really complex and cost money, both of which I want to avoid if I can.

My final Solution... Tar and a shell script

I mounted the backup volume on my mac and created a script to tar everything up and copy it over my net.  I will add it to the chrontab later to backup every night after I go to bed.