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…

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
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 …
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.