Key in the cognition

Apr. 2nd, 2008

08:30 am - Official VMware Workstation blog

The Workstation team now has an official public-facing blog :-)

You can even read about a major project I've been working on for the past year or so.

Tags: ,
Current Mood: [mood icon] excited
(2 comments | Leave a comment)

Oct. 29th, 2007

07:07 pm - I'm working downtown now :-)

Seven years ago, on my very first co-op job at KL Group, was the last time I worked downtown in a real city and I've had fond memories of the experience every since. So when VMware recently acquired another floor at Stevenson Place near Market and 2nd in SF, I jumped at the chance to work there. Today was my first day working at the new office, which I now share with Grant, who is also on the UI team.

Unlike Manhattan, where rampant paranoia requires a background check on everybody entering an office building, getting into Stevenson Place was pretty easy. Once inside the VMware suite, I found my office and discovered that the movers had managed to transport my enormous potted peace lily without damaging it, which made me happy. Grant showed up later and we eventually left the building to eat lunch at a dim-sum place up the street. The food was good but we decided that spending $30 apiece on lunch would have to be reserved for special occasions.

On our way back from lunch we decided to try gaining access to the roof. To our dismay, the topmost floor does not permit access to anything. But the real adventure hadn't begun yet. See, like most office towers, Stevenson Place has 2 sets of elevators and the VMware offices are only accessible via the lower set, although it is the highest floor served by that set. Rather than taking 2 elevators to get back, we decided to simply get off at the floor above it and then take the stairs down.

It seemed like a sound plan until we discovered that it isn't possible to get back into a floor from the stairwell. Disappointed, we decided to walk down all the way to the bottom and take the elevator back up after all. Upon reaching the bottom, however, we discovered, to our horror, that the only exit was wired to trigger the fire alarm if opened. We were trapped in the stairwell.

Fortunately, our cell phones still had a decent signal so we called one of our coworkers and got him to take an elevator down so he could rescue us. Having had enough excitement for the day, we managed to stay out of trouble after that.

It took me slightly longer to bike home than I'd expected: 21 minutes instead of the 15 it took me to get there in the morning.

Tags: ,
Current Location: 71 stevenson St, San Francisco, CA 94105 (Stevenson Place)
Current Mood: [mood icon] happy
Current Music: Tarantulove - Hawksley Workman
(Leave a comment)

Oct. 15th, 2007

10:30 pm - Tech-talk exchange program

Since both Google and VMware do regular tech-talks, some people at both companies thought it would be cool to give tech-talks at each others campuses. Today we had a pair of googlers on site to talk to us about using fuzzers to find security holes. It was a very interesting and the high attendance suggests that this might prove to be an enduring tradition. On Wednesday my teammate BenGwill be speaking at the Googleplex.

Tags: ,
Current Mood: [mood icon] pleased
Current Music: Feign Amnesia - They Might Be Giants
(Leave a comment)

Sep. 26th, 2007

08:10 pm - Messing with Texas

People had been telling me for several months that I should visit Austin because it's an oasis of liberalism in Texas. This week I finally had a chance to spend a few days in Austin by virtue of staffing the VMware booth at a career fair and delivering an info session on the UT Austin campus.

Several people encouraged us to try the Texan BBQ but I was not particularly impressed by it. What did impress me about the cuisine in Austin were a couple of restaurants, one Thai and the other Korean. Although I'm not usually a huge fan of Thai food, Madam Mam's had me the moment I tasted their spring rolls (wrapped in soft rice-paper, not the thicker hard wheat-based things that are commonly mistaken for spring rolls but are actually egg rolls). Koriente is a small but delightful place run by a couple of the nicest people I've ever met.

