IPv6

Lately, I’ve been working on bringing my IPv6 skills up to date. I’ve had a tunnel from Hurricane Electric for years. It’s free, and it works very well. A shout out to them for proving this great, free service. They also provide a free certification service (again, many thanks for …

Maze

This code is just for fun. It generates a ‘perfect’ maze and solves it. The results are written out to a PNG file. For details, click here.

Fractals

This software uses Newton’s method (the one from any first year calculus course) in the complex plane to generate fractals. This code makes use of many of the new C++11 language features, so a newer compiler will be required (I used GCC 4.8.1 running on Opensuse). This code is documented …

Atomic Locking vs. Mutexes

The Question Which is faster, a queue guarded by a std::mutex, or the same queue guarded by an atomic? This experiment attempts to at least partially answer that question. To do this, I constructed a queue that could be guarded by either a std::mutex or by my own atomic based …

Cache Interactions Mystery

The Question Recently, I found myself wondering about cache interactions (specifically cache localization issues), and so I wrote a small bit of code to experiment a bit. The results are surprising to me, and I’m going to have to admit that I cannot yet explain the data. Please comment if …

A Picture’s Worth a Thousand Work Items

In the sample code section of this website, you may download code that I have written titled “throughput”. These pictures were produced by this code.   The throughput code attempts to measure the performance (or throughput) of a single queue with varying numbers of producer and consumer threads, in search …

Raspberry Pi

This weekend I finally got a raspberry pi, and I have to admit, I’m a bit excited. Since the beginning of my career as a software engineer, most of my time has been spent developing embedded software (some of it real time, some of it safety critical). My current employer, …