New Roomba 530.

Those of you who've visited my website and/or know me, you know that we love our Roomba. We really do, and even so much that it became an integral part of how we did things in this house. Sadly our old and trusty Roomba developed sort of a limp and couldn't run in a straight line. Last week we decided that it's been too long since we've had a working Roomba and we decided to do something about it. Said and done we ordered a Roomba 530 from Domotec. (If you already are a Roomba host, ask them about their trade-in!). It arrived today... YAY!
First impressions were that it's much sturdier than the old Roomba Sage (a.k.a "2 Silver" or "5545"). I've since charged it and it's done the living room. When running it's a lot quieter and it's much more careful and doesn't seem to rush into furniture.
When I emptied I was surprised, even as an old Roomba owner, how much dirt was in there. But to my joy I was even more surprised over how much easier it was to clean it compared to the old one! This new one is a doddle, and I'm very happy about that because I'm usually the one who ends up cleaning the robotic vacuum cleaner!
So far I'm very pleased! We'll see how far the battery lasts.
Welcome back, Roomba, we missed you!!
Picture shows Patch watching Roomba between the couches. Just like me, she finds Roomba interesting to watch.


Milling a GPS Stand

I must admit that I'm quite chuffed with what I achieved with this GPS holder. To cut several hours in the garage short; Caz has got a Garmin i3 GPS and it comes with a lousy suction mount, and when the suction mount works, the GPS is too far away to reach. So I made her this GPS mount for her Clio. :)
It's the second thing I've ever milled, so I'm still learning but I still think it came out quite well.
It's still a work in progress as I still need to sand it down properly, paint it, and then naturally cut down the bolts etc to make it purdy. I'd also like to pull the power cord up through the covering plate the holder is attached to. But that requires a bit of soldering and crawling around, so that might take a while longer.
Full set of pictures in my Picasa gallery; Milling a GPS Stand.



I found this post about 1200 Baud Archeology really interesting! It's about how to reconstruct Apple Computer's first piece of sold software from an MP3 file into binary. If you're a geek, I think you'll enjoy it. If you're not, you'll just point at me and laugh. Either way, it's entertaining for you.



One can't be stressed or angry when you have a calm cat sleeping next to you like this. Sadly I don't want to disturb her so I might end up sitting here for hours. :)


Very pleased.

The lapping on the Nordschleife is over for this trip. We've managed some 50 or so laps. My last 5 ones in a row were fantastic. I could have kept on going but I didn't want to tempt fate. We're now going to a friends barbecue. Yum! Tomorrow we travel back. Oh, the photo is the view I'm enjoying whilst typing this.


Rare bike.

You don't see many of these around, let alone ridden in anger, let alone on the Nordschleife. Kudos! :)


Rain, sunshine, rain, sunshine...

It's been a typical Eifel day. We've got rain, then it dries up, repeat. We've still managed 9 laps. Right now it's gorgeous sunshine!


Blue skies.

This is typical, the track is closed, and there's blue skies. I shouldn't mention tomorrow as that will probably jinx it.


The reason why the track is closed. Biker down on oil. :( I think a beer is in order.

Rain in France.

Just passing through a bit of heavy rain. Somehow I have a bad feeling I'm going to be seeing quite a lot of this type of weather.

Folkestone - YAY!

You might get a feeling of deja vu, but here we are. M25 behind us, Belgium ahead.

Ring trip number 3

We're on our way. Currently making our way down the m40. See some of you there!


Rails 2.1 find_by_sql hides attributes

More headscratching. I created some kung-fu-panda SQL and tried to massage it into proper Rails format with the appropriate :select, :from, :conditions, etc, but that didn't work. So I resorted to find_by_sql(). It all seemed to work fine initially. But upon closer inspection I couldn't find my new special kung-fu columns (a.k.a attributes). As a stab in the dark I tried to access them in the console and there they were. They were just hidden. Let me show you:
Create a method something like this in one of your models:
def self.missing_attributes
self.find_by_sql("SELECT id, 'hello world' AS hw FROM mytable")

Then in the console, do, something like:
>> reload!
=> true
>> ma = Mytable.missing_attributes
=> [#<Mytable id: 1>, #<Mytable id: 2>, #<Mytable id: 3>, #<Mytable id: 4>]
>> ma[0].hw
=> "hello world"

As you can see from what's returned from the call to missing_attributes() is that the only attribute (a.k.a column) returned is the ID column... not so... accessing ma[0].hw will print out the correct value; "hello world" in this case.
I spent some time looking at the Rails bugs and couldn't find this, but when I tried to report it I couldn't find how to do it, so I gave up. I'm lazy. If you know how to report it, feel free.