The climate in Austin took me by surprise, however, despite having grown up in a pretty hot and humid part of the world and hearing about the Texan summer beforehand. Despite the stupefying heat and humidity, I was able to walk around downtown Austin without sweating too much as long as I mostly stayed in the shade of buildings. Wandering around gave me a feel for the city's vibe, which I quite liked. There are plenty of sidewalks and bike lanes in active use and only one person tried to run us over while we crossed the street. I even passed by a church whose banner read "deliberately diverse and fully inclusive". There's also just enough urban sketchiness to keep it feeling real but not enough to feel unsafe. The street hooligans are definitely more polite than those in SF but I guess they never know who might be bearing firearms ;-) All things considered, aside from the oppressive heat and humidity, Austin meets the Tony standard for liveable cities. In fact, the only thing that disappointed me was the noticeable lack of outdoor art.

Speaking to throngs of CS and ECE students at the career fair was interesting. Both those fields seem to be dominated by people of South Asian descent in Texas, although most of those at the undergrad level are US citizens who speak English fluently and whose parents probably migrated to Texas decades ago. We encouraged just about everybody who handed in a resume at the booth to attend our info session at the end of the fair. Consequently, it was extremely well-attended with probably over 90 students showing up to pack the room. I think they enjoyed my presentation because they laughed at my jokes and asked a lot of questions afterwards, mostly about how to get jobs at VMware.

Tags: , , ,
Current Location: 701 E 11th St, Austin, TX 78701 (Sheraton)
Current Mood: [mood icon] happy
Current Music: some trancy stuff that I can hear through the walls of my hotel-room
(7 comments | Leave a comment)

Sep. 14th, 2007

08:14 am - VMworld 2007

VMworld was this week and I had a pass for Thursday. Although only attendees from Wednesday were supposed to attend the VMworld party that night, I was able to masquerade as somebody else and go anyway. I'm glad I went because the party was incredible; I've never seen anything like it in my life; it was as though they'd brought Vegas to us. Outside there were several free carnival games with little prizes and Smash Mouth was playing. Inside they had several different rooms that had been turned into representatives of various colourful SF neighbourhoods and they each had different forms of food and entertainment. The entertainment included stand-up comedy, karaoke, a mariachi band, 80's arcade games, costumed dancers, a jazz band, etc. And everywhere there was an open bar with a variety of beers and wines.

On Thursday morning I was on duty at the "genius bar" to answer questions about Workstation, although most people were, unsurprisingly, interested in Virtual Infrastructure. I also went to a bunch of breakout sessions. The most amusing of these was the panel discussion at the end where technical heads of several competing companies made snarky comments at each other for an hour; final verdict: Infiniband is kicking 10gigE's ass.

Altogether I was impressed by how well the conference was organized; we even had a booth for attendees to check into their flights! And a professional cartoonist had been hired to produce humorous illustrations of various virtualization-related terms, which were hung all over the place as decorations.

Tags: , ,
Current Mood: [mood icon] amused
(3 comments | Leave a comment)

Aug. 2nd, 2007

07:25 am - Public speaking as commodity

As part of VMware's campus-recruiting efforts, we deliver an info-session at many universities around Canada and the US each semester. Every year we have a meeting to refine the presentation based on previous successes and new ideas. Because all the presenters are volunteers from Engineering, their ability to deliver a presentation has high variance. This constraint requires us to standardize the presentation using a slide deck, a few very brief videos, and a single demo.

While I hate the use of slide decks as a crutch in public speaking, our complementary but optional public-speaking courses have not yet succeeded to a point where we can necessarily rely upon the presenters to deliver on their own merits. Consequently, we invest a good deal of effort creating a slide deck that can stand on its own as much as possible yet not limit the presenters who are able to speak well.

Our strategy for this academic year is to ground the slide deck in a small number of slides that display essential information in a very clear manner, with supplementary slides that can be added to the deck as appropriate for the student audience in question and the technical background of the presenter. One of the results we've been wanting to achieve recently has been to make students feel like they would fit into our corporate culture. An idea we're thinking of trying to accomplish this is to create slides of engineer profiles that give students an idea of what engineers do on a day-to-day basis. These profiles would include such things as programming languages and technologies used, typical working hours, products/features shipped, etc. Sounds a lot like developer trading cards, eh.

