Compiling Octave 4.0 on Ubuntu 14.04

sudo apt-get install gawk gfortran gperf flex libbison-dev libqhull-dev libglpk-dev libcurl4-gnutls-dev libfltk1.3-dev librsvg2-dev libqrupdate-dev libgl2ps-dev libosmesa6-dev libarpack2-dev libqscintilla2-dev

Note, I may have missed something since I didn’t do the above from a clean install (I may have something installed that you’re missing).

Checkout the Octave 3.8 compiling page for hints about what packages you might be missing if you get errors, and leave a comment to let others know.


./configure --enable-jit --prefix=/opt/octave4.0

This resulted in:

  Build Octave GUI:                   yes
  JIT compiler for loops:             yes
  Build Java interface:               yes
  Do internal array bounds checking:  no
  Build static libraries:             no
  Build shared libraries:             yes
  Dynamic Linking:                    yes (dlopen)
  Include support for GNU readline:   yes
  64-bit array dims and indexing:     no
  OpenMP SMP multithreading:          yes
  Build cross tools:                  no

With the only Warning being about JAVA_HOME not defined.
Then I typed


Goldwave 5.x on Linux WINE

You will need a 32-bit winearch. Typically your default .wine directory is 64-bit. Let’s leave that alone and create a new 32-bit wineprefix and setup Goldwave 5. (Goldwave 6 is not WINE compatible as of WINE 1.6).

Download Goldwave 5 to your ~/Downloads directory.

Then, from Terminal,

WINEPREFIX=~/.wine32 WINEARCH=win32 winetricks wmp10

WINEPREFIX=~/.wine32 wine ~/Downloads/gwave5*.exe

Once you’ve installed Goldwave 5, press the F11 key to open Control Properties, then select the System tab, and click the “Use DirectSound AP” radio button. You can test your setup by clicking the Device tab, and the Test playback button, you should hear a brief test tone. Click OK to save this setting.

You should be able to create new/save/play sound files (this gives Goldwave 5 a WINE Silver rating I think)


At this time, Goldwave 6 is not compatible with WINE that I know of. I get the following errors from Goldwave 6 after installing and trying to run Goldwave 6 in a 64-bit Windows 7 wineprefix:

err:module:import_dll Library BTHPROPS (which is needed by L"C:\\Program Files\\GoldWave\\GoldWave.exe") not found

err:module:import_dll Library BLUETOOTHAPIS (which is needed by L"C:\\Program Files\\GoldWave\\GoldWave.exe") not found

err:module:LdrInitializeThunk Main exe initialization for L"C:\\Program Files\\GoldWave\\GoldWave.exe" failed, status c0000135

Compiling OpenCV3 with extra contributed modules

This procedure is for OpenCV3 beta.
Some of the functions you might want like cv2.createBackgroundSubtractorGMG are not in the standard OpenCV 3 package at this time. The newer functions by design go into the opencv_contrib repository.

If you’re comfortable with the previous procedure, you might be ready to try adding these packages.

CRITICAL POINT: you must have the space between -D OPENCV_EXTRA_MODULES_PATH= for this to work, or it will silently ignore the opencv_contrib modules.

I will assume you have the prereqs installed already.

After the cmake command, scroll back up and check that you see something like (for example, look for bgsegm, that’s one of the opencv_contrib modules)

OpenCV modules:
 -- To be built: core imgproc imgcodecs videoio highgui xobjdetect adas video bgsegm bioinspired flann ml features2d calib3d ccalib face text datasets line_descriptor objdetect optflow photo reg rgbd saliency shape xfeatures2d stitching superres surface_matching videostab ximgproc xphoto python2 tracking ts
 -- Disabled: java world
 -- Disabled by dependency: -
 -- Unavailable: androidcamera cuda cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaoptflow cudastereo cudawarping cudev python3 viz cvv matlab

cd /tmp

git clone --branch 3.0.0-beta --depth 1

git clone --branch 3.0.0-beta --depth 1

cd /tmp/opencv

mkdir release
cd release

cmake -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules/ -DBUILD_TIFF=ON -DBUILD_opencv_java=OFF -DWITH_CUDA=OFF -DENABLE_AVX=ON -DWITH_OPENGL=ON -DWITH_OPENCL=ON -DWITH_IPP=ON -DWITH_TBB=ON -DWITH_EIGEN=ON -DWITH_V4L=ON -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=$(python3 -c "import sys; print(sys.prefix)") -DPYTHON_EXECUTABLE=$(which python3) -DPYTHON_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") -DPYTHON_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") ..
# the -j6 is for compilation only, to use up to 6 threads. It has no effect on the compiled opencv code execution
make -j6
make install

Once installed, you should be able to from within Python type:

import cv2
x = cv2.bgsegm.createBackgroundSubtractorGMG()

Anaconda Python: OpenCV3

I wanted to have access to OpenCV3 in Python3, so I compiled OpenCV3 for Anaconda Python3 as follows, using this reference.

I have not tried it, but I think that this would work for Python 2.7 as well by changing the python3 references to python2.

BE SURE when you type in Terminal
python3 that it’s the anaconda python you get. If not, make an alias in ~/.bash_aliases
alias python3="$HOME/anaconda3/bin/python3"

sudo apt-get install git libjpeg-dev libpng-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev pkg-config cmake libgtk2.0-dev libeigen3-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev sphinx-common libtbb-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libopenexr-dev libgstreamer-plugins-base1.0-dev

