Happy Birthday Facebook

Peter Lynch said that one of the ways he found new investments was to look at what his daughter wanted to buy. Upon the 5th anniversary of Facebook, and after watching TechCrunch's recent interview of Facebook's COO at Davos, it hit me. I looked at how people younger than me were using Facebook. Facebook is going in for the kill on a number of internet properties:

  • Flickr - Almost all pictures I look at are now via Facebook photo albums. I don't know anyone who uses Flickr anymore unless they want to share pictures with everyone on the internet. Facebook could also just replace this functionality with public pictures.
  • YouTube - While YouTube will always win the lolcatz video, personal videos that you actually care about are slowly only being uploaded on Facebook. I know tons of people who only upload on Facebook and not on YouTube.
  • AIM - Facebook chat. While I personally use AIM, almost every person I've talked to who is ~20 years old doesn't have AIM or use it often. They mostly chat either through gchat or Facebook chat. I think that is where IM is evolving.
  • Myspace - something magical happens when you turn 18 where you jump ship from MySpace to Facebook.
Many services we used to use as separate entities are converging on Facebook. Facebook has had excellent user adoption and everyone I know in real life has a Facebook account. I recently overheard a campus tour at UCI state that "49/50 new students in the dorm had a Facebook account. The one student who didn't have a Facebook account also didn't have a cell phone".

Of course these trends will take more time to become reality, and the Internet has this tendency of revolutionizing itself within 3 years, so anything could happen. However, Facebook has had remarkable growth, is spreading all over the Internet, and doesn't seem to be slowing down at all. So upon your 5th year, happy birthday Facebook and congratulations Mark Zuckerberg. Let's just hope you find a revenue stream :).

Observations of a Paper Reviewer

I just had the chance to be a reviewer for a compiler conference. Instead of writing a paper and praying, I had to actually figure out what makes a good paper. Who knew I was qualified! While I've only written one, it seems to me that difference isn't necessarily about the idea presented in the paper. Instead, it's all about marketing. Here are a few observations and hints I've had that may help you go from a good to great paper.


Start early! Like really early. Two weeks isn't enough. Neither is three. I think you need at least a month if you are writing mostly solo. Maybe three weeks is enough is you have lots of experienced people writing together, but even that hasn't seemed to work. The problem with lots of authors is that everyone has a different voice and the paper no longer has a cohesive feel. Why do you need that much time? The time isn't necessarily YOU writing and proofreading. The time lag comes from the other people proofreading.

Proofread, proofread, and when you think you're done, proofread again! The feedback loop after the initial draft is MUCH slower. It takes one to two days for someone to read a paper. This means in between you're waiting. You as the author can't do anything, but time is still ticking and the deadline inches closer and closer.

Slowly add more proofreaders to the mix. A person can only read a paper for the first time once. Your reviewers are only going to read your paper once. Make sure people understand everything the first time. How does this work? Ask someone to proofread your initial draft, get their feedback, fix what they didn't understand. If someone doesn't understand something, it's your fault. Period. Once you have the second draft, send it to another new person who hasn't read your paper yet. Rinse repeat. How do you know when to stop? Well if the deadline hasn't stopped you, when two people who have yet to read your paper reach the "I get it" thought without any major issues, I think its good to go.

Stop using redundant language! Things like, "In other words" really serve no purpose. Why do you need "in other words"? It means your initial explanation wasn't good enough so go fix your initial explanation. Other dangerous words: "basically" and "in conclusion".

Don't try to impress with crazy language. Unclear language tells me you don't really know what you're talking about or are trying to hide something. If your paper is informative, it will impress. Clarity is informative.

Slowly explain your research with examples. Remember back in college when you were given examples, and teachers slowly built upon the same example? DO THAT!! Take the approach of a teacher - assume your audience has limited knowledge. An example is much easier to understand than an abstract concept. 

Give me your background information. I should be able to understand most aspects of your paper without reading other papers. Don't ever do something like: "We use the model proposed in [10]". I don't want to read another reference to understand your work. Instead give me a brief overview of what this model is. 

Have a checklist in the intro that clearly states what you are contributing. This way I can see if I'm interested enough to keep going.

Finally, how awesome are your pictures? Sure computer scientists aren't the best artists which is perfectly fine. However, if I look at your picture, can I easily understand it? Does it have too much going on? A picture should only explain one concept. Remember, marketing is a big part of your paper and pictures do a lot of the heavy lifting.

