Saturday, July 4, 2009

HTML 5 - the web grows balls

OK, I've not been this excited about the web since I got my first hello world to load with apache for the first time - Why? HTML 5!
I have a project that needs a few browser-playable videos. I was NOT looking forward to encoding videos into flash and doing all that stuff :/ Then comes Firefox 3.5, then comes me reading about html 5, then comes me rejoicing in the streets(in my head). BUT WHY???
< VIDEO >
BOOOM That's why; And encoding video to ogg/theora is deadly easy on my ubuntu workstation.

Also, I don't care if this works in IE or not. Actually, from this day forward I am not designing sites FOR ie. Internet Explorer is a ripe pile of elephant shit. I say ripe, because it seems like they keep coming out with new versions, only to be the same old shit. If I can make a quick change that will make ie "work", ok, sure, maybe; But I will no longer spend hours patching up a site to make ie happy, and in the process possibly eliminating some cool things I added that only work in modern browsers.

If a customer wants a site to be ie "compliant" I will charge them for it explicitly.
My time > bending over for microsoft.

If everyone was like me, we would literally have ie on par wth firefox in less than a month. So, in short, you should be like me.

Wednesday, June 24, 2009

How To: Properly Backup a VirtualBox Machine (.VDI)

First of all, these are the instructions for a VirtualBox installation on a Linux host. It may or may not be the same directory structure/commands for Windows or Mac OS X hosts.

Most people don’t realize that making a backup of a VirtualBox Machine (.vdi) is more complex than just copy/paste. If you do that, you’ll soon realize (when it’s too late) that it doesn’t work! This is the proper way to backup your VirtualBox Machine:

VBoxManage clonevdi source destination

Example:
VBoxManage clonevdi ~/.VirtualBox/VDI/WindowsXP.vdi ~/WindowsXP_Backup.vdi

NOTE: Although I’m not specifically sure, sometime after Version 2 of this software, the clonedvi command has been replaced with clonehd (see page 108 of the VirtualBox Manual), however, clonedvi will still work as they kept the backwards compatibility.

Then, wait for it to complete. It may take a while depending on the size of your .vdi file (or how much space you allocated towards your virtual machine).
What this actually does is create a new UUID (Universal Unique Identifier) for the cloned VM. This way, you won’t end up with a message similar to this:

A hard disk with UUID {4d749826-6a3f-43ff-90af-42618783bd3a} or with the
same properties (’/home/martin/.VirtualBox/VDI/test.vdi’) is already
registered.

Friday, June 19, 2009

DKMS = win

DKMS

DKMS (by Dell) is included in Ubuntu 8.10, allowing kernel drivers to be automatically rebuilt when new kernels are released. This makes it possible for kernel package updates to be made available immediately without waiting for rebuilds of driver packages, and without third-party driver packages becoming out of date when installing these kernel updates.

My servers, desktop, and laptop all use dkms and I just realized how nice it is. It isn't installed by default on 9.04 desktop edition, but that's easy to resolve. apt-get install dkms

Thursday, June 18, 2009

Time Synchronisation with NTP

I just implemented ntpd on one of my virtualbox lamp servers. The time was drifting about an hour a day under heavy load. gg old server. posting this here for future reference.

This page describes methods for keeping your computer's time accurate. This is useful for servers, but is not necessary (or desirable) for desktop machines.

NTP is a TCP/IP protocol for synchronising time over a network. Basically a client requests the current time from a server, and uses it to set its own clock.

Behind this simple description, there is a lot of complexity - there are tiers of NTP servers, with the tier one NTP servers connected to atomic clocks (often via GPS), and tier two and three servers spreading the load of actually handling requests across the internet. Also the client software is a lot more complex than you might think - it has to factor out communication delays, and adjust the time in a way that does not upset all the other processes that run on the server. But luckily all that complexity is hidden from you!

Ubuntu has two ways of automatically setting your time: ntpdate and ntpd.

ntpdate

Ubuntu comes with ntpdate as standard, and will run it once at boot time to set up your time according to Ubuntu's NTP server. However, a server's clock is likely to drift considerably between reboots, so it makes sense to correct the time ocassionally. The easiest way to do this is to get cron to run it every day. With your favourite editor, create a file /etc/cron.daily/ntpdate containing:

ntpdate ntp.ubuntu.com

ntpd

ntpdate is a bit of a blunt instrument - it can only adjust the time once a day, in one big correction. The ntp daemon ntpd is far more subtle. It calculates the drift of your system clock and continuously adjusts it, so there are no large corrections that could lead to inconsistent logs for instance. The cost is a little processing power and memory, but for a modern server this is negligible.

To set up ntpd:

sudo apt-get install ntp-simple

Changing Time Servers

In both cases above, your system will use Ubuntu's NTP server at ntp.ubuntu.com by default. This is OK, but you might want to use several servers to increase accuracy and resilience, and you may want to use time servers that are geographically closer to you. to do this for ntpdate, change the contents of /etc/cron.daily/ntpdate to:

ntpdate ntp.ubuntu.com pool.ntp.org

And for ntpd edit /etc/ntp.conf to include additional server lines:

I use :

server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org

via: http://www.pool.ntp.org/zone/us

You may notice pool.ntp.org in the examples above. This is a really good idea which uses round-robin DNS to return an NTP server from a pool, spreading the load between several different servers. Even better, they have pools for different regions - for instance, if you are in New Zealand, so you could use nz.pool.ntp.org instead of pool.ntp.org . Look at http://www.pool.ntp.org/ for more details.

You can also Google for NTP servers in your region, and add these to your configuration. To test that a server works, just type sudo ntpdate ntp.server.name and see what happens.

Wednesday, June 3, 2009

Install Ruby Rails on Ubuntu 9.04 Jaunty Jackalope

I just found this guys blog post about installing nginx to deploy rails sites. it worked well for me.

http://www.hackido.com/2009/04/install-ruby-rails-on-ubuntu-904-jaunty.html

Sunday, May 24, 2009

Crazy homeless guy

This guy was walking around talking to himself and I think I caught him about to baptize himself in the gulf.

Saturday, May 16, 2009

Rails beginner screencasts by Karmen Blake


I found Karmen Blake's screencasts last night. He does a great job at explaining what's happening while he takes you through creating a rails app from scratch. The videos are not in order, you'll have to click around and figure that out yourself.