Saturday, December 26, 2009

Honeymoon, Part 5: Merry Christmas!

Jen: Merry Christmas from Venice! We have spent today eating, drinking and gently drifting along the canal in a gondola. Same old, same old, really! As usual, we have built our day around a very long lunch - about three hours today, I think - and a couple of bottles of wine. We are now in our hotel room awaiting dinner time!

Christmas lunch.

The high (or low?) point of the afternoon was when I said "Should we get another bottle of wine?" and Jamie replied, "It's Christmas!"

We didn't just eat and drink today, though - we started out (after breakfast) by going to Piazza San Marco. Many of the shops were closed due to it being Christmas day but we still managed a look at the Basilica and the bell tower. I'm loving the calm of Venice - the total lack of cars etc is absolutely lovely, and the gentle (if a little bit smelly) lap of the canal is very peaceful.

Here is a little video of our gondola ride. We have seen a lot of tourists spending their whole time in gondolas with video cameras poised - what is the point??! We only have a few seconds of footage here for you - we spent the rest of the time being a starry-eyed newlywed couple. Enjoy!

Jamie: P.S. We just heard and saw a guy riding past our hotel loudly singing jingle bells in Italian while ringing his bicycle bell. Hilarious!

Honeymoon, Part 4

Again, blog post by Jamie and captions by Jen!

The remainder of our stay in Bordeaux was very enjoyable, although the weather was pretty dreary, drizzling almost constantly, the kind of annoying rain which doesn't really stop you from going outside but which leaves everything slightly soggy and cold.

On the food front, although we very much enjoyed the rich French meals, by dinner time on Wednesday, neither Jen or I could stomach any more of it, so we randomly decided to eat at a Brazilian restaurant we encountered. This turned out to be fantastic, especially the desserts! We'll be looking out for a Brazilian restaurant when we return home.

On Thursday morning, we visited Bordeaux's cathedral, which is huge! We happened to visit as the organist was practising on the pipe organ, which was a real treat. I love the sound of a true pipe organ, but rarely get to hear one live. I also got to touch some of the big angel statues, which was rather interesting.

A poorly lit photo of Jamie checking out the angel.

I often have trouble figuring out what statues (or parts of them) are meant to be representing, but these were large enough and carved with so much detail that I could grasp them quite easily.

The overnight train ride to Venice was certainly a mixed experience. First of all, the train was running late due to bad weather conditions; we ended up arriving in Venice about two hours later than intended. We had a private sleeper cabin. The worst part was the food. The only food available (or at least as far as we were led to believe) was in the restaurant carriage. Dinner cost Eur28 per Person. Major rip off! First of all, we were both tired and the train was already running late, which meant that dinner didn't start until 9:30pm. There was only one (very curt) person serving the entire (rather full) carriage. We were given some very stale bread, which no one ate; Jen saw lots of pieces of bread with tiny nibbles taken out of them, similar to our own. The food was very average (and that's probably being kind) and service was hideously slow; we didn't get out of there until after 11, and even then, we left before dessert (pre-packaged chocolate cake) was served. Breakfast was Eur9.50 per person and was similarly crap. Airline food service receives its fair share of complaints, but this was far worse.

We returned to our cabin after dinner to discover that it had been locked while we were away, so we had to find someone to unlock it. The beds were comfortable enough and both of us did manage to get a few hours of disjointed sleep, although the ride was pretty jerky. Just being able to lie down and rest made it far better than a plane trip for me and it was fantastic to have privacy.

Upon arriving in Venice, we took a water taxi to our hotel.

Much more interesting than a regular taxi!

I knew Venice would be fascinating for me and I wasn't disappointed. The whole concept of a city (or at least a large section of it) where non-pedestrian travel occurs in the water instead of on land is just so different to anything I've experienced. Also, the constant, gentle lapping of the water is quite relaxing. Our hotel is in a terrific location, just metres away from the water and the Rialto Bridge and walking distance from everything we want.

Our hotel.

The room is quite old-looking, quaint and (according to Jen) "girly", with patterned fabric on the walls, an old-style key and other similar cuteness.

Our 'girly' room.

As usual, we started our stay with a fantastic, luxuriously lingering meal. :)

One more thing: just after we arrived in Venice, the following (slightly paraphrased) conversation occurred:
Jen: (excitedly) "Oo! China Town!"
Jamie: "Err... we've just arrived in Italy and you're excited about Chinese food?"
Jen: "Yeah, it's because I'm a Teh now..."

Wednesday, December 23, 2009

Honeymoon, Part 3: Culinary Adventures

Note: This blog entry has been written by Jamie, with photo captions by Jen.

On Monday, We rose at around 6am (ugh) to make the trip to Bordeaux. We decided to pack our backpacks with enough for the next two days and ditch our 20+ kg suitcases in luggage lockers at the train station... and Jen subsequently spent a considerable amount of time babbling about how relieved she was to be rid of them. :) Lugging them around has certainly been challenging, so it's nice to travel light for a few days.

Upon arriving in Bordeaux, we ended up walking to our hotel, as it wasn't that long a walk and turned out to be far easier than trying to find a cab or figuring out public transport. Along the way, we grabbed a bite to eat at a place which served a set three course menu for €12.50. We've found this to be a common trend here; a lot of places serve a set menu for an incredibly good price and often even provide some small choice of dishes. We were greeted with complimentary glasses of port. Yum! We only ordered one meal, as I wasn't feeling particularly hungry due to my stupid cold, which made me sad. (Dad, I'm sure you can understand.) Amusingly enough, I ended up eating a substantial amount of Jen's anyway. The meal was delicious!

Continuing our journey, we noticed that there seem to be a rather insane number of vehicles with sirens which either passed us by or made themselves heard from a distance. We've been able to hear these from our hotel as well. There seems to be at least one every 5 minutes! Even if there is some sort of police/ambulance/fire HQ nearby, they must always approach with sirens blaring. I had fears that my sleep would be terrorised by nightmares of A natural and B natural tones alternating at 60 bpm, complete with doppler effect pitch alterations. Thankfully, my fears were not realised. As it is, I'm sometimes not sure whether I'm actually hearing them from a distance or whether they're just in my head...