I guess it's the next best thing to having the names of star hackers on the boxes in retail stores the way Hollywood "brands" movies.

Tags:
Current Mood: [mood icon] pensive
Current Music: Open Book - Mates Of State
(Leave a comment)

Jun. 18th, 2007

11:17 pm - On moving to the new campus

me in my new officeWhen VMware began running out of office space a couple of years ago, our visionary CEO decided that it would be a good idea to build a new campus for us instead of continuing to lease whatever vacant office buildings we could find in and around the Stanford Research Park. Wanting to build this new campus in an environmentally friendly and sustainable manner, she got William McDonough himself to design the campus and spent countless hours poring over designs herself. She even put the blueprints, materials samples and office furniture out on display periodically to solicit feedback from all of us.

All that careful planning has finally paid off and today I walked into the brand new campus (called Promontory). The flooring is made of lovely hardwood, the bathrooms have waterless urinals, and natural light abounds. I'm still getting settled in but so far I'm loving the new digs :-)

Update: I've posted pics of Promontory on Flickr

Tags:
Current Location: 3401 Hillview Av, Palo Alto, CA 94304 (VMware world HQ)
Current Mood: [mood icon] pleased
Current Music: Bright Side Of the Road - Van Morrison
(5 comments | Leave a comment)

May. 16th, 2007

06:11 am - Mentoring an intern

As a consequence of going through Waterloo's revolutionary co-op program, I had several amazing work placements during my time as an undergrad. On some of these I was fortunate to have been mentored by stellar software developers like Michael Valenta and Tom Ball. Now I have an opportunity to pay it forward; I'm mentoring an intern this summer.

He's going to be working on the addition of GDB support to the Eclipse plugin I wrote for Workstation 6.0 so that C++ developers can take advantage of it as well. That would nicely complement the Replay feature in Workstation 6.0 that allows developers to easily track down bugs that are hard to reproduce by letting them jump back in time after encountering such a bug and then step through the code path that was just executed.

There's nothing quite like having a new person around to highlight all the weird internal jargon being used in an organization. My strategy for dealing with this is to add brief explanations of every term that confuses him to the wiki so that in future people can just look them up on there. Wikis are awesome that way.

Update: On his first time participating in our weekly Starcraft session, he destroyed everybody else in about 15 minutes!

Tags: ,
Current Mood: [mood icon] excited
Current Music: Hymns To The Silence - Van Morrison
(Leave a comment)

Mar. 31st, 2007

10:18 am - xterm and execv

The xterm application, which is distributed with most X11 implementations, sports a -e flag that accepts a command followed by a sequence of arguments, all of which are space-delimited. I'd been exploiting this feature to ensure that when I programatically executed console apps inside a Linux VM, the user could interact with them. All I had to do was run xterm with the -e flag and follow that with the location of the console app and its arguments (e.g. xterm -e "xeyes -center red"). Everything had been working fine when I tried this on modern Linux distros but today one of the QA people tried it on Redhat 8, which was released in 2002, and saw a nasty error message complaining that the execvp syscall could not find the specified file.

Curious about the cause of this problem, I tried manually running xterm under strace with the same arguments. This revealed that the xterm binary in XFree86 4.2 that was part of Redhat 8 simply tries to call execvp with the entire quoted string as the first argument. Since that string contained space-delimited arguments appended to the binary's name, it couldn't be resolved as a valid pathname by execvp. That made sense but it didn't explain why it worked in newer releases of xterm. Trying the same thing with the xterm binary on my Ubuntu 6.10 system revealed that xterm now falls back on passing the entire quoted string to the shell for execution if the call to execve fails. Since bash knows to deal with the space-delimited arguments, that works fine.

I was trivially able to solve the problem by removing the quotes.

