Tour de France

This is the first year I watching the last two weeks of the Tour every day. On the west coast it’s perfect timing: wake up at 7, watch the last hour of the stage on OLN, then get to work by my usual time. And I got totally sucked in — even when it was clear that Lance Armstrong would win his 7th, Phil Liggett and Paul Sherwen did a good job of keeping each individual stage interesting, and it gave them a chance to talk about riders besides Lance.

Diehard cycling fans foam at the mouth over OLN’s coverage (see the discussion boards at VeloNews). But I’m not diehard (otherwise I would have been waking up at 4:30), so I enjoyed it. So I’m set for next year’s tour, since the field will be wide open, and now I know the names of cyclists to look out for.

No bookstores in Cupertino???

When I moved to Cupertino in 1989, it had several general bookstores: A Clean Well-Lighted Place for Books in the Oaks, a B. Dalton in Cupertino Crossroads, a Waldenbooks in Vallco Mall, and a Crown Books in the Marketplace (across from Vallco). Stacey’s later opened a branch near Vallco. For the geeks, there was Computer Literacy Bookshops. Things stayed the same for about 5 years.

Then, both A Clean Well-Lighted Place and Stacey’s have retreated back to their home bases in San Francisco. Crown Books went bankrupt. The B. Dalton became a bank. The Waldenbooks closed when Vallco went downhill. Computer Literacy Bookshops was bought out and the Cupertino store was closed. (It then became Fatbrain.com and was bought by Barnes & Noble, and the remaining physical stores were also closed.)

So now, in an affluent, highly educated, highly literate city of more than 50,000 people, the nearest bookstores are miles away in Sunnyvale and San Jose. What the *&*#$ is wrong here? How can I keep my tax dollars in my hometown? I only hope that when Vallco is renovated, a Borders or Barnes & Noble comes in.

(Granted, I’m not counting the tiny bookstores that do exist in Cupertino: those that sell spiritual/religious books, Asian language books, or spiritual/religious books written in Asian languages.)

Web development: Ruby on Rails and Django

A constant theme in HCI and computer-supported cooperative work (CSCW) is how hard it is to get a group of people to adopt and support new technology — being technically superior is not nearly enough. One good example, interestingly enough, is in the area of web application frameworks.

For example, in my favorite language Python, there are a bajillion web frameworks but no clear leader. Meanwhile, one open source web application framework written in Ruby has been getting a lot of buzz lately. The users of Ruby on Rails rave about its ease of use and simplicity. This is causing some consternation in the Python community, to the point that some are creating a clone of Rails in Python called Subway.

But simply copying the framework itself won’t generate the same excitement. There are other reasons Ruby on Rails is getting so much attention. The creators of RoR have evangelized it very effectively and have created good documentation so that others can jump in. Also, the library was extracted from an existing application, so the creators had a real sense for what was useful and what wasn’t. It reminds me of Papier-Mâché, a toolkit for creating tangible user interfaces by Scott Klemmer, who designed and implemented two tangible UI apps before designing the toolkit.

However, all is not lost in Pythonland. Thanks to Robert Scoble I just found out about a Python web framework that seems to hold great promise. Django was also extracted from an existing application, and its creators seem to understand the importance of good marketing and documentation. I’m hoping it succeeds.

Salvadorean food and Willow Glen ice cream

Two nights ago, my buddy Jonathan and I met up for dinner. We were in an adventurous mood, so we went to Vicky’s Restaurant [map | Mercury News review], which specializes in cuisine from El Salvador, in the Burbank neighborhood of San Jose. Jon couldn’t resist the 2 Tacos for $2 deal, but we also made sure to get Salvadorean specials, like pupusas (stuffed fried tortillas), sweet corn tamales with sour cream, and pasteles (mini pies stuffed with meat and vegetables). Highly recommended. It came out to $22 for the two of us, and we were absolutely stuffed.

But we went for ice cream anyway. I suggested Cold Stone Creamery since I had a gift certificate. Jon vehemently rejected it, which was fine by me, since years of training at Berkeley has resulted in a knee-jerk reaction in avoiding chains at all costs. So we drove to Willow Glen, since I figured given its demographics, there had to be at least one ice cream store there.

After going up and down Lincoln Avenue, we found it: The Willow Glen Frozen Yogurt Company [map]. I went for a “small” raspberry frozen yogurt, while Jon went for a “medium” handmade fudge-type ice cream. Boy it was good, but it was too much. “Small” was the third largest size, after child and mini. The frozen yogurt store looks like it’s been there forever and the line was out the door. But it turns out it’s only been open since 2002; the building used to be a Wolf Camera store.

Python IDEs

Normally I program in Java, but recently I needed to write a quick program, and I turned to my favorite language for such tasks, Python. I hadn’t used Python for a while, so I’d forgotten how much I like the language — terse, clean syntax, and an elegant design.

But I’m still looking for a good IDE for writing Python programs in Windows — a text editor and the command line just don’t cut it for me. Currently, I’m keeping my eye on four environments. Two of them, DrPython and ActiveGrid IDE, are standalone, and the other two, Pydev and TruStudio, are built on Eclipse, which I use for Java programming.

I also came across a free text editor called PSPad. While I’m a fan of TextPad, you can never know too many text editors.

More product naming goodness

Earlier I wrote about Microsoft and IBM making their nomenclature more sane. Looks like Sun is getting also into the act. The current version of Java is “Java 2 Platform Standard Edition, version 5.0” (or J2SE 5.0), which has an internal version number of 1.5. That’s three version numbers for one product. Thankfully, the next version will simply be called “Java Platform, Standard Edition 6”, or Java SE 6. Similarly, J2EE and J2ME will be called Java EE and Java ME. Finally! Too bad they didn’t start with J2SE version 1.5 5.0.

Language-oriented programming

Lately there’s been a bunch of initiatives aimed at making software development easier and more robust, by having programmers create and program in domain-specific languages, instead of general-purpose ones like C or Java. Examples include Intentional Software which was spun off from Microsoft Research, the Meta Programming System by JetBrains, and Software Factories by Microsoft. Martin Fowler has a good overview and commentary of this promising area in an article and follow-up blog entry.