On that note, here are a few links by more knowledgeable people than I:
Good luck with paper writing!

The (n00b)Student's Guide to Conferences

I've only been to two conferences: PLDI and OSDI both in sunny San Diego. I don't think this should be a iron-clad guide, just a few observations I and my fellow students had. Admittedly its not a lot, but eh can still learn enough.

1) If your paper is accepted, always add acknowledgements. Who funded you? What are the grants? Otherwise your sponsor will ask you, why didn't you put me in the acknowledgements.

2) You can go to a conference for free! Yes absolutley free! Apparently most conferences have travel grants for students as long as you have a real reason of going. USENIX OSDI sponsored all 160 students. So who knew they were swimming in money? Might as well jump in the pool. The travel grant applications are due about a month or two prior to the actual conference date.

3) Poster and Works in Progress sessions are useful to see what people are doing. Sure there is probably information on the web or a paper, but what is more entertaining? Talking to a person and finding out what they are doing in 5 minutes or scavenging Google.

4) Hotels where conferences are held usually have some discount for the conference. Make sure you book early so you can take advantage of the discount. Hotels may even have discounts as time passes, so check the hotel website every once in a while. You may even find a discount that is cheaper than the conference rate. If so, book fast :)

Anyone else have some tips?

Who to hire?

One of the greatest benefits of graduate school that I truly appreciate is the ability and time to go off on tangents. Unlike industry where you have financial driven deadlines, graduate school blesses with a slower pace of life, which gives you more time to think. These tangents remind me of the Matrix. Once you've taken the red pill, you have no idea how far the rabbit hole goes. Ready to jump in?

I've most recently been thinking about sociology and psychology, specifically the tangent of how do you find good intelligent people? I've been thinking about such ideas for years, especially during undergrad when I was figuring out how to interview for jobs. This has become especially important since we've been discussing how to get more grad students, and I've been thinking of a startup. I've always had a few questions about what intelligence is, and is it natural or something trained? However, I could never really define it or pin point a solid definition. This weekend however, I found quite a few gems that picked at what I was getting at.

First, I thought that Joel's Smart and get things done was a good mantra. I even found the best job I had as an undergrad through Joel's pearls of wisdom, and his job board. Then here came Steve Yegge with Done and Get things smart, a twist which basically defined what I called the godlike. Someone so intelligent, that they run laps around you. I know only a select few with this quality, and every time I see them in action, I'm left dazed and confused. These are the people you want to do a startup with.

On a totally different tangent, while reading psychology, I finally started to read Malcom Gladwell's books The Tipping Point, which discusses why some things become epidemics and others don't, and Blink, how our subconscious mind usually knows whats right. The thoughts enshrined in Blink have been alluded to many times, even by Steve Jobs.

The thing that finally made it all come together, were two talks by Malcom Gladwell at the New Yorker Conference. The first video discusses hiring in the modern world and how the metrics we currently use to hire people are basically useless. Steve Yegge had said this many times, that no matter what test you have, what kind of interviewer a person is, the bottom line is that it is not an accurate predictor of how successful they will be on the job. The same can be said about school admissions with the GRE and SATs. Really most of the best and smartest people I know really didn't care about college that much, or were already doing something outside of college and going through the ropes to get that piece of paper. In reality, the only way to actually find out if someone is a good employee, is to work with them for a limited time.

The second talk redefines what a genius is. Our society always thinks of a genius as Albert Einstein, or someone who locks themselves up in a room, things long and hard, and some magical insight occurs where the solution came into their head. Malcom argues that a modern genius is someone who isn't necessarily a genius in the traditional sense, but that a genius is someone who spends a lot of time collaborating with others to finally hit the solution to a difficult problem. You can see this phenomenon with open source software. Therefore, it is better to have 10 smart collaborative people than one super genius. Again, Steve Yegge also reached the same conclusion. Even this post exemplifies the collaborate approach, as it is just stepping on the shoulders of others.

The most interesting thing Malcom said, was that to really become an expert in any field, it takes roughly 10,000(around 10 years or so) hours of concentrated effort. This fact really amazed me because the friends that I consider super good.. have all already hit the 10 year mark. Thus in the modern day, practice really does make perfect.

So what does this all mean? I'm still not sure and haven't reached any conclusions, I think I'm just jumping into a different hole.