Our accommodation here is a serviced apartment. Upon entering, we discovered a big lounge room, but were a bit concerned when we couldn't find the bedroom. Thankfully, we discovered that the couch folds out into a rather large, comfortable bed. There is a tiny kitchenette, although it's not really large or well equipped enough to cook much. This is also the first place we've stayed that has provided free internet access, which is fantastic.

We both very much like Bordeaux, probably more than Paris. It is a smaller, quieter, perhaps quaint place. Many of the buildings are very old with big wooden doors. As we walked down one street in the evening, I kept hearing these doors being closed, reminding me of movies/audio dramas of older times. It is a rather stark contrast to the modern, often automated doors that I usually encounter.

On Monday evening we decided to find another restaurant offering a cheap three course set menu. This is where the adventure truly began. None of the staff spoke a word of English and there was no English menu, so we decided to... make educated guesses/order at random. We had a choice of four starters and four mains.

The menu.

We ensured that we ordered different dishes for each to increase the chance of satisfaction. For the starters, I ordered "Charcuterie" at random, while Jen ordered "Salade au Roquefort", knowing that "Roquefort" was some kind of cheese. For the mains, I ordered "Pave de Bouef", knowing that it was beef, and Jen ordered "Pave de Saunoiy" at random. The beef had a "Roquefort" sauce, so we knew it was some kind of cheese sauce. I raised the objection that perhaps this meant blue cheese (which I don't like much), but Jen smugly pointed out that they'd just say gorgonzola or the like in that case. I theorised that Jen's dish ("Saunoiy") was probably salmon, but Jen smugly retorted that "poisson" was the French word for fish, so it probably wasn't.

So, the starters arrived. Mine was a rather tasty assortment of cold meats, salad, pickled vegetables and paté (I think of it as the French equivalent of antipasto).

Jen's was... a blue cheese salad.


Both of us very much enjoyed our dishes, but I now knew that my beef would be smothered in a blue cheese sauce. We still didn't know what the other main would be.

Eventually, the mains arrived. Mine was as expected, and after Jen scraped off most of the sauce, I quite enjoyed it, although it was a little tough in places.

Jen's turned out to be... salmon.

Oops again.

All of a sudden, Jamie became the smug one...

But at least he took it in good humour.

Very good humour.

Amusingly, we had little trouble discerning the meaning of most of the desserts and they were both utterly delicious.

This one had the words 'citron' and 'meringue' in the title.

And this one had something to do with chocolate and fondant.

All in all, the experience was hilariously enjoyable, helped along by a bottle of gorgeous local red wine.

Thankfully, we know how to say "red wine" in French.

Of course, now that I've had some success at guess-work interpretation of French menu items, I'll probably completely fail from now on.

Au Revoir!

Tuesday, December 22, 2009

Honeymoon, Part 2: Addendum

Jamie: Just a few things we forgot to write about in the original post.

I'm truly amazed by the efficiency and usefulness of the tube in London. There seems to be no more than 5 minutes between trains and you rarely have to wait even that long. Most of the time, there was a train waiting for us. Even changing lines is not such a big drama because you don't have to wait very long for your connecting train. There was a tube station close to everything we needed, though admittedly, our time was spent pretty close to the centre of London. It seems far preferrable to driving through the awful traffic; we sat on a tour bus for over half an hour for only a few stops and most of that time was spent idling. The metro in Paris also seems to be extremely efficient, although it always seems to be crowded, even in the middle of a Sunday. I'm going to miss this when I get home to Brisbane and its half-hourly, frequently unreliable trains.

In both London and Paris, I haven't encountered a single audio light. I'm told that there are some in London, but as I noted above, we spent most of our time in the centre of London and I somehow didn't encounter a single one. I find this quite perplexing. Are there really so few or are they just at obscure crossings that most people don't use? Are there any at all in Paris?

Music nerd alert: Immediately following our arrival in Paris, one of the first things that caught my attention was the sound preceding announcements at the train station. Rather than the boring old major arpeggio or perfect fifth tones that so often preceed announcements, this was a minor, unresolved, slightly sinister/creepy tune that reminded us somewhat of the X Files. Other pre-announcement sounds heard in Paris were somewhat more cheery, but even so, they were still much more interesting than the norm.

It's been great to have a break from computing and the like, but nevertheless, I'm finding our extremely infrequent internet access to be difficult. It's not so much the social aspect, though it's certainly nice to catch up with people at home every few days. However, more than anything, we tend to take the ability to quickly Google something for granted. Yesterday, we gave in and spent the €20 (ouch!) to get 24 hours of internet access at the hotel. As an example, this enabled us to quickly find a nearby laundromat and pharmacy, including maps. (Concierge told us that the former didn't exist and that we'd have to go quite some distance to find an open pharmacy on a Sunday. Grrr.)

Monday, December 21, 2009

Honeymoon, Part 2

Jamie: The trip to Bayswater went pretty smoothly. We caught a shuttle back to the airport and another bus to Liverpool Street Station, from where we decided to catch a cab rather than trying to lug our luggage on to the tube when we didn't really know where we were going. Our hotel (Queen's Park Hotel) was a bit old and quaint, but functional enough and spotlessly clean. The lift was a tiny, slow little box which could barely fit the two of us with our luggage. The room was smallish, though nothing on the Tune Hotel in Malaysia.

Jen: In London, we got to see "We Will Rock You", "Hairspray", "The Lion King" and snow.
Please ignore my bizarre facial expression and look only at the snow.

All four were very exciting. We actually saw "Hairspray" and "The Lion King" on the same day, following a long and moderately boozy lunch at an Indian restaurant, so I fell asleep for a bit of Lion King, which I felt pretty bad about because it was a spectacular show. It was in one of the ballads, I think, and I woke up when Jamie nudged me to ask what had just happened on stage. I don't think he was particularly impressed when he realised he'd just woken me...

