Monday, December 31, 2007
RIP joybubbles
A beautiful article about joybubbles, the granddaddy of the phone phreaks, and an eternal kid. Very cool.
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
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
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.
Thursday, December 27, 2007
smart
Smart Languages and Dumb Parsers - Some interesting points about why the "dumb" parsers for Lisp, Forth and Smalltalk make for such powerful languages.
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. :)
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
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.
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.
Friday, December 21, 2007
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.
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.
Thursday, December 20, 2007
Wednesday, December 19, 2007
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.
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.
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.
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.
Sunday, December 16, 2007
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.
the devils panties
Saturday, December 15, 2007
change the present
Wow, what a great idea at changingthepresent.org. You can choose exactly how you want to change the world, and donate to that cause.
Friday, December 14, 2007
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.
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.
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
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.
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.
Tuesday, December 11, 2007
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
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
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.
Sunday, December 09, 2007
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.
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'
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.
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);
}
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
Tuesday, December 04, 2007
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.
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.
Monday, December 03, 2007
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.
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
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
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.
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.
Subscribe to:
Posts (Atom)