Nine ways to break your systems code using volatile

The volatile qualifier in C/C++ is a little bit like the C preprocessor: an ugly, blunt tool that is easy to misuse but that — in a very narrow set of circumstances — gets the job done.  This article will first briefly explain volatile and its history and then, through a series of examples about …

Is That a Compiler Bug?

It’s common for a computer program to display behavior seemingly unrelated to its source code.  Additionally, programs written in C/C++ frequently change their behavior when the compiler optimization options are changed.  This post is a quick guide to figuring out if the compiler is at fault.  This post was motivated by a blog post by …

TRIGA

Today I visited Utah’s TRIGA: a nuclear reactor located in the building where I’ve had an office for about nine years.  I’ve had a low-grade fascination with these devices since reading about them many years ago in one of Freeman Dyson’s books.  Unlike powerplant reactors, which rely on elaborate safety systems, the TRIGA series is …