Monday, December 31, 2007

in saturns shadow

RIP joybubbles

A beautiful article about joybubbles, the granddaddy of the phone phreaks, and an eternal kid. Very cool.

future human

what is canadian?

They asked people what would be the Canadian equivalent of "As American as Apple Pie", and they came up with

"As Canadian as possible, under the circumstances"

Sunday, December 30, 2007

pixel house

i like this.

i want to live in that house.

unit testing ruby

Expectations is a new unit testing library for Ruby.

Some very interesting ideas in there, a couple simple examples from their webpage are:

expect 2 do
1 + 1

expect NoMethodError do

I like that, that's pretty readable.

Saturday, December 29, 2007


unit testing js

Doctest/JS: unit testing for Javascript made simple

knowledge timeline


A really neat binary clock webpage. Mellow.


Programming Language Theory Texts Online. Mmm. Nice.

I'm having lots of fun reading Knuth's The Art of Computer Programming. I'm slowly making my way through the math chapters, and when I get tired of that, I skip ahead to read a bit about MIX or about trees.

logos for 2007

Thursday, December 27, 2007

reading list

A reading list from Alan Kay about what resources he used for designing Smalltalk.


Smart Languages and Dumb Parsers - Some interesting points about why the "dumb" parsers for Lisp, Forth and Smalltalk make for such powerful languages.


Ha! Crypto-anarchism. That's so cool! Where have I been!

stateless banking

eCache is a distributed, stateless banking system. The Cypherhackers are back!


I always wondered what the .dmg extension for Macs meant.

That's so funny, I parse it as "damage". :)


Sensitivity to Electromagnetic Radiation is getting to be more of a problem. This is very interesting. I would say that just to be on the safe side, don't be hanging out with too much electromagnetic radiation around. Do what I do and have your servers in the kitchen.

Yes, my development and test web server is sitting in my kitchen. I'm the only one on my block to have a Linux kitchen server. :)


Wednesday, December 26, 2007

solid state

Mmmm, they're just starting to come out with decent size solid state hard drives. 64GB is pretty decent.

Tuesday, December 25, 2007

test/spec should.include

test/spec has it's own "assert_include" which is part of ZenTest. In
the default Test::Unit, you check if an array "a" contains an element
"@truffles" with:

assert_send [a, :include?, @truffles]

This is a bit nicer in zentest:

assert_includes @truffles, a

And is very pretty indeed with test/spec:

a.should.include @truffles

dating 2.0

3d smell

Researchers develop a technique to see smells in 3D. This would have been a good post for

Monday, December 24, 2007

just in time

Just In Time at wikipedia.

For the Sunshine Organics site, I had to come up with a description for items from local grocery suppliers who delivery exactly the number of items on Wednesday morning that the customers have ordered over the weekend. I looked around for a good metaphor, for a while I used "direct_order", but now I call those GroceryItems "jit_items", for Just In Time items.

That article about JIT on wikipedia is just fascinating, a really good read, actually.

my computer timeline

1978 - MTS mainframe at the University of Alberta
1981 - SuperPET
1983 - VIC-20
1985 - Apple II
1987 - Mac Plus
1987 - IBM PC - MSDOS
1991 - UNIX - University of Alberta
1992 - SGI - IRIX
1993 - Linux

After 1993, it's been all about Linux, with lots of SGI thrown in, some Sun, some AIX, some Windows, but basically all Linux.

I was listening to a Geek Entertainment TV podcast about the C64, and I'm glad I didn't get into the C64, having a VIC-20 taught me a lot, and got me onto the Apple II, which led to the Mac Plus. If I had stayed on the C64, I might have got stuck in the nostalgia for the system, kind of like a lot of Amiga and Atari people got stuck. It's all about the future.

Luckily, with Linux, you grow with the future, and that's all because it's free.

I've had so many times in my life where I've had to give up all the knowledge I learned about a system because it wasn't free, that's no fun.

People who are on Macs now with OSX are going to find that out, it's really painful when a developer stops supporting some software that you took a long time to learn, all that investment of time and knowledge that you made just disappears. After the first few times that happens, you start wishing for a more solid foundation.

