Sunday, April 19, 2009

I'll be BAWK



Last weekend, we went on an epic roadtrip through California.

It's an annual section leader tradition, and this was its fourth year. On Friday afternoon, we piled into cars with food, sleeping bags, laptops, and cameras, and started our trip. The goal? Solving puzzles and getting places as fast as possible. BAWK is framed as an adventure game. The theme? Always a B-movie. This year it was Cannibal Women of the Avocado Jungle of Death The route? TBD. We go nowhere fast, then hang out and have fun.



It turned out that we were driving from Stanford to within 90 miles of Mexico on that first afternoon. It was a beautiful drive through the Sacramento Valley and the Mohave Desert.

Stop 1: the Salton Sea.



A rainbow on the way to Dinosaur Point (San Luis Resovoir).

We camped on the Salton Sea our first night. In the morning, we went to an abandoned trailer park that had sunk into a wet marsh. Pictures coming soon.



Antelope Valley California Poppy Reserve.



Joshua Tree National Park.

On the way back, we made it to Big Sur before sunset. It was gorgeous.



Brandon, the B in BAWK and roadtrip planning genius.



The sun.




The sea.





The beach. We swam here.

I love the desert. I love the backroads, the cogs under the surface of society, the small towns that grow our food, transport our goods, generate our electricity. I love the freedom of driving with friends through the middle of nowhere, going wherever we want to go.



California is beautiful.

Friday, February 13, 2009

Holy Zuck

I met the Zuck today.

It all started a few weeks ago, when I joined Stanford's CS106 section leading program. I lead a discussion with a group of seven CS106A students every Friday, help people with assignments, do some grading, and party with other section leaders. Today, a group of us went to Facebook. We walked through two of the engineering floors; even in the late afternoon, most of desks were manned, and most of the engineers didn't bother to look up as twenty students sauntered past.

Later, we filed into a small conference room. We looted the open cafe at the back of the room; one section leader pocketed three Snickers, and I grabbed a protein shake. We sat down to a terse introduction from one of Facebook's PR people: "We call him the Zuck." We waited. I looked to the door just in time to see an unassuming, incongruously dressed, boyish-looking man slide in. The room was quickly silent.

Mark Zuckerberg was wearing brand-new sneakers and designer jeans, a conventional North Face fleece clashing with the shirt and tie underneath. He would not have looked out of place at a Harvard frat party. Yet there he was, twenty-four years old and worth $1.5 billion. One Stanford CS professor had recently announced that he was leaving to work for Zuckerberg full-time. "Welcome to Facebook!"



The Zuck told his story -- how he'd hacked together a some simple apps during his sophomore year at Harvard, and how those apps later become Facebook. The first was a product of necessity. Two days before a mandatory freshman humanities class, he had been "busy building stuff", he said, and needed a crash course. Badly. It was an art history class, so he built an app that let students upload images; they could see their friend's uploads and pick a few sentences to describe each one. Afterward they'd contributed, they could see what other students had written. The professor later told him that people had scored higher on the test than on any he'd given before. Then came Thefacebook, which let users put up a picture of themselves, a few words, and poke each other. Zuckerberg said wrote in three weeks, and that three more weeks were all it took for a few hundred students to join.

Then came the Q&A.
First I asked him: "You said you built Facebook and a few other projects in your spare time at Harvard. What gave you the impetus to take all that time and just write code?"
The first part of his answer was all about hacking for it's own sake. He said that he's always like to build stuff, to hack things together quickly and to see what other people do with it. The second part was about network effects. He said he was fascinated by them. People had complex relationships to each other -- now (in 2004), with everyone constantly in touch, those were only getting more complicated, but there was no easy way to map those relationships. He realized that just as collaboration had made that art history final easier for everyone involved, it could also make relationships easier to navigate. He could use people's desire to keep in touch to map out their real-world social networks and to make their lives more transparent to themselves and to each other.

I asked him, later on, what Facebook's original killer app was. He told me: there was none. The original Facebook had no apps, of course, no status updates, no "friend feed", not even a wall. More than any social network at the time (and certainly more than Myspace), however, it emphasized existing friendships. It started only at Harvard, and so built a community of trust where people on Thefacebook knew each other, were actually friends with their online "friends", and were willing to share their lives online. That philosophy -- not any individual 'app' -- was the real "killer app", of course, and it still is.



