Tuesday, November 13, 2007

Eileen and I just got back from a lovely stay at "Le Guilleret", a relatively new inn located in a 250-year-old building in the heart of Old Montreal.

We had originally planned to make it a romantic, one-night getaway for the two of us, before picking up E's parents at Dorval airport on their way back from their vacation in France. But the best-laid plans of mice and men often go awry, especially when said mice and men have kids...

E had spent a lot of time searching for places before we decided on Le Guilleret. There were other inns in Old Montreal that appealed to us. There was a nice one we had stayed at recently in August, and would have been happy to return to, but their off-season rates were not very off-season. Another one looked lovely, but they required prepayment which would be forfeit if we had to cancel within 3 days of our stay. We decided that this policy was pretty usurious, particularly for those with young children, where one does not often have the luxury of 3 days notice that one of them is going to be sick. Maybe that was an omen.

We were all ready to go, bags mostly packed the night before, arrangements made with friends to meet the kids after school, and with family to have them sleep over, when who comes into our room at 6am but our 5-year-old son Brian saying "My ear hurts. It really, really hurts!"

A quick trip to the pediatrician in the morning confirmed that, yes indeed, Brian had a good ear infection going. About 100 permutations of "How can we get Brian the care that he needs yet still have our getaway" went through our minds, but, in the end, we decided it was best just to take him with us.

Unfortunately, the idea of a nice stay in Old Montreal did not appeal to Brian as much as it did us. He was quite upset when he learned that he wasn't going to get to sleep over with his cousins Shane and Lauren after all. But, after a nap and much cajoling, he came around, and was actually quite charming as we finally headed out in the early afternoon.

Two hours later, we arrive at our destination. A very nice fellow, Fréderic, welcomed us warmly at the door, explained the routine of the inn, and showed us to our room, the Nocturne suite.

The room was so gorgeous, it actually took Eileen's breath away. Warmly lit and inviting, the room has a very comfortable, king-sized bed, with an attractive backdrop. Although the ceiling in the room is low, it adds to the feeling of coziness rather than feeling oppressive.

A modern bathtub, with strong jets, funky lights, a fountain tap, and space enough for two, sits beside the bed rather than in the washroom. Though the placement is somewhat unusual, this again added to the intimacy of the room for us, rather than detracting in any way. It also affords a nice view of the big screen TV (a Sony LCD projection TV, I'm guessing 46"), which sits against the opposite wall. This might appeal when the bath is not shared ;-).

Brian had fun checking out the bath and playing with the lights.

Next to the bath was a doorway to the adjacent washroom, nicely appointed with a copper bowl sink and a gorgeous stone-tiled shower. I would be remiss in not mentioning that the toilet was a comfortable, elongated one, not some chincy model.

After getting settled in the room, I went off and parked the car at a nearby underground garage, stopping by a dépanneur on the way back to pick up popcorn and some St. Ambroise (an excellent ale from the McAuslin brewery in Montreal).

After unwinding for a couple of hours, we headed off to dinner at an Italian restaurant just down the street called Galiano's. I had a fantastic Penne Arrabiatta (the sauce was one of the best I've ever had). Eileen enjoyed her pasta trio as well. Our waiter was very good. He recommended glasses of wine for each of us, which matched the meals beautifully. Brian sampled from our dishes and liked the pasta too.

On our return from dinner, we asked Fréderic to light the fire for us:

And poured a bath:

After we both had a good soak, and Brian watched his movie (perversely preferring the little portable DVD player to the big screen TV), we all crashed out in pretty short order.

In the morning, we enjoyed the fantastic shower. It was difficult to bring myself to get out. Not only because it felt great, but because I felt like I needed to re-hydrate, as the room was very dry overnight.

We then had a nice breakfast in the kitchen just outside our room. Other than the croissants, chocolatines, and coffee which Fréderic had prepared, it was a DIY affair, so we made our own eggs and toast. I really like this informal (and inexpensive) approach. The place was quiet on a Monday/Tuesday, so there was only one other couple at the table with us.

It should be noted that although the room is directly adjacent to the lobby and the kitchen, it is still very private. The double doors leading to each provide good sound insulation.

