Friday, February 29, 2008

Thursday, February 28, 2008



mack is a Ruby web framework written with Rack.


yui gc

yui grids gc 2/3 and 1/3 divisions, it's what I'm using today.


Mysterious craters found on Mercury on the recent Messenger flyby.

Wednesday, February 27, 2008



Jeffrey Veen remembers HotWired.

slow life

The Slow Life - A short story about a visit to Saturn's moon Titan.


MIR - Music Information Retrieval - At wikipedia Virtual home of music information retrieval research
Tools used in MIR - Marsyas, yay!
MIR Titles

planet mnemomic

My Very Exciting Magic Carpet Just Sailed Under Nine Palace Elephants is the new winner of the mnemonic contest to remember the planets and dwarf planets:

Mercury, Venus, Earth, Mars, Ceres, Jupiter, Saturn, Uranus, Neptune, Pluto and Eris.

mysql gem on fedora 8

I was trying to install the mysql Ruby gem on Fedora 8 and got the following error message:

root.devi 38 [/usr/lib/ruby/gems/1.8/gems/mysql-2.7] % gem install mysql
gem install mysql
Building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb install mysql
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... yes
checking for mysql_query() in -lmysqlclient... no

Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out

Looking in mkmf.log, I found the following at the top:

find_library: checking for mysql_query() in -lmysqlclient... -------------------- no

I found the solution on a post on, which was to symlink the mysql lib directory to /usr/local/lib, like this:

ln -s /usr/lib/mysql/ /usr/local/lib/mysql

Tuesday, February 26, 2008

ruby http


Barcelona Food Girl has an delicious new post about the food that Nuns cook in Spain. Mmmm.


A new study reports that Prozac and other SSRIs don't work, or rather, work as well as a placebo sugar pill.


Adobe Air has just been released.


I'm learning to be a fan of the ternary operator.

condition ? if_true : if_false

If "condition" evaluates as true, return "if_true", otherwise, return "if_false".

I never used this in C, it just didn't feel right, but in Ruby on Rails views, it can really simplify things. I'm learning to like it.


Monday, February 25, 2008

ecmascript 4.0

What's new in ECMAScript 4.0.

But I'm going to use haXe instead, and just compile it down to ECMAScript 4.

If you haven't tried haXe, you should, it rocks.


Foundations for Structured Programming with GADTs. GADTs are Generalized Algebraic Data Types and they allow data constructors to return types of values other than the original type they were given.


RR (Double Ruby) is a test double framework that features a rich selection of double techniques and a terse syntax.

chem mime types

Chemical MIME Types, with examples - The one I want is:


Interestingly, and strangely enough, the .pdb file extension maps to a Palm format. I'll need to set the mime type by hand.

s3 at 37signals

sqs info

SQS migrate


Tuning the VLA (Very Large Array) to be more sensitive by linking the telescopes together with fibre-optics.


Adobe Blurs Line Between PC and Web - This new Adobe Air technology sounds pretty cool. Just like AJAX changed a lot of things in the past two years, I think tech like Air is going to be big in the next couple years.

I love web applications, but in a lot of cases, I really miss having the application live on my own computer too. If we could merge the goodness of web applications with the ease and speed of running applications on my own computer, that would rock.

Sunday, February 24, 2008

amazon sqs book

rails non-hanging

rails scales

Scaling Rails to 300 million pageviews per month. This is for the "Friends for Sale" application on Facebook that I see all the time in Facebook friends updates.


substruct is a really cool new looking e-commerce engine for Rails. I'm going to do a shopping cart website for a friend in the near future, and I'm going to try out substruct for it.


The Ulysses spacecraft, after completing three passes around the sun, and going out as far as Jupiter, is finally succumbing to the freezing cold depths of space.

It did some great work out there, on it's orbit that was outside the orbital plane of the planets, observing the North and South poles of the sun.


After investigating the ReliableMessaging Ruby gem, and having big issues with a namespace conflict where they call their main object "Queue", and this conflicts with Ruby's core "Queue" object, I've decided to do the right thing and use SQS for Ruby with Amazon's SQS (Simple Queuing System). I had great success with S3, and I've decided to try SQS for this current project I'm working on.

the sun today


how the sky changes colour through a lunar eclipse, the stars just pop out.


Saturday, February 23, 2008


ReliableMessaging - provides reliable messaging and persistent queues for building asynchronous applications in Ruby.

command of the moment

