Thursday, January 31, 2008

Wednesday, January 30, 2008

pulsar hologram

Australians make interstellar hologram by modelling the light from a pulsar with 8000 coefficients, they figure out the structure of the interstellar medium between us and the pulsar.

Hang Drum Experimenting

presentation skillz

easy restful

Rhino on Rails

An interview with Steve Yegge on Rhino on Rails, something similar to Ruby on Rails, but with Javascript instead of Ruby.

Tuesday, January 29, 2008


Scientists at Argonne National Labs produce 8He, a Helium atom with 8 neutrons, instead of the regular 2 neutrons, and study the distribution of neutrons in the atom.

attachment_fu size

If you get the error message

Validation failed: Size is not included in the list

when using attachment_fu with Rails, check to see if your file is perhaps larger than the max_size you have set, it defaults to a fairly low value:

has_attachment :content_type => 'application/pdf',
:max_size => 20.megabytes,
:storage => :file_system

Monday, January 28, 2008


Nokia acquires Trolltech - it sounds like they are going to keep Qt and Qtopia GPLed, which is great.


baubles is a very cool program from Peter Briggs at the CCP4 to convert CCP4 logfiles to HTML format. I worked on this problem for quite some time, and it's so cool that Peter has taken up the flag! Yay Peter!

peter's photos

I just got back in touch with an friend of mine from England, I worked with him with the CCP4 project, his photos are very cool and are at oblong_dog on flickr. I love that nickname!


Sunday, January 27, 2008

Saturday, January 26, 2008


dtach is a tiny program that does the detaching from terminal part of screen, without the other bits. It sounds like it could be a perfect replacement for my use of screen in running multi-tty-emacs.

structured timeline with css


roo is a Ruby plugin that lets you access the content of Open-office spreadsheets (.ods) Excel spreadsheets (.xls) and Google (online) spreadsheets.

Upcoming Changes to the JavaScript Language

jupiter in infrared

Internal Heat Drives Jupiter's Giant Storm Eruption.

Friday, January 25, 2008

pic du midi


Emergency Elisp - The latest blog rant from Steve Yegge.


I'm listening to Dirham Bakschisch - Chillout 2007 from hbr1 this morning.

functional programming

I was wondering about the exact definition of Functional Programming, and wikipedia gave the following excellent consise definition:

"Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. It emphasizes the application of functions, in contrast with the imperative programming style that emphasizes changes in state."

This all comes from the Lamda calculus which was developed by Alonzo Church and Stephen Kleene in the 1930s to investigate functions, as an alternative to the set based investigation into the foundations of mathematics by Bertrand Russell.

tiny font

A good tiny 5x9 font for X. Would be great for low-resolution screens.


Flare is a very interesting new Actionscript 3.0 toolkit for doing visualization in Flash.

Thursday, January 24, 2008


Is the Higgs Boson hidden in plain sight? An interesting article about how there might be more than one Higgs Boson, and we might have already seen it, just not been aware that we found it.


development cycles

It's funny because it's true.


Wednesday, January 23, 2008

Tuesday, January 22, 2008

flash 9 penetration

I was wondering if I should be targeting Flash 9 with my new Orchive Flash viewers, and I definitely will, Flash 9 has 95.7% market penetration in mature markets.

Interesting to see how fast it got adopted, from March 2007-December 2007 it went from 83.4% to 95.7%.

ColorMatrix in Flash

Flash 8 has a neat feature called ColorMatrixFilter that lets you adjust Contrast, Brightness, Satuation and Hue.

shelf cloud over saskatchewan

Reminds me of growing up in Ryley, Alberta on the Canadian praries. Those storms that we would get in summer would appear on the horizon, brewing and rolling towards us at a great rate of speed. The wind blowing would make the crops of grain look like waves on the ocean.

When the first drops of rain hit your face, you knew you'd better high-tail it back home.

Monday, January 21, 2008


haXe at
haXe and MySQL

Sweet, I'm starting to see a plan developing for the Orchive, use Ruby on Rails to do the heavy lifting, Rails will write the data to a MySQL database, and haXe will be used to write the code that will both generate the Flash applications on the webpage, plus with mod_neko, will serve out the data for these Flash applications to display.

Rails <--> MySQL <--> mod_neko <--> haXe <--> Flash <--> User <--> Rails

tune fps

tune the fps of a Flash movie with Actionscript.


Some nice code for a timer in haXe. It makes a timer that can call a function of your choice repeatedly.

jwz backup advice

Some excellent backup advice from JWZ.

mars today

