Archive

Archive for January, 2008

SimpleDB

January 18th, 2008

For a small project of mine, I needed a really simple DB (so simple, you can’t call it a DB actually ;) ). The requirements were:

  • Fast lookup
  • Storage of raw byte streams for both key/data
  • Pure MSIL – otherwise, I would have used the BerkeleyDB
  • Checksumming for each entry to detect long-term corruption

Read more…

SphereAO

January 18th, 2008
Simple Ray-Tracer Screenshot

Simple ray-tracer screenshot

Over the last two days, I’ve written an extremely simple ray-tracer in C#, just as a proof of concept that this can be done in less than two hours, even without preparation. See attached screenshot…

In comparison, writing a simple ray/sphere intersection routine in HLSL took roughly 10 minutes, including phong lightning on the hit-point and binding the light to a FX Composer external light source, plus the performance was much more impressive :)

Home datacentre …

January 12th, 2008

Currently I’ve got 13 CPU Cores in 8 PCs at home … going to be the normal 8 CPU-Cores in 6 machines soon again, but it’s a kinda funny feeling to have that much computing power standing around at home. (Note: The slowest is a K8 1.8 GHz, so this is not outdated crap but rather Core 2 Duo & Quad stuff ;) ). Maybe I should start a SETI@Home team quickly …

Updated the cast article

January 7th, 2008

Due to popular demand, I’ve updated the “C++ background: Static, reinterpret and C-Style casts” article. The update clarifies that the compiler may put the virtual function table (if it uses one) where it wants. The only guarantee by the C++ standard is that members inside a single declaration block (public:,private:) will not get reordered. I remember that the fact that C++ does not make any stronger guarantees will enable things like deriving a class from an object which is hosted on a different heap and still have some part on another heap — for example, having a class which is in part a .NET object and lives on the garbage collected heap and the other part is native and lives on the normal heap.

[Update] Found it:

Others had often questioned the use-fulness of C++’s leaving that implementation door open for the future, but the mixed type design — where parts of the same logical object must be on different physical heaps — vindicates Bjarne’s design judgment.

from Herb Sutter’s C++/CLI Rationale, page 18.