Compression

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.

Checklist

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.

Away

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.

Which

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!

Good Use

I think my biggest gripe about my education has been how quickly I lose it all. Every now and then, I like to read research papers for fun and I’m always disappointed at how quickly I fall out of the know. Our school system makes you optimize for reading in lots of data, but never really storing it for longer than a 3 hours final.

For example, I’ve been trying to figure out the big differences between irradiance caching and photon mapping. I know what they do differently, but I have sort of forgot why one might do better in one situation and not the other. This may trace back to my discomfort with fundamental concepts of radiometry. Something I understood at one point, but have since lost touch with.

I’m not sure how long it takes me to forget something. But, I was proud today because I did not completely forget what I learned last quarter. I took a class on Fourier analysis and thankfully, some of it has stuck! I guess if anything sticks, it might as well be mathematics that has its fingers in both the theoretical side and the applied side.

What worries me is when I go off into the real world, away from academia, how will I ever keep stuff in my head? And how will I ever learn new things? Maybe you don’t need to when you’re out there. Maybe.

Do you remember the last time Facebook sucked? Facebook tends to suck every now and then, with the spikes coming whenever they change something. Well, anything really.

I got invited to the Facebook launch party tonight. It all started with an email from Blake Ross which you don’t really get every day. We got a tour of the campus and they dropped us off at the cafeteria for food, drinks, and talking to buddies. There were strange moments where you would look out the cafeteria doors and see the fluorescent office lights or look at your watch and realize it was still before 8pm. But overall, it was really fun. I wouldn’t have expected anything less from Facebook.

So, the idea of the night was still a launch party. They had monitors with a countdown that eventually hit 0. Mark Zuckerberg had a little spiel about the origins of Facebook, launching products, and so on. Random side note, he is not that tall, but he has about 40000 messages in his inbox and over 400 friend requests. He went on to introduce 6 new products. Let’s see if I remember them:

  1. HipHop for php
  2. New photo uploader
  3. New homepage
  4. Application dashboard
  5. Games dashboard
  6. New search functionality

It’s awesome how self-aware Facebook is. During their first big launch, when news feeds first came out, they did not expect the negative feedback that they received. It seems that by now, it’s something they completely expect and welcome. To this point, they set up live feeds of news containing the string “new facebook”. Right when all the products were pushed live, they projected these feeds on the walls and TV screens.

“Fuck the new facebook. I’m so confused. @#!@#%& giggity”.

It’s amazing how much people hate change. I mean really, how confusing can it really be? Have you ever walked to class only to find that the sidewalk your on is closed because they are repaving it? Sure things move around a bit and I’m sure the first time you get ready to click on a button you thought was top-left only to find it top-right it’s jarring, but is that something you’d really say confuses you?

Or maybe it’s confusion about why to even change the homepage. A lot of the results that showed up were along the lines of “why fix what isn’t broken?” I’m sure they said that last time Facebook changed, only to eventually accept that it actually is better now. Sure it may not be broken, but that’s no reason to stop trying to make things better. Much like life.

Also, who says “giggity” when they’re confused?

“I hate the new facebook. stop changing my life”

Like I said in my last post, Facebook still comes out winning. First of all, tons of companies would kill for any sort of feedback from their users. They would kill for their users to respond within 15 seconds of them pushing a change. What’s better though, is that all these pissed off people want to tell all their friends. Here’s how:

  1. Change your status on Facebook.
  2. Facebook News Feed picks it up and delivers this to your friends’ homepages.
  3. Your friend notices the Facebook homepage has changed. He decides it also sucks and decides to go to step 1.

It’s great for Facebook that all of this occurs without anyone leaving the site. Sure, there’s lonely people out there that have ditched Facebook altogether because they changed their homepage again. I’m sure they are living less confusing lives now because of it. Maybe this time around, people will realize that complaining about the new Facebook homepage is actually more annoying than the new Facebook homepage.

It totally sounds like I work at Facebook.

Recent Comments

Close