Posts tagged: PROGRAMMING

Racebike building and software engineering

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.

iPod touch: one week down, one week to go

iPod touch: one week down, one week to go

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.

Open source bounties

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.

The Language I Will Kind of Learn in 2008: Smalltalk

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. I really like Haskell and hope to continue playing, and possibly working, with it in the future.

A Mercurial mirror of Django's Subversion repository

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.

Understanding tuples vs. lists in Python

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. In other words:

Python was apparently 2007's Language of the Year

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. Chances are high that Python’s star will rise further in 2008, thanks to the upcoming release of Python 3.