|
August 2006
August 29, 2006
Pass the Event Buck
When the events you need to handle can come from many discrete and independent sources (such as machines on a network), it's often a good idea to keep your event-handling classes similarly discrete and independent, and let responsibility for an event cascade from one handler to the next. In his article "The C++ Chain of Responsibility Pattern and Network Events," Stephen Morris demonstrates just how useful this concept can be when building a network monitoring system.
Posted by Kevin Carlson at 01:40 PM Permalink
|
August 28, 2006
Sun's DNA Viable?
Maybe Sun Microsystems has life in it yet. The latest evidence that Sun is still alive and kicking comes from the Institute for Genomic Research, where three of Sun's Opteron-based Sun Fire servers recently outperformed an existing bank of Alphas the institute had been using for its very demanding gene sequencing applications. It's a PR win for Sun, but it's also solid evidence that Sun's switch to x86 was a wise move. Full story here.
Posted by Kevin Carlson at 04:31 PM Permalink
|
August 24, 2006
Hone Your Abstractions
So much of good programming is about envisioning the proper abstractions and keeping your model coherent both in your head and in your code. In C++, template metaprogramming is at the heart of abstraction. Which is why I was pleased to see that Boost's David Abrahams will be leading a two-part class on the subject at
Posted by Kevin Carlson at 02:28 PM Permalink
|
August 22, 2006
There's Work Yet to Do
It's easy to feel like all the good ideas in software are already out there. We can just pull from our existing toolbox of proven concepts, plug it all together, debug, and go. But conceptual innovation in software development is not dead; take it from Herb Sutter. He argues that we're just getting started, and in fact we're on the verge of a revolution every bit as significant as the object revolution of the '80s and '90s.
Posted by Kevin Carlson at 02:08 PM Permalink
|
August 15, 2006
Mother Nature, Hacker
Sometimes emulating nature is the smartest and easiest course of action. Instead of building complex, monolithic solutions, it sometimes pays to do our best Thoreau imitation and sit for a while contemplating ants. An ant colony solves problems with sheer numbers: One ant can't do much, but thousands of ants are a formidable problem-solving engine. Ant Colony Optimizers (ACOs) are the algorithmic embodiment of this idea. In his article "Ant Colony Algorithms," Andrew Colin shows how useful such tools can be, especially for problems like network routing over changing topologies.
Posted by Kevin Carlson at 12:53 PM Permalink
|
August 08, 2006
An Error You Can't Refuse
It's notoriously easy to ingore the error code returned by a function. Yet exceptions sometimes seem like too blunt an instrument. The concept of mandatory error codes falls somewhere in the middle, encouraging good practice, yet not detonating the process. In "Mandatory Error Codes Revisited," (http://www.ddj.com/dept/cpp/191601612) Guy Peleg modifies Andrei Alexandrescu's idea, fixing a few niggles that made it problematic.
Posted by Kevin Carlson at 02:24 PM Permalink
|
|