Archive for the ‘ubuntu’ Category

Installing SOFA on Ubuntu 16.04 and 16.10

Friday, January 27th, 2017


echo "deb wily main universe" | sudo tee /etc/apt/sources.list.d/wily-copies.list

sudo apt update
sudo apt install python-wxgtk2.8
sudo rm /etc/apt/sources.list.d/wily-copies.list
sudo apt update
Download latest deb from
cd ~/Downloads
sudo dpkg -i sofastats-1.4.6-1_all.deb


Even though SOFA is developed on Ubuntu (16.10 at present) there was a problem installing SOFA onto 16.04 or 16.10. The root cause related to Ubuntu support for different versions of wxPython and I spent a lot of time trying different solutions. Fortunately there is a simple workaround that only requires about six terminal commands (see below). Obviously, having to run commands is not as good as a standard installation but it will have to do for now because the main alternatives aren’t currently viable. E.g. some parts of SOFA don’t seem to play nicely with the packaged versions of wxPython 3.0. Snap packaging holds some promise but that will have to wait for later depending on the next releases of Ubuntu.

Thanks to bbobbo for finding a general solution to wxPython 2.8 installation problems on Ubuntu 16 and relating them to the specific SOFA problem and Domenico Somma for bringing it to my attention via the SOFA forum. Here are the steps (Solution from SOFA (statistics) – python 2.8 request – unable installation):

1. Add needed repository and update package list

echo "deb wily main universe" | sudo tee /etc/apt/sources.list.d/wily-copies.list

sudo apt update

2. Install it
sudo apt install python-wxgtk2.8

3. Remove repository entry and update package list again
sudo rm /etc/apt/sources.list.d/wily-copies.list

sudo apt update

4. Install SOFA Statistics
Download latest deb from

cd ~/Downloads

sudo dpkg -i sofastats-1.4.6-1_all.deb

5. Success?

Extra info – Warning from – “Following this method on large scale can lead to unmet dependency hell. So keep in mind this is similar to PPA’s.” This comment also has more details too about solving issues with broken packages.

0.8.6 supports PostgreSQL and has better output formatting

Monday, August 24th, 2009

New features:

  • Added support for PostgreSQL databases.
  • Each item of output now has a preceding display line and a description of its data source (database and table) and when it was created.
  • Improved layout of exported scripts.
  • Added unit tests for main statistical algorithms used.
  • Better handling of timestamp and autonumber fields in data entry/editing.

Bug fixes:

  • Fixed script export bug.

Additionally, the Windows package now installs a menu shortcut for uninstallation. It always should have, of course, but the latter is still an example of a little thing which makes newer versions of SOFA Statistics nicer to use. The idea is that, collectively, thousands of details like that will create a sense of polish. The Ubuntu 100 papercuts project is one inspiration.

wxPython hourglass cursor not working in Ubuntu

Monday, August 17th, 2009

The following code worked in Windows but not in Ubuntu:

# hourglass cursor

curs = wx.StockCursor(wx.CURSOR_WAIT)
Something happens that takes a while … … … …
# Return to normal cursor
curs = wx.StockCursor(wx.CURSOR_ARROW)

Use instead:


NB good to use wx.IsBusy() with EndBusyCursor().  On Windows, ending a cursor if one is not running causes an error.

if wx.IsBusy():

Installation testing using VirtualBox snapshots

Thursday, May 28th, 2009

VirtualBox is brilliant.  You can set up Windows XP, Ubuntu Jaunty etc and test installations into them.  Then reset to snapshot and rinse and repeat.  Installing onto systems that are not “clean” is never as certain – perhaps you have already installed comtypes or whatever.

One tip for sharing files between a host OS and a Linux (Ubuntu) guest OS (see

Within the guest OS, make a directory e.g.

sudo mkdir /transfer

Then mount the shared folder you set up externally in VirtualBox using:
sudo mount -t vboxsf sharename mountpoint
in my case:
sudo mount -t vboxsf transfer /transfer
It is then easy to grab files from the host OS e.g. a deb package that needs to be installed.

Ubuntu packages the only Linux option

Thursday, May 28th, 2009

I have just watched a fascinating video entitled “Why Desktop Linux Sucks” by Bryan Lunduke (  Desktop Linux works really well for me but Bryan makes a lot of important points.   I certainly agree that packaging is a big problem.  The approach I have taken for Linux installation with the SOFA Statistics project is to only release a deb package aimed at Ubuntu (  I am already spending a lot of time packaging as it is and would like to spend more time developing new features.

Launchpad puts the Open into Open Source

Friday, May 22nd, 2009

I have made some more revisions of SOFA Statistics (bugs fixed, mainly regressions after refactoring).  Launchpad makes it easy to see every difference between the different versions. Truly, nothing is hidden which shall not be revealed!  These are very powerful tools, all made available through the power of open source.

Working SOFA deb package under testing – release soon

Monday, May 11th, 2009

A working debian package has been created for the SOFA project.  It will be uploaded onto the installation page in the next few days once a few extra test installations have been completed.

Windows and OS X packages are on the agenda once wxWebKit has been packaged for those platforms.

Made first demo deb package successfully

Friday, May 8th, 2009

The instructions kindly provided by Horst Jens  at were very helpful.  There are a few details I have to understand better but it all looks doable.  One gotcha when editing the rules file in gedit – tabs != spaces and manually added tabs are converted into spaces!  Copying and pasting tabs from elsewhere solved the problem.

Working on streamlining manual installation

Thursday, May 7th, 2009

Making sure that the program can be manually installed on a clean Intrepid/Jaunty system (see exposed a few issues which have now been resolved.  The default SQLite database now has 1500 records and is indexed.  One of the design goals for the project is easy installation and that is what is being worked on now.