I wrote a short article comparing ODF with OOXML and posted it on DZone. It ended up being linked up on reddit. Then I got a bunch of traffic. Way lots too much traffic for my poor ineffecient blosxom based server to handle. It is time to upgrade. Sorry about that folks.
Wednesday, March 26. 2008
C++ Custom Containers and Iterators
I'm using the HDF5 File System for holding time series information. Rather than writing my own binary search implementation to find particular elements within a particular saved time series, I thought it would be clever if I designed the interface so I could use the Standard Template Library's 'find' iterator. If I can make the STL's 'find' work, then all the other iterators should work just as well, and thus I'll have an easy mechanism to access time series with very little programming involved. Continue reading "C++ Custom Containers and Iterators" »
Tuesday, March 25. 2008
How Not To Form a Standard
Rob Weir has a blog called An Antic Disposition where he discusses The Disharmony of OOXML. The eloquent center piece of his article is a table representing how various applications represent a smiple text string with one word in red, represented here verbatim: Continue reading "How Not To Form a Standard" »
Who Needs a SafeD Net?
Bartosz Milewski, a member of the 'D' design team, wrote an article about making the programming language D even safer than it purportedly already is. He called that subset: SafeD. In the process of making D and SafeD look good, the failings of C++ were highlighted in comparison. To his credit, the author was able to list a few good features: performance, low-level access, and powerful abstractions (the latter being slighted at the same time for apparently only being useful in operating systems or large systems design). Continue reading "Who Needs a SafeD Net?" »
Programming Chaos on the Wings of a Butterfly
From xkcd, a webcomic of romance, sarcasm, math, and language.
Open Source Site of the Day -- Processing
This should actually be filed under a few different headings (which is something I'll do once I get the new blog software in place). Those headings being programming, software development, visualization, animation, imaging, interacting, and open source. Continue reading "Open Source Site of the Day -- Processing" »
Sunday, March 23. 2008
C++ Implementation of Wu Manber's Multi-Pattern Search Algorithm
I'm finding that this algorithm is useful in a number of situations. Out in the real world, it is found in Network Intrusion Scanners, grep engines, as well as text processing. Continue reading "C++ Implementation of Wu Manber's Multi-Pattern..." »
Friday, March 21. 2008
The ODF - OOXML Three Ring Circus
I've been following along with the standards-wannabe known as OOXML. Microsoft's want this proprietary standard so much, you can feel the flames of hell leaping higher. Ok, so my visual metaphors are getting out of hand. I recently did lighting for a sketch for BMDS's production of GUMS, which in itself is a series of comedic sketches. Anyway, the sketch of which I'm speaking is where the Devil, played by Steve Watts, delivers a monologue about recent arrivals in Hell. For example, the atheists are called a bunch of nitwits, the Christians are scoffed at due to the Jews being right. Very few groups were left out. And I must say, my 'fires of hell' lighting worked out quite well. Continue reading "The ODF - OOXML Three Ring Circus" »
Wednesday, March 19. 2008
Cygwin Ports Project for KDE
Downloading Cygwin from Cygwin gets you a basic Cygwin configuration. I also wanted KDE, which isn't part of the basic stuff. The site Cygwin/XFree seems to have subsided a while ago. But that site did point me to the Cygwin Ports Project. As of this writing, they have KDE 3.5.8, but not KDE 4 yet. Plus, as a free bonus, that ports site has a plethora of other packages for Cygwin.
Monday, March 17. 2008
Don't Use Defined Macros, Use Templated Inline Functions Instead
In the olden C days, one would use #define MACRO .... to build an inline macro for computationally quick evaluation of some calculation. When using that method of programming, one needed to remember to parenthesize extensively in order to prevent wierd things from happening when calling the function with an expression.
The modern approach is to use a template for an inline function, which yields all the efficiency of a macro, plus all the predictable behavior and type safety of a regular function (item #2 in the book Effective C++). An example declaration follows:
template<typename T> inline void DoWithMax( const T& a, const T& b ) { f( a > b ? a : b ); }