[[!meta title="Summer Reading"]] ## Articles * [The Kerberos play](http://web.mit.edu/Kerberos/dialogue.html): explains why Kerberos works the way it does * [The Rise of Worse is Better](http://www.jwz.org/doc/worse-is-better.html): a brief description of the single coding philosophy that most influenced the design of UNIX and many related systems. The [entire article](http://web.mit.edu/geofft/Public/gabriel-on-lisp.ps), rather than just the section, is available in PostScript * Tim Berners-Lee's [Design Issues](http://www.w3.org/DesignIssues/) section, and his piece on why [Cool URIs Don't Change](http://www.w3.org/Provider/Style/URI) * [How To Ask Questions The Smart Way](http://catb.org/esr/faqs/smart-questions.html) -- A document on asking questions in hacker communities in ways that will help you get answers. Many of its points apply to places like Zephyr, too. * A definition of [yak shaving](http://projects.csail.mit.edu/gsb/old-archive/gsb-archive/gsb2000-02-11.html), which you'll often find SIPB members unwisely engaging in. * [GNU Philosophy](http://www.gnu.org/philosophy/philosophy.html), hardline but worth reading. * On that note, the [GPLv3](http://www.gnu.org/licenses/gpl.html) and [GPLv2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html). Dense legal style, but also worth reading once, to understand what free software is about * [The Cathedral and the Bazaar](http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/), by Eric Raymond: an overview of closed-source ("cathedral") vs. open-source ("bazaar") design and participation philosophies * [Why Nerds are Unpopular](http://www.paulgraham.com/nerds.html), by Paul Graham * [How Athena Works](http://web.mit.edu/ghudson/info/athena), by Greg Hudson, longtime Athena engineer and SIPB member * [The e-mail threading algorithm](http://www.jwz.org/doc/threading.html), by Jamie Zawinski (jwz), old Netscape hacker. Interesting not only for the algorithm per se, but for his description of the process leading to its development, and his [lost argument with Netscape 4's engineers](http://www.jwz.org/doc/mailsum.html) against replacing the algorithm with something overengineered ## Books online * Abelson and Sussman, [Structure and Interpretation of Computer Programs](http://mitpress.mit.edu/sicp/full-text/book/book.html): the classic textbook for the famous 6.001 * Eric Raymond, [The Art of Unix Programming](http://www.catb.org/esr/writings/taoup/html/index.html): also explains a lot of design * Mark Pilgrim, [Dive Into Python](http://diveintopython.org/): "a Python book for experienced programmers" * Eric Raymond, ed., [The Jargon File](http://catb.org/~esr/jargon/): a lot of hacker terminology and lore, plus quite a few interesting articles near the beginning. Don't forget about [Safari](http://safari.oreilly.com/) -- O'Reilly books online, free for MIT people. ## Blogs, etc. * [Joel on Software](http://www.joelonsoftware.com), a software developer in charge of a small company who writes well * [Making Wrong Code Look Wrong](http://www.joelonsoftware.com/articles/Wrong.html) * [The Law of Leaky Abstractions](http://www.joelonsoftware.com/articles/LeakyAbstractions.html) * [Things You Should Never Do](http://www.joelonsoftware.com/articles/fog0000000069.html), i.e., rewrite software from scratch * [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)](http://www.joelonsoftware.com/articles/Unicode.html) * [The Old New Thing](http://blogs.msdn.com/oldnewthing/), an engineer for MS who writes about stupid hacks in the name of backwards compatibility * [Jamie Zawinski's](http://www.jwz.org/doc/) writings / rants. jwz developed Netscape 1-3, and played a role in the open sourcing of Netscape as Mozilla.