Tags: ,
Current Mood: [mood icon] annoyed
Current Music: Down by the Riverside - Raffi
(4 comments | Leave a comment)

Feb. 9th, 2007

12:14 am - Making remote debugging easier to use

Shortly after joining VMware, I took on the challenge of making it easier for software developers to debug code running in a production environment where they don't have all the tools normally available to them during development. Traditionally, the only way to accomplish this has been through the use of remote debugging. However, while remote debugging can be extremely useful in certain situations, getting it to work is sufficiently cumbersome that it has remained the domain of the truly desperate. There are two parts to the process: running the code in debug mode on the production machine and then attaching a debugger on the development machine to the code running on the production machine. I realized that I could vastly improve the user experience if I could automate all this drudgery and present it to developers as a one-click action. But I knew that doing this would require a sequence of nontrivial actions:


  1. after building the code on the development machine, make the executable available on the production environment;
  2. execute the application inside the production environment so that it is prepared to accept a connection from a remote debugger;
  3. attach a debugger on the development machine to the application instance running in the production environment.

It didn't take long to realize that the first two steps would be fairly straightforward if the production environment was a virtual machine because then I could use Shared Folders to accomplish the first step and use our new automation API to accomplish the second. Fortunately, it is now possible to turn physical machines into virtual ones with minimal fuss.

Since nobody else had ever attempted to do something like this before, I decided to keep it simple at first to minimize the risk of failure. That meant choosing my battles carefully when tackling the third step. For the initial release, my target was limited to pure Java standalone applications developed using the Eclipse IDE, although it was to work on any combination of Windows and Linux as host and guest platforms.

I began by talking to a few Workstation customers who also use Eclipse for Java development so I could get a feel for their workflow and pain points. Then I sketched out the proposed workflow model for virtualization-assisted remote debugging and ran it by them along with rough mockups of my UI ideas. Based upon their feedback, I designed the feature as an Eclipse plugin that adds a new type of Launch Configuration to the stock set. The UI for this new launch config reuses most of the tabs already familiar to Eclipse users from running Java apps locally and adds a new one with a few virtualization options, of which only one requires the user to make a choice: in which VM should the code be executed? Once a launch configuration has been created and a VM selected, as with any other launch config, it can be activated in future simply by clicking on the Debug button in the Eclipse toolbar.

When activated, the plugin powers on the selected VM if necessary, shares the project folder containing the bytecode with the guest OS, finds an available dynamic port to use for remote debugging, looks for a JVM on the guest in the most likely locations until it find one, executes the application in debug mode and finally attaches the Eclipse visual debugger to the previously determined port on the VM. When the application is terminated, the plugin removes the shared folder so as not to leave a mess. For additional flexibility, developers also have the ability to do a few other potentially useful things:
Knowing that some Java developers would be using more complex runtime environments like application servers, I opportunistically threw them a bone as well. If they can get their application to run in debug mode and wait for a remote debugger to attach to it then I offer to them yet another type of Launch Configuration that greatly improves the user experience of attaching the Eclipse visual debugger to an arbitrary Java application running inside a VM. This one presents them with a nice list of instances of a particular Java application running on a particular VM so that they can pick the one they wish to debug instead of having to manually specify IP addresses and port numbers - the sort of details that made remote debugging a pain to use.

Keeping in mind that attention to detail means a lot when it comes to user experience, I added a few little niceties where possible. For instance, instead of always having to browse for the location of a VM, you can nearly always select it from a list of currently running and recently used VMs. And because most people won't care about sharing additional folders during debugging, I tucked the UI for that into a disclosure triangle. In keeping with the Eclipse tradition of always using a cancellable progress dialog for long-running operations, every step of the automated remote debugging process is accompanied by one of those. Finally, our Tech Pubs folk broke with their tradition of using PDF documentation to provide simple HTML user assistance that I integrated with the Eclipse Help system.

