Saturday, November 29, 2008


Jericho - is believed to be one of the oldest continuously-inhabited cities in the world, with evidence of settlement dating back to 9000 BCE. Woah.


The Wurm Glaciation. This was the last glacial period.

Orca Song 2008


On File Systems - Current thoughts on Linux filesystems.



Sweet, Linux on the iPhone. Nice.


Good editors aren't better or worse, just different. Totally. People's brains just think different, so find the editor that fits the way you think the best.

My brain fits Emacs the best, although over the last 10 years it's been a combination of me making Emacs fit me better, and me changing my brain to fit Emacs better. I'll be using Emacs when I'm 90.


This is very cool, a GUI that changes based on the users skill level.

Totally the future. The interface should adapt to you as you learn it better. Emacs has a function where if you enter the full command name with M-x, it tells you the keys that could be used to type it, this adaptive interface is the next step in this.

Friday, November 28, 2008



mmm, Intel Core i7. Pretty.


An interesting article about how bitfields are not as cool as they seem. I never thought about it this way, interesting.

Wednesday, November 26, 2008

Justice vs. Simian - We Are Your Friends

D.A.N.C.E - Justice



last yelle for tonight, i promise.



more more more


Saw this on xlr8rtv. rock.


Processing 1.0 - The first non beta version of Processing has just been released. Sweet.


JS-909 - Drum machine in Javascript

Monday, November 24, 2008


A dilithium star this year, that's all she wrote. I just don't have time for a Hat Trick try this year. But I do have
the bragging rights that I only started one character and ascended her. My favorite, a Chaotic Female Elven Wizard.

Had 4 unused wishes left.

Man Nethack is sure simple compared to Slash'em, which is my prefered variant now.


total lol irl.

Rachmaninov - Piano Concerto no. 3 (Cecile Licad) 3/6

Watch for when the lights go out and she keeps on playing for a minute. That is deep knowledge.

Bruce Lee plays ping pong with nunchuck.flv



Covariance matrix
Math in Ruby
Matrix in Ruby
Matrix multiplication

I found that Ruby was very nice for doing some statistics with a Gaussian classifier:

covariance_matrix = Matrix.diagonal(var_x,var_y)
inv_covariance_matrix = covariance_matrix.inverse
determinant_covariance_matrix = covariance_matrix.determinant

Friday, November 21, 2008

sweet ruby goodness

Wow. Great tip here:

>> "%.2f" % 45.4324234321421
=> "45.43"

>> "[%s]" % "Hey you dirty old ruby, put me in brackets. NOW!"
=> "[Hey you dirty old ruby, put me in brackets. NOW!]"

For more complex substitutions, pass the arguments as an array:
>> "[%s] And a number:%.1f" % ["Hey you dirty old ruby, put me in brackets. NOW!",43.4323]
=> "[Hey you dirty old ruby, put me in brackets. NOW!] And a number:43.4"


minimal apis

old old old

Gobekli Tepe: The World?s First Temple? - 11,000 years old, crafted and arranged by prehistoric people who had not yet developed metal tools or even pottery.

We are old.


Art and code.

Code == Art.


The Opposite of Momentum - About problems with Ruby.

Yes. Definitely. I love Ruby and program all my scripts in it, plus all of my websites. But I'm learning Python and encourage people to learn Python instead of Ruby.

Kids, learn Python. And Ruby, if you have the extra brainpower.

Ruby is prettier, but Python will win.

gcc hacks

GCC hacks in the Linux kernel - The Linux? kernel uses several special capabilities of the GNU Compiler Collection (GCC) suite. These capabilities range from giving you shortcuts and simplifications to providing the compiler with hints for optimization. Discover some of these special GCC features and learn how to use them in the Linux kernel.


Sounds Like Bach - Essay on music by Douglas Hofstadter

Thursday, November 20, 2008


Alchemy - is a research project that allows users to compile C and C++ code that is targeted to run on the open source ActionScript Virtual Machine (AVM2). The purpose of this preview is to assess the level of community interest in reusing existing C and C++ libraries in Web applications that run on Adobe Flash Player and Adobe AIR.


CS 294-5 Great Algorithms. Cool.


33 exact string matching algorithms.

Check out the Horspool algorithm. He's from our department!

Monday, November 17, 2008

MC Chris - Nrrrd Grrrl music video

MARSYAS Genre Meter

so. totally. cool.

and this is from 2001!

got to do this in Qt.

zeroes and ones

Zeros and Ones, a course I am taking in January. Knuth rocks.

Sunday, November 16, 2008


Introduction to Dynamic Programming.

source control

Use source control like you would use save points in a videogame. Excellent analogy.

Friday, November 14, 2008




3d Wii Application

This is a small program which utilizes the Cwiid API to detect the x, y and z coordinates of an infrared light source. The intent was to make something which could demonstrate the posibilities of using the wiimotes in this alternative manner. Usually the wiimote uses an IR source to determine if it has moved positions. What this program does instead is uses the wiimote as a stationary sensor, which detects the position of the IR source. In addition, by using two wiimotes, it's possible to determine the depth of the IR source as well.


liblo API.


WiiOSC is a tiny Linux program to use the Nintendo Wii Controller as a control device for music programs.
It sends out the Wii data as OSC messages to a port of your choice, and can receive OSC data to turn on LEDs or the rumble.

love. it.

I'm using it in SOMba, my samba music generator program for dancers. Might rewrite it to more closely match what I need, but it's pretty awesome as it is.

tender tub



Strasheela is a highly expressive constraint-based music composition system.