Free Software is that solid foundation.

There's a lot of software that I keep updating, like I have the most recent version of Firefox all the time. But some of it, I just like the old version, like my enlightenment-0.16.5. It's 10 years old now, but I have it so perfectly customized to me, and there is nothing else that can do exactly what I want. If this was commercial software, I would be sad out of luck, but with Linux and the GPL, I have the source, and I can just keep tweaking it to make it run on the most modern linux distribution (Fedora 7 in my case).

I love Free Software.


For Christmas I just got Donald Knuths The Art of Computer Programming Volume 1.

Best. Gift. Ever!

multiple rails environments

For the Sunshine Organics website that I'm redoing, one of the design decisions I made was to have separate Rails servers for each city, the added complexity of keeping track of all the cities in one database just got too complicated.

So now I'm working on having multiple Rails projects being launched out of one directory, some of those websites will be normal websites, and some of them will correspond to sites where they don't have a warehouse to stock groceries, these will be called "sub" websites.

I've found a few resources to help me in launching multiple Rails projects from the same directory, basically it boils down to having different RAILS_ENV environment variables set for each one.

The links:

Deploying to Multiple Rails Environments - from "my hovercraft is full of eels"
Guide to environments in Rails
dry out your database - For this one, it's an interesting idea, but I find it way too convoluted. I just repeat the section, and find this much clearer:

What I did:

I made a new entry in database.yml for cv_development:

adapter: mysql
database: sunshine_cv_development
username: ****
password: ****
socket: /var/lib/mysql/mysql.sock

Then I copied over the existing development.rb file:

cp config/environments/development.rb config/environments/cv_development.rb

Then migrated:

export RAILS_ENV=cv_development && rake db:migrate

Made a new mongrel configuration file called "mongrel_cv_cluster.yml"

user: sness
cwd: /home/sness/nDEV/sunshine
port: "9632"
environment: cv_development
group: sness
pid_file: log/
servers: 1

Then started mongrel:

mongrel_rails cluster::restart -C /home/sness/nDEV/sunshine/config/mongrel_cv_cluster.yml

optical telegraph

The optical telegraph. Email in the 18th century.

I knew about this idea from the Discworld series from Terry Pratchett.


The JediPad. Frickin' awesome!

Saturday, December 22, 2007

tests as stories

I've been thinking recently about comments in code and the stories that these comments tell.

For a long time, I've considered it very important for code to have lots of comments in it, after all, computer code is not just a set of instructions for a computer, it is a conversation between the developers of the code, what they were thinking of when they designed it, and where it is going.

The problem though, is that often code changes and the developers don't change the comments in the code at the same time, leading to a mismatch between the story that the code is telling and the story that the comments are telling.

I'm wondering if a way around this could be to have more descriptive comments and stories in the testing code for an application.

I've noticed that when I'm writing a program and when I'm writing tests, I'm in two different frames of mind, when I'm writing code, I'm trying to build a beautiful and fast system, and am focused on beauty, and tons of code comments sometimes obscures the beauty of the code, especially when I'm writing in a very expressive language such as Ruby.

When I'm writing tests, I'm thinking about the whole story of the application, what I was thinking when I developed the code, what I was thinking when I made changes to the code. It's a more "meta" mind space.

What do you all think?

tinderbox size

Tinderbox has gained functionality and shrunk in total lines of code. This is great, the way that projects should move.

css grids

CSS Grids, Working Draft 5. Oh, this would be *so nice*. I hope it gets passed and implemented in browsers soon.




John Maeda, of simplicity fame, is the next president of RISD.


Happy solstice everyone!

Friday, December 21, 2007

perl 20

20 years of Perl. Recollections of Perl on it's 20th anniversary.

bus scheme

bus scheme is a Scheme interpreter written in Ruby and written on a bus.

I should write my own Lisp. In Ruby, probably, but maybe in Javascript, to learn Javascript better.


astronomy photos of 2007

diagnostic styling

An interesting post at 24ways about diagnostic styling, they talk about making CSS rules to highlight problems with your code.

