So mag, being the monkey
man that he is, bought a projector. It's only 800x600, but
it's nice and bright and is pretty damn decent for playing
Smash Brothers or Star Fox 64, not to mention watching
movies. Last night we watched Kill Bill, and the other day pphaneuf expressed
his undying love for me on it.

Weekend

We're going to the Computer
History Museum today. Should be interesting. drheld has also
convinced me to see Sideways tonight, which is
supposed to be good. Then there's talk of cheesecake. Mmm, cheesecake.
The thing is there's this cheesecake place around here that also serves
normal meals, but their meals are so big that if you go for a meal you
won't be able to have cheesecake. So it looks like dinner today will
be a very healthy piece of cheesecake. Meh, whatever, I eat enough
healthy food at Google during the
week.

It broke again. So I'm going to send it in and get it replaced, and
hopefully the new one won't exhibit the same problem. But apparently
it's pretty common with these things, so if you're looking for a
portable player that plays Oggs,
I can't recommend it.

So, after a fair bit of tweaking, I have the Debian on my laptop setup decently,
with Ion as my
window manager. Ion just makes more sense on a laptop, where your mouse
probably sucks and your resources are probably more limited (and they
certainly are on my laptop :) Although to get certain settings, I have
to run gnome-settings-daemon from my .xinitrc, which doesn't
seem to be mucking too much stuff up yet, but apparently it horribly
screwed some stuff up for mag
and drheld,
so I guess we'll see. They had some weird Xresources problem
I think.

Life

I haven't blogged too much about the goings on down here. Mostly
because my laptop was semi-functional and I was too lazy to actually
nab pictures off my camera. But we've been having a lot of fun. Last
weekend we walked around Stanford.

This weekend we went with our landlord, a very strange but well-meaning
guy, for a drive around the coast and a bit of a hike. It was nice,
and it was good to get out of Palo Alto for a bit. And I hadn't seen
the Pacific in over a year, so that was fun.

I can make Gaim almost usable if I minimise my buddy list and chat
window, put them on all desktops (in GNOME), use audio notifications
(notification icon would be much nicer though) and turn off window
raise. Window raise pisses me the hell off, because I'll be typing
in Vim or something, and a freaking
window will pop up and steal focus. So I'll end up telling
my friend something like "foo.bar();" Not to mention it completely
disrupted my train of thought, etc.

So fine, I set everything up that way. What's the problem? As soon
as a new buddy (i.e. one for which there is no tab in my message window)
messages me or I double-click a new buddy to add a tab to my message
window, the window becomes "un-sticky" again. Meaning I have to
re-stick it, or I'll lose it among all my desktops.

If they just made it so the message window didn't steal focus when
it popped up, I could stand to use the pop-up mode. But my ideal way
to use it would be to have a notification icon, no sounds, no popups,
and no stupidly becoming "un-sticky". Ah well, maybe someday...

So I recently installed Debian
on my laptop, because Ubuntu
just wasn't doing it for me (long story). I found a deb source with a
PPC mplayer and installed it. Great. So I fire it up and try to watch
something, but it's insanely slow and the audio is out of sync and
it isn't full screen (well it is, but it's not scaled, so there's a
tiny video in the middle of the screen).

After reading the man page for a while, it turns out that the
magic incantation to make things not suck is mplayer -cache
8192 -vo xv -zoom <filename>. Oh, of course. That's so
obvious. If that's what makes it not suck, why the fork isn't that
the default!? Sigh. I mean it's not hard to detect that I have XV
and use it, and it's obviously not hard to detect that I need cache
because if I don't use it, it prints a message telling me to.
Clue for the clueless: if you're going to print a message telling
the user to turn on an option, just turn the bloody thing on already!

Totem did work out of the box, of course, but turned out to be not
quite fast enough to play things smoothly. It usually is my preferred
video player though, for precisely the above reason.

That was this week's cynical software rant. Be sure to join us next
time :)

My cube-mate apparently wore hers home the day we got them. Mine's still
at the office :)

Flex Hours

So I guess flex hours were partially rescinded at Niti, based on PlaNit. Wow. Times change, eh? I was
definitely one of the "baddies" when I was there, typically showing up
between noon and 1. But I often worked until 2am, and I liked it that
way, and it made me happy to sleep until 11:30.

I'm so insanely stupid that it took me a billion years to get anything
done at Niti.

In fact, neither of these is true (well, there's evidence that I'm
insanely stupid, but it didn't take me a billion years to do stuff at Niti). It's just that I found that during
the day at Niti, I wasn't all that
productive. I talked to people, helped people with their problems, they
helped with mine, I made espresso, played foosball, etc. At night, when
nobody was around, I could just blast through the bugs (and espresso)
like nobody's business. I guess the same effect could have been acheived
by showing up insanely early, but I just can't think very well before 11
or so. I tried going to bed early and getting up early in Waterloo for a
while, and it just didn't work for me...

At Google there are flex hours too,
although almost everybody is in by 11 so you feel a bit odd showing up
much later. The funny thing is people were still there tonight when I left
at 12:30. Typical silicon valley hardcore-ness I guess. I've taken to
showering there (which makes sense, since I cycle in) thus avoiding the
4 to 1 person to shower bottleneck at our home in the morning, giving me
a few more minutes of sweet, sweet unconsciousness :)