Anyway, that's enough from me! I want to hear what you have to say about this so grab a copy of the freshly minted Workstation 6.0 beta3 that includes the Eclipse plugin I made and take it for a spin.

Update: a least one developer is pretty excited about this.

Tags:
Current Mood: [mood icon] hopeful
Current Music: Hey Jude - The Beatles
(12 comments | Leave a comment)

Jan. 18th, 2007

08:39 am - Applying theoretical CS knowledge on the job

Back at Waterloo when I was taking a course about the theory of computation, I wondered how relevant it would be to the sort of programming I'd be doing during the course of my career. That question was answered a few weeks ago when I actually wrote a state machine to solve a problem that involved dealing with a series of daisy-chained callbacks from the functions provided by the asynchronous library I'm using.

Yesterday I discovered a concurrency issue in my code. In order to execute bytecode on the guest OS after building it on the host OS, my Eclipse plugin shares the project folder with the guest before launching the app inside it. Now, in order to provide developers with maximal flexibility, the plugin allows them to debug multiple instances of an application on the same VM simultaneously. However, because the plugin cleans up after itself when the application terminates by removing any shared folders used by the application, it's entirely possible for one instance of an application to remove shared folders currently in use by another.

What I needed was a way to ensure that shared folders would only be removed when there were no applications left using them. The obvious approach was to use reference counters via a map of shared folders to counters. But I had to ensure that the value of this counter wouldn't be mangled by read-write overlaps from multiple launches. The desired behaviour sounded strikingly similar to what I'd learnt about semaphores in school, except I wanted to increment the count when using a folder and decrement it when I no longer required it. This is the reverse of the textbook use-case for semaphores, which were designed with resource contention in mind. Fortunately, it seems that Sun's implementation of semaphores actually handle my use-case just fine.

Tags: ,
Current Mood: [mood icon] excited
Current Music: Bullet the Blue Sky - U2
(Leave a comment)

Dec. 1st, 2006

06:45 am - Solaris 10

After a relatively painless experience upgrading my Ubuntu desktop from Dapper to Edgy, I was feeling a little adventurous. I've also been curious about the recent release of Solaris 10 so when I heard that we now have a feature-complete build of VMware Tools for Solaris, I decided to try installing it inside a VM. I copied the 3 gig DVD ISO of 64-bit Solaris 10 onto my local disk, created a new VM in Workstation and booted it off the DVD image.

The installer began by asking me the usual questions (language, timezone, network config, etc.) and then move onto package selection. This is where it became confusing. There are 3 distinct stages of package selection and considerable overlap amongst them! The 3rd stage gave me ample opportunity to mess around with the choices I'd made earlier. What a usability nightmare! It reminded me of using dselect back in 2000. With all the emphasis Sun put on making Gnome more usable a few years ago, you'd think some of that would have permeated to the Solaris installer team...

The other user-experience gaffe in the installation process was that, despite having asked me for the language, timezone and network settings at the onset, upon booting Solaris for the 1st time I was required to enter all this information a 2nd time (in a completely different UI). It's a lot to tolerate for the chance to play with Dtrace and ZFS.

Tags: ,
Current Mood: [mood icon] annoyed
Current Music: Shasta - Kobayashi
(21 comments | Leave a comment)

Nov. 22nd, 2006

07:52 am - Mates of State in concert, washed down by a random encounter with some customers

I went to the Mates of State concert in the city last night with a co-worker. We got to the venue an hour early and ended up with insanely good balcony seats looking directly onto the stage. One of their two opening acts had 14 people on stage, including a guy whose sole job was to engage in rock'n'roll theatrics! It was past 11 by the time the Mates of State took the stage and, sadly, we had to leave at a quarter to midnight to catch the last Caltrain home so we didn't get to hear their entire set. What we did hear, however, was great. While both opening acts made the classical amateur mistake of drowning out the vocals with their instruments (despite the 1st one having 6 people on mic), the Mates of State noticed this problem early in their set and corrected it.