A very nice recent image of Mars from the Opportunity rover.




Steve Wozniak's business card.
vrry nice.

Sunday, January 20, 2008


kid lessons

A neat article about what this guy learned about life from his daughter. One that I try to practice is Don't Be Afraid to Show Your Enthusiasm.


Khoi Vinh has some very interesting slides about how internet design is about conversations, as opposed to print design which is more like a speech. He says it's all about control of the narrative.

Saturday, January 19, 2008


An old friend just directed me to an excellent site for visualization of data, check out the Voyages of Moses and Abraham in the Bible. Very nicely done.


Palimsest is a program by Google to provide storage and access of scientific data to scientists.

This is very interesting, I've been involved with a few such projects, including the PDB (Protein Databank), iCE (Internet Contig Explorer) and currently I'm builing the Orchive (a database for 30 years of Orca songs).

Storing scientific data is quite an interesting process, because each scientist has a different view of what should be stored and how they would like to access it. I look forward to seeing what the smart kids at Google are going to come up with.

Friday, January 18, 2008

flash tutorials

Best of Flash Tutorials. Not really what I'm doing with Flash, but might be useful.

Thursday, January 17, 2008

hide gmail invites

A nice little plugin to hide the Gmail invite box.

flash docs

Documentation for Flash. Yes, that's right, sness is now learning Flash/Actionscript. I've explored all over the AJAX and Javascript worlds, but for this new Orchive project, Javascript just isn't enough, I'm going to have to do the player in Flash.

I'm actually going to try to do most of it with haXe and swfmill and compile it down to Flash, so that I can continue to use GPLed software as much as possible.

Wednesday, January 16, 2008

rubinus foreign functions

Rubinus has a really sweet way to define foreign functions.


Ebb is a new web server, written in C, that is written to be a fast little server to let your various backends talk to.

Lots of new projects in this space, it's a very exciting time.


The Ruport book has been released. Ruport is a data reporting library in Ruby, and looks really cool, I want to integrate it into two of my big projects.

Jupiter sounds (so strange!) NASA-Voyager recording

Tuesday, January 15, 2008




The Messenger spacecraft has just flown past Mercury on it's first Mercury gravity assist, and has some neat pictures and movies.

I was listening to bluemars as I was watching the video, and by lucky chance they synced perfectly together, it was really neat.

Monday, January 14, 2008

ruby snippet of the evening

I have a really cute little zen stone MP3 player, and everyday I upload podcasts to it to listen to. It plays the directories in sorted order, and I create directories like "0 1 2 3 4 5" for the songs to go into.

I was having to manually rename those directories each night, and I got tired of this, so I came up with the following little Ruby script to do this for me.


require 'find'

a =
Dir.entries(".").each do |n|
if (n =~ /([0-9]+)/)
a.each do |n|
File.rename(n,(n.to_i + 1).to_s)

Ruby sure is pretty.


People aged 1-100 in order.

What a wonderful video!

Sunday, January 13, 2008

no time

whale sounds

The sounds produced by Blue Whales have been detected at over 3000km by the SOSUS arrays. I wonder how the sensitivity of the SOSUS array compares to the sensitivity of the Blue Whale ear?

Another good article is Sounds of the Deep Sea.

Saturday, January 12, 2008

first fftpng

Yay! I just got my first FFT out of my new fftpng that I wrote using Marsyas.


qedeq is a website that is attempting to put all mathematics in a decentralized, verified and easily readable form.

Really cool, I love the idea of mathematics as just the manipulation of strings, a la Godel.

fermats last theorem


Friday, January 11, 2008


If you get a "Standard library not found" error when trying to compile things with haXe on Linux, you need to copy the entire haxe/std directory to /usr/lib/haxe/std.

I had installed haxe in /usr/sness/haxe, and the libraries in there, but it couldn't find them, they needed to be in /usr/lib/haxe/std. That's kind of bizarre.


Well, I think I'm a convert, I didn't have much fun with mtasc, and I really don't want to have to buy Flash CS3 just to compile my spectrogram .wav player for the Orchive, so I am going to go with haXe.

haXe projects
NyMPh - mp3 player written with haXe
NyMPh docs
wikipedia entry for haXe


I've been playing around with mtasc and xspf, but I wonder if I might be just better off taking the plunge and going to haXe instead. Here's a haxe-mode.el for Emacs.

get to work

"Inspiration is for amateurs. I just get to work." - Chuck Close


I'm working on getting two different Rails websites to work together, and ActiveResource is too heavyweight for what I need, so I'm rolling my own interface using YAML and open-uri.