Jamie: I found the theatre culture in London to be fascinating. It almost seems like theatre in London is as commonplace as going to the movies at home. This is evident not only in its easy availability (we purchased our tickets to Hairspray just a few hours before we saw it), but also in the enthusiastic response of the audience.

Jen: After a few days in London we made the trek out to the main station and caught the Eurostar to Paris. As it turns out we're really lucky, because apparently all Eurostar trips between London and Paris have now been suspended due to problems with FIVE of them breaking down in the middle of the tunnel, resulting in people being stuck on the train, with no lights and heating, and with food all run out, for up to 16 hours. We caught the Eurostar the day before all this happened, and aren't catching it again thankfully.

The weather in Paris has been cold but really nice - the novelty of snow has not worn off. Yesterday we found some lovely soft snow to walk in, as well as crunchy, slushy snow. (Jamie: Walking on the snow is quite an interesting and pleasant feeling. Sometimes, it almost just sounds and feels like gravel, but at others, it's more like walking on a fluffy, crunchy carpet.)

We spent a ridiculous amount of time playing in the snow.

We also have been trying not to slip on the ice. Special thanks to Sharon and Terry for our fur-lined boots - they are amazing!!

We have been rugging up a bit.

Paris is quite beautiful in parts. The area our hotel is in is pretty average looking but the hotel itself is awesome (it helps that we got another room upgrade). Yesterday, after a cliched breakfast of croissants in a dodgy little cafe:
we caught the tube with the intention of getting off at the Eiffel Tower, but we went by Champs-Elysses station and decided to get off on a whim (OK, it's because of the Art vs Science song which starts with "The Champs-Elysses is a busy street...".) There were Christmas markets there which we spent ages at drinking mulled wine and hot chocolate with Baileys, and wandering around in the snow.

We didn't make it to the Eiffel Tower (I saw it from a distance and that's enough - it looks really ugly...) and instead went to the Louvre. This was a highlight of the trip for Jamie...not. Having Jamie there was actually really awesome because it turns out that blindies get free entry into every museum and art gallery in France so we got to jump the queue and get in for free. And he didn't even die of boredom, because we got those headphone tour things so as we wandered round he could listen to all the socio-historical stuff. We did a 45 minute tour called "Masterpieces" which included Venus de Milo (the highlight for me - amazing)
and Mona Lisa (not so breathtaking). I could have spent days there but that would have been a bit crap for Jamie. Today we found a chemist (we both have colds, unsurprisingly considering that it is below freezing!) and a laundromat (the only trip to a laundry we will need to make, thankfully.)
Note the tasteful picture of Jennifer Lopez in the background.

We then stepped into a gorgeous little bar/restaurant and ate and drank for 2 hours.

I finished with the cheese platter and will not be needing dinner tonight.

Jamie had pannacotta, and I think he nearly cried when he got to the last spoonful. It was a magical journey for him.

So now we are here in our hotel room packing for Bordeaux. Well, I'm blogging and Jamie is complaining about packing. We do have more photos, but can only access the ones on my iPhone at the moment. Au revoir!

Wednesday, December 16, 2009

Honeymoon, Part 1

Jamie: Our honeymoon has begun! :) This is the first of several posts about our experiences. They're primarily intended for interested family and friends, but I figure I may as well post them here for all to see.

We're flying with Air Asia, our first intended destination being London. We had about an 11 hour stop over in Kuala Lumpur, Malaysia. First of all, the Air Asia flights have actually been far better than we were expecting. Even without the larger seats, we weren't hideously cramped, although I wouldn't want to be particularly tall. (There are some advantages to having less height. :)) We'd been told there was no in-flight entertainment at all, but it seems that there is now, although you have to pay extra for it of course. The food is fantastic, which is a refreshing change from most airline food.

Anyway, we arrived at the KL low cost terminal some time after 4am on Monday. We had booked a room in the nearby, no frills Tune Hotel just to have a shower and get a few hours sleep... or so we thought. After spending forever getting through customs, we decided to walk to the hotel rather than organising a shuttle bus, as it is apparently only about 5 minutes walk. Big mistake. We made it eventually, but dragging our 20+ kg suitcases over grass, busy roads, narrow pathways and a fence proved to be quite strenuous and exasperating. :( (Jen: It didn't help that even at 4am the temperature was about 25 degrees and the humidity was absolutely disgusting.)

Upon arrival, we discovered that for some reason, we didn't actually have a booking. I remember Jen going through the process, but obviously, it wasn't confirmed properly or the like; unfortunately, our error, as we couldn't find any record of the confirmation either. Worse still, they were fully booked. Terrific. We were told that a room would become available in about 4 hours for the refresher package, which allows for a 3 hour stay to freshen up. Having no other option and being exhausted and in serious need of a shower, we decided to wait.

In the meantime, we went to the hotel's 24 hour cafe to grab a bite to eat. A rather random place indeed. We were going to buy a breakfast sandwich, but they didn't have any bread. We opted for Rendang noodles in the end, which turned out to be fantastic. They just used a pre-packaged frozen meal, but as we discovered, even frozen meals in Malaysia are absolutely delicious. Why can't frozen meals in Australia be that good?

After several hours of waiting on a couch in the lobby, me dozing on and off, we finally got our room. And whoa, what an experience! These rooms are intended to be extremely low cost, no frills rooms for stopovers and the like and we had read about how small they were in reviews, but that didn't prepare us for the reality. There was literally barely enough room to walk around the bed! With two suitcases, climbing over the bed was the only option. Having said that, the shower was good, the bed was comfortable and there was air conditioning, so it certainly served its purpose.

At about 1pm, we caught a shuttle bus back to the airport to catch our flight to London. We had the joyful experience of waiting at the departure gate listening to almost continuous, loud, extremely distorted announcements over the PA system. Arrrg! :) As I write this, we're about half way through the flight.

Jen: The flight from KL to London was great - for me. I slept for about 8 hours, so time flew and I felt pretty good. Poor Jamie barely got any sleep at all, so he was pretty delirious by about 3 hours before landing. I convince him to put in some earplugs and try to get some sleep (before that he hadn't really tried because "Trying to sleep is more frustrating than not sleeping") but he did manage to doze off for a fair while. We arrived in London at about 10.20pm, collected our stuff and went to wait for our hotel shuttle in the 2 degree freezing cold, which was fairly invigorating! We were pretty excited by the time we arrived at the hotel (by sheer mystery deal coincidence we ended up at the Stansted Hilton) and were taking photos while waiting in line. The man at the desk offered to take it for us, and we told him we were on our honeymoon. He checked us in and said "I think you'll like this room...". Upon arriving to our room we discovered that he had upgraded us to the Presidential Suite! It has a big bed, 2 bathrooms, 2 massive plasma screen TVs, a lounge room and free wine! Is it terrible that the free wine was the most exciting part for us? Rather than going straight to bed we stayed up until 2am drinking a beautiful Chilean Cab Sav, eating room service and watching TV, until we both hit a wall and crashed.
We've now just had a lovely breakfast and are back up in our Presidential Suite with an hour and a half until we check out and travel into Bayswater to check into the hotel we will be at for the next 3 nights. So far the honeymoon is going very well. We are taking every opportunity to introduce each other as "my husband" and "my wife". I was very excited when I got to call room service and say "Good evening, this is Jennifer Teh from room 201...". I can't believe we still have a month to go!

Monday, November 30, 2009


On Saturday, for my buck's celebration, Michael (my best man) arranged for my groomsmen and me (minus Mick, who's in Melbourne) to go skydiving. I think Michael was more nervous about doing it than I was initially. That was to change a bit later. :)