On the train home I was explaining the 2nd law of thermodynamics to my co-worker and some random people sitting in front of us took that as a cue to begin a conversation with us. When I told them we were software engineers working on virtualization, they asked, "Virtualization? You mean, like VMware?" Upon informing them that we did, in fact, work at VMware, they actually thanked us for making Workstation. I took the opportunity to conduct some impromptu guerrilla market research by asking them about the specifics of their usage. It turned out that they might be a use-case for the feature on which I've been working: the ability to build an application in your IDE, have it automatically launch inside an arbitrary VM and then let you step through the code in your IDE's visual debugger without ever leaving the host system, all at the touch of a single button.

Tags: ,
Current Mood: [mood icon] cold
(Leave a comment)

Nov. 17th, 2006

07:42 am - UIUC info session

I was in Illinois for a couple of days this week to deliver a VMware info session at the University of Illinois at Urbana-Champaign. Going into it I had no idea that UIUC was the #4 CS school in the country so I was blown away by the number of people in attendance; far greater than at Waterloo or Stanford combined! They also asked so many good questions that we nearly overran our scheduled time.

Urbana-Champaign seemed like a pretty neat city. I spent a couple of hours at the local natural history museum on Wednesday morning, where I encountered a pair of tour-guides-in-training. One of them was French and seemed quite shocked that neither the other student nor the teacher had ever heard of Asterix and Obelix. They were equally surprised that I had.

On the flight home I inadvertently discovered that:
a) wireless electronic devices do work on aeroplanes during flight, although T-Mobile doesn't have much coverage over most of middle America;
b) the flight crew have no way of telling if you leave them on.

Tags: ,
Current Mood: [mood icon] surprised
Current Music: Vampire - Forest Fire - Arcade Fire
(10 comments | Leave a comment)

Nov. 1st, 2006

11:31 pm - Selectively displaying non-essential UI components

I randomly ended up in a lively discussion about UI design at work today. At stake was the optimum way of selectively displaying UI components that are not usually of interest to the user. The means we evaluated included disclosure triangles, modal dialogues, and tabs.

Although others may disagree, I dislike modal dialogues because they feel restrictive, clutter the screen with additional windows and often make it hard to view all the information at once. Disclosure triangles are usually a good idea but when you have so many of them that expanding them all would cause the content within the window to exceed the available vertical space and force the user to scroll then they can actually degrade the user experience. Tabs do prevent the user from being able to view all the relevant data at once but they avoid the other downsides of modal dialogues and can be easier to navigate than a bunch of expanders.

Decisions like this make me wish that semantic UI layouts were a realistic option. Then I could just specify that certain components were optionally visible and let the layout engine decide how to render them at runtime. As we say in computer science, any problem can be solved by adding another layer of abstraction.

Tags:
Current Mood: [mood icon] aggravated
Current Music: The Wanderer - U2
(3 comments | Leave a comment)

Oct. 28th, 2006

08:38 am - Mmmm... dogfood!

To eat one's own dogfood is an expression used to describe the process of using internally the products that are normally sold to customers. At VMware we periodically hold dogfood days for specific products or features before dispatching them to our external beta testers.

Yesterday we held one for the feature that I've been working on for the past year or so. We set up a dogfood lab with a few machines running either Ubuntu Linux 6.06 or Windows XP Pro configured for using the feature and had a batch of VMs available locally on each system for getting broad coverage of the guest platforms we suspect will be popular. Some people from around the various Palo Alto buildings came in and spent a few hours playing with the software while others followed our online instructions to test the feature out on their own desktops. They were each supposed to record a journal of their experiences and thoughts as they used the software and hand those to us at the end.

We got quite a bit of useful and enlightening feedback for improving the feature, some of which I'd been wondering about myself and some of which had escaped me entirely. We'll probably hold another dogfood day for all of Workstation 6.0 in the near future and include this feature as part of that once I've had a chance to address some of the issues that were raised this time.