I think I would do it by writing a script to parse the XHTML and display the errors, but this approach would be good for someone like a designer who prefers information in a visual form.

I think both ways are good, just choose whichever one works for you, or perhaps both.

sky to sky panorama

Thursday, December 20, 2007


An interview with RMS about software freedom.

stellar nursery


How to make a mailto have a message body. Neat!


The YSF (Youth Science Foundation) wiki. The YSF are the CWSF (Canada Wide Science Fair) people.


gsk - a C Library for Writing Services.

Wednesday, December 19, 2007


A solution to write pngs for C++ is pngwriter. I think I might try to use this with Marsyas.

newest stevey blog rant

Steve Yegge has another blog rant about how huge programs are a bad thing. I totally agree.

Here's a quote from the article:

"But you should take anything a "Java programmer" tells you with a hefty grain of salt, because an "X programmer", for any value of X, is a weak player. You have to cross-train to be a decent athlete these days. Programmers need to be fluent in multiple languages with fundamentally different "character" before they can make truly informed design decisions."


scientific laws

A very interesting discussion of scientific laws at the New York Times. Talks about the whole Platonic idea of perfect forms existing somewhere out there, and if the laws that we see, like the law of gravity, are universal, or are just constructions of our mind.

baade's window

Tuesday, December 18, 2007

Monday, December 17, 2007


The Free Lunch Is Over : A Fundamental Turn Toward Concurrency in Software.

I once debugged a threaded, parallel version of FPC for solving the Human and Mouse genomes, and let me tell you, bugs in threaded code can be almost impossible to track down. The bugs don't happen deterministically, but probabalistically, and when you have 40 machines all updating different parts of your datastructure at different times, it becomes quite difficult to track down bugs.

We need to find better ways of doing this.

I'm thinking that Functional Programming might be a good way to do this.


Faster Chips Are Leaving Programmers in Their Dust.

Genetic Programming, anyone?

Seriously, think of the cell, it is the most parallel processing machine anywhere, all the proteins and cellular machines are little Functional Programming machines, all working together, and GP is a great way to build robust systems like this.

waggle dance

Researchers are studying the waggle dance of the bees and talk about how it can help us design more efficient networks.

Ant Man Bee.

yui grids rails plugin

ooh, this is actually pretty awesome, YUI pages, a plugin for Rails that gives you some sweet sweet syntatic sugar for making YUI Grids in Rails.

I was all ready to dismiss it, as I like my HTML, but it actually looks awesome, and I could see myself using it.

Sophie Merry - iGroove

Groovy Dancing Girl #2

Groovy Dancing Girl Slow

Groovy Dancing Girl


Sweet, Eric Abouf has released WireIt, a library that does those funky flowcharts that Yahoo! Pipes! uses. Here's the docs.

I'm totally using this for my Marsyas web interface.


A great article about shape in HTML design. I like.

simpledb rest

A RESTful version of SimpleDB.

Hmm, those RESTy people get a liiiiiitle too dogmatic at times.

That said, my API for The Orchive is going to be REST in Rails 2.0. I might be surprised.

more fonts

Increase the fonts you have available for webpage design with font matrix.

What the article is saying is that you probably have more fonts available than just the websafe fonts, because your clients have probably installed programs that come with their own fonts, like when you install Microsoft Office 2007, you get Bakersville Old Face, and 100 other fonts.

Hmm, an interesting idea, but in practice I'll be sticking with Arial.

steel tree / pear light

Nick Foleys portable LED pears. Nice steel work, and neat electronics.

Sunday, December 16, 2007

math art

google vs microsoft

A good article at The New York Times about Google and Microsoft battling it out.

Go Google!

As a fervent Free Software proponent, I used to not be too fond of Microsoft, but now I see that by making standards in hardware, they actually were the ones that created a field where Linux could develop and prosper.

All I know is that I personally try to use only Free Software everywhere. Over the years there have just been too many times when I got really comfortable in a certain software program, only to have it taken away from me after the company failed, or I had to use a different software platform.

The software I use now is all Free Software, and I know that everything I learn I'll be able to use in 20 years from now, and this makes me want to learn the software more and more deeply.