I awoke at 5:35 (yuck) to get to the skydiving office by 7. Jen helped me fill in the paperwork and was horrified by some of its content, including something along the lines of "accidents can and do happen". :) Meanwhile, Matt slept in and didn't make it to the office in time, but thankfully, an arrangement was made and he was able to join us. We met our jumpmasters and were shown how to move our bodies upon exiting the plane.

Soon enough, we were harnessed and taking off in the plane with our respective jumpmasters. Even being in the plane was a bit of an experience; I've never taken off in a small plane before. I was a little nervous by this stage, but it wasn't until maybe a minute or so before the jump that I truly began to get nervous. What the hell was I doing? I was told later that Michael's jumpmaster looked back at me at one point and noted in amusement to Michael that I was starting to look rather worried. :)

Time to jump. Michael went first and then it was my turn. The wind swirling around me, my jumpmaster (Steve) at my back, I had my feet out of the plane, I got my body into what I hoped was the right formation... and then we were falling, belly first, the wind rushing by me with awesome speed. For a few seconds, I had a bit of a freak out. Holy crap! I'm falling! Belly first! Is this okay? For some reason, I hadn't imagined we would fall belly first, as the formation is taught upright. It makes sense in hindsight, but it just hadn't clicked. My technician mentality set in. Was my body in the correct formation? Am I doing this right? Moving my body in that state was so... different. My control freak mentality couldn't do anything about this either. Steve corrected my arms a bit and then I relaxed slightly. Wow! Incredible! The wind rushed by; it was pretty much impossible to talk, though Steve managed it somehow. Unfortunately, my ears didn't like free-fall so much. Eventually, Steve deployed the parachute. We were jerked upright and then...

All was calm and still. My legs were dangling in mid air! Wow... again! But there were even bigger wows to come. After a bit of floating, Steve turned the parachute... and then we were soaring through the air. This was probably the most amazing, elating part for me, this feeling of literally flying as the wind rushed around me and then coming to a graceful stop. The fall was exhilarating, but this was incredible in a different way. Steve let me have a go at steering the parachute, which was pretty cool.

Too soon, it was time to land gently on the beach. Throughout the day, I kept wishing I could do it again. We spent most of the rest of the day (about 12 hours!) celebrating in more traditional ways. :)

The next day, Michael called to tell me of a headline in The day's Sydney Morning Herald: Skydiver dead after 13th jump. Nice. Later reflection led me to think about how it would have been if things hadn't gone so well, particularly thinking about that feeling of free-fall. <shudder> Jumping out of a plane really is pretty insane. Funny that I didn't think about that so much before. I've been thinking about the experience quite a lot in the past 24 hours, both in wonder and a bit of trepidation. I think I'd still probably do it again... probably... :)

It was certainly an extremely memorable experience and I'm grateful to have had the opportunity to do it. Thanks guys!

Thursday, October 22, 2009

Object navigation: why is it okay for VoiceOver but not NVDA?

Since VoiceOver came to Mac OS X, many screen reader users have joyfully sung its praise - and there's certainly a lot to praise. Some who were previously Windows users have taken the plunge and moved to Mac OS X completely, never looking back. Others use both operating systems or perhaps dream of no longer being dependent on Windows for certain software. This is all fantastic, but as an NVDA developer, there are also aspects of this that frustrate and exasperate me.

Right from the start, NVDA has used "object navigation" in order to review the user interface, particularly to provide access to elements which can't be otherwise accessed using the keyboard. In short, every element in the user interface is generally represented by an object. These objects exist in a hierarchy or tree of objects. Object navigation allows the user to explore this hierarchy by moving between objects and then descending/entering/interacting with objects of interest. For example, entering a list would allow you to see its list items. This is in contrast to the "flat review" (or "screen review") method that Windows screen readers have traditionally used for review, whereby the user can review the content of the screen in a flat fashion from top to bottom, left to right, similar to the way a simple text document would be read. While this might seem more logical at first, it's worth remembering that a sighted user doesn't necessarily read the screen in this ordered fashion. Instead, they are more likely to focus on specific elements of interest, which in some ways is more akin to object navigation. As always, both methods have advantages and disadvantages.

