Sunday, November 30, 2008
Saturday, November 29, 2008
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
Wednesday, November 26, 2008
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.
Watch for when the lights go out and she keeps on playing for a minute. That is deep knowledge.
Math in Ruby
Matrix in Ruby
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
Wow. Great tip here:
>> "%.2f" % 45.4324234321421
>> "[%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"
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 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.
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.
Tuesday, November 18, 2008
Monday, November 17, 2008
Sunday, November 16, 2008
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.
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.
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.
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
Thursday, November 13, 2008
Wednesday, November 12, 2008
Monday, November 10, 2008
Sunday, November 09, 2008
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
Saturday, November 01, 2008
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.
Sending simulated mouse events using uinput
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.