I'm all ergonomic now!
Take a squiz at the excellent Kinesis ergo range here: kinesis-ergo.com.
A word of warning to anyone having one delivered to Australia - the import duty came to about $AUS100, as did the shipping...
After re-capping some basics in an on-line typing tutor (typingmaster.com), my tyoing is already at 26 wpm (30 wpm gross). My accuracy was only 85% (which the typing tutor called Intermediate) was mainly because my brain keeps forgetting which thumb has the space and whivh has the delete, combined with the fact that the program locked off a word once you typed a space.
My rythm, though, was only 43% which the program called Beginner - sheesh!
Ruby on Rails and postgres
That's a pity, because there is almost no real reason for the average application to use mysql over postgres and a lot of good reasons TO use postgres.*
There are some nice howto's on shoehorning some of postgresql's advanced features into Active Record - like this one : Howto Use Postgres Views As Tables
* For a dissertation on why MySQL is not a good database see this article on OpenACS.org. Note that this article is old and some of the misgivings are dealt with in current MySQL versions, but not all - and those that are mostly require you to use InnoDB tables which remove much the speed benefit MySQl is supposed to deliver.
More up to date "gripe-lists" about MySQL can be found easily, such as MySQL Gotchas.
My biggest issue that prevents me from using it (even when it might seem a good choice) is the way that it makes arbitrary changes and casts to your data without asking. That's just going to make a big mess one day that I would rather not debug!
I think Tech Documentation has become more bland (and sometimes less useful) in recent years. As an example of really well written documentation, I was just leafing through the first edition of the Be Developers Guide (were there any other editions?). If you must know, I was having a tidy up of my apartment before an annual inspection ;o)
The Be API and it's documentation are phenominally well written. I also spotted the following amusing functions in the Kernel Kit:
The documentation doesn't specify what type of sensor the Be hardware uses to detect combustion ;)
On the same page, the enum typedef for platform_type includes some unusual platforms ...
So can we deduce that the documentor HAS tried the other platforms? =)
Ruby's a gem
As with many nice book authors these days (eg. Matt Reilly, Dave Rolskey & Ken Williams), a version (first edition) of the Programming Ruby book is available for free online. There is a second addition for purchasing which apparently covers features and libraries of Ruby version 1.8.
From my reading so far, it will be a snap to pick up for an experienced Perl OO hack like myself. Of course similarity can often lead to frustration, but all the major nicities are there (albeit always in an OO form). Many of the core concepts are similar, yet are made available in a way that will be far more comfortable to newcomers than is Perl. For instance, every object inherits a .to_s() method—much simpler than explaining the ins, outs & special cases of Perl's stringification rules.
In short, it seems to combine all the good bits of the languages I love to use and love to admire.
When I have done more research I will deliver my verdict as to whether there is Ruby in my future or not.
Everything is an object?:
Literally everything is an object. There is no exception for strings or numbers (unlike some other OO languages), although you can use simple operators on objects (via operator overloading). For example, look at this example adapted from chapter two of the Ruby book
product1 = "Spam" product2 = product1 product1 = 'h' product1 is: "Sham"product2 is: "Sham"product1 and product2 are local variables that each contain a reference to the same String object (which was magically brought into being by the double-quoted inline string literal. A lot like perl objects really.
The biggest thing that's NOT like perl is that data types don't automatically coerce based on context. So you can't, for instance, do something like 5 + "5" which really sucks for file handling etc.
Gratifyingly, Ruby has a very clean implementation of code blocks/closures/anonymous subs (depending on your language speak). Once again, nothing that you can't do in Perl (and i'm not sure i like the do ... end syntax), but such a clean, genuine OO, implementation is an absoulte joy.
In Ruby, a range is not a list—it's, well, a Range. An object of type Range that is, and Ranges have some rather nice properties. Take the following code example adapted from this chapter of the Ruby book:
fileHandle.each do print if /start/../end/ endIt does what it looks like it's meant to do—prints any line in the input file that falls in between a line matching the regex /start/ and the one matching /end/. Not even Perl is that cool :) And if it was, Perl would call it DWIM—Ruby calls it the principle of least surprise...
Update: Of course Perl's flip flop operator can have the same effect - which should be no surprise to me ;)
Thinking of buying two mini's...
Now today after MacWorld SanFrancisco (having fun Tim?), It seems a Mac mini is in my future too. For AUD $799, it's a whole lotta Mac.
Good things come in small packages huh! Well, most good things...
Quote from gizmodo.com:
"The Mac mini is 2 x 6.5 inches. Your car stereo is 2 x 7 inches. Are you thinking what I'm thinking?"
- Matt Myers, System Administrator, Tru Playa
Gotta do something about this design
Does anyone have any favourite site deisigns they would care to offer as inspiration?
State of the art Audio and Makin' Bacon [www.theage.com.au]
As if to show that a good mind can be turned to different things, his primary qualification is a degree in farming from the Agricultural University of Copenhagen. In London, he wrote papers on the effective marketing of Bacon!
You can never have too much bacon, and you can never have consumer electronic gear that is too sexy. Peter O excells in both things—running a pig farm that is 10 times the Danish average farm size and also having run one of the world's premier consumer audio brands.
It just makes me like the Danish people even more!
Of course there is a long history of people ignoring their degree. My old boss and friend Tim is very proud of his film making degree—it doesn't help his IT career much, but he's a great story teller!
Time to add another language/framework to my belt?
But as quoted on the homepage, "Rails may be the project to take Ruby mainstream".
From my cursory investigation, Rails looks like it would be very time effective from a developers point of view. I've also never regretted following Lars' lead on software (vis. emacs ;)
I'll let you know when I have a sample app done, but that will eb a while yet - Perl/mason and OpenACS are still filling my head :)
Wow, that was nerve wracking
Luckily I had an old copy of service source 1.0 which happily ran on my G4 Powerbook under Classic. I safely navigated the CRT discharge procedure and reassembled it back to working order. I kept one hand behind my back just to be sure (keeping one hand behind your back minimises the chance of any electric shock passing through your heart).
I also swapped out the ethernet card in the LC PDS slot for the //e emulation card from my parent's old LC and now have a real (almost) hardware Apple //. It's actually even better than a real one because I can share some hard disk partitions under ProDOS for easy file transfer.
I have a UniDisk 5.25 drive as well, but I left the adapter cable for the drive at my parent's (hopefully they still have it).
So much fun :) Now I can get stuck into learning assembly programming the 6502 (it may have a 65C02 - I'm not quite sure).
The only downside is that my Color Classic has no ethernet card now, so I'm having to ferry files via a PowerBook 3400 that has ethernet and localtalk. If the person I lent my localtalk/Ethernet adapter to a few years ago reads this, can I have it back?!
Guess who forgot to put the self-termination jumper on the hard drive before re-assembling the Colour Classic...
I guess I'll just have to leave the long (and thus high-resistance) SCSI cable attached until I could be bothered fixing it.
On the plus side, I found the adapter cable, and so now I have an external platinum 5.25 floppy drive attached :) Pity I threw out all the disks years ago. Still, it sounds nice on the startup scan =)
What a difference a day makes
A year is such a big thing, but so much can happen right at the end.
The tsunami in asia is well on it's way to being the second worst natural disaster this century (overtaking the 1/4 million deaths caused by an earthquake in China).
But good things can happen too, and I am very excited to be engaged to my best friend Kath :-)
Blog Categoriessoftware (41)
..heads up 'tunes (5)
..black and white (6)
..A day in Sydney (18)
..The Daily Shoot (6)
Book Review (2)