Trip to "reflections projections|2012"
I gave a talk and a codelab on Dart at reflections projections|2012 at the University of Illinois at Urbana-Champaign. I can't possibly explain how well organized the conference was, how friendly the students and alumni were, or how much I enjoyed hanging out with everyone there! A big shout out to Kurtis, RJ, Metro, Zed, Danielle, Caitlyn, Ciara, etc.! Since I did manage to attend a few talks, let me blog about those. If you want, you can watch the videos.
Garry Tan from YCombinator
This was a talk on creating startups.
He worked at Microsoft. He co-founded Posterous.
"Do everything. Don't box yourself in[to a particular skillset]."
The more you know, the better you'll be able to guage the qualities of cofounders.
Studying entreprenuership != doing it.
Work is for learning.
If you plan on doing a startup, don't run out and buy a really nice, brand-new car. Money is capital.
Microsoft made $650,000 per year per employee while he was there.
Work is a transaction. You create the value. They give you a fraction of the value in exchange for stability...and a place to learn.
Be contrarian: Don't rely on third-hand accounts of what happened 6 months ago. (He criticized the media.)
All great ideas seem stupid initially.
He showed a Venn diagram where there's a sweet spot where something looks like a bad idea, but it's actually a good idea.
A great pitch is a self-fulfilling prophecy.
Everything sucks. Seek a problem, not technology for its own sake.
Ship a quantum of product: a discrete, indivisible manifestation of a product that solves a problem that people have.
When you're small, act small: Do unscalable things. Don't act bigger than you are.
When you're small, you can be human. Answer every email. Be personal. People notice.
reddit and justin.tv came out of the first YCombinator batch.
They're spawning companies that are worth billions.
They only focus on building software and getting users.
Dinner is the only thing that's required of YCombinator participants.
Every angel and VC in the valley comes out to watch Demo Day. People generally raise $300k to over a million.
To get PR, go to a publication, and email them, "We want to give you an exclusive. Do you want it? Yes or no?" Go after the most junior writer there.
He joined YCombinator because he got a little burnt out.
When you're starting, it takes all your working hours. However, you can only sustain that for 3-6 months. At some point, you have to take it easier. Flow makes the time go by really fast.
Getting other co-founders involved is important. If you can't get another extremely talented person to go into it with you, then maybe what you're doing is really is crazy.
At this point, YCombinator isn't about the money they give you. It's about the connections.
Mark Twain said, "If at first you don't succeed, try, try again. But then quit. There's no use being a damn fool about it."
The most frequent question he hears is "How do I hire?" He said to go after your friends. Vote on who you think is the smartest, and then go sit on their doorstep. Posting a job posting and expecting to get an amazing hacker--that rarely happens. Don't start doing that until you've been around for quite a while.
The other question he hears the most frequently is "How do I fire my co-founder?" He said to talk to a lawyer. Make sure your stock options have a vesting schedule.
He thinks KickStarter is a good idea.
In general, focus on getting to market. Generally, don't focus on patents. They're really expensive.
I don't think a 10-page business plan is important. No one does that anymore. However, a 3-4 sentence pitch is key.
The Art and Algorithms of Pixar's Brave
This talk was given by Danielle Feinberg, Directory of Photography for Lighting.
The only way I can explain what they do is "wow"!!! Unfortunately, we weren't allowed to take pictures of anything. This has really given me a new appreciation for what they do.
Debian: 19 Years of Free Software, Do-ocracy, and Democracy
This talk was given by Stefano Zacchiroli, the Debian project leader.
They now have support for running kFreeBSD. This was added about 2 years ago. It's important for running ZFS. I remember wishing back in 2001 that Debian would make it possible to swap in new kernels, especially FreeBSD.
Ubuntu is 15-30 times more popular than Debian.
Dropbox Notification Servers
Dropbox can handle 1.7 million clients connected per machine. Those servers are written in C++. They use epoll (in edge-triggered mode). They use libevent. Each process has 170k connections. Limiting the amount of memory used per connection is critical. Avoiding SSL where possible is also critical.
They get about 70% CPU utilization. IO bandwidth is their biggest bottleneck.
They make clever use of shared memory and swapping open file descriptors. That way, they can restart a server process without losing all the open connections.
They originally wrote things in Twisted, but they couldn't get past 5000 connected clients. Twisted and Python are both kind of slow.
They then wrote it in C++, then went back to C, and then went back to C++.
They have about 60 engineers.
They server about 100 million users.
They want to be the "filesystem of the Internet".
They say that the fact that they're platform agnostic is one of their biggest competitive advantages.
They don't do client-side encryption. They use one key to encrypt everyone's data.
They've had a couple security incidents. There are tradeoffs for how secure you need to be.
Their main data is stored in S3.
All their web stuff is in Python. They use Pylons, but they have evolved very far away from Pylons. They also have their own templating system.
MySQL really doesn't like supporting more than 100 open connections.
When they receive a DMCA takedown, they don't try to delete it from the user's account entirely. They just ban the item from being publicly shared.
A lot of people at Dropbox came from Google.
My talk: Structured Web Programming: An Introduction to Dart
Here's a link to my talk.
There were two other talks going on at the same time as mine. One of them was by Zed Shaw. I got about 65 people. This proves conclusively there are still 65 people in the world who don't know that Zed Shaw is a more entertaining speaker than I am :)
I also did a codelab. Things were going very well, but about half way through the codelab, most of the people suddenly left. Apparently, there were a panel starting, and some of the guys who built "Portal" were on it :)
Nonetheless, I'm really, really glad I made the trip down to UIUC!