On the Mac, there is only object navigation; there is no concept of flat review of the entire screen using the keyboard. (In the latest version of Mac OS X, you can explore the screen in this fashion using the trackpad. However, NVDA's tracking and reading of text under the mouse allows you to do something similar.) It seems that Mac users are quite happy with this approach, and yet we are constantly bombarded by NVDA users with complaints about the difficulty of object navigation and requests for flat review functionality in NVDA.

So, here's my question for those of you who are either full or partial Mac converts. Why is object navigation quite acceptable on the Mac, but yet not acceptable in Windows? It sometimes seems to me that some of the same users who frequently sing the praises of VoiceOver then turn and complain about the lack of flat review in NVDA. Perhaps I'm wrong and those users who want flat review would not be comfortable using VoiceOver. Even so, it sometimes seems that people are willing to accept a different approach on a completely new platform, yet are unwilling to accept it in a newer product on an existing platform. It's certainly true that NVDA's object navigation needs to be cleaned up a bit (removing extraneous objects, etc.), but I don't think this is the whole story.

ON the web, this gets even more interesting. Due to the non-linear fashion of web pages, Windows screen readers have had to provide their own "flat" representation of web pages. They then override the cursor and other keys to navigate within that representation. Aside from the technical issues associated with this, working with interactive controls on web forms requires a separate mode of interaction (named forms mode, focus mode, etc.) where the screen reader lets the user interact directly with the control by allowing cursor and other keys to pass straight through to the control. (Some screen readers can automatically switch to this mode when appropriate, but there are still two modes.) This is becoming more of a challenge with the ever growing number of web applications, where more keys are required to work with the application. Object navigation solves this problem because the cursor and other application keys are never overridden by the screen reader, so the screen reader doesn't interfere with the functionality of web applications.

Again, VoiceOver uses object navigation on the web and VoiceOver users appear to be quite happy with this. NVDA currently does what other Windows screen readers do, but again, would you be happy if we abandoned this approach in favour of object navigation? It would certainly solve this web application problem once and for all. I get the impression that NVDA users would be unhappy if we changed this.

I want to hear your thoughts. Comment here, Twitter or send me an email.

Friday, August 7, 2009

The Adventures of Jamie's Independence (or lack thereof): Episode 1

So Jen left yesterday afternoon for two weeks to attend the International Kodály Symposium in Poland. This is the first time I've had to survive entirely by myself for longer than a few days without some pre-cooked meals. It's been less than a day and I've already made several blunders...

I was going to cook chilli basil chicken, but due to the meat not thawing enough and after procrastinating until about 8:30pm, I decided that crumbed steak, chips and veggies would be a better idea. Of course, the crumbed steak was frozen too, but I figured that wouldn't be so bad to defrost in the microwave. Frustratingly, it refused to defrost nicely (as is far too often the case), but I finally got it to a point which was sufficient. I then rubbed some oil on the electric grill and managed to spill a decent glob of it in the sink. Bah - a bit of a pain to wash down, but no harm done. I whacked the steak on the electric grill. So far, mostly good. I probably left it to cook a bit long, but it seemed to be okay when I took it out.

As I was eating, I noticed that the breadcrumbs on the steak tasted pretty crappy due to being rather soggy. That happens sometimes, I guess, so I peeled them off. But it still tasted like soggy breadcrumbs! It was only then that I looked more closely and realised that the sogginess was between... the two pieces of crumbed steak. FAIL!

Thankfully, I'd cooked it (them?) long enough that the meat was fine. They're not that thick, so the thickness hadn't seemed odd to me. However, I didn't even *think* to check that their might have been two pieces and not one in the plastic bag. I suspect they had partially frozen together, but nevertheless... idiot!

(By the way, it's highly likely that Jen told me there were two pieces in the one bag, but I don't remember.)

I'm sure there'll be more foolishness like this in the coming weeks, so stay tuned!

Tuesday, July 28, 2009

Apache mod_wsgi with Trac and Bazaar

I recently installed the mod_wsgi Apache module and configured Trac and Bazaar to use it. Here are some notes that others might find useful.


The mod_wsgi documentation on Integration with Trac provides information about many different configurations, as it should. However, much of the document discusses setting environment variables from within the script using os.environ. As the document notes, this is problematic if you want to run multiple instances of Trac within the same process. I think using SetEnv from within the Apache config is a far better approach (which is discussed towards the end of the document). This also allows you to use the same, minimal wsgi script for many instances of Trac.

The document also demonstrates setting the PYTHON_EGG_CACHE environment variable via os.environ. This can only be set once per process anyway. However, if you're running in embedded mode, a more elegant way to do it is to use the WSGIPythonEggs configuration directive.


The Bazaar User Guide describes configuring the Bazaar http smart server with fastcgi and mod_python, but not mod_wsgi. This mailing list post describes configuring it with mod_wsgi. As above, I prefer to set the environment in the Apache configuration so I can use the same script for multiple configurations.

My script is as follows:
from bzrlib.transport.http import wsgi

def application(environ, start_response):
return wsgi.make_app(
)(environ, start_response)

With this script, you can specify the root and prefix passed to the bzr smart server wsgi application using SetEnv in the Apache configuration.

Here is an example configuration snippet making an entire tree useable with the bzr smart server. The prefix is set to "/", which means that the root (/) of the http host corresponds to /srv/bzr in the filesystem.
    WSGIScriptAliasMatch ^.*/\.bzr/smart$ /usr/local/share/wsgi/bzr.wsgi
<Location />
WSGIApplicationGroup %{GLOBAL}
SetEnv bzr_wsgi.root /srv/bzr
SetEnv bzr_wsgi.prefix /

If you have branches in shared bazaar repositories and are experiencing errors related to "server jail" or "jail break" when you try to access them, you are probably experiencing bug #348308. See the bug report for a temporary work around.

Tuesday, June 23, 2009

Touch Screen Keyboard Difficulty for the Blind: A Potential Solution

There's been a lot of talk about VoiceOver on the iPhone 3G S... and so there should be. I suspect (and others seem to concur) that Apple's model for touch screen accessibility ought to be quite useable under most circumstances, but that typing on the touch screen keyboard could be rather challenging, perhaps the most challenging aspect of the interface.

Thinking about this, I had a brainwave: perhaps a Braille touch screen keyboard could be a nicer solution for blind users. A Braille keyboard doesn't require you to shift your fingers horizontally or vertically, which eliminates the challenge of finding characters. Instead, you only need to raise or lower your fingers in various combinations. I'm guessing that the multi-touch touch screen should be able to detect these combinations. I can't remember how big the touch screen on the iPhone is, but I suspect it is probably large enough to allow for the fingers to be placed in Braille typing formation. I can't type as fast on a braille keyboard as I can on a QWERTY keyboard, but I'm a hell of a lot faster on a Braille keyboard than on a phone keypad. In fact, I'm wondering whether this method of input would actually be faster (assuming a proficient Braille typist) than a sighted user using the normal touch screen keyboard.

Surely I'm not the first to wonder about this... or is this really a new idea?

Friday, June 12, 2009

EU Objections to Microsoft's Bundling of Internet Explorer with Windows: My Thoughts

In January, the European Commission sent a Statement of Objections to Microsoft expressing their preliminary view that the inclusion of Internet Explorer in Windows has violated European competition law. Subsequently, Microsoft announced that Windows 7 will ship without Internet Explorer in Europe.

First, let me emphasise a few points. I've certainly had some negative things to say about Microsoft in my time. They're certainly no angels. I'm a huge advocate of free, open technologies and software. I'm a Mozilla Firefox user and advocate it strongly over Internet Explorer. All of that said, I can't fully support this case. It's certainly true that, given the dominant position of Windows, bundling Internet Explorer with Windows has given it an advantage that no other browser could have achieved, thereby allowing it to markedly dominate the browser market. This has undoubtedly caused a great deal of damage to innovation and competition. However, as argued by Jean-Louis Gassée concerning the earlier United States case against Microsoft, given the increasing prominence of the internet, consumers expect to have a browser packaged with the operating system. Apple bundle Safari and many other applications with Mac OS X - one of the strongpoints of the Mac is that everything is so tightly and nicely integrated - yet no such complaint has been made about Apple. There are many other platforms that bundle a web browser also.

Microsoft's domination of the desktop computer world obviously makes the impact of bundling much greater. Even so, I can't help feeling this is at least a bit unfair. It could be argued that the removal of Internet Explorer from Windows actually puts it at a disadvantage when compared to Mac OS X, which still includes Safari. Furthermore, without a bundled browser, a user can't connect to the internet to download a browser, which impedes internet usage. In the end, will Windows be the only platform which doesn't bundle a web browser?

New Apple iPhone Accessible to the Blind: My Thoughts

Apple have just announced that the soon-to-be-released iPhone 3G S will include the VoiceOver screen reader, among other accessibility enhancements. Although I'm still uncertain as to the efficiency of a touch screen interface for the blind, this is fantastic news. For the first time, an every day mobile phone/PDA will include a screen reader as part of the core product at no extra cost. Apple's inclusion of VoiceOver into Mac OS X was revolutionary news, and they've now done it again with the iPhone. I'm sometimes rather cynical towards Apple, but I am continually impressed by their commitment to incorporating out-of-the-box accessibility into their products.

It's worth noting that the iPhone is not the first touch screen phone to include accessibility for the blind. A suite of self-voicing applications called Eyes-Free is available for Android which enables blind users to use many functions of the phone. While this is great to see, it's disappointing that this is what I call isolating (or isolationalist) accessibility; i.e. blind users must use a different set of applications to everyone else to access the phone and are thus isolated from the experience of other users. This appears to be a (in my opinion disappointing) trend for some sections of Google, as demonstrated in the separate, so-called "ARIA enhanced" and "accessible" versions of some of their services, wherein they often present a different interface for blind users instead of integrating accessibility right into the existing interface. I think that isolating accessibility certainly has its place - it can sometimes make for a more friendly and easier learnt interface and is the only practical option in some extremely visual scenarios - but in general, I believe it is extremely limiting and inflexible. Admittedly, a touch screen interface is inherently visual and thus presents a new set of challenges. Not only does the user interface need to be spoken or brailled, but the method of input needs significant adaptation to be used by a blind person. This is probably why the Android Eyes-Free developers chose the path they did. However, Apple have taken a better, more generic approach similar to that of most modern operating systems, allowing blind users to use the same applications as everyone else. The new iPhone incorporates accessibility into the core of the operating system and VoiceOver modifies the input method as well as reading the user interface, which allows any application to be accessible with VoiceOver, including all of the in-built applications.

Experience will determine whether Apple's implementation is optimal for blind users. Regardless, they've truly raised the bar for mobile accessibility.

Disclaimer: I have not had any personal experience with either VoiceOver on the iPhone 3G S or Android Eyes-Free. These thoughts are solely based on the information I have gleaned from various internet sources.

Monday, May 18, 2009

Too Lazy to be Lazy

For a while now, I've been thinking about writing a tool to quickly perform all sorts of little miscellaneous tasks that I'm too lazy to do manually. They aren't big enough to each justify their own application, but nor are they at all related. These tasks include:
  • Setting my computer's audio output volume to preset levels with a single keyboard shortcut
  • Killing off an application which is using too much CPU time and causing my computer to freeze or lag intolerably, thereby making killing it manually extremely difficult or tedious
  • Checking and reporting missed VoIP calls via my router

I came up with a great name for this application: Jantrid Laziness Proliferator. Unfortunately, I'm too lazy to actually write it...

Friday, April 3, 2009

Cakewalk Sonar vs Pro Tools

A post on the JSonar blog pointed me at this thread on the Cakewalk forum comparing Sonar and Pro Tools. I find it surprising that Sonar's poor audio scrubbing functionality (versus Pro Tools's reportedly excellent scrubbing) is not mentioned at all! I keep hearing that many good sound engineers still prefer to "use their ears" a great deal and I'd figure they would therefore use scrubbing a lot, but the opinion from Cakewalk seems to be that scrubbing isn't used by most users and thus isn't a priority. The forum thread does discuss Pro Tools's strength in sound engineering and post production and its relative lack of popularity with composers, which I guess might explain this. If Sonar's primary market is composers and the like, there might certainly be less of a demand for features such as scrubbing. This is a damned shame for me (and I suspect many other blind users), as decent scrubbing (i.e. better accuracy and the ability to play faster than 1x) would make my life a hell of a lot easier, not to mention more fun!

