The current default setup for Octave 3.8.1 on Ubuntu 14.04 is to load all install packages at startup. I find this irritating and a not recommended practice by the Octave creator JWE.
Instead of starting up in 0.1 seconds, Octave takes 5 seconds to start — really annoying, especially when using oct2py in Python!
Here’s the error I get on startup with the octave-specfun package installed:
$ time octave --eval 'exit'
warning: function /usr/share/octave/packages/specfun-1.1.0/ellipke.m shadows a core library function
warning: function /usr/share/octave/packages/specfun-1.1.0/erfcinv.m shadows a built-in function
warning: function /usr/share/octave/packages/specfun-1.1.0/expint.m shadows a core library function
warning: function /usr/lib/x86_64-linux-gnu/octave/packages/specfun-1.1.0/x86_64-pc-linux-gnu-api-v49+/ellipj.oct shadows a built-in function
Solution: comment out the octaverc line that’s calling all these packages at startup.
sudo nano /usr/share/octave/3.8.1/m/startup/octaverc
comment out the line
pkg ("load", "auto");
then I get the result:
time octave --eval 'exit'
NetworkManager in Ubuntu 14.04 has an issue with 802.1x networks that don’t require the laptop to have a .cert file. A bug report has been launched in regards to this.
Note: the following discussion can subject your laptop to “man-in-the-middle” attacks by disregarding the need for a .cert file. However, if your network IT dept. doesn’t provide you a .cert file and their policy is not to, you might discuss with them if the following is an appropriate solution.
1) find the name of the wireless network you want to connect to by typing in Terminal:
let’s assume your network SSID is “sortOfSecureWifi”.
sudo nano /etc/NetworkManager/system-connections/softOfSecureWifi
and it will look like (note the ?yourdata? is specific to your PC, don’t change it)
Note: In particular, if there is a line system-ca-certs=true, change it to
WARNING: This configuration can impact network security. Discuss this with the responsible network admins for your network FIRST! However, many networks don’t currently use certificates, yet Ubuntu 13.04/13.10/14.04 keep trying to look for a certificate via NetworkManager
then reboot and see if you can connect. A sign that system-ca-certs=true is happening is by:
grep "TLS: Certificate verification failed, error 19 (self signed certificate in certificate chain)" /var/log/syslog
The default for Spyder 2.2 and 2.3 with Ipython is to have new matplotlib figures appear “inline” in the Ipython console. I want separate windows to pop up for figures as with the standard python console. To do this:
In Spyder, click Tools, Preferences, Ipython Console, Graphics
and under Graphics Backend select “automatic” instead of “inline”
Note: Now that Spyder 2.3 has been officially released for Ubuntu 14.04, you can just do
sudo apt-get install spyder3
ipython3 ipython3-qtconsole python3-pyside.qtcore python3-pyside.qtgui python3-pyside.qtsvg python3-pyside.qtwebkit python3-psutil python3-pep8 python3-sphinx
0) download and extract the ZIP file of the latest Spyder 2.3 from https://bitbucket.org/spyder-ide/spyderlib/downloads
I extracted it to ~/spyder-2.3.0/
1) change to that directory and type
python3 bootstrap.py --no-apport
and add the line
alias spyder23="python3 ~/spyder-2.3.0/bootstrap.py --no-apport"
Then you can start Spyder 2.3 from Terminal just by typing
Note, you might see errors in Terminal like
“X Error: BadCursor (invalid Cursor parameter) 6
Major opcode: 2 (X_ChangeWindowAttributes)”
That is a known nuisance message:
I have noticed on my Ubuntu 14.04 PCs and have seen other OSs having issues with python3 and matplotlib.pyplot.imshow().
NotImplementedError: Surface.create_for_data: Not Implemented yet.
and getting blank images.
I fixed the problem by switching the matplotlib backend as follows:
1) placing a file named “matplotlibrc” in the directory of my Python .py code (current working directory), with the contents
backend : qt4agg
2) installing the prerequisities:
sudo apt-get install python3-pyqt4 python3-sip
So far, the webcam doesn’t work, but the send/receive audio does work on a test call. I didn’t test receiving video.
NOTE: in an actual conference, I wasn’t able to get sound, and so had to use a telephone. I have also seen problems with this for people using Windows and Mac at a large conference–leading the remote speaker to call in.
I personally avoid using GoToMeeting and would recommend using Google Hangouts or Skype instead of GoToMeeting for desktop sharing, video and audio between Mac/Linux/Windows/Android/iOS.
I tested this on Ubuntu 14.04 with wine 1.7.18. Again, this ultimately failed in a real conference. I don’t recommend GoToMeeting at this time for Linux or any operating system where you have a lot of people counting on it actually working..
1) Get the latest MSI file for GoToMeeting — I used V6.2.1 build 1350 from
2) in Terminal, type
wine msiexec /i ~/Downloads/G2MSetup6.2.1350_IT.msi
3) You may not have sound by default. To fix this, start GoToMeeting, right-click the flower toolbar icon, select Preferences, Audio, and select the Pulseaudio device for each.
Uncheck the “Automatically adjust my system mixer settings” and “Use automatic volume and noise processing” boxes.
Suppose you want to reuse code from an OCR’d book or a text file, that has line numbers embedded in the file. For example say you had a file neat.py:
1 # cool program
2 import sys
3 def howneat():
4 sys.exit('Thanks for visiting')
You can remove the line numbers by typing in Terminal:
perl -pe 's/^[ \t]+\d+//' neat.py > neater.py
The regular expression
^ at the beginning of the line
[ \t]+ match space or tab (one or more)
\d+ match one or more digits
The -p to perl means to implicitly loop over (read each line of) the file neat.py. The -e means here is the PCRE to consider.
And we replace with nothing. This leaves alone the indentation of the code (relevant for Python).
I could have used the -i flag to edit in place, but I instead redirected STDOUT to the file neater.py in case I made a mistake (inputting the wrong file, for example).
I noticed shortly after using the Intel NUC D54250WYK that after shutting down the NUC, a few seconds later the system would restart.
The BIOS update did work for me.
Ubuntu 14.04 comes with GCC 4.8, but Matlab R2013b wants GCC 4.8.
The error you will get includes.
Warning: You are using gcc version ‘4.8.2’. The version of gcc is not supported.
Note that Matlab R2014a uses a new system for MEX configuration. You should not use this process for R2014a and newer. For Matlab R2014a I don’t have a solution for specifying gcc-4.7 besides taking the output of mex -v and editing the commands to use gcc-4.7 manually. Yikes!
This example is for R2013b and OLDER
sudo apt-get install gcc-4.7 g++-4.7
cp /usr/local/MATLAB/R2013b/bin/mexopts.sh ~/.matlab/R2013b/mexopts.sh
chmod 644 ~/.matlab/R2013b/mexopts.sh
there will be one instance each of:
CC=’gcc’ change to –> CC=’gcc-4.7′
CCX=’g++’ change to –> CCX=’g++-4.7′
5) restart Matlab
In Matlab R2013a,
imwarp was brought in, and by R2013b the Lint warning tells you to use imwarp instead of
On my simple test (a horizontal linear shift)
imwarp was 3.4 times faster than
I had this inside a for loop (first I loaded an image to variable ‘bg’)
bg = imread('myimage.jpg');
[nRow,nCol] = size(bg);
if ~oldWay % newway: Matlab R2013 and newer
tform = affine2d(T);
RA = imref2d([nCol,nRow],[1 nCol],[1 nRow]);
data(:,:,i) = imwarp(bg,tform,'outputView',RA);
else % old way Matlab R2012b and older, and Octave
tform = maketform('affine',T);
data(:,:,i) = imtransform(bg,tform,...
% oldway: 14.30 sec. octave 3.8.1 using 1 CPU core
% oldway: 14.24 sec. R2013b using 4 CPU cores
% newway: 4.19 sec. R2013b using 1 CPU core
Note how Octave is as fast as Matlab
imtransform, but Octave only uses 1 CPU core instead of 4!