Software

Evolution of mankind...
Computers have been in the center of my interest almost as far as I can remember. Somewhat surprising when I look back, the first computer that I got in ’92 was actually a notebook: a glorious and even at that time hopelessly outdated model with an 16-bit Intel 80286 processor running at 6 MHz, 10 MB of hard disk, 512 KB memory and a b/w display—being utterly mediocre as they are, I remember those specifications quite vividly (and probably will never forget them). A good year later the device’s LCD thankfully broke down, so I obtained an upgrade to a desktop housing a 80486 CPU at 80 MHz, which was a huge step up to say the least and corresponded to the equivalent of a middle class machine back then—therefore something where you could actually do something with. From that point on I was completely hooked with computers and the ongoing technological development in that area. Spending most of my free time either in front of the screen or reading books, without much further ado, I quickly had the archetypal reputation of a true computer geek in school with all the tremendeous bona fide attached to this particular “qualification”.
More or less naturally, I started very soon to code my own little programs in QBasic, which was shipped with every DOS-operated computer at the time and posed the language of choice for virtually any beginning programmer. Looking back, I would rather refer to this as the most feeble try&error attempts. With the passing of time more and more languages came to the repertoire. In summary, I’ve worked on and off with C/C++, Pascal/Delphi, Assembler and various other programming languages since the middle ’90s. As this very webpage probably shows you, I’ll also try my hand on (dynamic) web page design from time to time...
After tuning down the computer time during my university studies, all this experience became quite handy during my PhD time. Aside from a couple of tools that we are strictly using internally in our research group, more recently I finished the reference implementation cohomCalg for the algorithm we found to compute cohomology group dimensions.
Code pieces on the loose:
While most of my early projects in the ’90s and early 2000s did not progress to any reasonably polished state and were only developed for the fun of it and to learn code structures, a few bits and pieces of this ancient stuff are still floating around the internet. For example, there are still two of my projects available in “the developer’s toolbox” archives of flipcode.com, which was a very nice programmer’s resource that unfortunately shut down a couple of years later:
- a library for vector, matrix and quaternion computations, which one frequently requires in 3D graphics
- a very elementary processor detection class, which mostly consisted of a big translation routine from CPU state values to human-readable identifiers
Back in the early 2000s I was trying to get a basic 3D engine to run, where I also learned quite a bit on the DirectX and OpenGL graphics API structures. The Genesis3D open source engine was in it’s early stages at the turning of the millenium—but already a vastly huge project from my point of view—and I attemped to boil down the basic workings of such an engine to a simple toy engine. Funny thing, however, is that the Genesis3D developers apparently took advantage of my processor detection class from flipcode and integrated it in the engine. And since this engine project is still mentained and developed further under the name G3D engine, my name can therefore actually be found under the credits—despite the fact that I never actively contributed to it... :-)
Aside from that some limited code blocks from high school projects may be floating around the web as well...