Today's Dose of Lame Jamie Humour

Jen: "Watch the door... it's ajar."
Jamie: (casually, without pause) "No it's not! It's a door!"

... I thought it was kinda clever, personally, but perhaps I've been awake too long...

Wednesday, April 1, 2009

Tired of Incompetence/Bad Service

So we're in the process of finalising the purchase of our house, which is all very exciting. However, the administrivia is quite the opposite, as illustrated in the following series of events:
  1. A few weeks ago: Our mortgage broker sent our First Home Owners grant documents to St George, our bank. Our mortgage broker then called to confirm that they had been received.
  2. A couple of weeks ago: I called NRMA (our insurance company) to ask them to raise the building insurance amount to the amount specified by the bank. (My original figure was obviously an underestimate.) They told me that this was all done, no worries.
  3. Early last week: Jen sent the insurance documents to St George. She also emailed our solicitor with a request to settle a few days earlier.
  4. Last Friday: No contact yet from our solicitor, so I called his office to confirm that the request was received and actioned. He's not in the office; apparently, he'll call me back on Monday morning.
  5. Monday afternoon: No call from our solicitor. I called him late afternoon. I noted that he mustn't be receiving our calls and emails. He noteably neglects to mention the email, but was surprised about the call on Friday. He told me that St George apparently haven't received our insurance documents (see 1), nor our First Home Owners Grant documents (see 3).
  6. Tuesday: Jen had to drive to visit our mortgage broker to sign new First Home Owners Grant documents.
  7. Wednesday morning: Jen called NRMA to ask them to fax our updated insurance documents to St George. She discovered that apparently, our record states the old insurance amount instead of the updated amount (see 2). Our solicitor called me to tell me that the received fax was missing some information. Jen subsequently called NRMA and they said that the information was correct in the records but that the fax was somehow incorrectly generated.