The software I use 99% of the time:

Ruby on Rails
opera (not free)

All of this software I've modified and have it working really well together. I have a sweeeeet setup.

dynamic rails fixtures

railsjitsu talks about Rails dynamic fixtures.

the devils panties

A really awesome web comic, and on Sundays she puts up a big image she's created, I really like the hair in this one. Redheads rock.

Saturday, December 15, 2007

change the present

Wow, what a great idea at You can choose exactly how you want to change the world, and donate to that cause.

rails advent calendar

Some neat Ruby tricks at Rubyisms Advent Calendar. Mmm, Ruby goodness.

new dbs

small saturn moons

ruby pdf

Simple PDFs of reports in Ruby with rupdf.

human order sorting

ruby makes me happy

Friday, December 14, 2007

light quanta

A quantum computer made of light performs it's first 4 qubit calculation.

robot love

A story in the New York times that talks about how we may fall in love with robots someday.

That's so old news. What I'm imagining is falling in love with an AI. The robot part is just physical, I fall in love with the mind, myself.

But then, I'm an alien from a distant star system, so YMMV.

VITALIC - My Friend Dario (Different Recordings)

early morning rocking out.

julia butterfly hill

Julia Butterfly Hill and I have a similar life goal:

living my purpose which is to be in "integrity and joyous loving service."

convert dos file

Use tr to get rid of those pesky ^M characters:

tr "\r" "\n" < file.txt

wild whales

Wild Whales - research projects.


I just got an email from Amazon announcing the limited private beta of SimpleDB. This is perhaps the last piece in the puzzle with EC2, S3 and SQS. Very cool.

first flash

I just wrote my first Flash app, a simple Hello World program, from the tutorial at MTASC. I'm doing this for the spectrogram .wav player for the Orchive. I'm glad to see that Actionscript is very similar to ECMAScript, so I'll be able to use my Javascript knowledge in writing these Flash apps. Wish me luck!

Thursday, December 13, 2007

Wednesday, December 12, 2007

rosette dustlanes

single photon sources


one childs view on the OLPC.

The verdict is "It's great".

desktop synchrotron

They're building a desktop Synchrotron. I used to go to the big synchrotons to collect data when I was in protein crystallography, it would be great to have one in your own department.

bunny with carrot

south pole



alphanum is a sorting algorithm for strings that have both letters and numbers in them, and sorts things more like how you would intuitively think strings should be sorted.


luminotes - A personal wiki.

I use planner-mode in Emacs, myself. Everything in Emacs.


utilitybelt is a set of enhancements to irb.

I use the Rails script/console myself as almost all my Ruby programming is for Rails, and the console gives me access to some special Rails functionality, but I should be using irb more.

10 rails plugins

10 Ruby on Rails Plugins you should be using. I use most of these on a regular basis. However, I prefer test/spec to rspec.


erubis is a erb enhancement, it's backward compatible and has some cool features.

rails 2.0 exception handling

Rails 2.0 has some neat new functionality for declarative exception handling in controllers.

Tuesday, December 11, 2007

underwater acoustics

Wow, I had no idea that underwater acoustics were so complex and so fascinating!


bioacoustics at Cornell University.


Whale song at the avant garde project. In FLAC format.

whale song

Whale song at Wikipedia. Wow, so neat how toothed whales make sound, and very interesting that they have no idea how baleen whales make sound.

An interesting fact is that toothed whales can make two different sounds at the same time. That is going to be interesting to analyze.

flash player

xspf - Open source Flash music player
Open source Flash projects
mtasc - An open source Flash compiler
Actionscript from wikipedia

orca maps

life on mars


In the last 5000 years, humans are evolving 100 times faster than ever before. Sweet.

Come on humans, evolve!

Monday, December 10, 2007


OpenOffice.org2GoogleDocs - A plugin for OpenOffice that lets you synchronize your Open Office with Google Docs.


Once we believe in ourselves, we can risk curiosity, wonder, spontaneous delight, or any experience that reveals the human spirit. - E.E. Cummings


google charts

mmm, some really nice looking charts via google charts. I like it!

human time

