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
end

expect NoMethodError do
Object.invalid_method_call
end


I like that, that's pretty readable.



Saturday, December 29, 2007

mixriot



unit testing js




Doctest/JS: unit testing for Javascript made simple



knowledge timeline



binary




A really neat binary clock webpage. Mellow.



theory




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




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



crypto-anarchists




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



stateless banking




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



.dmg




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

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



electrosensitivity




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. :)



twi








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 blinkery.com.



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.



christmas




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:


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
address: 127.0.0.1
pid_file: log/mongrel.pid
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.



jedipad





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.



continuation



unix



risd




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



solstice






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.



gandalf








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

rms




An interview with RMS about software freedom.



stellar nursery








mailto




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



ysf




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



gsk




gsk - a C Library for Writing Services.



Wednesday, December 19, 2007

pngwrite




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."

lyrics



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

concurrency




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.



fast




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

wireit




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.



shapes




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:

Emacs
Linux
zsh
enlightenment-0.16
urxvt
ssh
Ruby on Rails
Firefox
Marsyas
xv
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

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."


Total.ly.




convert dos file




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


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






wild whales




Wild Whales - research projects.



simpledb




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



olpc




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



modpod








alphanum




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




luminotes - A personal wiki.

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



irb




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




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




bioacoustics at Cornell University.



avant




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
mtasc
Actionscript from wikipedia



orca maps



life on mars



evolve




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

Come on humans, evolve!



Monday, December 10, 2007

oogd




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





spirit




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



charts



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



dave




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



bigdecimal




A little rant about BigDecimal in Ruby.



quagmire




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.



e8




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.



!facebook



Sunday, December 09, 2007

colour meanings



colour



colourlovers



web2.0



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

sage




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



whales








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".



tables




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.



rfc




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



files




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”.

smalltalk




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);
}




soto




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



html5




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.



spin




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



specrb





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

python








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



alphabar




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



inconsolata




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.



bang



css



Monday, December 03, 2007

Seymour Papert Interview - One Laptop per Child (OLPC)

Masi Oka Interview - One Laptop per Child (OLPC)

ritual




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.



cosmic





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

hbr1



beatrix jar









a complete solar cycle








Sunday, December 02, 2007

etracker

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

being





"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




"Blessings:
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...


Babaji"



nondual




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





orca



map of around orcalab








orca hydrophone








clouds









chris glas sites



lfp




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



.




</3



terrible noises for beautiful people: cobra edition

cobra




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

birdie








more rake tasks




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




chronoscope




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.