Archive

Archive for January, 2007

CS Games 2007

January 22nd, 2007

CS Games are an inter-university competition involving Computer Science, Computer Engineering and Software Engineering students from across North America. As their site says:

For an entire weekend, you will be challenged both individually and cooperatively in a medley of interdisciplinary competitions targeted at students of any undergraduate year, including first years!It’s not about your IQ. Nor is it about your hacking talents or how you own everyone at gaming. It’s not about being resourceful in a different environment or being able to work with gurus from across the continent. It’s about ALL of the above, and more importantly, it’s about having a great time in a great city!

U of T has never sent a team — I wonder if anyone’s going to fix that this year? ;-)

Announcements, Teaching

Jeremy Miller on the Anti-Team

January 22nd, 2007
Comments Off

Funny post. Until you’ve been there.

Uncategorized

Links for Breakfast

January 22nd, 2007
Comments Off

The Project Horseshoe report on “Building Innovative Games that Sell” is out. Conicidentally, so is Joel Spolsky’s review of Dreaming in Code, which is meant to be a Soul of a New Machine for the early 21st Century.

Uncategorized

Many Ways to Break

January 21st, 2007

One of the driving forces behind DrProject was instructors’ need for a scripting API to support batch operations (such as creating one repository for each pair of students in a course, or filing the same ticket against each team). We have mostly succeeded, but as we discovered last week, that just means that we’ve introduced another place for bugs to breed.

The problem was this: when I created projects using the web-based administration interface, students could access the associated repositories without any trouble. When I created the project from the command line, using the drproject-admin tool (which is just a text-based wrapper around the same Python that the web system uses), students couldn’t check out their repositories. The reason? Out of habit, I’d typed:

sudo drproject-admin /home/courses/csc407/drp project create g0llum

rather than:

sudo -u csc407 drproject-admin /home/courses/csc407/drp project create g0llum

The result? The files in the repository were owned by root, which meant that Apache couldn’t read them. Once the files were owned by the csc407 dummy user, everything worked fine.

Update: and it appears that after this happens, the .svn_access file that controls who can get at particular repositories isn’t updated any longer, and no error message is generated.  I have some patching to do…

DrProject

Jolt Finalists

January 21st, 2007
Comments Off

This year’s Jolt award finalists are up. I’ve read nine of the fifteen books, but recognzie less than 20% of the names of the products… Must be getting old…

Uncategorized

Debugging Trick

January 21st, 2007
Comments Off

A neat trick when debugging: give the object a unique ID (to avoid confusion if it’s relocated by the garbage collector in a way that changes its address), then break on that ID.  I really, really want someone to write a good book on debuggers.

Uncategorized

Threading Maturity Model

January 21st, 2007
Comments Off

Two good posts calling for a Threading Maturity Model and Personal Threading Maturity Model respectively.

Uncategorized

Udell on use experience vs. user experience

January 21st, 2007
Comments Off

Another great post from Jon Udell, this time calling on developers to worry about use experience before user experience.  Coincidentally, I was trying to explain a couple of days ago to a senior figure in a publishing firm why I hadn’t reviewed any of their books recently.  “I find out about new releases via blogs,” I said.  “O’Reilly, Addison-Wesley, APress, and others all blog new books by category, so I don’t have to wade through spam to find emailed press releases, or remember to go to your site once every couple of months to find out if you’ve updated it.”  The response?  “What’s a blog?”

Uncategorized

Adam Goucher’s QA101

January 19th, 2007

Adam Goucher has put the notes for his QA 101 course on the web.  Thanks, Adam.

Uncategorized

Four Reviews

January 19th, 2007
Comments Off

I have a confession to make: I fold down page corners when I’m reviewing technical books. Only technical books, mind—I’d never, ever do something like that to a novel. And yes, I’ve tried yellow sticky notes, bits of strings, and other mnemonic devices, but somehow, a folded corner is just more…satisfying.

My copy of the second of Alistair Cockburn’s Agile Software Development has a lot of folded-down corners, most of them marking passages that I want to use in the two new software engineering courses I’m going to be teaching next (school) year. His nuanced examination of development processes—what they are, where they come from, why there’s more than one, and how to tell which is right for your project—is almost always quotable, and frequently thought-provoking. Much of the credit for this goes to the fact that it is so clearly derived from extensive personal experience: Cockburn makes liberal use of war stories to illustrate his points.

Of course, nothing is perfect. While he tries hard to be even-handed, his bias toward planless methodologies [1] sometimes shows through. I also found myself wanting him to cite data more often: personal experience is invaluable, but I’d like to know how general his is. Those are both quibbles, though; this is a very good book about issues that people running small and medium-sized teams have to grapple with over and over.

My other Christmas find was Robert Sabourin’s I am a Bug. Sabourin, a software tester, wrote the book in the late 1990s to explain to his daughter (then aged 8) what QA was all about. She drew the illustrations, and the result is warm and funny without ever being condescending. (I particularly liked the bit that said you can have too many frogs…) The book is self-published, so you’ll have to order it from Amazon.com or another print-on-demand outfit.

Book number three, Benantar’s Access Control Systems, is unfortunately much less satisfying than either Cockburn’s or Sabourin’s. Keeping track of who can access what has always been a hard problem; as applications go global, it is an ever-more-significant element in system architecture and design.

Unfortunately, this book is more theoretical than practical. In the section starting on page 160, for example, the author explains what a Turing Machine is, so that he can later sketch a proof for the undecidability of the general safety problem. That’s nice to know, but some Java, C#, or Python that actually implements RBAC (or at least a few class diagrams showing what an implementation would look like) would have made a nice counterpoint. Benantar presentation is also rather IBM-centric, and focuses more than I’d have liked on role-based access control (RBAC).

Last and least is Andersson, Greenspun, and Grumet’s Software Engineering for Internet Applications. I think the authors meant to show how theory and practice inform each other; what they’ve produced instead reads like a set of course notes that have been updated haphazardly by several different lecturers over a ten-year period. Sebesta’s Programming the World Wide Web is better organized and more up-to-date; if you’re looking for an all-around textbook, it’s a much better buy.


[1] More often called “agile”; I’m calling them “planless” here to draw attention to the spin factor in people’s choices of names.


Eve Andersson, Philip Greenspun, and Andrew Grumet: Software Engineering for Internet Applications. MIT Press, 2006, 0-262-51191-6, 398 pages.

Messaoud Benantar: Access Control Systems: Security, Identity management and Trust Models. Springer, 2006, 0-387-00445-9, 261 pages.

Alistair Cockburn: Agile Software Development: The Cooperative Game (2nd ed). Addison Wesley, 2007, 0321482751, 467 pages.

Robert Sabourin: I am a Bug. Self-published (available through Amazon.com), 1999, 62 pages.

Robert W. Sebesta: Programming the World Wide Web (3rd ed). Addison Wesley, 2005, 0321303326, 672 pages.

Books