| 1. | | How To Become An Open-Source Contractor (emiller.info) |
| 103 points by antiform on Sept 30, 2008 | 15 comments |
|
| 2. | | Peter Norvig's Election 2008 FAQ (norvig.com) |
| 80 points by logjam on Sept 30, 2008 | 48 comments |
|
| 3. | | Google brought back oldest available index for their 10th birthday (google.com) |
| 72 points by wave on Sept 30, 2008 | 45 comments |
|
| 4. | | PG - "The Papa Bear" - on BusinessWeek's list of most influential people on the web (businessweek.com) |
| 69 points by alaskamiller on Sept 30, 2008 | 35 comments |
|
| |
|
|
| 6. | | Writing a compiler in Ruby, bottom up (hokstad.com) |
| 62 points by qhoxie on Sept 30, 2008 | 13 comments |
|
| 7. | | Structure and Interpretation of Computer Programs (csail.mit.edu) |
| 43 points by nadim on Sept 30, 2008 | 26 comments |
|
| |
|
|
| |
|
|
| 10. | | GMU sued for Zotero (crookedtimber.org) |
| 35 points by mariorz on Sept 30, 2008 | 3 comments |
|
| 11. | | The Truth About Pricing (gobignetwork.com) |
| 34 points by terpua on Sept 30, 2008 | 7 comments |
|
| 12. | | Times Are Rough, So Think Smart and Profit (kevinelliott.net) |
| 33 points by markbao on Sept 30, 2008 | 17 comments |
|
| 13. | | RTML - The templating language created by pg (yahoo.com) |
| 32 points by IsaacSchlueter on Sept 30, 2008 | 13 comments |
|
| 14. | | Why Android Will Soon Kick Ass (gizmodo.com) |
| 30 points by qhoxie on Sept 30, 2008 | 31 comments |
|
| 15. | | Do Good Grades Predict Success? (nytimes.com) |
| 30 points by blogimus on Sept 30, 2008 | 40 comments |
|
| 16. | | California moves toward open-source vote counting software (truthout.org) |
| 28 points by epall on Sept 30, 2008 | 8 comments |
|
| |
|
|
| 18. | | Adobe official confirms Flash for the iPhone, says Apple will decide when (iphoneatlas.com) |
| 25 points by mariorz on Sept 30, 2008 | 32 comments |
|
| |
|
|
| |
|
|
| |
|
|
| 22. | | Backtype (YC Summer 08) launches blog widgets for your blog comments (backtype.com) |
| 22 points by rantfoil on Sept 30, 2008 |
|
| |
|
|
| 24. | | 'The Odyssey' and 'The Iliad' are giving up new secrets about the ancient world (boston.com) |
| 21 points by robg on Sept 30, 2008 | 4 comments |
|
| |
|
|
| |
|
|
| 27. | | Stainless - A multi-process, Webkit based, browser for OS X inspired by Google Chrome (stainlessapp.com) |
| 20 points by nickb on Sept 30, 2008 | 6 comments |
|
| 28. | | Fannie Mae Eases Credit To Aid Mortgage Lending - 1999 (linkrap.com) |
| 20 points by breck on Sept 30, 2008 | 14 comments |
|
| |
|
|
| |
|
|
|
| More |
Slowly but surely, I learned the codebase. Eventually, I got my first major patch in: a modification to the subpixel motion search that improved efficiency a bit. But I still found myself blackboxing most of the code due to lack of understanding. Bit by bit, I made more and more complex changes. I taught myself x86 assembly, and then SIMD assembly. I finally learned the subtleties of C pointers. I finally realized that the best way to learn how things work is to identify some way to improve them, and then go and do it--the process of doing it will eventually teach you how it works, even if solely by forcing you to ask an enormous number of questions.
By late winter 2007-8, I probably knew the codebase better than anyone else in the world except the main developer, Loren Merritt, who had been the sole maintainer for almost three years. I was still learning new things all the time, of course, and his knowledge vastly eclipsed mine. But this limited knowledge of mine got me a contract from Avail Media, who wanted an adaptive quantization algorithm implemented, primarily to stop the problem of flat textured areas being blurred out (such as grass in football games). Bit by bit I tried various ideas, and finally got a working algorithm in January that did the job tremendously well. This was committed into x264 in April.
I then got another contract from them to improve the VBV compliance (buffering for constant and limited max bitrate encoding), since they're interested in x264 for television broadcast purposes. I worked on this, which was eventually later improved upon by Gabriel (an employee of Joost, a company that uses x264) and turned into a complete overhaul to the buffering system, which resulted in much improved compliance.
Finally, I got hired for a summer internship there at a rather decent salary.
In the meantime, Adobe had released the latest version of Flash 9, which supported H.264 video. Suddenly, thousands upon thousands of websites were interested in switching--the old FLV1 video format was simply awful, and VP6 was only mildly better and, unlike FLV1 and H.264, very expensive to license. There was a massive flood of people looking for assistance integrating x264 into their toolchains--there simply was no practical proprietary alternative for the vast majority of these websites. Most of the low-cost proprietary H.264 encoding apps were non-commercial only (and much inferior to x264) and the higher-cost ones were simply way out of their price range (and arguably mostly inferior too...).
So, as a developer of x264, I was in demand. I knew the application better than almost anyone else. Everyone wanted me to help them. I got contract offers from Criterion Collection, Facebook, and others. There were also loads of smaller sites looking for more minor help, or even just quick guidance on IRC. x264 is now far beyond a tool for DVD backups, anime, and Scene releases; it was a standard tool used far and wide. And again, I am one of only two active developers. Furthermore, after over a year of being involved in development, I basically made myself an expert in both x264 and the H.264 standard, now knowing most of the code backwards and forwards and having read most of the spec at one point in time or another.
And what about the other developers I mentioned?
Well, the main developer was very difficult to motivate. He didn't seem to care much about money, and had a habit of blowing off past contracts. If you can convince him that some of his assembly code is suboptimal though, he'll be right on it ;)
There were many other minor developers--mostly people who submitted bugfixes or worked on one portion of the code. For example, Gabriel worked primarily on ratecontrol and buffering, which was the most important thing given his job.
And thus I was left as the single developer who was willing to take all sorts of contracts, available to do them, and with enough expertise to deal with almost any part of the application, code-wise, algorithm-wise, or simply usage-wise.