Worth repeating: every intern ever anywhere should blog a summarizing post like this at the end of their internship.
Not only does it have obvious and enormous personal benefits for Jamie, but it's galvanizing for the team to look back and read through just how much has been accomplished in a few months (I'm proudly on Jamie's team, am speaking firsthand).
Most interns cannot disclose implementation specifics and code like this. A lot of us work on larger business-facing projects. This type of blog post is pretty specific to the style of development he's doing (a bunch of small open-source web widgets and scripts).
I look forward to the opportunity to do this throughout my next internship in January.
Unfortunately, if I wrote such a post for the internship I just finished, I'd have to omit parts of it. Even though the company I worked for published a "Diary of a Summer Intern" series throughout the summer. :(
Going through the blog post I finally understand why I kept seeing Jamie's blog on the front page of here and my Twitter feed continuously for the last few months, it's really impressive how much work you can get done when you're working on things that interest you. Seems like it was a enriching and useful internship, good job to Jamie and everyone at KA.
I think the Kahn academy has got good licensing terms, and dont generate lots of rows of data, or dont need to process lots of data. As a fairly static web app host GAE can't be beaten. If you do more with it I think you will face the same problems we had... http://www.moneytoolkit.com/2012/08/the-problem-with-google-...
At Khan Academy, we actually have terabytes of data; some of our tables have close to a billion rows.
Our backend does much more than just serve static files -- you'd think that we don't have to do much but we keep track of video and exercise progress, summarize progress by user and by coach, provide video recommendations, host a Q&A system with notification support, award badges in real-time while avoiding costly datastore queries, handle mailing lists and email subscriptions, and have support for having a public profile to show off your progress, among other things.
We handle hundreds of requests per second and it's really nice to not have to think about scaling very much -- with any other solution, we'd be doing a lot more system administration.
Wow, my bad! Thanks for pointing that out. If you scale my numbers up that would be costing you $60,000 per month. If you are doing recommendations you are probably processing significant amounts of data as well. I guess theres no way we could know the commercial arrangements, but It surely cant be the same as your average small time developer.
I have to admit that I didn't think about this much myself -- most of the videos are on YouTube, and I hadn't thought about how the rest of the site was run. For all I knew, it was RoR or static webpages or something.
although I have not used app engine much, it seems like you would have a lot less flexibility if you use it rather than EC2/Rackspace.
Also, Im not sure I believe statements like "its nice not to have to worry about scaling", although if it is working for KA at hundreds of requests per second, maybe it is an accurate statement
I think officially, 4% of users still use IE 7. [Edit: Source: http://theie7countdown.com/] Back in the day, IE was the most popular browser on the Internet, and I'm sure there are a lot of corporate applications written specifically for its quirks that simply don't work in newer browsers. Heck, the University of Waterloo's Learning Management System (based on the open-source Angel LMS) was broken in Chrome for the longest time -- the solution was to migrate to a different (closed-source) product altogether.
Not only does it have obvious and enormous personal benefits for Jamie, but it's galvanizing for the team to look back and read through just how much has been accomplished in a few months (I'm proudly on Jamie's team, am speaking firsthand).