Archive for the 'Uncategorized' Category

Software version numbering inflation comes to Firefox

It happens regularly and it happens in some of the best families developer communities. At some point there is a change in the version numbering scheme. The most recent such headline is “Mozilla Switches Firefox to 18-Week Development Cycle; Firefox 5 Expected June 21”. And in the article we read “speeding up the development cycle for Firefox releases”. While I suspect that the motivation behind the move is “not to fall behind” in some sense, whether or not the project runs on an 18-week (or other) development cycle has absolutely no impact on the speed of the development cycle, merely on the number of releases. Just like reading the KM/h scale instead of the MPH scale of the speedometer does not change the speed at which I travel.

Firefox releases
version date development time
0.1 September 23, 2002
1.0 November 9, 2004 779
2.0 October 24, 2006 715
3.0 June 17, 2008 603
4.0 March 22, 2011 1009
5.0 scheduled for
June 21, 2011 92

Other projects have made similar changes in the past. Interestingly, I have never seen a numbering scheme change to less frequent major version number changes.

In all the cases where I have seen this step taken in the past, it always left the impression that some marketing-oriented people in the respective project community are confusing cause and effect: it’s not by incrementing the major version number that you get substantial/fundamental development progress. It’s, of course, the other way around: after much development progress you find that the software has been entirely rewritten and that’s when you feel you have to change the major version number to reflect this. In my opinion this is one of the (and by far not the only) things that Linux kernel development gets right: version 2.0 is from 1996, 2.6 current, and there was lots of development progress…


It’s programming

I know of no field that is immune to trends and fashions and computing is no exception. Often I find it amusing to see these fashions and fads appear and reappear. One such occasion was when Java was new and many of its proponents were touting its use of the JVM as revolutionary. Well, the p-code machine predated the JVM by over 15 years with a very similar purpose. Yes, “Those who don’t know history are destined to repeat it.”

Most recently, I am amused by the much-hyped “computational thinking”. One definition found on Google’s Exploring Computational Thinking is “Computational thinking (CT) involves a set of problem-solving skills and techniques that software engineers use to write programs that underlay the computer applications you use such as search, email, and maps. Below is a list of specific techniques along with real world examples from our every day lives.” then that page lists decomposition, pattern generalization and abstraction, and algorithm design as skills or techniques.

But wait a minute: what a software engineer does, the above list of skills and techniques… This is programming!!!

And yes, I agree, students should learn programming in school and it will be easier for them if they can practice their programming skills across diverse subjects.

Computational thinking… “A rose by any other name would smell as sweet

Integrated Development Environment

So I was just about to write about how Unix is a developer’s toolbox and environment, when I though “Somebody sure must have written about this before”. What would I google? How about “Unix is an IDE”. Sure enough: I also came across this one: and

One less article for me to write…

a package I’d like to see appear in pkgsrc

“Sage s a free open-source mathematics software system licensed under the GPL. It combines the power of many existing open-source packages into a common Python-based interface.”

I’d like to see a package for this in pkgsrc. If I find some time I might look into it myself.

Blogging for class

Here is a quick explanation of how the blogging for class is supposed to work:

– Every student sets up a blog somewhere

– the URL of the blog is communicated to the professor

– the professor adds the blog URL to the course blog

– from then on the course blog regularly checks whether there are new posts to the student’s blog

– when new blog posts are found, they are syndicated to the course blog

– students should blog frequently, but specifically how often, when, and at what length is left to the students

Proof Techniques

Today I noticed a student in a graduate course being somewhat hesitant in presenting an induction proof. Next induction proof, hesitant again. It seems that some of the students, who are not from a CS or Math background, feel a bit insecure about proofs.

What to do? Make them prove!

So now I’m looking through online resources that will meet the following criteria:

  1. introductory enough for non-Math, non-CS people, who have had very little exposure to proving
  2. advanced, thorough, and challenging enough for graduate students from science/engineering disciplines
  3. convey the elegance of rigorous proof, and
  4. let them have fun proving

Thus far, I was most amused by the list of unacceptable proof techniques I found here.

I found some material on proof techniques, but what I found is either too basic, too concise, or too technical…

Blogfesores 2009 Open Access

I gave a talk at

Blogfesores 2009 Banner.

Here are the slides.