Cyberspace Law and Policy Centre, University of New South Wales
Unlocking IP  |  About this blog  |  Contact us  |  Disclaimer  |  Copyright & licencsing  |  Privacy

Thursday, January 11, 2007


Goodbye Weatherall's Law, Hello World!

When we tagged Kim Weatherall with the 'five things you didn't know about me' meme we weren't quite expecting her to reveal the fifth 'thing':
"And here's the last thing you didn't know about me: I am now writing my last ever post on Weatherall's Law. Yes, I've decided (and I've told a few people this recently) that it's time for Weatherall's Law to retire."
This is sad news for the IP Blogosphere. Kim has been blogging since 2004 with depth and quality that is rare in the blogging world. Weatherall's Law was essential reading for anyone interested in Australian intellectual property issues. Kim's recent analysis of the Australian Copyright Amendment Act 2006 has produced some of her best posts ever and she must be credited for her tireless dedication to ensuring that Australian consumers, educators and researchers received a better bargain under the recent amendments. Without Kim's critiques, submission and appearance before the Senate LACA Committee, the Australian copyright commons would undoubtedly be worse off.

We understand that Kim is moving on to bigger and better things now (that's right, academics do need to do publications once in a while). The House of Commons wishes Kim all the best in her future endeavours.

Kim mentions that she hopes that one day, someone will teach her programming. Ben and I will happily oblige next time she is in town. However, for the time being, let's send Kim out in style (and begin her programming tutelage) with an adaptation of the first thing every programmer learns, "Hello World" (C++):

#include <iostream>
using namespace std;
int main()
cout << "Goodbye Weatherall's Law, Hello World!" <<endl;
std::cout<<"Goodbye Weatherall's Law, Hello World!"\n;

return 0;

Update: I am told that the use of "endl" in this program will lead to certain disaster so the program has been revised upon the advice of a "C++ language paralegal". See the comments for more info.

(Pictured: "Copyright", Randall Munroe - via his excellent webcomic xkcd, available under a Creative Commons Attribution-NonCommercial 2.5 license)


Blogger Catherine Bond said:
For us non-programming types, thank you for the including the Wikipedia reference for "Hello World!"
Blogger Kim said:
Thanks Commonsers. Much obliged for the overly-kind eulogy.
Blogger Andrew said:
I'm a C++ language paralegal (not quite anal enough to be a language lawyer), and this code, simple though it is, wouldn't pass review. The reason is the use of endl. A good rule of thumb: Don't use endl, because it's almost exactly never what you want.

The endl directive does two things: It outputs newline ('\n') to the stream and then flushes the output buffer. This is unnecessary if the stream is set to flush automatically on newline, as is the case with cout. So actually, the buffer is flushed twice here. (The second flush is effectively a no-op, so it's not a serious efficiency problem, but it makes it doubly obvious that the programmer used endl without thinking.)

Rather than use endl, it's almost always better to either set auto-flushing, flush manually or just let flushing happen when it happens.

This is better:

#include <iostream>

  std::cout << "Goodbye Weatherall's Law!\n";
  return 0;

As a final comment, if you're going to talk programming here, you'd better allow the <tt> or <code> tags. :-)
Blogger Andrew said:
Just in case anyone is curious, the Jargon File has a good definition of the term "language lawyer".
Post a Comment

Links to this post:

Create a Link

<< Home

This page is powered by Blogger. Isn't yours?