rsync -av -P --exclude "*.txt" n:./streams .

I am using this to download a directory that I'm streaming from with streamripper to my server. I do this because then I can save them some bandwidth by having a local copy.

This rsync command shows the progress of your download, and excludes the .txt files that I use to keep track of the progress.

The streamripper command I use is:

streamripper >& h.txt &


stretchtext - Uses CSS to make a paper longer or shorter at your request. Neat.


CSSDOC - Documentation for CSS. Nice.

Friday, February 22, 2008


converting avi files to dvd with mencoder. it's tricky.


I'm watching Under the Tuscan Sun right now, and I'm really enjoying it. I want to read the book next, and I heard from my friend Jena that the book and the movie are almost completely different, so it be fun to see the similarities and differences.

Ah, watching that movie reminds me of the time I spent in Siena and Florence. That was a magical time.

I stayed at an old converted monastery, way up in the Tuscan hills outside of Siena, with ancient vinyards all around it. Amazing.

test your code

css tech

Thursday, February 21, 2008

capistrano version 2

I got a bit of a shock last night when I was trying to deploy a Ruby on Rails with Capistrano last night, my recipe stopped working. It turns out that I had inadvertently upgraded to Capistrano 2 when updating my gems. There are a few gotchas, I ran into these.

Fortunately, they don't look hard to solve, and Capistrano 2 looks pretty sweet.

lunar eclipse

It was a very nice lunar eclipse last night, I saw the first part and the last part, the middle was unfortunately obscured by clouds.

Wednesday, February 20, 2008


Calculate square roots with paper and a pencil. Neato!

realtek alc888




talk - action = 0

useful tail command

When you're tailing a logfile on Linux with "tail -f", the system might rename the file with a cronjob, so for long running tail jobs, you can use the --retry and --follow=name options to instruct tail to keep checking to see if the file is still current:

tail --follow=name --retry -f xferlog messages secure


lunar eclipse

A very interesting long exposure of a lunar eclipse, notice the deep red colour in the middle there, that is what you will see tonight during the total lunar eclipse.

Tuesday, February 19, 2008

indoor garden

A friend and I were talking today about growing a herb garden in a limited space, and lifehacker came in and told me about Save Money with an Indoor One-Pot Herb Garden. I'm going to miss my big garden this year, so maybe I'll have to grow some plants indoors.

managing feature creep

Eight Tips on How to Manage Feature Creep. Some great tips in there.


SALT - Semantically Annotated LaTeX

Interesting idea.

git push

lunar eclipse

There is going to be a total lunar eclipse on Wednesday evening, February 20th.

Monday, February 18, 2008


Ok, I just watched the video of Linus Torvalds at Google talking about git, and I really need to learn git:

git tutorial
git guide
git and emacs - The package is vc-git.el, and looks like it's in emacs23.

water rocket


rails-undo-redo is a really interesting Rails plugin for implementing multi-level undo and redo.

rake backup

A Rake Task for Database Backups. Interesting, but I'm going to write one with ar_fixtures because those YAML files are much easier for humans to understand.

My plan is to write a rake task that I can use in all my Ruby on Rails projects, back up their data to yml to a local directory, then copy that back home with cron, and then put the whole directory in subversion. That way, I can checkpoint all my databases back to any date I like.

I'll let you know how it goes.

intel celeron 420

mmm 3.0GHz

merb-core rack

So merb-core is built on rack you say? Why should I care?

Wow, rack with merb is really powerful, I should try to use it for a project so I can learn it better.

rake has some great rake tips with rake around the rosie.

I'm really into the chaining of rake tasks now, I'm working on eliminating a bunch of shell scripts with some simpler rake tasks.

You see, I really liked "make", and I didn't like it that the Rails folks just replaced "make" with "rake", but the last two days have convinced me that rake rocks.

rake zsh

The completed code for fast rake task completion for zsh on Linux (Fedora 7) with coreutils-5.2.1 is:

