Jon Pipitone sent the following in response to this morning’s post customer disservice post:

As he points out, my use of the word “*sigh*” has been an almost perfect exponential; the use earlier this sentence puts 2008 right on the curve.
Jon Pipitone sent the following in response to this morning’s post customer disservice post:

As he points out, my use of the word “*sigh*” has been an almost perfect exponential; the use earlier this sentence puts 2008 right on the curve.
We’ve been getting automated calls that start, “This is not a telemarketing call: please call [phone number] and quote [reference number] immediately regarding your account.” Doesn’t say who it’s from, or what’s wrong with the account, and the reference number isn’t familiar, so we’ve been ignoring them. Finally snapped this morning and called; turns out it’s Ontario Energy Savings, wanting to know if we’re going to renew our deal. (We’re not: their service was lousy even before these calls, so we’re going to deal with Enbridge directly from now on.)
So what makes this a fail?
Net result was therefore wasted time on both sides (and wasted money for them). *sigh* Why do big organizations make so many newbie mistakes?
I tell the students in my software engineering classes that the absolute value of code coverage in testing isn’t as important as the trend: if you’re testing a smaller percentage of your software as time goes by, you’re headed for trouble. The same is true of site stats: I don’t care much about the absolute number of visitors, but if the curve is down and to the right, it’s time to give the site a polish, or retire it.
Which brings us to this year’s stats for Software Carpentry:

Looking at visits (upper right), things aren’t too bad. Looking at pages, files, and hits (on the left), it’s clear the web is losing interest. And looking at the total downloads (bottom right), I’m just confused: we didn’t do any major surgery on the site, or retire any heavyweight content, so I don’t understand why traffic weight would be cut by two thirds.
So that’s another of my New Year’s resolutions for 2009 that will be a repeat of one made in 2008: give the site a makeover. If you have 50-100 hours of quality time to donate to help, please let me know…
Via Brian Hayes: jsMath “…provides a method of including mathematics in HTML pages that works across multiple browsers under Windows, Macintosh OS X, Linux and other flavors of Unix. It…uses native fonts, so they resize when you change the size of the text in your browser, they print at the full resolution of your printer, and you don’t have to wait for dozens of images to be downloaded in order to see the mathematics in a web page. There…is no need to preprocess your web pages to generate any images, and the mathematics is entered in TeX form, so it is easy to create and maintain your web pages. Although it works best with the TeX fonts installed, jsMath will fall back on a collection of image-based fonts (which can still be scaled or printed at high resolution) or unicode fonts when the TeX fonts are not available.” The examples are impressive…
Several people have created family trees to trace the evolution of programming languages (see, for example, the Mother Tongues chart). Given the news that closures are being added to Objective-C, I’d like to see someone trace the ideas that make up programming languages, such as user-defined data types, generators, forall constructs, and so on. These seem to me to be like “jumping genes” (more properly called “transposons”) that can move from one organism to another. Maybe UPL (the Ultimate Programming Language) isn’t going to evolve; maybe it’s going to accrete…
Had an interesting discussion today about the pros and cons of profs becoming Facebook friends with their students. On the one hand, profs want to connect with students as individuals — it makes education more effective, as well as more fun. On the other hand, everyone is entitled to keep their private and professional lives separate, but social networking sites blur the boundaries between them to the point of nonexistence.
Similarly, some people think that students will find an “invitation” to be a prof’s Facebook friend as hard to turn down as an “invitation” from your boss to play golf (as in, “Uh oh, if I don’t, I won’t get the same referrals/references/opportunities as people who do”). On the other hand, a lot of shy people are more comfortable networking electronically than face-to-face.
So, what do you think? Don’t do it at all? Create a group called “Friends of Professor X”, remind students to make sure their privacy settings (and posted content) are appropriate, and invite them to join that? Something in between? What would you do?
One of the things I teach my students is that the real purpose of a schedule is to tell you when to start cutting corners and dropping features. The ticker on my web site tells me I have 489 days left in my contract with the university; I signed up hoping to study ways of teaching second-stage novices [1] how to be better programmers, but after four failed attempts to get NSERC funding [2], it’s time to lower my sights. Here are the things I’d like to finish off before my stint at U of T is over:
Everything else has to go by the boards. In particular:
On the upside, Sadie got me some biking gear for Christmas, so now I’ll have to shed the twenty pounds I’ve picked up in the last couple of years, and I get to start taking our daughter to music classes every week. To quote a friend, it isn’t what I planned—it’s better.
[1] People who already know how to write programs, but not how to develop applications. I’m specifically interested in undergraduate Computer Science students, and graduate students in other disciplines.
[2] Companies like Nitido, the Jonah Group, Idee, and Rogers have kindly donated a few thousand dollars each to keep things like DrProject going, as have several of my fellow professors, but a $24K grant from The MathWorks is the only “research” funding I’ve been able to raise.
[3] As I said yesterday, I’m looking for a mentor in the Toronto area who can show me how to do this.
This one has come up before, but with a near year dawning, I think it’s worth revisiting. Suppose you had been asked to audit a medium-sized software development project—something with a couple of dozen people, split between two or three sites, with a couple of hundred thousand lines of moderately complex code already written. What would you do to determine how healthy the it was? Obvious things include:
What else? What would you do, and why?
Now put your answer aside, and answer a slightly different question. What would you do if you were faced with a dozen teams, each with four to six people and roughly ten thousand lines of code? This is the situation hundreds of lecturers like me face every term when teaching project-based software engineering classes to undergraduates, and all of the strategies above fail:
Pious hopes and protestations notwithstanding, students mostly learn what’s assessed. This is partly an economic decision (given a choice between putting hours into something that will show up on their transcript, and something that won’t, the former is the rational strategy), but it’s also true that if we grade one thing and not another, we’re sending a pretty clear signal that we think the first is more important than the second. I therefore believe that if we can’t come up with robust, affordable ways to give students marks for how they build software, we will continue to produce graduates who know how to write legal Java or Python, but not how to build real-world applications without heroic effort. I’d welcome your proposals…
I’d like to be a better teacher. In particular, I’d like to drag my teaching practices into the 21st Century and start doing more with the Interweb than bulletin boards and static HTML slides. I picked up a couple of highly-rated books, but the first didn’t contain anything that wasn’t obvious, while the second was a good example of stilted, pompous academese at its worst. I’d therefore like to find a mentor here in Toronto—someone who’s using modern technology for teaching in creative, innovative ways, and is willing to take about her/his experiences. If you know someone who fits the bill (or better yet, are that person), please drop me a line.
Titus Brown’s latest post (which opens with, “The latest hot idea for making a protein-protein interaction database leaves me lukewarm”) should be read by every computer scientist who’s “just trying to help”:
…while tools can be helpeful, the fundamental problem is much more, well, fundamental: science is hard. Connecting the dots is hard. Thinking clearly about the problem and separating the wheat from the chaff, so to speak, is hard. I worry that for the majority of biologists, new tools are going to be more distracting than helpful. We need to build simpler, easier-to-use tools, not more complicated tools; we need to keep our focus on the goal (solving biological problems) and not just on intermediate stages like improving databases and building better prediction tools.