Complete GMail redundancy in 7 easy steps
If there is anything that the recent GMail outages taught us, it’s that losing access to your email for a few hours should not mean that the end of the world has arrived. I think it also served as a reminder that if you rely 100% on the cloud for access to your data, then be prepared to be disconnected from it every once in a while. Fortunately, it’s quite easy to take advantage of free email services from the likes of Google while also making sure that should the worst happen, you can still access your data.
links for 2008-08-12 [delicious.com]
-
Interesting article about improving the experience of deaf website users in an informed way.
My favourite quote:
"We are not disabled and Deafness is not a disability; it’s the perception of many hearing (people) that we are disabled, and that is our disability." -
Easy-to-use encryption library with Java and Python bindings
Automatic key generation with App Engine
After playing Google App Engine for a few days, I’ve realised the power that even the basic framework provided by Google, webapp, provides. Working with Python adds a level of flexibility that I never had when working with PHP many years ago (although this was before OO had really infected PHP).
While working on my first real application for app engine I soon came across the problem of creating sensible key names for objects. If you aren’t familiar with the data object models in app engine, each object has a unique key, generated automatically when the object is created, and a key name (property: key_name) which can be specified by the user. The key name can be very useful if you need object identifiers which are human-readable, such as when you use them as part of your apps URLs.
links for 2008-02-13
-
Extremely cheap online storage using Amazon’s S3 service.
-
Some advice from Guido about handling main() functions and input parameters.
-
Make a website by typing into a box. No, really - that’s it.
-
Some ideas on how to be productive in what would otherwise be dead time.
Using PuTTY ssh keys with OpenSSH on Ubuntu
Anyone who needs to access a unix/linux/osx machine from windows via ssh will be familiar with PuTTY, the free ssh client. PuTTYGen, available to download here, is a handy utility for creating RSA/DSA public/private keys for authentication. If you have generated your RSA keys using PuTTYGen, and would like to use them with OpenSSH on Ubuntu, you just need to follow a few simple steps:
- Install putty with:
sudo apt-get install putty - Create the public key file:
puttygen /path/to/puttykey.ppk -L > ~/.ssh/id_rsa.pub - Create the private key file:
puttygen /path/to/puttykey.ppk -O private-openssh -o ~/.ssh/id_rsa
You should now be able to log into an SSH server using your private key. To install your public key simply copy from ~/.ssh/id_rsa.pub on your local machine to ~/.ssh/authorized_keys on the remote server.
asioWavPlay for Matlab released
If you use Matlab for audio research / development, you’ll be familiar with the pretty poor native support for audio playback. As part of my research, I wanted to play multichannel (>2) files at a variety of sampling rates and bit depths. In addition, I also wanted to use a low-latency audio layer, such as ASIO, to take direct advantange of my audio hardware.
So, with a bit of coding I managed to put together a Matlab extension which allows for the playback of multichannel sound files using any soundcard with an ASIO driver. The plugin uses ASIO, PortAudio, and libsndfile. Samples are read from the audio file as needed, so playback start time is not dependant on the length of the file - useful in time-critical applications. Memory usage is also low because the whole file doesn’t need to be loaded into memory, only enough to fill the audio buffer.
You can download it over at the Matlab file exchange and the source is included under the GPL. Comments and suggestions welcome!
links for 2007-08-07
-
Module for creating parallel Python scripts using either SMP or on a cluster. Much simpler than getting an MPI setup working…
Building a Diskless Linux Cluster: Debian (Etch) + DRBL + GridEngine
It’s quite common in University departments for roomfuls of very capable PCs to sit idle from 5pm until 8am everyday and all weekend. Thankfully, it’s possible to turn such a wasted resource into a powerful cluster of Linux machines using freely available open source software. In fact, even a group of machines in an office, or at home, can be transformed into a similar state with the minimum of effort. By booting the PCs (or nodes) over the network, no changes are made to the current setup of the machines, so reverting back to their normal state is as simple as rebooting. This guide will bring you through the process of creating a High-Performance Computing (HPC) cluster using the latest version of the Debian GNU/Linux operating system, Diskless Remote Boot in Linux (DRBL), and Sun’s Open Source N1 Grid Engine 6. (more…)
links for 2007-06-20
-
An excellent article discussing the common mistakes and pitfalls in the development, analysis, and interpretation of scientific experiments
-
A blog detailing a player’s expierences as he completes each title in the Zelda series
links for 2007-05-09
-
Get your free 128-bit integers in the handy and easy to read HEX notation. I prefer 13,256,278,887,989,457,651,018,865,901,401,704,640 myself.
-
Amazing photographs of landings at St. Maarten airport in the Netherlands Antilles.


