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.

No fucking water.. AGAIN. Notice that no water means no coffee, which
is an extremely bad thing! We're currently boiling snow water in
pots on the stove, at which point we'll run it through a Brita and
I can hopefully get my fix.

It sucks. I can't believe I do it every term. I spent the better part of
this week packing my stuff, cramming it into my sister's Tercel, and
dropping it off at a storage locker. I think the most impressive was when
I got my entire bed, frame and futon, into the car, along with several
boxes and a bike. I never knew Tercels could do that :)

I managed to sucker one of my friends into keeping both my computer and
our file server at his place. Once he saw the music collection, it
wasn't hard to convince him :) So I should be able to get at all of it while
I'm down south, and my web page
should still work. Anybody know any good streaming music servers? I think
I used icecast when I was in England, is it still the best way to go?

School

My next exam is tomorrow. It's physics, and should be easy. I'll have to
study a bit, but not much.

I'm currently procrastinating writing a paper for my music course. The
prof extended the deadline so we could just hand it in at the exam
(which, for that course, is on Monday). The extended deadline is, as
always, a mixed blessing. I'm sure glad I didn't have to write the
stupid thing while finishing up my real-time project, though.

Montréal

Had a great time seeing a bunch of you NITIots last weekend. It was good to catch
up with you and rest a bit.

I intended to get in on the hackfest with wlach, but with
moving and packing and everything, didn't quite manage it. Anyway, it's
my intention to do some work on WvMAPI in my free time over the next
term, for my "NDF" at Google. I'd like to do all the async stuff I
talked about in my work report, add in the attAttachment stuff,
and write some EPlugins for Evolution.

Some might say I'm insane, but I really want the satisfaction of cleaning
it up, and I've gotten a number of winmail.dat attachments lately, so
that's sort of prodded me along.

Watch out, NITIots! mrwise and I
are coming to Montréal this weekend to grace you with our
magnificent presence. e-mail
me if you want to go out for beers or foos or something.

More poking and prodding by medical experts, including an annoying
test next week where I can't eat anything for a day. On the plus side,
the specialist gave me a prescription for B12, so I can stop feeling
shitty while they do all this stuff :)

And I'm so gonna look for a bank account that gives me a free
gun when I'm in the states!

hub: you may
want to dig around in Niti's
CVS a bit. I remember writing a patch to CUPS that made
it start up considerably faster, for an old version of ExpressionDesktop.
I don't remember what happened to it, but my guess is "nothing." :)
I'm not sure if it would still be relevant, but it's probably worth
a look.