humantime is an extension to the Time class in Ruby to give things like "3 seconds ago".

ruby dates


Neato site: dave's page of art and programming. Very retro computo, just like I like it.


A little rant about BigDecimal in Ruby.


Quagmire is a simulation of an 8-bit machine with 2-dimensional memory where programs are pictures.

Neat, reminds me of "A New Kind of Science" combined with Corewars.

dtrace performance

An article about DTrace Performance. DTrace sounds so cool, I almost would use a Sun again to try it out. Almost.


What's all this about E8, parts one, two and three, is a great series of articles explaining some of the math behind E8, a new theory that describes the symmetries behind the Standard Model.


Sunday, December 09, 2007

colour meanings




bacteria make nanotubes

They've just found bacteria that make nanotubes, they make arsenic-sulfide nanotubes with unique properties.

A few years ago I did a bit of thinking about how to make bacteria
make carbon nanotubes. What you want to do is to find a secretory
system that exports some kind of molecule, like the bacterial
secretory system that some bacteria use to get rid of antibiotics.
Then, you change the inner pore into a machine that uses ATP to add
carbon atoms one by one onto a small nanotube primer. With this, you
could build nanotubes as long as you like, just keep feeding the
bacteria and let them go.

This is the future, and we're only a few decades away from this,
making biologically derived nanomachines. Real nanomachines (and
sub-nanomachines) aren't going to look like the machines we see
everyday, the atomic and quantum world is very different from the
macroscopic world, and we need to take our inspiration for
nanomachines from ideas that have been around for 3.5 billion years.

Saturday, December 08, 2007


Open source software package takes aim at high-cost math programs is an article at Network World that talks about Sage, a new open-source program for doing math, kinda like Matlab. Sweet.

I should look into integrating this with Marsyas, which already has support for linking to Matlab.

marine mammal

turn off beacon on facebook

Everyone needs to turn off Beacon on their Facebook profile, it is bad. I found a post on the facebook blog that tells you how to turn off beacon


humpback whale sounds

I just heard a very interesting interview on Quirks and Quarks with Dr. Rebecca Dunlop about Humpback Whale vocalizations.

I'm so excited to be getting into the field of studying marine cetacean sounds, I think this is a very fertile area and could really benefit from some new computer codes to help. Dr. Dunlop just used a stats program to help her do this research, and there's so much more we could do with Marsyas. So cool!

rails order include

I had a model that linked to another model in Rails, and I wanted to order the first model by a field in the second model. Here's what I came up with:

has_many :set_bin_items, :include => :produce_item, :order => 'produce_items.fruit DESC, produce_items.fruit_bin_only'

star trails at dawn

Friday, December 07, 2007

rails 2.0

I just bit the bullet and upgraded to Rails 2.0, and so far I'm very happy, development views are generated much faster.

I only needed to change a couple things, my acts_as_authenticated plugin had a "redirect_to_url" that stopped working, and some "link_to" with a nil object as the object to the link also gave me some problems.

I was happy to see that all my .rhtml files still kept working even though Rails 2.0 might prefer me to use "file.rhtml.erb".


typesetting tables. Very useful, in my current big project for sunshine organics, I'm using lots of tables in the admin interface to show tabular information.

Don't worry, all the markup is with CSS, in fact, it's all Yahoo Grids CSS.


An RFC for URIs for text fragments for the text/plain type. Really neat!


What is a file? is a really nicely done slide presentation about UNIX files.

One Geometry

Perelman’s proof of the PoincarĂ© conjecture, to the tune of Snoop Dogg and Pharrell William’s “Drop it Like it’s Hot”.


I was just listening to a very interesting podcast with Avi Bryant talking about Smalltalk. He says that Smalltalk and Ruby are actually the same language, but just with different syntax, kind of like Hindi and Urdu.

So, I would really like to learn Smalltalk, I'm looking at the smalltalk website and at squeak. I had checked out seaside, and wasn't very impressed, but I should perhaps give it another chance.

Thursday, December 06, 2007

javascript money

Format a number as money in javascript:

