I used to think souvenirs were the lamest things ever. The little keychains or the magnets always seemed so tacky to me. Back when I formulated that opinion, I thought shot glasses were just small clear mugs. That didn’t make sense to me either. It probably wasn’t until I found out what shot glasses were, that I began to actually like souvenirs, and by then, I was too late to the game. Other people had already claimed their “thing” to collect at every place and now I feared I would just be copying everyone else.

I started doing enough traveling that I actually wanted to get souvenirs and so I had to decide on something. And for one reason or another, I decided it’d be bobbleheads. The problem is that bobbleheads aren’t all that common of a souvenir. They also tend to be pricier, and a bit fragile. It’s quite a burden to tell someone, “Oh, you’re going to the Great Wall? Can you pick me up a bobblehead?”

So, now I’m stuck with bobbleheads, though my collection only consists of 2: one from Rome and one from Disneyland.

Blogging again?

I’m going to try starting up blogging again. We’ll see how that goes. Here’s some ramblings to start off the blogging habbit:

  • Although I’ve been really happy with movable type, I think I’m going to move to my own home-brewed blogging system. It’s still WIP but I figured I might as well just go with it and patch it whenever I feel it breaking.

  • I signed up for cooking classes starting in mid March! I’m really excited for it. I’m not much of a cook, but the idea of being able to feed myself better makes me happy. Even though I never really set aside too many New Year’s resolutions, cooking at home more would probably be one of them.

  • Speaking of New Year’s resolutions, one of them I made was to make it into the city at least once a month. I should have you know that I’m way ahead! In fact after tomorrow, I’ll have gone to the city at least 3 times! And that doesn’t count going to SFO or driving through it. Go me!

That’s all.


At work today, iq showed his demoscene work which was really cool. Demoscene is a sort of computer graphics hobby where programmers try to fit the coolest demo in a certain amount of space. His demo was 4k, which he says is about the same as an icon on the desktop. He went on to explain that if you were to render all these frames at full resolution and store them as .tiffs, it’d take a couple gigabytes. His program was giving him on the order of a million to one compression ratios.

I was a little familiar with how most of these worked already but it was really neat to have him actually walk through it all. What I found most interesting was how much you have to understand in order to compress something. You can’t compress something into some mathematical function until you know what basis functions to use. You can’t make good approximations unless you understand what the simplifying assumptions were. iq learned all sorts of neat tricks for rendering that let him get atmospheric effects and terrain generation using some really hacky approaches. For example, the waves in his demo look awful statically, but when seen during a fly through with motion blur, they looked fine. I’m looking forward to see what these guys do once they start using hull shaders and geometry shaders more.

Working Set

I’ve got a small memory footprint. Every year, I’ve had to pack my things up to move out of my student housing, only to find boxes of things that I never unpacked. I also find drawers filled with books and miscellaneous gadgets that I unpacked and tucked away neatly. Of course, they are still tucked away neatly. Usually, they are completely free of dust too, meaning those drawers were rarely opened.

The number of things I actually use remain in a small pile on the floor: papers I’ve had to read for classes, important things floating around my desk. My laptop. Oh, and my clothes.

Maybe I should get rid of all this stuff.

Context Switch

I have one last project to finish before I’m all done with school. I think I’ve been in more than enough effort to make the grade that I need to get, but for some reason, I always try to not embarrass myself too much with these final projects. I’ve been churning away for the past few days. Despite being done with finals, I spent the majority of my time in Gates. Not sure what about Gates makes me so productive. There’s a nice 30 inch monitor and those aluminum Apple keyboards. I think it’s mostly displacing from my room though.

I lost a whole day of work trying to hunt down a bug. I knew the bug wasn’t really going to ruin my results but it was really annoying to not have code that just worked. Late last night, I decided to give up on the bug and just start the writeup. I could easily tailor my results so that I only used scenes where my code didn’t screw up.

Anyhow, while doing the writeup, I found the bug! I think I learned a good lesson today. When you’re stuck coding, start documenting. Trying to explain things in English rather than code sometimes has its benefits.

Growing up

I’m on the verge of graduating. In fact, I took my last final which I’m 100% sure I did well enough on the pass that last class I needed. Go me. I will soon be a master of science! Fancy that!