Tags:
Current Mood: [mood icon] energetic
Current Music: So Gently We Go - I Mother Earth
(6 comments | Leave a comment)

Oct. 23rd, 2006

08:28 am - NT 4.0

In the interests of backward compatibility, I decided to see if my code would handle a Windows NT 4.0 guest OS. It did (after a minor modification) but what struck me was how refreshingly clean that OS was. While it wasn't bereft of some of the things I still find annoying about Windows, there was very little of the crap that seems to have been added in the years since: no automatic system updates forcing me to reboot every few days, no security centre nagging me about the lack of an antivirus, no Windows Messenger that won't go away, no crayola-inspired UI, no reminders that I need to clean up the infrequently-used icons on my desktop, no popups asking whether I really want to let some program I'd just launched access the network, no automatic hiding of my systray icons... It just worked :)

Tags:
Current Mood: [mood icon] nostalgic
Current Music: Raspberry - I Mother Earth
(5 comments | Leave a comment)

Aug. 2nd, 2006

09:57 pm - Engineering team-building day

Yesterday the R&D dept. at VMware had a team-building day where we played a Survivor-inspired game before lunch and various team sports after lunch. The company chartered 3 buses to take people from the office to park across the bay and some people car-pooled. When we got there they randomly assigned us into large groups by handing out coloured bracelets along with breakfast. I was in the purple group.

After we'd eaten they split each group up on their own "island". The purple group was lined up in a row using a bucket-sort by birth-month and then divided up into 8 teams of roughly equal size. Each team was handed a flag and some face paint with instructions to choose a team-name and paint a team logo on our faces. We ended up being the purple people eaters and our logo was a purple pac-man with blood dripping out of his mouth. It was indicative of VMware's quick growth rate that more than half of my team had started after me. Our flag had 4 rows of little humanoid figures on it and would be used to keep score for the team by circling figures so that the team with the fewest figures circled at the end would be declared the winners.

We began with an immunity challenge in which 4 members of each team had to throw javelins at a skull in a large chalk circle. Teams were to be awarded 1 point for a javelin that landed at least partially in the circle and an additional point for knocking the skull over. After watching the 1st few teams all throw their javelins too high into the air and have them fall short of the circle, we threw ours directly at the circle and aimed for its far side. Our strategy yielded 3 spears inside the circle and succeeded in knocking the skull over. As none of the other teams had even managed to get more than a single spear into the circle, we won the immunity necklace handily.

The first round of challenges where we could have figures circled was this maze game where we had to flip tiles on a grid to discover a path through it within a given time-span of a few minutes. Each team member took a turn flipping tiles until they hit one that wasn't part of the path through the maze while the rest of the team face away from the maze. Then they would have to return to the rest of the team and another person would take their place. We devised a strategy that involved using a co-ordinatee system to specify tiles and decided that each time a person returned (s)he would tell the team which tile had been last found to be wrong. We also decided upon the statistically optimal sequence of tiles to try. Sadly, this strategy proved to be overly complex and broke down horribly. People kept thinking they had to try the tile that was mentioned and so we ended up overturning the same tiles multiple times in a colossal waste of time. Consequently, we ended up with 4 circled figures.

Although we failed to win the next immunity necklace, we were able to escape unscathed from the subsequent challenge. This one involved putting plastic fish into a bucket. The fish had hooks on them and were scattered around a disc-shaped mat. Across the mat lay a pair of ropes that criss-crossed each other with their ends sticking out on 4 equally spaced points along the circumference. Both ropes had been run through a metal loop that was positioned at their intersection and this loop was to be used for picking up the fish. We needed to get 10 fish into the bucket within 7 minutes to avoid getting any more figures circled. After we managed to pick the disc clean, getting 16 fish in 4 minutes, they made us stop. That revived our team spirits for the next few rounds.

