Innovate. Instruct. Inspire.

Blog


Bitten by Bit Shifts

I recently found myself decoding some binary data and getting results I wasn’t expecting. This caused me to review one of the most basic operations in computer science: bit shifts. My “research” led me to a great article by Lenovo on the subject. After a few experiments, I learned another...

Read on...

When to Use Raw Pointers

I work a lot with legacy C/C++ code. Much of it is written in a pre-C++11 style, and even when C++11 features are used, they aren’t used as effectively as they could be.

Read on...

CMake in Two Words

CMake is a fantastic build system generator. It provides a usable, maintainable, and portable solution to one of the more complicated aspects of C++ development. That said, it’s not without its history, and it can be easy to get lost in the plethora of commands and variables used to configure...

Read on...

Agile Development: Power in the Principle

The word “agile” as applied to the creation and management of software development processes has been a buzz-word for several years now. But what does it actually mean? Why do we use the word “agile”?

Read on...

Ownership and Software Design

Clearly communicating the intent of your code is one of the most powerful skills you can acquire in software engineering. It increases productivity, reduces stress, and lowers the entry barrier for new software developers. One aspect of a software application that is oftentimes not communicated clearly is ownership. Ownership, although...

Read on...