I feel like I spent five years in school learning, but not really growing up. There are a lot of things in the near future that I need to take care of that are probably simple for typical adults. As expected, I still find these things as small challenges to conquer:

  • Go on vacation, which requires a non-trivial amount of planning, despite the fact that it is a partly guided tour of Europe.
  • Buy a camera, which I just did tonight! (Panasonic DMC-LX3)
  • Find and rent an apartment.
  • Start working full-time.
  • Buy a car.

After finishing these, maybe I’ll finally be, as my office-mate Solomon puts it, “livin’ the life”.

Homerun Pie

When I was younger, I used to love eating Homerun Pie. They don’t seem to make it, but most supermarkets tend to have some fruit pie that’s similar. One time, I got the cheap, supermarket brand (that non-Hostess one) and it was really not good. Paying the extra 10 cents is totally worth it. It’s weird that I can still enjoy eating this. I’ve probably had one each year for the past 5 years, and before that, I probably haven’t had any for 10 years. What great memories. Only thing that comes close is probably McDonald’s chicken nuggets.


Whenever I feel like I need to buckle down and get work done, I make a checklist. Here is my list for tonight:

  • Re-write script for paper (this is for research)
  • Read NaCl paper (this is for class)
  • Watch Chuck (this is for fun)
  • Start reviewing for cs240 (this is for class)

Sadly, I’ve only checked off one. You can guess which.


I haven’t blogged for about two months now. I haven’t been particularly busy, just haven’t had too many interesting things that I felt like I could share. I guess a lot has actually happened this quarter.

I’m finishing my masters degree in about a month. This whole year, I needed to finish just 3 classes, but they were unfortunately only available in the fall, winter, and spring. I should be grateful though, since it gave me the opportunity to stick around for other fun classes and research. Oddly enough, I tend to spend the most time in classes (and research) that will not contribute to my degree. Some highlights from the past quarters:

  • Painted Aperture: This was my final project for a class on Computational Photography. The idea of the project was to combine multiple pictures (or a video stream) to create a single image with faked depth-of-field. I worked on a Nokia N9000 which was kind of cool. Not super proud of the results, but I didn’t think it was bad for the amount of time I put in.
  • tz-pyramid occlusion culling: My second publication with Pat Hanrahan’s research group. I worked with Solomon Boulos on this project and we looked into extending occlusion culling for scenes with motion blur. It was mostly an algorithmic study so we did a lot of counting rather than making measurements. I also got my hands in some of the other projects within Pat’s group which resulted in two acknowledgements. Go me!

I’m finishing a project this quarter doing some more graphics stuff. It’s actually a lot of fun working on projects where I don’t worry about the final grade. I suppose that’s what the rest of my life will be :). Sorry for the super-techy update. I will try to resume my more regular posting schedule.


I haven’t posted in a while. It’s not that I’ve been busy or anything. I’m in the waning years of my education and thankfully, I pushed myself enough during my first four years that I only need to scrape by now. It’s one of those things where you stop for a little while and it’s just hard to get the little engine churning again. I resigned from the idea of blogging regularly, but I still have an itch now and then. Very often, I think of something whacky to write about but I’m afraid to blog because people I talk to in real life would have already heard the story. And trust me, there is no worse way to ruin a joke than to repeat it to someone.

But, I remembered that I have two or three readers that I don’t actually interact with and they are missing out on my amazing adventures. This is mostly their fault for not finding a way to tune into my life. Still, it’s not fair for them to continue on without this basic joy in life. I guess all along, that has been the primary purpose of this blog. Life and happiness.

This quarter, I’ve been working on stripping down my development environment. Part of this is due to the split time of developing on my Macbook Pro and my desktop. I like having a farily uniform environment in both and so I’ve been trying to stick to the standard subset of Unix that they both share. It’s neat how productive you can be with these set of tools that have more or less been around forever. All sorts of programs try to convince you that they make you productive in one way or another, but in the end, I’ve found that I work quite efficiently with just bash and vim.

Another thing that has led to my productivity is the use of the variable which. I used to spend time thinking about a variable name to use when I’m selected an index into an array. index just felt wrong, and boy, is it wrong!