I just came across this list in an old “should blog about this someday” file. It’s from a 1983 interview of legendary racing motorcycle tuner Rob Muzzy, speaking to legendary motorcycle journalist Kevin Cameron. It’s about how to be smart about going fast.
I don’t do a lot of work that’s extremely performance-critical, but most of what Muzzy says rings true for me when applied to software systems. The engineering mindset looks remarkably similar across disciplines.
My first week with the iPt has been a thorough validation of my decision to jump ship from the Palm platform. The things this new device doesn’t do are still a problem, but the things it does do it does incredibly well. I won’t gush over those because they’ve all been thoroughly gushed over. But anybody who thinks the success of the iPhone/iPt platform is primarily based on superficial factors of appearance or brand image likely hasn’t used one for more than two minutes.
Most readers are probably familiar with the fact that companies or organizations sometimes post “bounties” for open source products, or features, that they would like to see developed. Implement the thing to their satisfaction, you get the bounty – and the community gets the code. Sweet.
A while back I started gathering references to these things, thinking I’d start a site that listed them, made connections between coders and sponsors, etc.
In 2007, I took a whack at learning Haskell as my Language of the Year. It was an educational experience on more levels than I had expected. I didn’t get as far with the language as I might have hoped, but I did have the essential mind-opening experience of dealing with a purely functional, “lazy” language. My approach and style in my primary day-to-day language (Python) changed in a positive way.
Update: As of 2012, the primary Django repo is on GitHub. The mirror described in this post has been retired. Just wanted to post a quick note that I’m now publishing an experimental Mercurial mirror of the Django source code repository, including all tags and branches and even the djangoproject.com website source itself. Tom Tobin at The Onion has been maintaining a similar mirror of Django trunk for a while (and very helpfully answered some of my questions in IRC), but I wanted to do the whole tree.
Python has two seemingly similar sequence types, tuples and lists.
The difference between the two that people notice right away, besides literal syntax (parentheses vs. square brackets), is that tuples are immutable and lists are mutable. Unfortunately, because this distinction is strictly enforced by the Python runtime, some other more interesting differences in application tend to get overshadowed.
One common summary of these more interesting, if subtle, differences is that tuples are heterogeneous and lists are homogeneous.
I just learned that TIOBE (who maintain a popular but controversial listing of programming language popularity statistics) declared Python the “language of 2007”. Most notably, it is now (according to TIOBE) more popular than Perl:
Last month Python surpassed Perl for the first time in history, which is an indication that Python has become the “de facto” glue language at system level. It is especially beloved by system administrators and build managers.