hadoop is a software platform that lets one easily write and run applications that process vast amounts of data.

It's like MapReduce from Google, but how Yahoo does it (which probably means not as good). But it's part of Apache incubator, which is very cool.

Hadoop at wikipedia
is a dataflow programming environment for processing very large files.

CouchDB is also now in Apache incubator.
CouchDB at wikipedia.

This came from me researching a class I taught recently at UVIC on Functional Programming.

Charming Python: Functional programming in Python
Functional Programming HOWTO in Python
Ocaml - I couldn't figure out the OCaml logo, but the class figured out that it looked like a Camel. lol. droll lol.
From Monoids to Monads

Zwölftonwerbung - Twelve tone commercial


Thursday, November 13, 2008

Wednesday, November 12, 2008

14 second boot


synth - Sound synthesis using haXe targetting Flash 10. All the sourcecode is GPLed, sweeeeeeet!

Monday, November 10, 2008


fuck yeah sharks. this takes the lolcat meme to a whole different place.


For a course that I'm taking, CSC 546 : Operations Research

omnet docs
OMNeT++ in a Nutshell
omnet user manual
omnet API

zeros and ones


getc and termios
while getchar


select() is your friend.



MarLPC - The best part of this app is that it takes Open Sound Control (OSC) messages as input. It uses Qt to do this, and is a little funky, but not in a good way. I'm looking to do something similar with liblo instead.


wiimote + osc. Uses cwiid. Sweet.

Central Molecular Zone

Sunday, November 09, 2008



A mouse that measures Galvanic Skin Response.

rain music

A wall that makes music when it rains:

Thursday, November 06, 2008


I was having big problems with 'pdftotext' producing wacky characters that were making life difficult when I would edit the file. The trick is to set the encoding to ASCII7:

pdftotext -enc ASCII7 file.pdf

I added a line to my .zshrc with the following alias

alias pdftotext='pdftotext -enc ASCII7'

Tuesday, November 04, 2008


Emilia is 35 years old and is a choreographer and has her own
modern dance company. She has been commissioned to produce a new
dance piece for the opening of the newly refurbished Chisenhale
Dance Space in London. She wants to incorporate new media and
music into the performance, and has decided to use the SOMba system
to make the music for the dancers.

She first contacts a local Brazilian musician, Ayrton, to obtain
music for a few different types of samba rhythms. Ayrton provides
her sheet transciptions of these rhythms for each of 10 different
Brazilian percussion instruments. Aryton has a large collection of
percussion instruments, and records samples of each of them for

Emilia then uses the SOMba system to generate audio files for each
of the parts in the samba rhythms, using the transcribed music and
the recorded samples, both provided by Ayrton. She then uses the
SOMba system to produce a Self-Organized Map of the audiofiles.
She then tries out the different SOMs by using the graphical SOM
browser in the SOMba system. The first few maps she produces do
not fit in with her desired choreography, so she generates SOM maps
until she finds one she is happy with.

Emilia then choreographs and practices with the dancers in her
dance company, trying out different dance techniques, and different
timings for when the dancers show and hide their infrared glowing
orbs. The performance is a rousing success, and Emilia is invited
to Berlin to stage another performance.


Keti is a new music composer based in New York. She currently has
writers block in writing a new piece of music to be performed at
the Julliard School. Keta is at the stage of having a variety of
musical motifs that she is happy with, but is having trouble
putting all these pieces of music together into a unifed whole.

She first creates audiofiles of the various motifs in her score,
breaking these motifs into small one bar measures. Some of the
motifs are rhythmical, some are melodic segments and some are
environmental sounds. She then uses the SOMba system to create
three different Self-Organizing maps, one for rhythm, one for
melody, and one for the environmental sounds.

She then loads up three different instances of the SOMba GUI
browser, and starts placing the icons at different points in the
three different self organizing maps. She adjusts the volume of
each of the clips on the screen, and moves the clips around until
she finds a pleasing arrangement of sounds.

She then takes her 8 sound orbs and puts them on the floor of her
studio apartment, in roughly the places that she had on the
graphical user interface. Keti then moves around space, moving
audio clips slightly to produce exactly the timbres and
juxtapositions of music she is interested in producing.

Somewhere along this process she has the realization that she could
produce this music in real time, on stage by moving the sound orbs
herself. She develops her symphony now with this idea in mind.
When she performs it, the audience is initally shocked by the
composer moving around the stage, but soon begins to appreciate it,
and the performance ends to thunderous applause.

Sunday, November 02, 2008

(Rock Paper Scissors)^2



Awesome, I love it when my work is already done: wiiosc, is a tiny Linux program to use the Nintendo Wii Controller as a control device for music programs. Excellent, one step closer.

Saturday, November 01, 2008

flash osc

Flash and OSC. I think I am going to do this in haXe, but it might be a lot of work.


I'm setting up the wii mote on Linux to do my project for CSC 589 here at UVIC. Here's some useful links:

cwiid - a collection of Linux tools written in C for interfacing to the Nintendo Wiimote.
ubuntu wii
Sending simulated mouse events using uinput
wiimote driver
Control X.Org cursor with Wiimote
Tracking Your Fingers with the Wiimote

I personally found the cwiid project to work the best for me. The other big project, libwiimote is cool but doesn't seem to read the IR sensors correctly, and that's what I need.

I'm currently extracting code from wmdemo to have a small little program to send out OSC messages for the data for the IR leds on the wiimote.

Now, with two wiimotes I can track 8 dancers in real time for my SOMba project. It is gonna be sweet.