function _rake_does_task_list_need_generating () {
if [ ! -f .rake_tasks ]; then
return 0;
accurate=$(stat -c%m .rake_tasks)
changed=$(stat -c%m Rakefile)
return $(expr $accurate '>=' $changed)

function _rake () {
if [ -f Rakefile ]; then
if _rake_does_task_list_need_generating; then
echo "\nGenerating .rake_tasks..." > /dev/stderr
rake --silent --tasks | cut -d " " -f 2 > .rake_tasks
reply=( `cat .rake_tasks` )

compctl -K _rake rake

Save this as a file (I put mine in my ~/bin directory) and source it with:

. ~/bin/zsh-rake-fast-completion

rake zsh

Fast Rake Task Completion for Zsh. Neat! It's not working for me yet, I need to do some hacking on it.

rake has an excellent tutorial on writing rake tasks.

Martin Folwer gives us Using the Rake Build Language

one, step, back tells us how to Custom Rake Applications.


DVMT - Dynamic Video Memory Technology (DVMT) - How much video memory do I have?

SATA linux


Sunday, February 17, 2008


A neat new mashup of Google Maps and Craigslist is mapskrieg, this will really help with my apartment hunt in Victoria.


Extrema - is a powerful visualization and data analysis tool that enables researchers to quickly distill their large, complex data sets into meaningful information.

linux network card speed

The commands to find the speed of your network card in linux:

mii-tool -v eth0


ethtool eth0

SUN RA - Live - Keyboard Solo (1980)

wow. this just made my day.



sweet adeline

My Grandma wanted to find the chords for Sweet Adeline, and unlike my earlier successes, it proved quite hard to find. I finally found some sheet music for the four piece vocal part, from the CPDL wiki, and also found the piano sheet music.

Saturday, February 16, 2008

povray 512 bytes

The winners of the povray short code contest have been released. Beautiful pictures in just 512 bytes or less. Sweet.

gpl 3

The FSF releases the latest draft of the GPL 3 licence. Cool.

yahoo goes platnium

google farm

Mmm, the big google farm at the Dalles, Oregon, with blueprints. Located near the Columbia River for cheap electricity.

That's so cool.

Thursday, February 14, 2008

many eyes

I just recently was listening to a great podcast from the developers of Many Eyes, a website where people can put up data and the community will work on interesting ways to visualize that data.

Wow. That is so amazingly cool.

I have to do this with the data I get from the Orchive.


strangemaps gets it's 5,000,000th hit. It's a really neat blog, with strange maps from history.


AllOut mode in Emacs. I'm going to use it to try to better organize my Planner plans.

I love planner-mode in Emacs, it rocks so hard.



grit is a Ruby library to get information out of a git repository in an object oriented fashion. Neato!

Wednesday, February 13, 2008

icon design

space smell

space has a smell, which is described as a rather pleasant sweet metallic sensation, like welding fumes.

Monday, February 11, 2008


When I was born, it was -43.3C. That's cold!

Sunday, February 10, 2008

xml is 10

XML is 10 years old today. It's still an idea ahead of it's time, it's going through the phase now where the haters are all on it, but just wait another 10 years, and it'll be cool again.

I did a whole bunch of work adding XML to various crystallography programs, some of them in the CCP4 suite, and I'm hoping that in the future it will help some young programmer do something cool.

By the way, I've decided I don't have time to write struture cloud, I have some preliminary Ruby on Rails code written for it, if anyone is interested, just email me, it's all GPLed of course. It was going to be really cool, with a Ruby on Rails interface to all the crystallographic programs, jobs would be submitted to Amazon SQS, and then Amazon EC2 nodes would process the data by looking at the jobs in the SQS queue, and the results would be stored on Amazon S3.

It would be perfect for a researcher just starting out, someone who doesn't have a large computational infrastructure, they could go to a beamline and collect all their data, and then process it all on 100 computers at once.

It was going to be cool, but I've got other fish to fry now.

arc core

Paul Graham writes about the core of Arc. I have fun learning bits of elisp here and there, and Arc is another kind of Lisp that looks pretty cool.




Genius doesn't work on an assembly line basis. You can't simply say, "Today I will be brilliant."

-- Kirk, "The Ultimate Computer", stardate 4731.3

math and music

Using algorithms to restore the only known live recording of Woodie Guthrie. A fascinating article.


BDD with C++. Very interesting.


Ten Years of Purely Functional Data Structures - A blog post about the book Purely Functional Data Structures.

Saturday, February 09, 2008

backup blogspot

I just read a google horror story about how this guy got his gmail account phished and lost his email, blogs and all other google things.

I use gmail, but I forward my mail from my domain to gmail and keep a copy on my server.

I also just backed up my blogger blog with the command:

wget ''


I learned a new word today:

phantasmagoria [fan-taz-muh-gawr-ee-uh, -gohr-]


1.a shifting series of phantasms, illusions, or deceptive appearances, as in a dream or as created by the imagination.

2.a changing scene made up of many elements. optical illusion produced by a magic lantern or the like in which figures increase or diminish in size, pass into each other, dissolve, etc.

assembly, gathering; see -ia][Origin: 1795-1805; F fantasmagorie, compound based on fantasme phantasm; second element perh. repr. Gk agor

Friday, February 08, 2008

get fit

17 Fitness Truths To Get You In Great Shape. Some great tips here. One really important one that I found worked for me was:

12. Focus on your diet first.

This is so essential, working out is really important, it is what gives me so much clarity and makes me feel so good, but to lose weight, you have to eat less. You just don't burn that many calories at the gym, so I've reduced the amount of food I eat by a lot, and have given up the foods that I was addicted to, like chips. It's hard, I know, but believe me, it is so much more fun to be in good shape than eating snacks that you won't miss those treats at all.



Clarke's Second Law

The only way of discovering the limits of the possible is to venture a little way past them into the impossible.


map/reduce in CouchDB

perl 2038

Perl is now year 2038 ready. Nice.

cleaning pc

speeding up nfs

Thursday, February 07, 2008


If you want to downgrade your firefox for some reason, you can get any version at the firefox releases page.


the repairman

The Repairman By Harry Harrison - A good little short story.

pistachio penne

Penne With Pistachios, Asparagus, and Cream. mmm, sounds delicious. From my friend Jena.

guitar rising

Guitar Rising brings some of the elements of Guitar Hero into learning to play an actual guitar. Great idea.

carbon icons

Carbon multimedia icons from

aquatica icons

Some very pretty icons from the Aquatica collection from

Wednesday, February 06, 2008

embedding fonts

[haXe] Embedded fonts in Flash 9 target?

After watching the Helvetica Movie, I'm thinking about fonts a lot, and it's really cool that Flash lets you embed whatever font you like right in the file.

I'm really digging Flash lately, it has a lot of power. It's awesome writing it with haXe, because I get all the goodness of Linux and GPLed code, but still get to write some very powerful display applications.

The language count is going up and up, for my new project I'm going to be writing code in:

Actionscript 3.0
swfmill XML
Ruby (on Rails)


snow crystals

embed bitmap in haxe

I wanted to use swfmill to generate a library of images and then display them in haXe. Krzysztof Rozalski came up with a solution on the haXe mailing list. Thanks Christopher, this was really helpful!

The code I wrote ended up looking like:


<?xml version="1.0" encoding="iso-8859-1" ?>
<movie version="9" width="320" height="240" framerate="12">
<background color="#ffffff"/>
<bitmap id="MyBitmapData" name="MyBitmapData" import="library/play.png" />

And the haXe code:

import flash.display.BitmapData;

class MyBitmapData extends BitmapData
public function new()

class SwfImport

static function main ()
var bitmapData:BitmapData;
bitmapData = new MyBitmapData();
flash.Lib.current.addChild( new flash.display.Bitmap(
bitmapData, flash.display.PixelSnapping.AUTO, true ) );

This is all compiled with:

-main SwfImport
-swf ../swfimport.swf
-swf-version 9
-swf-lib swflib.swf


biochemical pathways - It's grown since I studied this back in undergrad.

bluegene web

Wow, the IBM Blue/Gene architecture is pretty amazing, with 1024 processors per rack and theoretically up to 16,384 racks, giving you 67.1m cores with 32PB of memory.

They're using this architecture to build their own model of the internet.


iswitchb and rails

I'm learning about Icicles, which is an Emacs mode to more efficiently complete text and switch between buffers.

I've been a big fan of iswitchb since switching to it about 5 years ago, but it's being stretched with these Ruby on Rails projects that I'm working on. Rails requires you to switch back and forth between large numbers of files. I have 12 Emacs windows open, and have different source files in each one, yet I still find myself doing a lot of switching between buffers.

Tuesday, February 05, 2008

calling from the coast is a website that has videos about interesting topics from the west coast of Canada. Very neat.


offspring.js is an interesting little javascript program that adds things like "nth-child" by iterating over the DOM.

It does slow down your site a bit, because it has to iterate over all the elements in the dom, but in most cases, this is less than 500ms, so not so bad.



Cairo-Dock: An Animated Launch Bar for Compiz.

Sunday, February 03, 2008

Friday, February 01, 2008