Three things I’ve come to believe about post modern C++

In no particular order: Template metaprogramming is still evil, and C++11/14 hasn’t fixed anything about it. People argue metaprogramming enables “clean, elegant code,” as if a home built on a garbage dump won’t smell like garbage. If anyone else needs to repair or extend the foundation of your home they’ll

Read More »

Displaying a sequence of images in iPython Notebooks

You can rip a sequence of images into an mp4 and display it inline in an ipython notebook using a function like this: import matplotlib.pyplot as plt from matplotlib import animation from IPython.display import display, HTML def plot_movie_mp4(image_array): dpi = 72.0 xpixels, ypixels = image_array[0].shape[0], image_array[0].shape[1] fig = plt.figure(figsize=(ypixels/dpi, xpixels/dpi),

Read More »

Compiling OpenCV 3.1 on Ubuntu 16.04

16.04 uses gcc 5.4 by default. You’ll need to install gcc 4.9 and configure OpenCV to use 4.9 instead: sudo apt-get install g++-4.9 cmake -DCMAKE_C_COMPILER=/usr/bin/gcc-4.9 -DCMAKE_CXX_COMPILER=/usr/bin/g++-4.9 . If you have CUDA installed you may want to disable compiling the CUDA libraries as well, or else suffer another hour+ of compilation

Read More »

On the Art of Debugging Software

Excerpt from Mager, Troubleshooting the Troubleshooting Course, 1982: A 1979 study by Cutler (Problem Solving in Clinical Medicine) made an observation about the importance of probability information by offering three maxims for diagnosticians: Common diseases occur commonly. Uncommon manifestations of common diseases are more common that common manifestations of uncommon

Read More »

Installing Ubuntu 9.10 desktop w/ software RAID + LVM

I have 4 hard drives in my system and I’ve been running them with RAID 1 pairs tied together using LVM. The first couple GB of each are set aside for /boot and swap space. I was running Debian and I wanted to try Ubuntu, but Ubuntu Desktop out-of-box doesn’t

Read More »

Subversion woes

In the version control world, I’m a big fan of perforce. I first became a fan when I saw how fast it was–it can perform checkouts of gigabyte-sized repositories extremely fast. I also really liked the perforce workflow–changelists are the “normal” way of working. However I started to love perforce

Read More »