Meeting Mark Zuckerberg was fun and surreal. Here's what I got out of it:

  • technology is cool, but the people who use it are far more important and require far more attention to detail than it does. Doing things "the right way" is good, but it's not nearly as important as most engineers take it to be. Facebook is best example of this I can think of. It started as an app written in PHP (which originally stood for "Personal Home Page", but that's another story). PHP is a scripting language, and not particularly fast. It ran on Linux, in a "LAMP" stack -- about as standard as web setups get. And it borrowed the basic ideas of a social network -- profiles, "friends", personal blurbs, and so on -- from sites like Myspace that had been around for years. It was not rocket science. It was just closely in tune with the way people connect in the real world and the way the want to communicate online.

  • nothing is impossible. Cheesy, I know, but literally nothing. Imagine you were Zuckerberg's dad, and he had told you in 2004: "I don't need to finish Harvard! I'll just drop out and become a billionaire like Bill Gates." That would have sounded ridiculous, but nonetheless: he would have been right.

  • most importantly, build it now. Facebook started on a whim and version one came out in three weeks.


Its either now, or its not at all. Make it happen! Sieze the day! There are so many Facebooks that nobody's thought of... yet.

Monday, February 9, 2009

TGI Mondays: Taking Your Shoe Off the Manly Way

Some things just sneak up on you.

Friday, January 30, 2009

Go is like Crack

Go is something unearthly . . . If there are sentient beings on other planets, then they play Go.

-- Emmanuel Lasker, former World Chess Champion

I played Go for the first time a few months ago. Fortunately for me, I didn't play enough to understand how amazing it is. That changed this week, and my work-Go balance (Go-life balance?) has tanked as a result.



Go is an ancient, originally Chinese game played between two people with black and white stones on a 19x19 grid. The rules are really simple:
* black goes first
* you take turns putting stones on the vertices (or passing)
* if a connected group of stones is completely surrounded, it's captured
* the ko rule: you can't create the same board twice
* the game ends after two consective passes
* territory consists of empty vertices surrounded by your stones. Each vertex is worth a point, as is each captured stone. whoever has the most points at the end wins
* to make things fair, a komi compensates white for going second, usually by 6.5 or 7.5 points. The extra .5 ensures that games are never tied -- they have a binary outcome.

