How to Write C++ Classes
by Ole Eichhorn
"If you're programming in 2003, you're most likely coding in either C++ or Java. These languages are quite similar syntactically, and provide a solid, well-defined way to package functionality in objects. They also share a common defect, they make it difficult to hide interface details from implementation details. I have the solution - read on!"
Programming In Ruby
by Dave Thomas and Andy Hunt
"Take the pure object-orientation of Smalltalk, but remove the quirky syntax and the reliance on a workspace. Add in the convenience and power of Perl, but without all the special cases and magic conversions. Wrap it up in a clean syntax based in part on Eiffel, and add a few concepts from Scheme, CLU, Sather and Common Lisp. You end up with Ruby, a language that is already more popular than Python in its native Japan."
Human Task Switches Considered Harmful
by Joel Spolsky
"A programmer coding at full throttle is keeping zillions of things in their head at once: everything from names of variables, data structures, important APIs, the names of utility functions that they wrote and call a lot, even the name of the subdirectory where they store their source code. If you send that programmer to Crete for a three week vacation, they will forget it all."
Object Oriented Design
Canonical Object Idiom
Defining a Baseline Set of Functionality for Objects
by Bill Venners
"In this installment of the Design Techniques column, I propose 'the canonical object' as a Java idiom. The article discusses the fundamental services that all objects in general should offer, shows how objects can offer these services, and names such objects 'canonical.'"
The Lighter Side Of Computers
One For The Sysadmins
A server that crashes every 10 hours, won't reboot for another 2-3 hours, but runs happily in between? What could possibly have caused that?