Proprietary software

So the last few days I've been dealing with a binary-only shared library
provided by a certain software vendor. All I have is the header, a PDF
doc, and a .so. But this particular software vendor is particularly
evil, in that their header file blatantly lies. It lies by
telling you some functions want a foo * instead of a foo
**, and your stuff is segfaulting all over the place until you
objdump the .so to look at the asm and realise it's
dereferencing twice. (I became very intimately familiar with
objdump during my training; it's a
life saver).

And then there's the PDF API docs, which also blatantly lie, by telling
you stuff like "If you pass in a foo ** here, we'll point it to
something valid with some stuff in it." No you won't, you liars, you'll
just leave it as NULL. I mean the least you can do if you're going to
release a binary-only .so is have some decent docs and accurate headers.

Fortunately, I've managed to work around most of this crud and should be
ready for my first code review tomorrow. My first checkin will involve
no less than 5 languages. Fun stuff.

I gotta say, it's pretty damn sweet. The thing that bothers me the most
is probably how confidentiality-happy they are. drheld mentioned
that in a previous post, and I feel similarly. People ask me what I'm
working on, what I'm doing, etc. and I have to be careful not to be
too specific, which I'm totally not used to.

But I'm definitely enjoying the work I'm doing. This week I've been
doing a lot of hacking in Ruby, which I didn't really expect at all.
But so far I've been enjoying it; I like how you can define mutator
members to essentially override '=', and its syntax is terse while
still being relatively clean.

One of the things that's been hard to get used to is the scale of it
all. Google is bigger than any other company I've worked for, by orders
of magnitude. And it's apparent everywhere; many things are more
bureaucratic, and there's a kind of "lushness" to it all, from the food
to the on-site gym to the massages and car washes, it all just seems
a bit surreal at the moment.

Life