All is now finally sorted, but.... aaaaaaaaarrrrrrrrrrrrggggg!

Friday, March 13, 2009


The new Bazaar 1.13rc1 release is codenamed paraskavedekatriaphobia. Having no idea what the hell that was, I decided to look it up, and as usual, Wikipedia furnished me with the answer: the fear of Friday the 13th. If I knew the smiley for rolling eyes, I'd be using it here...

Well, you learn something new every day.

Wednesday, March 11, 2009

I, Lord of Olive Pits...

Jen and I noticed a fascinating glitch in the laws of probability recently. If we are eating something containing pitted olives - home made pizza, for example - I end up with all of the olives which mistakenly contain pits, while Jen encounters none. We're not just talking one, here. It's usually at least three or four. This has happened a few times now. To prove the point even more, after happily enjoying pizza free of olive pits (while laughing at my somewhat less peaceful pizza experience), Jen gave hungry me a piece of her pizza... and guess what I found when I ate it? Yup... more olive pits. I guess a more logical explanation might be that Jen is consciously or unconsciously doing this...

Actually, this title is rather unsuitable. If I am the lord of olive pits, surely I could convince them to cower and run away or something...

Tuesday, March 3, 2009

Wednesday, February 25, 2009

Address fields in Thunderbird message reader now accessible!

Until a few days ago, the From, To, Cc, etc. header fields in the Thunderbird message reader pane were inaccessible (or at least extremely painful) for those using screen readers. Using NVDA, I was sometimes able to read them with a lot of messing around, but I often found myself viewing the message source because it was so much easier to search for the header names in the raw message. In the few years that I have been using Thunderbird, this has probably been one of my biggest gripes with its accessibility. However, this has now been fixed thanks to Jason Lim Yuen Hoe, a student from a university in Singapore doing a course focused on developing for Mozilla. When I move to the header fields with tab or shift+tab, both the header name and its content is now announced instead of a whole load of nothing. It might seem trivial, but it makes my life a hell of a lot easier, and once again demonstrates the beauty of open source development. Thanks, Jason!

Saturday, February 21, 2009

Quickly selecting a folder with the keyboard in Thunderbird

The folder selection tree in Mozilla Thunderbird can be a bit of a nuisance for keyboard users. You cannot jump to a folder by typing the first few letters of its name. In addition, when you move between folders with the cursor keys, Thunderbird opens the newly selected folder immediately. IF you have several accounts and many folders in some of those accounts like I do, this means that moving between folders which are quite far apart will cause Thunderbird to try to open every folder you visit on the way. This is not only slow, but also probably wasteful of bandwidth.

I've just discovered a way to solve this second problem, which I'm posting in case others didn't know about it. To move between folders without opening every folder in between:
  1. Move to the folder selection tree.
  2. Press ctrl+space to deselect the current folder.
  3. Rather than using the up and down arrows to find the desired folder, use ctrl+up and ctrl+down, respectively. You can of course keep your finger on the control key. Notice that Thunderbird does not open each folder.
  4. When you reach the desired folder, press ctrl+space to select it. Thunderbird opens the selected folder.

There is also the Nostalgy extension, which, among other keyboard productivity enhancements, allows you to jump to a folder by typing all or part of its name. However, I use Thunderbird 3 nightlies and there have been a few compatibility issues recently. Also, Nostalgy overrides the functionality in the quick search bar and it makes the quick search menu inaccessible, so I don't use it anymore. (I should really report a bug, but I can't quite figure out what's going on.)

