A while ago, I wrote an article about HDF Group's Hierarchical Data Format (HDF5) Library . In the article, there were some brief installation instructions. This article adds some refinements to the installation instructions. Continue reading "Building HDF5 in Microsoft Visual Studio 2008" »
Sunday, August 2. 2009
Building HDF5 in Microsoft Visual Studio 2008
Sunday, May 3. 2009
64 Bit Data Models
As we move to 64 bit processors, variable types and their widths change. I had originally thought that there would be a consistent naming convention as one moved from 32 bit programming to 64 bit programming. At a 64 Bit Wiki Entry, I find that such is not the case. Different compilers choose different ways. For example the Microsoft VC compiler will use the LLP64 model which keeps an int as 32 bits. This is something that one needs to keep in mind when re-compiling software created for 32 bit processors in a 64 bit environment.
In the same article, mention is made that it is a good habit to make use of 'ptrdiff_t',
which is declared in
Sunday, April 26. 2009
Boost Preprocessor: Arrays
Typically, in some form of C++ best practice summaries, it is recommended to stay away from using the C++ Macro Preprocessor. For the most part, except when I needed to Microsoft MFC message maps, where use preprocessor macros, I have followed this maxim. Until now. Continue reading "Boost Preprocessor: Arrays" »
Friday, January 2. 2009
Wanted: A Single C++ Singleton
The Singleton Concept is a reasonably simple concept. For writing software, the concept of a singleton stipulates that only one instance of a class will be instantiated during run time. All references to an object of a particular class will be to only one instance. The instance is usually created at program startup, often times before 'main', and destroyed at programs end, often after 'main' exits. Continue reading "Wanted: A Single C++ Singleton" »
Saturday, November 1. 2008
MinHeap: C++ Template Implementation of Minimum Heap Algorithm
I am in the process of developing a trading application based in C++. I've realized that it would be useful to test code and algorithms off line, before connecting to a paper-trading system, or even a live scenario. Continue reading "MinHeap: C++ Template Implementation of Minimum..." »
Wednesday, October 29. 2008
Choosing a GCC Version
Debian Lenny has a very recent GCC Compiler for those who wish to build things with the latest and greatest, which is v4.3 something or other. On the other hand, the kernel is built with GCC 4.1. Kernel modules, as a result need to be built with GCC 4.1. The VMWare tools are one example of this requirement.
I've finally figured out what the CC environment variable can be used for. By keeping gcc-4.3 as a standard default, one can use 'export CC=gcc-4.1' to make use of the older GCC v4.1 compiler for compiling kernel modules.
Friday, October 10. 2008
Boost Build
Boost C++ Library has a large number of interesting modules. Most of the modules are header only templates readily used on many platforms and many recent version compilers.
A few of the modules, such as Regex and DateTime, need to be compiled into static or dynamic link libraries. To do so, requires the use of Boost's build tool: bjam.
To build all variations of the libraries, single/multithreaded, debug/release, and static/dynamic, the command is simple (example for windows):
bjam --toolset=msvc --build-type=complete stage
Finding out how to build a subset of the libraries is a bit harder. The options I use are:
bjam --toolset=msvc variant=debug,release threading=multi link=static stage
Thursday, July 3. 2008
Upgrade from Eclipse Europa to Ganymede (with painful Subversion)
Today, I upgraded from Eclipse/CDT Europa to Eclipse/CDT Ganymede. (CDT meaning C++ Developer Tools). The Eclipse upgrade was painless: download the Eclipse/CDT package, expand it, and start eclipse from within the directory. After pointing it to my workspace, everything was there. Nicely simple. Continue reading "Upgrade from Eclipse Europa to Ganymede (with..." »
Monday, June 16. 2008
Keyword Matching v2
In a previous blog article, I presented the beginnings of a Keyword Lookup class. This article takes that work, turns it into a template and makes it useful for longest match lookups.
I'll have to compare this lookup library with what a C++ map or unordered_map does for lookup speed. I'm hoping that when a comparison is made, that this routine is indeed faster. I'm thinking it might be because, even though a map will do a binary search through it's map, complete strings are compared at each step. With this library, keyword patterns are added to a rooted tree of characters, possibly reducing the amount of time spent matching.
I must admit that at each match step, there is a linear search performed through a list of likely character candidates. To improve the search, I've been thinking that once the pattern tree has been created, it could be sorted so that each step search can be done with a binary search. This will be something for next time. Continue reading "Keyword Matching v2" »
Friday, June 6. 2008
Wt, Some Build Modifications
Back on 2007/10/03, I wrote about installing Wt (a C++ library and application server for developing and deploying web applications) on a Debian server. I've revised things a little bit since thing while building Wt v2.1.3. Continue reading "Wt, Some Build Modifications" »
Thursday, May 29. 2008
Evaluating Inter-Process Communication Frameworks
I'm reposting some comments regarding IPC frameworks that I made to the Boost-Users listserve today. It is in response to someone making unsubstantiated remarks regarding the relative merits of ACE and Boost, and another looking for some substatiated remarks. What follows are some substantiated remarks, based upon my personal experience with it and several other libraries. Continue reading "Evaluating Inter-Process Communication Frameworks" »
Sunday, May 25. 2008
A Keyword Matching Algorithm
There are a number of well known algorithms out there for taking in a set of keywords and matching them against test. Aho and Corasick comes to mind, as does the Wu Manber algorithm (the latter I've implemented, and the code resides elsewhere on this site).
For another project, I didn't need something quite so fancy. Actually two projects come to mind. One is that I have a input comma separated value file which includes stock symbols, a description, and the associated exchange. I wanted to keep statitics on what is read in on an exchange basis. My first kick at the can on this was to implement a string look up table using
Monday, April 28. 2008
HDF Group's Hierarchical Data Format (HDF5) Library
I've been working with HDF5 Group's HDF (Hierarchical Data Format) library for the last little while. It is a mechanism for managing self-described data collections, no matter how large or complicated. From their website, here are a few features: Continue reading "HDF Group's Hierarchical Data Format (HDF5)..." »
Friday, April 25. 2008
C++ Library: ACE RADIUS
In putting together a mechanism for handling authentication and accounting with a Cisco Voice Gateway, such as the AS5350XM, I came across the ACE RADIUS Library. It is self described as a free, open source portable RADIUS stack. Continue reading "C++ Library: ACE RADIUS" »
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" »