There were only a few minor downsides for us. As mentioned, the room was very dry. Though there was an air conditioning unit in the room, it did not include a humidifier. One should really be provided, especially in the winter (and particularly if the fireplace is used). E was also surprised to find no shampoo provided, and found the tiny hair dryer they provided to be frustratingly underpowered. It would be good if their website mentioned not only what is included in the suites, but what is not. But these points did not really detract from the overall very positive experience we had here.

Though it wasn't quite the romantic getaway we had originally envisioned, we nonetheless enjoyed our stay at Le Guilleret very much. We will have to visit again some time soon.

Thursday, June 14, 2007

Monday, June 11, 2007

Now that we've delivered Beta 1 of Jazz, I decided to take a couple of days to play around with Google Gears, in particular the WorkerPool support.

While reading through the WorkerPool API, its model of code and data isolation (i.e. processes + messages, not threads + shared memory) reminded me of similar models of inter-process coordination in Erlang and QNX.

It also made me think of a cool example written for QNX, many moons ago, by the late Dan Hildebrand, which was a distributed Mandelbrot generator. A UI/administrator task would farm out work (columns in the Mandelbrot set) to different worker tasks, possibly running on different machines. As each worker sent in its result, the UI would draw the column, and respond with more work for the worker. It was a cool example, and looked cool too: due to different machines running at different speeds, you would see the results kind of shimmer in, with faster machines generating the leading edge, and slower machines trailing and filling in the blanks (Dan also designed it so the faster machines would take over from the slower ones if there was nothing else to do).

So I thought I'd try my hand at writing a similar example, using Google Gears. This was a fun learning curve to me, since I'm still relatively new to Javascript too.

To run it, click the link below. The first time, Google Gears will ask you to grant permission to this app. Press the Start button to start it. You can also use the controls at top left to zoom in/out and pan around (note that the number of iteration for each point is low, so it gets fuzzy fast as you zoom in).

Important: I've only tested this in Firefox 2.0.0.4. It requires the Canvas tag, so it will not work in IE6 or earlier (not sure if IE7 has Canvas).

Note that the UI stays live: while it's computing, you can click the Toggle Background button to simulate interaction with the UI.Compare this to a similar example not using Gears, in which the UI goes completely dead until the computation is done.

I think Google Gears is an important addition to the Google platform, and beyond, since it's distributed under a liberal BSD license and not restricted for use by Google.

In addition to enabling a whole new class of offline-enabled web-apps, I think its WorkerPool support may popularize some interesting (though not new) models of parallel and distributed computation. It will be interesting to see how Google Gears develops. For example, what would happen if they provided a factory for creating worker pools back on the Google grid? There's nothing preventing this in the current API.

One final note: if you refresh the page multiple times, it will eventually run out of worker threads and may cause your browser to crash. From what I can tell, this appears to be a bug in the Google Gears implementation.

Wednesday, May 16, 2007

So in addition to the SkyScout, I've been looking at telescopes with an eye to upgrading from my current one: a 4"-aperture Newtonian on a very rough Alt-Az mount. Current candidates are:

A plain-old 6" or 8"-aperture Dobsonian: inexpensive at $300-$400 CDN, very easy to set up and use, but bulky (we don't have a lot of storage space), can't track the sky, and the focusser is a basic rack-and-pinion.

An 80mm refractor with high-quality ED glass on an EQ-3 computerized (i.e. Go-To) German equatorial mount, with a Crayford-style focusser, somewhat similar to this one: more expensive at $1099 CDN (though this would have been almost twice the cost 2 years ago), less light-gathering power but much sharper optics, comes with a metal case.

This one looks very nice too, comparable to the previous but a bit higher-end for about the same cost. This is just the optical tube though, not a package deal, so I'd have to sort out my own mount (and mounting rings) and shipping, and that would bump up the cost by a couple of hundred.

One plus with the Dob is that I'd feel comfortable leaving it at the cottage for my nephew and nieces to use (with parental guidance), but then again there isn't much storage space there either.

Wednesday, May 09, 2007

Brian had a long nap late this afternoon, so he's staying up longer and we're playing Lego Star Wars II (again). Very fun game, with nice simple controls that even a 4.5-year old can handle. Brian has managed to figure out most of it. It amazes me how fast he picks things up.

I see the same team is also working on Lego Bat Man for next year, which should be good.Preview version (not) available here.