Get Conversations about InsaneCats    
May 5th, 2008 - ArtistThemes for Google
Google has released Artist Themes for your iGoogle homepage, and this video made me totally excited about them:



You can get themes designed by creative people like Marc Ecko, Jeff Koons, Coldplay, NIGO, Michael Graves, Robert Mankoff and so many more.

There was a big public party on Thursday in New York City -- where I happened to be. For now, I've installed this one; but like my desktop background, I suspect I'll enjoy changing these themes in parallel with my ever-changing mood.
 

May 12th, 2008 - Catspaw at Google: a little more content
I was rereading some insanecats archives earlier today and I realized how much I appreciate being able to go back and see how my opinions grew and shifted over the period of several years. Then I read the last two years of entries (ie: the Google Era) and it's amazing how quickly I just became a source of links to cool stuff completely outside of my life.

I've decided I'm going to try to do a better job at writing blog entries about the stuff I'm actually doing -- while walking that careful balance of not telling you all about the super secret Google Death Rob-- oops! I've said too much!

The project that I'm currently on, Ads UI, is responsible for the user interface and user experience (the look and feel) of ads on google.com. We come up with ideas, try them out, and if they're successful, we launch them. It's an extremely satisfying job for a few reasons:
  1. It's public facing. That means that I can say "okay now click this..... now that ...... yeah, see that thing there? My team just launched that."
  2. We get to come up with cool new ideas and take them from brainstorming all the way to launch. These iterations can happen quickly (a few weeks) or can be massively complicated and require a ton of coordination. Both tend to happen simultaneously. (Personally, I have a secret love for the ones that are huge and complicated. I enjoy getting all of the pieces of the project to work together, to be ready at the exact right times, so that they all come together like a piece of music. It shouldn't surprise anyone that I enjoy mentally playing chess with everyone around me as a piece.)
  3. We can quantitatively measure how we're doing. We're making X% more money, users are Y% happier, advertisers are spending Z% more money, and the side effects are A, B and C. We're doing actual science and very real research.
  4. I get to interact with tons of teams here at Google. A lot of our experiments involve using other teams' technology, or editing their code to implement our ideas. In fact, almost all of what we do is editing other peoples' code, so it really drives home how important things like documentation, testing, readability and maintainability really are.
I also enjoy it because I don't really particularly like our ads, so it's fun to be a part of a project where you can start with something "meh" and then come up with ideas to make them really cool, and know that if the general user population likes it too, that it's going to be launched and you're going to have made it better for everyone.

And for those wondering, in the two years that I have been here, I still have never worked on even a single weekend, and I go home fairly early every day. I also harass my team mates if they're still at work on 5pm on a Friday: "Go home! I don't care that you got in at noon today, it's home time. Go home!" They usually do.
 

May 14th, 2008 - 1001 movies to see before you die
Take a look at this list of 1001 movies to see before you die. I've seen exactly 100 of them so far:
   1. A Trip to the Moon (1902)
  30. Metropolis (1927)
 110. Snow White and the Seven Dwarfs (1937)
 123. The Wizard of Oz (1939)
 138. Pinocchio (1940)
 146. Dumbo (1941)
 195. It's a Wonderful Life (1946)
 201. The Bicycle Thief (1948)
 241. The Day the Earth Stood Still (1951)
 302. Forbidden Planet (1956)
 388. To Kill a Mockingbird (1962)
 406. The Great Escape (1963)
 421. Dr. Strangelove (1964)
 437. The Sound of Music (1965)
 439. Alphaville (1965)
 473. The Jungle Book (1967)
 480. Planet of the Apes (1968)
 488. 2001: A Space Odyssey (1968)
 525. A Clockwork Orange (1971)
 527. Willy Wonka and the Chocolate Factory (1971)
 550. The Godfather (1972)
 583. Young Frankenstein (1974)
 593. The Rocky Horror Picture Show (1975)
 595. Monty Python and the Holy Grail (1975)
 607. Carrie (1976)
 616. The Man Who Fell to Earth (1976)
 617. Star Wars (1977)
 618. Close Encounters of the Third Kind (1977)
 636. Grease (1978)
 646. Alien (1979)
 652. Life of Brian (1979)
 655. The Muppet Movie (1979)
 662. The Shining (1980)
 663. Star Wars: Episode V - The Empire Strikes Back (1980)
 667. Airplane! (1980)
 680. E.T.: The Extra-Terestrial (1982)
 682. Poltergeist (1982)
 683. Blade Runner (1982)
 696. Star Wars: Episode VI - Return of the Jedi (1983)
 711. The Terminator (1984)
 714. This Is Spinal Tap (1984)
 716. Ghostbusters (1984)
 727. Back to the Future (1985)
 744. Aliens (1986)
 745. Ferris Bueller's Day Off (1986)
 754. Top Gun (1986)
 764. Good Morning, Vietnam (1987)
 768. The Princess Bride (1987)
 780. Akira (1988)
 783. A Fish Called Wanda (1988)
 785. Big (1988)
 786. Dangerous Liaisons (1988)
 792. Who Framed Roger Rabbit (1988)
 793. Rain Man (1988)
 797. Batman (1989)
 798. When Harry Met Sally (1989)
 805. Roger & Me (1989)
 819. Pretty Woman (1990)
 823. Edward Scissorhands (1990)
 836. Terminator 2: Judgment Day (1991)
 837. The Silence of the Lambs (1991)
 845. Reservoir Dogs (1992)
 849. Bram Stoker's Dracula (1992)
 850. Candy Man (1992)
 858. Groundhog Day (1993)
 861. Jurassic Park (1993)
 864. Schindler's List (1993)
 871. Forrest Gump (1994)
 872. Clerks (1994)
 873. Four Weddings and a Funeral (1994)
 874. The Lion King (1994)
 878. Pulp Fiction (1994)
 879. The Shawshank Redemption (1994)
 889. Babe (1995)
 890. Toy Story (1995)
 894. Clueless (1995)
 897. Seven (1995)
 908. Independence Day (1996)
 914. Trainspotting (1996)
 919. Princess Mononoke (1997)
 930. Titanic (1997)
 936. Run Lola Run (1998)
 938. Pi (1998)
 944. There's Something About Mary (1998)
 955. Fight Club (1999)
 956. Being John Malkovich (1999)
 957. American Beauty (1999)
 960. The Sixth Sense (1999)
 961. The Matrix (1999)
 966. Gladiator (2000)
 969. Requiem for a Dream (2000)
 976. Memento (2000)
 977. Dancer in the Dark (2000)
 978. O Brother, Where Art Thou? (2000)
 979. Amelie (2001)
 983. Spirited Away (2001)
 987. Moulin Rouge (2001)
 992. The Lord of the Rings: The Fellowship of the Ring (2001)
 993. A.I.: Artificial Intelligence (2001)
1001. Kill Bill: Vol. 1 (2003)
How many have you seen of the full 1001? Which ones shouldn't be on the list? Which great classics are missing? Which movies totally belong there?
 

May 15th, 2008 - The importance of failures
Last week I led my team in a post-mortem of an experiment we ran that failed. I explained that failures can be just as important as successes when doing science and research, but only if you document the failures to allow others (and yourself) to learn from the mistakes.

Science is all about testing hypotheses, and discovering that a hypothesis is false helps to narrow down the initially huge field of search. It helps you to focus towards more likely hypotheses.


In order to turn our failed project into something valuable, I designed our post-mortem to take the following form:
  1. List the failures that occurred.
    Eg: We weren't gathering the right data throughout the experiment that was needed to make an accurate conclusion at the end.

  2. For each failure, identify the problem that caused that failure.
    Eg: Problem: The engineers don't have a good grasp on what data is needed to make the analysis sane.

  3. For each problem, identify actionable solutions.
    Eg: Schedule a tutorial with a senior analyst to teach the team's engineers about how to design useful data filters.

  4. For each failure, identify how you plan to catch it next time before it happens again.
    Eg: Analysts should be informed about experiments early, so they can help with these design decisions, and the analysts should be involved in the code review process.
There's a great culture amongst SREs (site reliability engineers) to document failures and make sure that the knowledge is passed on to the next generation, but software engineering culture doesn't do this; I believe that this is a mistake.

Especially in large companies, chances are high that three other people are making the same mistake as you right now, and within a few years, a dozen more will have made the same mistake. Even if you're in a small company of just four or five people, if you don't write down what you tried to do and failed ("we tried to use javascript to store these objects, but the browser started to craaaawl, so now we only get them back from the server as needed"), at some point someone else is going to try your original idea and have to fail all over again.

Spending the time to weave something valuable out of failures is important not just to learn from your mistakes, but it also encourages people to be more willing to try things out and fail fast. Innovation is what drives the industry and academics forwards, and the fear of failure kills innovation. If well-documented failures come to be as respected as successes, we'll all be more willing to take risks. Everyone wins.
 

May 16th, 2008 - A Day in the life of the Ads UI tech lead
Google is actually fabulous in terms of the very few number of meetings that most engineers have to attend. For example, I just checked how many meetings a friend of mine has in this entire week, and all he has is a one-hour team meeting. This isn't uncommon. However I seem to stuff my calendar full of a million activities. Now granted, this is my own choice. I set up or asked for 3/4s of meetings. That's because I like to get things done quickly face-to-face and I prefer structure in order to get things done efficiently.

Here's what my calendar looks like today:
6:00 am - Alarm goes off. Believe it or not (I don't), I actually wake up at 6:00 every morning. Contrary to popular belief, this isn't because Google is a slave driver; most of my colleagues get in around noon. I get up at 6:00 because I've been finding that I sleep better at night if I get up early.

6:45 am - Catch the shuttle. Some combination of sleeping, reading, or watching movies happens here.

7:40 am - Arrive at Google. Find a quiet spot to continue sleeping/reading/watching movies.

8:00 am - Breakfast opens in the cafes. Today I had pancakes ("pa-na-ma-cakes"), a veggie sausage, blackberries, and some tea.

9:00 am - Meeting with an engineer, my product manager, and an analyst to discuss how we plan to analyze an upcoming experiment. The experiment will hopefully get rolled out around the end of the month, so we have a few things to sort out.

10:00 am - Catch up on last night's e-mail. Review all the experiments we're working on / rolling out / launching to make sure that they're moving along.

11:00 am - Running. I normally prefer to do that in the afternoon, but my afternoon is packed today, so I'll run before lunch.

12:00 pm - Lunch! I'm not sure which cafe I'll go to yet. It's unusually hot (~34C) today. It normally doesn't get this hot, so I'll probably eat inside to hide from the great weather. ;)

1:00 pm - Weekly team meeting to update everyone on each other's statuses on all the projects. This is a really useful meeting for me, because I can find out if anything is blocking my team's progress and work with them to remove the blockages.

1:45 pm - I'm interviewing a software engineer candidate today. So I have to think up some questions to ask, glance over their resume in advance, and then try to sound reassuring despite the always-present terrified look in their eyes.

2:30 pm - Meet with three analysts and an engineer to discuss another experiment in order to make sure that we have the mechanisms in place to analyze it after it rolls out.

3:00 pm - An analysis-savvy engineer is giving my team a tutorial on how to divide experiment data into groups that make analysis sane.

3:30 pm - Coffee and chatting with a testing grouplet member I haven't seen in a while.

4:30 pm - TGIF. That means snacks and beer and end-of-week celebrations at Google. Whew. It's been a long day, and I can use it.

It's a bit of a crazy day, but I'll get lots done. w00t. And then a whole weekend in this gorgeous weather in order to recover from the busy week.
 

May 20th, 2008 - Catsy designed Google cafe
Last week I was contacted by some Google chefs who are working on opening a new cafe in a building we just bought. We currently have 18 cafes, ranging in theme from Cafe 150 to No Name. The chefs asked if I could find a handful of engineers who'd be willing to help them with the new cafe's theme.

I grabbed a few friends with different culinary tastes, and engineering culture experience, and brought them together to chat with a few chefs about their new cafe. Though I can't give away what it's themed (not even Googlers know outside of us!), it's really cool to brainstorm things like decor, the name of the cafe, food station names, etc. Within 10 minutes, we had figured out the name of the cafe and by the end of the hour, we'd given them tons of suggestions that everyone loved.

When it's no longer a surprise, I'll post more details about it on here. Until then, I just have to say (once again): my job rules. That is all.
 

May 23rd, 2008 - Juxtaposing jobs
There's something strangely satisfying about the juxtaposition of sitting in a ballpit with a coworker while you watch an episode of The Office on a projector against the ballpit wall, at 3pm on a Friday.

When they say that life isn't like TV, I think they usually mean "don't expect your life to work out as nicely as it does on TV", not the other way around.
 

May 28th, 2008 - Garfield Minus Garfield
If you're not reading Garfield minus Garfield then you're seriously missing out. Someone is photoshopping Garfield comics to remove the cat. What you're left with is "an even better comic about schizophrenia, bipolar disorder, and the empty desperation of modern life".





 

insanecats.com



CC License
Creative Commons License
Shameless hypocrisy
This is my personal blog. The views expressed on these pages are mine alone and not those of my employer.


Archives
2009:
[Jan] [Feb] [Mar] [Apr] [May] [Jun] [Jul] [Aug] [Sep]

2008:
[Jan] [Feb] [Mar] [Apr] [May] [Jun] [Jul] [Aug] [Sep] [Oct] [Nov] [Dec]

2007:
[Jan] [Feb] [Mar] [Apr] [May] [Jun] [Jul] [Aug] [Sep] [Oct] [Nov] [Dec]

2006:
[Jan] [Feb] [Mar] [Apr] [May] [Jun] [Jul] [Aug] [Sep] [Oct] [Nov] [Dec]

2005:
[Jan] [Feb] [Mar] [Apr] [May] [Jun] [Jul] [Aug] [Sep] [Oct] [Nov] [Dec]

2004:
[Jan] [Feb] [Mar] [Apr] [May] [Jun] [Jul] [Aug] [Sep] [Oct] [Nov] [Dec]

2003:
[Jan] [Feb] [Mar] [Apr] [May] [Jun] [Jul] [Aug] [Sep] [Oct] [Nov] [Dec]

2002:
[Jan] [Feb] [Mar] [Apr] [May] [Jun] [Jul] [Aug] [Sep] [Oct] [Nov] [Dec]

2001:
[Aug] [Sep] [Oct] [Nov] [Dec]