I've borrowed a pretty sweet road bike for while I'm here, and I've used
it to cycle to work a few times. I even have the clip-in shoes (alright
I'll admit it; I did fall once the first time I used them :) I've never
had a road bike and it's pretty cool. You sure can go pretty damn fast; I
was doing 60 the other day for a while. The downside, of course, is that
you really can only use the thing on roads. Gravel of any kind is a
serious no-no, so I can't go explore any bike trails near here unless I
borrow somebody else's bike.

Got a bank account the other day, without a social security number! Take
that, homeland security! That brings the number of countries in which I
have accounts to 5.. I should really close some of the ones I don't use
sometime. It has a whopping $20 USD in it right now, but at least I can
in theory get paid. I'm thinking Monday will be "get social security
number day" (or rather, "apply for SSN day"), a process that is
apparently not much fun.

Rio Karma

So, I had the damn thing for about a week, and then the other day the
disk went and died on me. So now I have to go and try to get it fixed or
replaced, and I'm obviously wondering whether it was a good decision in
the first place.. sigh. I didn't want to go iPod because of the whole
Ogg thing, but at least iPods work. I guess I'll get it fixed and see
how it goes, but I don't think I can really recommend it any more...

Update: So I Googled around a bit tonight
about the problem I was having with my Karma. Apparently some people had
managed to make previously-busted Karmas work again by smacking them
against blunt objects. I figured I didn't really have anything to lose,
so I tried it, and it worked. My Karma now starts up again and appears
to be working normally. The only thing is.. maybe I should have left it
broken so I could have gotten it replaced. Now I feel like I have to
break it again to be able to send it in.

But if smacking it against stuff fixes it.. how the block do I break it??

So, today was my first day at Google. Man.. that place is
schweet. The food is amazing, with tons of veggie and vegan
stuff. There are professional Italian espresso/cappucino machines on
every floor of every building. And of course the typical high-tech fare:
pool tables, foos tables, ping pong tables, etc. They even have two of
those "swim forever" pools, where you keep swimming against a current.

The work I'll be doing also seems pretty damn interesting. It's a new
product Google's doing, and it's related to some stuff I did at Niti, and that's probably all I can say :)
But it's cool. These guys can do some amazing things with JavaScript...

Driving

mtsai: Why didn't
you go to the Québec driver's license people while you were there
and exchange your G2 license for a full Québec license? Then you
could have come back to Ontraio and exchanged your full Québec
license for a G license! I haven't done that but several people I know
have, and it does apparently work...

Well, I did eventually make it to California, after spending a night at
the overly expensive airport hotel in Vancouver (an expense for which I
was not compensated by Air
Canada). After that delay, I didn't have any more problems; I and my
bags got here just fine. Both mag
and drheld weren't
as lucky with their bags, however.

So far, Palo Alto seems pretty nice. It's vaguely Vancouver-like, except
a bit warmer for this time of year, and super rich (think Kitselano on
steroids). Haven't done too much exciting since getting here; today we
went out and bought some stuff, and got all our various stuff (wireless
router and internet phone) set up.

It just completely hard locked on me while I was writing this post a few
minutes ago, in OS X. I don't think I've ever had OS X do that to me. I
do have Ubuntu on this thing, and
over Christmas I did make some headway on making it suck less; just
using the powersave governor for CPU frequency seems to be
better than cpufreqd; it keeps the clock low until you run
something CPU-intesive, which is more or less what you want, except
maybe if you're getting really low on battery. But it's a start, since
all I could ever make cpufreqd do is either run at max all the
time or at min all the time, both of which are clearly undesirable. (Out
of the box that's all it would do, and I did fiddle with its
configuration files for a while before giving up on it, to no effect.)

I still need to get Linux to turn the fan on at a lower temperature
though, because for some reason it lets the machine totally bake before
firing it up, and I still need to take an axe to Ubuntu's stupid cron
jobs and stupid syslog daemon that doesn't do write caching so every
time you sudo the disk has to fire up to write to syslog.

And people ask me why I don't think Ubuntu is the greatest thing since
sliced bread. With this much tinkering necessary, you might as well just
use Debian with the new installer...

Liquor

People sometimes don't believe me when I say that we buy liquor at the
Liquor Barn in Alberta. Well, I offer proof, although it isn't really
much of a barn:

Liquor sale is privatised in Alberta, meaning anybody can get the
requisite license and open up a liquor store. I personally think it's
much better than Ontario, where you have to go to the stupid LCBO or Beer Store, both of which have
annoying hours and are often inconveniently located. There was a Beer
Store near where I lived in downtown Toronto that closed at 8! 8
o'clock.. in the centre of Canada's biggest city! I couldn't even buy
beer on my way home from work!

In Alberta, you can buy your liquor 24 hours a day, 7 days a week. And
despite rumours to the contrary, it's a reasonably civilised place; you
can bring your own wine to many restaurants too.

Of course, Québec trumps them all with booze in the grocery
stores and deps, although it's still not 24 hours a day...

And speaking of Québec, it appears I won't need to be subjected
to awful American beer this term, as the local organic food store carries
several Unibroue beers, as well as
a bunch of other imported stuff. Phew.

So today was the big day I was going to go to California. It was
going so well. I caught my flight from Calgary, and it was only
20 minutes late in Vancouver. I got through US immigration with no
problems. I got my bags and trundled them through US customs. And
then.. my flight was cancelled, along with every other flight to San
Francisco leaving today.

Stupid Vancouverites and their being unable to handle a few cm of
snow. You'd never have this many cancelled flights at Calgary or
Montréal due to a measely 4cm of snow. Wimps. At least this
airport has (expensive) wireless...

Had my last exam, trains,
last Wednesday. I brought all my luggage to the exam, since I had to catch
the 5:00 Greyhound out of Waterloo to catch an airport shuttle in
Toronto at 7:30 to catch my flight at 9:00. After that it was serveral
mad days of shopping and cooking, all culminating Christmas day in a feast
for our family.

It was fun, but extremely tiring. Hopefully the rest of my time here in
Calgary will be a bit more relaxing.

My parents gave me a Rio
Karma 20GB mp3 player. Unfortunately, it hasn't arrived yet so I
haven't had a chance to play with it, but I'm looking forward to it.
Plays ogg, flac, mp3, wma and has an ethernet HTTP interface (in
addition to USB 2.0) to alleviate all your cross-platform woes :)

But possibly the coolest gift Santa brought this Christmas was the
Gender Bender robot for my friend thapthim.

Tuesday I went skiing with amps and my grampa, and
it was a lot of fun. In addition it was a beautiful day and the mountains
were gorgeous. I'd forgotten what crisp, winter mountain air
was like, not having been skiing in several years.

My sysadmin duties for my family have begun. Spent last night doing an
unconventional install of Ubuntu on
my sister's laptop. Her cd-rom drive wasn't playing nicely so I had to
use install floppies (blech) for Sarge and a statically-compiled
debootstrap to get it going.

Today I updated my parents to Fedora Core 3, which went pretty smoothly,
and before I leave I need to set up an APC UPS on the little
router/DNS/SMTP server, which should be easy except it's running a 2.2
kernel, so some hackery may be required.

My parents do in fact run Linux, but that's not as amazing as it might
sound, since my dad is a CS prof at the University of Calgary and he's a UNIX
greybeard, so he knows what he's doing. Still, they have surprisingly
few problems with Fedora these days, which is a good sign.