cd /tmp
git clone --branch 3.0.0-beta --depth 1
cd /tmp/opencv

mkdir release
cd release

cmake -DBUILD_TIFF=ON -DBUILD_opencv_java=OFF -DWITH_CUDA=OFF -DENABLE_AVX=ON -DWITH_OPENGL=ON -DWITH_OPENCL=ON -DWITH_IPP=ON -DWITH_TBB=ON -DWITH_EIGEN=ON -DWITH_V4L=ON -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=$(python3 -c "import sys; print(sys.prefix)") -DPYTHON_EXECUTABLE=$(which python3) -DPYTHON_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") -DPYTHON_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") ..

# make -j4 applies up to 4 threads to compilation only, makes no difference to running opencv code

make -j4
make install

NOTE: I assume you’re using an Ubuntu 14.04 system, within Anaconda Python 3.4 installed to ~/anaconda3/

Note: If you get a lot of errors about 70% of the way through like
error: ‘CODEC_ID_H264’ was not declared in this scope
then try (I had to do this with Ubuntu 15.04:

sudo apt-get install libavcodec-ffmpeg-dev libavutil-ffmpeg-dev libavfilter-ffmpeg-dev libavformat-ffmpeg-dev libavresample-ffmpeg-dev

Note: I have disabled Cuda via “-DWITH_CUDA=OFF”, assuming you don’t have a GPU to use. Because Cuda takes so much longer to compile, even if you have the GPU, maybe first try without CUDA, to see if OpenCV3 is going to work for you, then recompile with CUDA.

Note: To avoid the undefined reference to `TIFFOpen@LIBTIFF_4.0′ type errors, I added the -DBUILD_TIFF=ON option

Note: If you get the error like
lib/ version `GLIBC_2.15′ not found (required by /usr/lib/x86_64-linux-gnu/

then try

cd ~/anaconda3/lib

core dump

If you get SIGILL illegal instruction (Core dumped) when typing import cv2 let’s try to get more information by typing in Terminal

sudo sysctl -w kernel.core_pattern=core
ulimit -c unlimited

and rerun the command that gave the core dumped error. Now you’ll have a file “core” in that directory. Type in Terminal
gdb python core
and you’ll get some more hints about the failure. Don’t feel so frustrated, I have enabled a lot of options in that Cmake command above, so let’s try turning some of the optimizations off. Here I was testing on an Ubuntu 15.04 system with a Haswell CPU.

Here’s a minimal cmake to try if you get frustrated by errors:

cmake -DBUILD_TIFF=ON -DBUILD_opencv_java=OFF -DWITH_CUDA=OFF -DENABLE_AVX=OFF -DWITH_OPENGL=OFF -DWITH_OPENCL=OFF -DWITH_IPP=OFF -DWITH_TBB=OFF -DWITH_EIGEN=OFF -DWITH_V4L=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=$(python3 -c "import sys; print(sys.prefix)") -DPYTHON_EXECUTABLE=$(which python3) -DPYTHON_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") -DPYTHON_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") ..

Google Earth on Ubuntu 14.04

Even if your system is 64-bit, you should use 32-bit Google Earth at this time.

On some installs, typing in terminal
gives the error
./googleearth-bin: error while loading shared libraries: cannot open shared object file: No such file or directory
and, etc.

This is remedied by typing:

sudo apt-get install libfontconfig1:i386 libX11-6:i386 libxrender1:i386 libxext6:i386 libsm6:i386

If you get errors about, try:

sudo apt-get install libglu1-mesa:i386 libgl1-mesa-glx:i386

If you still get errors about, try:

find /usr -name ""

let’s assume you found it in /usr/lib/i386-linux-gnu/mesa
Then type

ln -s /usr/lib/i386-linux-gnu/mesa/ /usr/lib

Connecting to Boston University’s 802.1x Wifi from a Linux device

If you don’t have a graphical desktop, BU’s Enterprise Wifi requires the following manual settigns. The settings below are from BU’s recommended settings.  Their webpage has now been updated per my suggestion.

# nano /etc/wpa_supplicant/wpa_supplicant.conf

paste at the end
ssid=”BU (802.1x)”

pairwise=CCMP TKIP
identity=”Your BU login”
password=”your Kerberos Password: be aware others can read this file!”


# reboot

This results in the feedback upon successful connection:

# wpa_cli -i wlan0 status

ssid=BU (802.1x)
key_mgmt=WPA2/IEEE 802.1X/EAP
Supplicant PAE state=AUTHENTICATED
selectedMethod=21 (EAP-TTLS)
EAP-TTLSv0 Phase2 method=MSCHAPV2

Matlab R2014b: X11 forwarding and OpenGL

The new plotting engine in Matlab R2014b has caused some hangups and reduced quality plots for people using Matlab over X11 forwarding.

Consider starting Matlab this way:

matlab -nosoftwareopengl


If you can’t start Matlab with the -nosoftwareopengl open, omit that open and try plotting with the

set(gcf….’painters’) line as shown above for each figure.


AGI STK in Virtualbox on Linux

AGI STK (Systems Tool kit) does not currently run under WINE for version 10 of STK.
However, you can run STK from VirtualBox using Windows guest virtual machine.
Currently (with VirtualBox 4.3.16) you may find that STK crashes upon opening a scenario. Shutdown your virtual machine and try disabling 3D acceleration, enabling 2D acceleration, and setting video memory to at least 64MB. This “worked for me”