There's a couple good articles about open-uri:

Ruby: Net::Http and open-uri
What's Shiny and New in Ruby 1.8.0?
Data extraction for Web 2.0: Screen scraping in Ruby/Rails

and for YAML:

YAML Cookbook

Thursday, January 10, 2008


Wired just put up an article about the Briggs-Rauscher oscillating chemical reaction. I did my Extended Essay at a UWC about this, it is quite a complicated reaction.

The Belousov-Zhabotinsky Reaction is a similar oscillating chemical reaction.

The trick to both of these is that the reaction isn't a perpetual motion machine, the law of conservation of energy is respected, what is happening is that a large scale reaction is proceeding, and there are some minor sub-reactions that have products that are different colours, these minor reactions have feedback loops to each other, and give the oscillating behaviour that is seen. Very neat.

I studied chaotic behaviour in these systems, when you heat them up, very interesting things happen, and the regular oscillations start to get ahead of themselves and the non-linear behaviour produces a chaotic system, like the well known "butterfly effect".

more sequel

Sequel sure does look interesting. Perhaps I'll use this for the more hardcore aspects of the Orchive.


An interview with Sharon Rosner about Sequel, a new way to interact with SQL databases from Ruby.

tycho brahe

"Non videri sed esse" (Not to be seen but to be)


Something that is kind of tricky with functional and integration tests in Ruby on Rails is to diagnose problems when your assert_selects don't work. I tried a variety of ways to output the HTML that is generated, but the response_visualizer plugin looks like it might be the way to go.

ruby javascript

RKelly allows you to call Ruby from Javascript. Interesting.


Wednesday, January 09, 2008


monads in Python, with nice syntax.

teaching type

teaching type is an interesting new project to teach typographical skills to students.

(Ironically, on this web page they don't set the line height properly, so on my Opera with an increased font size, the lines actually overlap each other.)


Two new Map Reduce like packages for Ruby are skynet and starfish.

redirect_to :back

Interestingly, in some cases, "redirect_to :back" has problems when used in integration tests with Rails. I just found a webpage with some helpful tips, for me, the magic words were:

post_via_redirect '/account/login', {:login => '6044851111', :password => 'bad_password'}, {:referer => "/account/login"}

That extra hash at the end there with the options for :referer is what you need.

merb meet shoes

Shoes + Merb = GUI + WebApp = very neato.

This is going to be a big area in the future: You create a simple website to house your data, most users will use the website to access the data. Power users will use a GUI app on their computer for enhanced use. This is one of my future plans for the Orchive.

Monday, January 07, 2008


I just saw The Science of Sleep, and it is now perhaps my favorite movie of all time.

Saturday, January 05, 2008


vintage is a new very lightweight Ruby templating webserver that serves up ERb, HAML, Textile, Markdown, and Markaby templates.

Some great speed numbers there:

Merb: 56 rp/s
Rails: 41 rp/s
Vintage: 534 rp/s

I'll have to try it when I get a new static website to develop.

Ruby pretty_print gotcha

I just ran into a tricky little error message today when trying to just "pp" (pretty print) a variable in Ruby. It took me a little digging, but I found that pp.rb had added a callback that looked for a method called "pretty_print" in my class. The error message looked like:

ArgumentError: wrong number of arguments (1 for 0)
/usr/lib/ruby/1.8/pp.rb:140:in `pretty_print'

with a long stack trace after it.

So, don't call your pretty print routines "pretty_print" if you want to be able to use "pp".

Wednesday, January 02, 2008


The micro Web (uWeb) is a way of using Web technology (Javascript, DOM, URIs, HTTP) and good Web architecture, including event-driven servers, to deliver all the essential Web 2.0 functionality (Microformats, tags, POSH, OpenID, user presence, DHTML, Ajax, Comet, REST, Atom, APIs, pub-sub, JSON, widgets, mashups) with a uniform, simple model.


Sequel is a nice looking SQL adapter for Ruby.


Application development for the Sugar API for the OLPC. An article at IBM Developer Works.

I can't wait until I have time to do some work on a Sugar application. Something to do with music.

You know, I love Ruby, but I want to get into some Python as well.

Tuesday, January 01, 2008

linux copying with errors

I got a DVD+R burnt that had errors in some of the files. They're .avi files, and I hope that mplayer will be able to handle the I/O errors, which looked like:

cp: reading `/dvd/file.avi': Input/output error

So instead of using "cp" to copy the files I used:

dd if=/dvd/file.avi of=file.avi conv=noerror bs=2048

Hopefully it works.