Chess is Baroque by comparison. Despite its simplicity, Go is very deep. The average chess position has about 25 legal moves available to the current player. A typical Go move is chosen from about 250. (Since it's a 19x19 grid, the first move can go on any one of 361 vertices.)

The real reason I started playing Go, though, isn't because of its simplicity, beauty, or depth. It's because Go is fun and because I learned that computers can't do it.

In 1999, IBM's Deep Blue beat Garry Kasparov in tournament chess. It was a giant machine with about 4000 special-purpose chips, dedicated to evaluating literally billions of chess positions per second. In other words, Deep Blue beat Kasparov by brute-force attack, thinking as far as forty moves ahead on some turns. A very intelligent person lost to a machine with lots of number-crunching power, but no intelligence at all.

Go is not like Chess. There are simply too many possibilities for any kind of exhaustive search. Like Chess, humans play it with advanced pattern recognition and and with directed strategies. Go differs from other games, however, because humanlike intelligence seems to be the only way to play well. Humans balance lots of difficult trade-offs -- is it better to keep playing in a part of the board with lots of activity, or to jump away and stake out a territory claim somewhere else? Is it better to go for secure territories along the sides of the board or influence over the center? Better to finish an impenetrable fortress or to branch out and make a bigger, more porous one? Questions like that take experience, intuition, and lots of pattern recognition to answer well. They can't easily be forced with faster algorithms and bigger supercomputers.



The best Go-playing programs today are using Monte Carlo sampling, like the stuff I blogged about earlier. Running on computers three orders of magnitude faster than Deep Blue -- ! -- they're on par with skilled amateurs. Earlier this month, one program became the first to defeat a professional Go player in a tournament match -- by accepting a massive nine-stone handicap. For now, Go is a game where real intelligence isn't just helpful, but required. There are few others like it.

Go is simple, yet radically open-ended, and it seems like a uniquely human game. Could it be AI-hard? We'll find out. Lots more info and links at the Stanford Go Club. I would write more, but the night is young, and it just became my turn to place a stone.

There is so much Go to play.

Tuesday, January 6, 2009

Winning science fairs

... I've never done it, but I did get a "third award" at Intel ISEF '07. That's International Science + Engineering Fair, and it was one of the most fun things I've ever done. My friend Tom and I built the project, took it to regional fairs, improved it between each fair, and of course partied the nerdy way for a week at the main event. Our project was on Stirling Engines, building four from scratch. The last two worked.

We built the engines using parts from my garage and from Home Depot. The last engine also included two borosilicate glass-graphite piston cylinders generously donated by Airpot. The Riverton Science Department hooked us up with real-time pressure and rotation sensors. The end result was an engine that could run on a candle and a faster one that ran off of a propane stove; we measured the thermodynamic cycle of the second engine, creating and experimental PV diagram.



My partner-in-crime Sawyer just facebooked:
Hey! You went to ISEF a while ago, didn't you? Any advice on choosing a project?


Sure! In my unhumble opinion, engineering is the way to go.
Pick something fun or cool, because then you'll spend time on it and make it great. Also, pick something that you can build. I have way better experience with that than doing pure science or math, at least in the context of a science fair. (Science fairs are really science/math/engineering fairs; I like the engineering part best.) If you do pure math or science, then you'll need a mentor. Many entrants in those categories, even at Utah-level fairs, partner with university professors; needless to say, it's very hard to compete if you're going it alone. Building stuff is different; you need a lot less arcane knowledge. I wrote some of the programs I'm most proud of before I had any formal CS training; my friend Nathan built a car -- from scratch -- that does 0-60 in under four seconds -- before he went to Stanford and took introductory mechanical engineering. If you're excited about it, if you persevere, and if you're willing to use Wikipedia a lot, you can learn as you go and build really cool stuff.

I also recommend building something physical. You can enter a computer science project, but you'll have plenty of chances to code. In my experience, the clubs, groups, and other orgs you'll be part of in college never have enough programmers. Web developers are especially in demand -- you'll spend lots of time sitting in front of a screen hacking apps into existence. Science fairs are your chance to design, machine, tinker with, and generally build stuff, and get recognition for it. Companies sponsor you. Teachers love it and are often very helpful. It's a very good deal, and one you really don't get once you're out of school. I can't overstate how great an experience my project was. Find something interesting and build it. You'll rock the science fairs and get more out of it than you can imagine.


(Tom and I at Sandia National Labs. One of our judges invited us to come see his project there: harvesting solar energy with Stirling engines. The dish focuses sunlight onto the hot end of a 25KW engine. The other side is cooled with a radiator.)

Thursday, January 1, 2009

Celebrating 2009 the manly way

... with Patrick's New Year's resolutions. His story:

So, I watched "Wanted" again tonight instead of going out. And you know what? I probably had more fun that way. 2009 is going to be my year, the year that I stop trying to live like everyone else, justifying my unsavory actions by the social acceptance in our decadent society...and other non-pompous reasons. I will not bore any readers with any sort of analysis of my faults. Those are irrelevant. What matters is how I'm going to fix things. So, let me begin...

1. I will no longer be scared by my (lack of) potential. I have put myself on the path of the creator, the writer, and I will no longer hold myself back by a terror that I will not live up to anyone's standards. So, for 2009, I vow that by the end of freshman year, I will write/direct/create something that I am proud of. It will be my vindication, my tangible proof that I deserve to call myself an artist. For you see, I watched "Wanted" for reasons other than to see mind-blowing action and Angelina Jolie's fantastic ass. The beginning of the movie scares me. I see visions of Wesley in myself, a bright young man, suddenly waking up out of his stupor and wondering where the last ten years went. I don't intend to assassinate anyone but I am ready to rise up, step into the shoes that have been waiting by the door of life for as long as I can remember. So, I will create, I will prove myself.

2. I will work out. Several years ago, I exercised with a vigor I had never shown anything before. I was fit, toned, and a damn sexy beast. The trouble was, I was still too shy and withdrawn to stand out to anyone except my closest friends. So, my transformation went unnoticed. I felt fantastic but I was too immature to care about anything other than what others noticed. I slowly lost my will power and gave up. Rabbit food turned back to junk food and fab turned back to flab. No one noticed this either, except my dog who started enjoying the left-overs a lot more. Since then, I have tried several unsuccessful times to start again but it never took. I lacked the devotion. Until now.

3. I will stop chasing girls with which I have no chance. I cannot even begin to describe how much time I waste thinking about the fairer sex. That is not to say I forgo romantic involvement. Instead, I will not seek it out needlessly like a crack addict looking for his next fix. I will leave that to sluttier people than me (Adam O. and Sri, here's looking at you). I will, instead, just let whatever happens happen. I remember about 2 or 3 months ago, I was laying on the roof of the dorm late at night. I was stargazing and thinking about girls. Suddenly, I saw a shooting star go streaking across the sky. My first thought was that I had to make a wish. My second thought was, "Please, let me find someone that I can care about." Even though circumstances have changed since then, that wish remains. No more chasing, no more games. Please, let me simply find someone that I can care about.

4. I will be a manly man. I will stand tall and proclaim the words from the hills, blowing a sea shell, my man blouse billowing in the wind. I will drink unleaded and shit mustaches. Mountains will quake and panties will vanish into thin air. I will ride an imaginary horse and call it a steed like the pretentious prick that I am for I am a manly fucking man. I am Sir Patrick Sean Kelly TM the 17th, beyotch!

2009. Here I come.
 
Views