Sought: 500 Great Lines Of Open Source Code
The editorial staff of the Open Source Annual 2005 writes "Be part of the Open Source Annual 2005 and enter our hacker contest for the best 500-line open source program. The best program will be printed in next year's issue of the book. Following lasts year's huge success with our Open Source Annual, a mostly German reader concerned with the various aspects of open source, we are currently busy compiling the second edition of the annual which will be released next March for the CeBIT 2005 in Hannover. Aside from articles on subjects like economics, law and open innovation, to name but a few, we plan to print the source code of an open source software program." (Read more below.)
"Any OSS program whose source code is no more than 500 lines of 80 characters may enter the competition. Anything that tickles your fancy, from online pong games to 'OpenGotchis,' may be submitted until October 15 to winner@ig.cs.tu-berlin.de. Make sure to document your code within the file submitted. You may also want to add a couple of explanatory lines should you so wish.
An online vote will be held this December on our website Think-Ahead.org. Not only will the winner's code make it into the book but he shall also receive a copy of both the 2004 and the 2005 annual."
Pretty much yes; but the thing is Cocoa programming isn't something you pick up by reading API docs. Cocoa programming is *different*, and until something makes you grok it, it will be baffling.
I'd written Win32, BeOS, GTK, Qt and Java AWT/Swing apps, so I figured Cocoa would be just a matter of adaptation, since the above systems were all ( with the exception of Win32 ) basically the same, just with slightly different semantics.
I was shocked to realize that Cocoa is its own thing, and is completely and utterly different ( albeit, it shares some basic ideas like "views" and "events" ).
But I bought a few books, did the tutorials, and then whammo it all made sense. My eyes were opened, and I understood.
lorem ipsum, dolor sit amet
Actually, there's nothing in the program that requires stdio.h, though of course it's good form to #include it for when someone wants to add features to the program.
And you really should call exit(0), rather than using return. A sensible system will use the return value of main() as the exit status, but there have been systems (both unix and non-unix) where this doesn't happen.
To be truly paranoid, I might note that I've seen cases where exit() returned an error, and I had to add return(0) to handle that "can't happen" case.
It's amazing how many things can go wrong. I've long liked the theory that programming is a kind of computer game. When your program does its job correctly, you get a point. When something in the system can find a way to misinterpret what your code said so that it goes berserk, the system's designers get a point.
This is one of the more challenging games in existence. But we get paid well to play it.
Those who do study history are doomed to stand helplessly by while everyone else repeats it.
Mail::Sendmail is technically 807 lines, but over 400 lines of that is
documentation (POD) after the __END__ of the actual program code; if you
just count the code itself, it's 388 lines.
Oh, and unlike a lot of modules, it's got almost no dependencies: you've
gotta have a network connection, and Perl, and that's it.
And the interface is very convenient to work with.
Cut that out, or I will ship you to Norilsk in a box.