function formatAsMoney(mnt) {
mnt -= 0;
mnt = (Math.round(mnt*100))/100;
return (mnt == Math.floor(mnt)) ? mnt + '.00'
: ( (mnt*10 == Math.floor(mnt*10)) ?
mnt + '0' : mnt);


The latest state of the onion. Quite good, as usual.


A preview of HTML 5 at A List Apart.

real time spectrogram

A neat final project : a realtime spectogram

ur linux

Create your own Ubuntu or Mint Linux distro with remastersys.

Hmm, I should think about doing this for Marsyas.

Wednesday, December 05, 2007

rails 2.0

Rails 2.0 is almost here. Here's what's coming.


Practical spintronics gets one step closer, with spin detected and manipulable in pure silicon.


specrb -t auto_build test/unit/produce_item_test.rb -s

designing for flow

A nice post at A List Apart about Designing for Flow.

Tuesday, December 04, 2007


self energy

conjunction and opposition

sand trap

Yay! The Spirit Rover got out of the sand trap and is heading for it's winter haven on Mars.

I've been following these plucky little rovers from the beginning, and I'm just amazed at how long they've been going. I like to think about these little robots, halfway across the solar system (at Conjunction) motoring around on Mars, what a cool time we live in.

The Flush Toilet

iphone rails


Neato Rails plugin called alphabar that lets you paginate based on the first letter.


Inconsolata is a new fixed width font for programming. Looks good.

I still prefer my "Bitstream Vera Sans Mono-14". It's just such a pleasant font to look at.



Monday, December 03, 2007

Seymour Papert Interview - One Laptop per Child (OLPC)

Masi Oka Interview - One Laptop per Child (OLPC)


Archaeologists have just found evidence that the oldest ritual is over 70,000 years old.

wireless keyboards

Having a wireless keyboard is probably not such a great idea, as the encryption is easily hacked. Gives a whole new meaning to the idea of keyloggers.


Name: Cosmic Resonance Mix @ Visions of Nexus (06.05.05)
Artist: SiebZehN


beatrix jar

a complete solar cycle

Sunday, December 02, 2007


6 neat experiments

Discover Magazine has their list of the 6 most important experiments in the world. Well, maybe not the most important, but very neat in any case.

one pot italian cooking

I just heard a great podcast by Don Genova about a book by Massimo Capra called One Pot Italian Cooking. Some awesome sounding recipes in there.

Saturday, December 01, 2007


"The core of your being is permanent; things in the world are not. They are fleeting phenomena passing on the screen of the mind. Only consciousness is eternal and stationary." ~Ramana Maharshi

my cathedral is the forest

It is the Teachings that survive the Teacher. It is the Teachings that survive the Rituals. Constructing a Cathedral to God is building for the Ego, the lower self. Constructing a Cathedral to share the Teachings, to Serve humans, to promote Peace, to end poverty, war, loneliness and despair, inequality....... this is the true monument to God. There are scant few of these...



There are no problems. There is nothing wrong. Everything is unfolding as it should. Everything happens in its own time. Space and time are illusions. They really do not exist. They're stationary. Causation doesn't exist either. No thing has a cause, therefore no thing has an effect. Cause and effects are again products of your own mind. When the mind is quiet, karma ceases. Samscaras are non-existent. There never was a cause for anything. But if you feel that in a previous life you did something wrong and now you are paying the price, or if you think that you did something wrong in this life and you're paying the price, then you'll pay the price, because that's what you think.

- Robert Adams


map of around orcalab

orca hydrophone


chris glas sites


A PDF draft of Logic for Philosophy, merging Computer Science and Philosophy together.



terrible noises for beautiful people: cobra edition


Wow. My mind has just been blown. I learned about John Zorn's Cobra today, it's a musical game which has a bunch of musicans and a prompter, there are various cards, hand signals and hats, and music is made.

An article at the BBC about Cobra, and a Cobra class.

John Zorn plays Cobra


more rake tasks

An interesting plugin that adds some new Rake tasks to your Ruby on Rails project.


Chronoscope is a very interesting open source data display application for the web, built using GWT. I should look into this for Orchive, although I'm thinking of Sexy Charts for Rails as well.