Skip to main content

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 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!


Popular posts from this blog

Ubuntu 20.04 on a 2015 15" MacBook Pro

I decided to give Ubuntu 20.04 a try on my 2015 15" MacBook Pro. I didn't actually install it; I just live booted from a USB thumb drive which was enough to try out everything I wanted. In summary, it's not perfect, and issues with my camera would prevent me from switching, but given the right hardware, I think it's a really viable option. The first thing I wanted to try was what would happen if I plugged in a non-HiDPI screen given that my laptop has a HiDPI screen. Without sub-pixel scaling, whatever scale rate I picked for one screen would apply to the other. However, once I turned on sub-pixel scaling, I was able to pick different scale rates for the internal and external displays. That looked ok. I tried plugging in and unplugging multiple times, and it didn't crash. I doubt it'd work with my Thunderbolt display at work, but it worked fine for my HDMI displays at home. I even plugged it into my TV, and it stuck to the 100% scaling I picked for the othe

ERNOS: Erlang Networked Operating System

I've been reading Dreaming in Code lately, and I really like it. If you're not a dreamer, you may safely skip the rest of this post ;) In Chapter 10, "Engineers and Artists", Alan Kay, John Backus, and Jaron Lanier really got me thinking. I've also been thinking a lot about Minix 3 , Erlang , and the original Lisp machine . The ideas are beginning to synthesize into something cohesive--more than just the sum of their parts. Now, I'm sure that many of these ideas have already been envisioned within , LLVM , Microsoft's Singularity project, or in some other place that I haven't managed to discover or fully read, but I'm going to blog them anyway. Rather than wax philosophical, let me just dump out some ideas: Start with Minix 3. It's a new microkernel, and it's meant for real use, unlike the original Minix. "This new OS is extremely small, with the part that runs in kernel mode under 4000 lines of executable code.&quo

Haskell or Erlang?

I've coded in both Erlang and Haskell. Erlang is practical, efficient, and useful. It's got a wonderful niche in the distributed world, and it has some real success stories such as CouchDB and Haskell is elegant and beautiful. It's been successful in various programming language competitions. I have some experience in both, but I'm thinking it's time to really commit to learning one of them on a professional level. They both have good books out now, and it's probably time I read one of those books cover to cover. My question is which? Back in 2000, Perl had established a real niche for systems administration, CGI, and text processing. The syntax wasn't exactly beautiful (unless you're into that sort of thing), but it was popular and mature. Python hadn't really become popular, nor did it really have a strong niche (at least as far as I could see). I went with Python because of its elegance, but since then, I've coded both p