The next immunity challenge involved predicting what our teammates would answer to given questions about VMware and each other. Each team was split into halves and handed a set of cards with questions on them. We had to answer the questions and if the answers for both halves of a team matched then they scored a point. One of the questions asked us to name the employee from whom a a quote was featured on the "about us" web page. Nearly every team guessed that it was Diane, the CEO; it's actually her husband Mendel, the chief scientist. We didn't win this necklace either but once again kept our noses clean on the challenge that followed.

This one was called "the acid river" and required each team to get across an imaginary river using blocks of wood and a pair of planks. We started out on one bank with 3 blocks and both planks while there was a 4th plank available on the far bank. Despite not really having a strategy, we ended up with what I think is the best solution: each plank held up by a pair of blocks at either end covering part of the distance and gaps at both ends plus between the planks. While it took us a while to get that setup, once it was ready we were all able to walk across quite easily. Some of the other teams ended up dropping planks into the ricer, thereby rendering them unusable, and having to make extremely difficult leaps between blocks that cost them several circled figures.

Although we didn't win the game, we came pretty close and it was a lot of fun. After a short reprieve for lunch, the organizers listed out various team sporting activities in which we could participate. It was pretty hot so I decided to go kayaking. Sadly, this hadn't been planned too well and the lake was closed so I opted to play whiffle-balll instead. The rules are very similar to softball but there are no strikes so batters just keep swinging until they make contact with the ball. During one of my at-bats, I was charging towards 1st base after a hit when the 1st baseman stepped backward into my base-line as I approached the base. Unable to stop in time, I crashed into him very hard, bounced of his ample paunch and ended up sprawled in the grass. A quick self-diagnostic indicated that I had not sustained any critical damage but I had to bend my glasses back into shape and my left quad still hurts.

When the whiffle-balll game wrapped up I decided to play bocce-ball next. It was a 2-on-2 game and one of the opposing players was ridiculously good, although he claimed to have never played before. Apparently he wasn't even sure what the game was called! That didn't stop him from wiping the floor with us repeatedly though. I wonder if he'll start playing more often now...

Update: the skin on my nose is peeling, indicating that I may have been sunburnt, although it doesn't hurt at all!

Tags:
Current Mood: [mood icon] exhausted
Current Music: No Cars Go - Arcade Fire
(2 comments | Leave a comment)

Jul. 26th, 2006

09:29 pm - Baseball and new flat-panel displays

On Monday night I went with a few friends from Hammarskjold to see the Oakland A's play the Boston Red Sox. Although baseball games are generally a lot cheaper than hockey, they really stick it to you with the parking fee and horribly overpriced food. The sun was in my face for the 1st couple of innings, which sucked, but after that the game was pretty good. The Sox established an early lead and, although the A's made a valiant effort to catch up - at one point they were in tying position with the bases loaded - but they never quite managed to pull it off.

Yesterday VMware gave all the engineers 2nd flat-panel displays. It took me an unduly long time to get both my monitors working with my dual-headed NVidia Quadro graphics card, mostly because of a couple of subtle Ubuntu packaging issues. The worst of these was that the package for the binary-only kernel module hadn't been updated to match the kernel itself. I eventually worked around the problem by booting off the kernel from an older package.

Tags: ,
Current Mood: [mood icon] calm
Current Music: Mary Jo - Belle and Sebastian
(2 comments | Leave a comment)

Jul. 19th, 2006

08:03 am - Moving from design to implementation

Yesterday we ratified the design for the upcoming release of Workstation and were given our assignments for the implementation phase. Unsurprisingly I am implementing the feature that I designed. But I also get to do a couple of other ones, one of which I prototyped. I'm excited :-)

Last night I saw a minivan run a red light while pedestrians were crossing the road. We need more of those red light cameras.

Tags: ,
Current Mood: [mood icon] aggravated
Current Music: Look What I Found - Big Wreck
(4 comments | Leave a comment)

Navigate: (Previous 20 Entries)