Friday, February 13, 2009

Blog Posts as Facebook Notes

I've now imported my blog into Facebook, so posts to this blog now also appear as notes on Facebook. This way, those of you who live primarily in the land of Facebook can't so easily avoid them. :) If you want to know how to do this yourself, see this post.

Selling My Soul to Google

It seems I'm using Google services more and more as time goes on.

First, several years ago, I started using Google (the search engine) and never looked back at other search engines. Like many others, I use Google search an absurdly ridiculous amount and find myself using Google and its derivatives (Googled, Googling, etc.) as verbs far too often. Then, I started using Google search to perform calculations and conversions (which I still think is a very cool feature). It's so convenient to be able to type "50 aud in usd" into Google search. I keep wishing that Google would allow me to perform quick searches of the Australian White Pages so I don't have to use its annoying interface and deal with its often suboptimal search logic.

Then, I experimented with using Google Calendar. I quite like its features, although it has some serious accessibility problems which make it rather frustrating to use, so I don't use it much now. I probably would if these were fixed, though.

Last year, I got sick of the amount of email spam I was receiving. I could probably have found ways to improve it, but I got sick of maintaining it all myself. I used to love fiddling with all of this stuff, but these days, I just want essential things like email to damned well work. I then discovered the joys of the free Google Apps Standard Edition and subsequently moved email hosting for to that. I still get the nice benefits of having my own email domain like being able to create multiple email accounts if I wish. (I've never really done this, but it's the principle!) I'll also be able to use Google Calendar on this if the accessibility improves.

I've recently started using Google News on a daily basis to keep abreast of the latest news. I was previously somewhat notorious for not watching t.v. or listening to the radio very often and thus being horribly out of touch, so this is great.

As anyone who has followed my previous blog incarnations can attest, I update them for a little while and then can't be bothered anymore. (Time will tell whether this will happen once again. It probably will. :)) However, i started to realise that part of the problem was that it was too much effort to post new entries with my previous blogging platforms. Again, I could have done something to improve this, but in the spirit of laziness that made me switch to Google Apps, I decided to switch to a service which hosted my blog for me and allowed me to use There were a few candidates, but as you know, I ended up using Blogger, which is yet another Google service.

The scary truth is that all of this really has made my life much easier and I'm not particularly inclined to change it, despite my zest for open platforms and solutions, as well as my general wariness and cynicism of large, world dominating corporations. I don't like being locked into a service running on a proprietary platform which doesn't allow me to export my data, but Google does allow data to be exported in open formats, so this isn't such a problem.

Nevertheless, I have to wonder: what next? How much more of my life will involve Google in some way? What if it fell apart and died? Could I stop using it, even if I found out that it was becoming an awful, anti-competitive, privacy invading, unethical corporation which squashed all in its path to world domination? :) Okay, so that last bit might have been a bit melodramatic, but it does give one pause for thought even so.

Getting a Python Traceback without an Exception

Any Python programmer will be familiar with the stack traceback associated with an exception; most will be particularly familiar with a traceback being displayed for an unhandled exception. This is extremely useful in finding and resolving the issue in the code. However, for a long time now, I've often thought that it would be extremely useful to be able to get a stack traceback at any arbitrary point without needing an exception, which would aid in determining what code path was taken to get to a particular function call. I knew this was possible - Python does allow you to get at the stack frames - but I thought I might have to do a bit of work to obtain a nice traceback. Finally, figuring someone else must have wanted this, I did a bit of Googling and turned up this article. I somehow missed print_stack(), format_stack() and extract_stack() in the traceback module. :) Sooo easy! :)

Thursday, February 12, 2009

The Stupidity of Forced Password Changes

Changing passwords on a regular basis is supposed to increase security. If someone somehow gets hold of a password you used some time ago (perhaps they took a few months to get through their camera footage at the local wireless hotspot?), hopefully, it won't matter. Centrelink (the organisation responsible for social security services in Australia) enforces password changes after a defined period; I think it's every three months. Unfortunately, I tend to forget my new passwords when I have to change them like this. I believe I pick relatively strong passwords, but as a result, it sometimes takes me a while to memorise them. You can do silly things like changing one character, but I sometimes forget which character I changed. :) I would argue that enforcing password changes like this actually encourages insecure, stupid behaviour like writing them down, because people know they're going to forget their new password!

Monday, February 9, 2009

In praise of Darwin and the spirit of inquiry

This article is a rather interesting read:
In praise of Darwin and the spirit of inquiry
While it is centred specifically on Christianity, it strongly advocates my fervent belief that science and spirituality/religion/faith are most definitely not mutually exclusive; rather, they should support each other.

Friday, February 6, 2009

iPhone Ocarina

Okay. So some of you will know that I'm a bit (?) cynical of the iPhone. This is partly because it seems like yet another flashy new piece of largely closed, proprietary technology with lots of over-exaggerated hype. I've always been cynical of a lot of Apple stuff in general because of the huge number of people that see Apple as gods who can do no wrong. In truth, I think my cynicism towards the iPhone is mostly due to the fact that it has a touch screen which I can't use. Yeah, yeah, I know - I'm a sore loser. :) Anyway, despite my cynicism, even *I* was wowed reading this article about an iPhone application called Ocarina. From the article:

Once you install and open this program, your iPhone's screen displays four colored circles of different sizes. These are the "holes" that you cover with your fingers, as you would the holes on a flute. Then you blow into the microphone hole at the bottom of the iPhone, and presto: the haunting, expressive, beautiful sound of a wind instrument comes from the iPhone speaker.
Different combinations of fingers on those four "holes" produce the different notes of the scale. (You can change the key in Preferences--no doubt a first on a cellphone.) Tilting the phone up or down controls the vibrato.

Now *that* is pretty damned cool. I haven't actually played with it myself, but I'm sure it could keep me amused for a while... assuming I could figure out where to put my fingers. :)