Software Carpentry

Helping scientists make better software since 1997

Archive for April 2006

Corrections Done

All the outstanding minor corrections to the Software Carpentry notes have now been made; there are still 21 diagrams outstanding, but they should be in by Sunday. My thanks to everyone who provided feedback—especially Adam Goucher and his very sharp eyes.


Written by Greg Wilson

2006/04/28 at 14:37

Posted in Lectures, Version 3

Zipf’s Law of Feedback

Zipf’s Law says that frequency is inversely proportional to rank, i.e., the second most common word in a large body of text will occur half as many times as the most common. I have observed an even steeper curve for Software Carpentry feedback: of the 336 corrections I’ve received, 212 are from one person (Adam Goucher), 21 from Matthew Moelter, 12 from the next two people, and then we’re down into the curve’s long tail. Has anyone ever done similar stats on the volume or frequency of contributions to software projects?

Written by Greg Wilson

2006/04/17 at 14:23

Posted in Uncategorized

341 Words

The glossary for the Software Carpentry course now defines 341 terms. What may be more interesting (for those of you who have been following the course’s development) is what I’ve taken out:

  • Code coverage and execution profiling: they really should be in the course, but don’t fit into any of the existing lectures.
  • Date and time manipulation: it isn’t part of software engineering per se, but like Unicode, floating-point roundoff, and a dozen other things, this is one of the subjects that everybody just ought to know about. Again, it doesn’t fit neatly into any of the existing lectures.
  • Cross-site scripting, and a few other security-related terms: the security lecture has been completely revamped. It’s much less ambitious, but (I hope) more informative.
  • Everything to do with UML: I’ve never used it outside of class, and have only ever worked with one person who did. I therefore feel like a bit of a fraud including it in a course on practical software development.

Things that I want to add (eventually):

  • Building desktop GUIs: yes, people still do this, and it’s a great way to introduce some more OO concepts. Now that there’s a book on wxPython, maybe I’ll finally do this.
  • User interface design, because I agree with Catherine Letondal (who has provided some very useful feedback): you shouldn’t show someone how to build a GUI unless you show them how to build a good one.
  • Numerical programming, because I agree with Tom Fairgrieve: people ought to need a license in order to use floating-point numbers. I’ve actually written this one a couple of times, but (a) Python’s Numeric module is still in flux, and (b) I don’t want to dive into this unless I have something concrete to say about how you test floating-point code.
  • Extended examples: I’d like to write at least three or four mini-projects, each taking about an hour to describe, because I believe there are things you can only learn from examples.

For now, though, I’m going to concentrate on getting this release out the door…

Written by Greg Wilson

2006/04/09 at 13:52

Posted in Content, Version 3

New Security Lecture Up

A new lecture on security is up. It has changed a lot from the hash I presented in the fall; feedback would be very, very welcome.

Written by Greg Wilson

2006/04/05 at 14:59

Posted in Lectures, Version 3

Integration and XML Lectures

Hot on the heels of yesterday’s lecture on integration (which desperately needs iron-willed editing) comes a rewrite of the XML lecture. This is a mix of HTML formatting rules and tags, and DOM; I’d appreciate knowing if you think it hangs together, and whether there needs to be more on how to process XML programmatically.

Written by Greg Wilson

2006/04/04 at 12:06

Posted in Lectures, Version 3