Introduction About Site Map

XML
RSS 2 Feed RSS 2 Feed
Navigation

Main Page | Blog Index

Archive for the ‘Linux’ Category

Visual Tour of QtOctave

People who say that nothing can replace Photoshop and nothing can replace Microsoft Office simply forget that the functionality they must be implicily referring to is hardly used by anyone among the entire userbase. As pointed out in the previous post, two months with QtOctave and other free/libre software taught me that there is no reason to deny that ~90% of MATLAB’s users can abandon it and use free/libre software instead, maybe more happily in fact (stability, program weight, and cross-platform with access to the source code count, it’s not just a matter of cost). I have used some of the most advanced functionality in MATLAB, so I do know what I am talking about here.

Today I present free/libre software called QtOctave, which is a graphical front end to Octave and it uses Qt, as the name suggests. Qt is cross platform, so as expected it runs on Windows too. Without further ado, let’s take an overview of what QtOctave looks like. I typically put QtOctave on my eighth workspace in KDE, which helps me remember where to find it. Here is my workspace 8 (screenshot, click to magnify).

QtOctave

This picture may be daunting, but QtOctave does a good job hiding lot of the functionality under menus, which reduces clutter. QtOctave uses Octave (CLI) as its engine, but it provides a friendlier face to it. Let’s break down this picture and explain what each component does, in turn.

Menu

The main menu contains many of the basic functions one ought to expect. By “functions” what I mean is either functionality like opening files or mathematical functions that are commonly used. Many options there control the appearance of the GUI, whose core component of the command line containing the core, Octave. QtOctave wraps it up nicely and provides tools to work with/around it.

Menu in QtOctave

Variables

Octave exposes names and corresponding values of variables it holds, but only upon demand. How about having a GUI component to keep track of these and display this information all the time. You want it? You got it:

Variables

Commands and Dynamic Help

The command pane is a companion tool which helps keep track of recently-used commands and makes these conveniently available. In my case, I added the “Dynamic Help” component, to help show what commands are available as soon as I start typing. The contents in the example below show what appears in the window as soon as I began typing “plot”. The namespace of commands can be highly populated if many modules are used (in session’s path), so this is a good way to keep track without looking elsewhere. Bash has a similar functionality which it makes available via the “Tab” key.

Commands and Dynamic Help

Directories

Directories and files are sometimes easier to approach and navigate though when they are quickly accessible through the main GUI. This has use in all sorts of circumstances as drag-and-drop functionality is broadly supported.

Directories

Terminal

In the main body of the program there is the terminal section (or other components, if one chooses to make them available there). Show below is an example of basic interaction with Octave.

Terminal

CLI

The command-line interface is an integral part of the above and it supports up/down arrow key for use of commands history.

CLI

Editor Menu

This editor can be made part of the main windows, but it does not have to be. I personally choose to make it an external window on a second monitor where it offers a lot of viewing space. The menu has all one ought to expect to find in a standard text editor, but it also contains program-specific buttons like execution and debugging.

Editor Menu

Code

Here is a simple code example. The fonts that I use do not look good because I favour monospace, which helps indentation and other tasks where each character is treated as equal.

Code

Breakpoint

Here is another example of code (further down from the top). This helps show how breakpoints are represented in the editor. Together with the variables panel this provides an excellent environment for debugging, so the editor is definitely not detached from the core components; It’s custom-made for it.

Breakpoint

More Components

There is a lot more under the menus, e.g. package management (see the image below). But that’s a subject for another day.

Octave packages

If you like what you see in QtOctave, then consider giving Octave a look. Both Octave and QtOctave are in the *Ubuntu and Fedora repositories, so they only take a moment to install.

Migrations From MATLAB to GNU Octave

Octave packages

THIS MORNING I spent some time helping others make the same migration which happily enough I made over a month ago (so far, so good!). It’s a migration from proprietary software (and BSA backer) to free-as-in-freedom software, which also happens to be a GNU project. It helps that the project is cross-platform because unlike myself and many others, there are still a lot more Windows users out there. Moving them to Free software on Windows is an essential step which removes barriers when they swap the whole platform. GNU works better on GNU/Linux than on Windows, for obvious reasons. Although it’s a matter of opinion, under KDE QtOctave looks better than MATLAB, as well.

Installing GNU Octave in GNU/Linux is very simple because it is packaged in the repositories of *buntu and Fedora. These are the two distributions where I have checked to verify this although I encountered bumps along the way in Fedora [1, 2, 3]. It is not entirely Fedora’s fault and it’s a known issue that affects many people who are Octave users.

The packages one need to fetch via yum/apt-get (or graphical front ends like Synaptic and KPackageKit) are “Octave” and “QtOctave”. They are not large packages and they should be able to fetch dependencies that are being determined and resolved by the packager/packaging process. Once these are installed, an icon will typically show up somewhere along/inside the menus. If not, run qtoctave from the command line and ensure it gets access to the octave executable (it usually works perfectly ‘out of the box’ based on my experience on multiple boxes). Yes, this should work by default without user intervention, but in case it does not, ensure octave is properly installed and put in the path.

I am unfortunate enough to have faced Windows for about half an hour just now (not my computer) because in some cases, for collaboration purposes, computers that run Windows also need to have Octave installed on them, along with QtOctave for improved ease of use. The way to get that installed is a lot more complex and time consuming because Windows does not have packages managers (this is one of the areas where GNU/Linux is ahead of its competition). In any case, here is how one should install everything and get it set up

Navigate to the downloads page of Octave. At the time of writing (and this may change in the future) there is a native build for Windows, which seems to work without any issues in Windows XP and probably predecessors too. Scroll down to part which says: “The Octave Forge project hosts a native Windows binary distribution of Octave built with the MinGW compiler.”

This leads to Octave-Forge. Near the top of the page there is a “Windows installer (Octave and Octave-Forge)” listed. Now, download the file which is an executable (.exe) and run that. Follow the simple process of installation until completion and at the end ensure that Octave is installed and then listed among the programs in the Windows “Start” (now just Windows logo) menu. The main program is just called “Octave”. When it’s executed it offers a command line prompt which is the Octave interpreter. If everything works fine at this stage, then Octave runs properly and it is time to install the graphical wrapper, QtOctave.

Qt is a cross-platform graphical toolkit and a front end for Octave was written with it not so long ago. The main build is for GNU/Linux with tendency towards KDE, but there is also a Windows port and the one which works best can currently be found in outsch.org. There is a ZIP archive in there, so download it with caution (it is not an official source). Finally, uncompress the file and install it in a suitable location of choice on your hard-drive partition (e.g. C:). When all the files are extracted from the ZIP archive find the qtoctave executable (qtoctave.exe) under the directory containing the DLL files and the other binaries. If necessary, create a convenient shortcut to this file. Unlike UNIX-type environments, paths in Windows are not quite as universal, so QtOctave may not have anything defined regarding the location of the octave executable. Depending on where it’s installed, it may need to be entered manually, otherwise QtOctave will not be able to access the very core and engine of Octave. If that’s the case, go to the “Config” menu (top menu), then “general configuration” (menu item), then “Octave”, “Octave path”. Put in the text field the full path to the Octave executable where you had it installed earlier. This ensures QtOctave knows where to find it. Restart QtOctave (for settings changes to take effect) and once the program can detect the executable ensure it can provide a command prompt for .m files to be run or for commands to be entered manually. If needed, run a basic function like plot just to ensure that graphical units of Octave are also fully supported and installed without any conflicts. QtOctave comes with several units including an editor and it integrates quite well, including drag-and-drop support.

The point of this whole exercise is to liberate users whose personal programs that they write are stuck in the “MATLAB trap”, so to speak (like the old “Java trap”).

If you are interested in converting fellow staff and their students to Octave, remember that it suits an educational environment much better as it encourages sharing and collaborating, not asking for permissions, paying heavy fees/fines, and begging developers to fix bugs rather than have access to the source code, which in turn enables participation. Additionally, most of the basic functions are truly compatible with MATLAB’s and the lack of JIT optimisation, for example, should not matter much in an educational setting. Not many people create MATLAB GUIs either, so there is hardly a need for such advanced functionality. At a later date I hope to make some screencasts about Octave.

Trying Linux Mint for Running GNU Octave

FEDORA 14 is an adorable distribution, at least on the KDE (4.5) side of it. I only had problems in the repository and ones that were not truly Fedora’s fault. Image-related functions gave me a hard time in Fedora because of a known conflict and version numbers. It was not simple to resolve even after hours of trying. I consider myself to be an expert user (not guru) and unless I start compiling from source code as I did 5 years ago, Octave will be a challenge to use. Over on a Kubuntu machine I had no such issues. As the pictures below show, things worked perfectly well without any effort at all. Say what you will about Ubuntu GNU/Linux, but it does tend to work rather well.

Octave tagging - synthetic

Octave tagging

My goal is to do my entire daytime job under a true GNU/Linux/KDE experience with Gnash, no proprietary codecs, and even Konqueror (KIO/kio and sftp/ssh support make it indispensable) as the only Web browser along with Okular, LyX (not OpenOffice.org), and other great Qt/KDE SC programs. There are some limitations in use, but there are usually ways around those (although never as easy to install as Firefox extensions for example). In addition, advances in the Web itself can prove a tad tricky. The nature of the World Wide Web and the Web browsers which change over time is not predictable, so presentations that worked alright with background pictures in the past no longer appear correctly, unless the code is redone (I still use S5 for presentations. It is an excellent presentation tool I’ve used happily for over half a decade).

The main issue I’ve had with Fedora is to do with Octave, which I hope to replace MATLAB with. MATLAB was the last bit of proprietary software I was still using on GNU/Linux (since I began using GNU/Linux exclusively at work, around 7-8 years ago). The problem is not at all exposure to Windows or Mac OS; I never need those, but proprietary software in general is the problem here because of lock-in (practicality), which makes it not a purely philosophical argument.

After wasting many hours trying to get Octave to work the way I want and need it to work under Fedora 14 I decided to just virtualise another distribution under Fedora. The first thing which occurred to me is that VirtualBox was not available (see below).

No virtualbox

In the mean time I also decided to give Mint a go for the first time (I was curious after doing a special audiocast about it). That was a smooth experience luckily. Debian makes it daunting for one to download, so after a couple of minutes I left their Web site. Here’s Mint’s less-than-perfect download experience, assuming one particular route:

Mint download

Fedora makes it a lot more user-friendly when one downloads an ISO. There are usability issues here as most people cannot tell the difference between the different files.

To run it I needed a hypervisor and here is what Fedora had under the virtualisation category (descriptions would help enw users):

Fedora virtualisation

In summary, it is a bit of a shame that one needs to have those barriers; using Octave is not a case of using basic applications, but I was hopeful that Fedora would make it easy. I still reject MATLAB at all costs and I avoid installing it because Octave is doing almost everything that I need. In a future post I hope to write about Linux Mint.

Scilab in Fedora GNU/Linux

Having encountered problems with Octave in Fedora 14, I decided to explore scilab, which I wanted to try about a week ago anyway (and canceled the process after being warned that it was not as complete as octave, at least not for my needs). Fedora does not appear to have scilab in its repositories (Ubuntu on the other hand does have it). A yum and kpackagekit search around “scilab” yields nothing, so I went to the official scilab Web site and downloaded the latest package from that nice Web site, then uncompressed it. This was not the end of it as far as Fedora was concerned because, due to it not being available in the repositories, dependencies could not be resolved, so I needed to also install java manually, then figure out that SELinux was standing in my way. This is the type of thing which would deter new users and as much as I would love to endorse Fedora 14, it is experiences like this which leads me to saying that Kubuntu is still a better choice. Here is a self-explanatory story:

[roy@blueberry scilab-5.2.2]$ ls
ACKNOWLEDGEMENTS  CHANGES_3.X    CHANGES_5.2.X  lib            RELEASE_NOTES_5.0.X  thirdparty
bin               CHANGES_4.X    COPYING        license.txt    RELEASE_NOTES_5.1.X
CHANGES           CHANGES_5.0.X  COPYING-FR     README_Unix    RELEASE_NOTES_5.2.X
CHANGES_2.X       CHANGES_5.1.X  include        RELEASE_NOTES  share
[roy@blueberry scilab-5.2.2]$ cd bin/
[roy@blueberry bin]$ ls
intersci  modelicac  scilab  scilab-adv-cli  scilab-bin  scilab-cli  scilab-cli-bin
[roy@blueberry bin]$ ./scilab

Could not load JVM dynamic library (libjava).
Error: libjvm.so: cannot enable executable stack as shared object requires: Permission denied
If you are using a binary version of Scilab, please report a bug http://bugzilla.scilab.org/.
If you are using a self-built version of Scilab, update the script bin/scilab to provide the path to the JVM.
The problem might be related to SELinux. Try to deactivate it.

Scilab cannot open JVM library.
[roy@blueberry bin]$ su
Password: 
[root@blueberry bin]# yum install libjava
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
Setting up Install Process
No package libjava available.
Error: Nothing to do
[root@blueberry bin]# yum install java
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package java-1.6.0-openjdk.i686 1:1.6.0.0-44.1.9.1.fc14 set to be installed
--> Processing Dependency: jpackage-utils >= 1.7.3-1jpp.2 for package: 1:java-1.6.0-openjdk-1.6.0.0-44.1.9.1.fc14.i686
--> Processing Dependency: rhino for package: 1:java-1.6.0-openjdk-1.6.0.0-44.1.9.1.fc14.i686
--> Processing Dependency: tzdata-java for package: 1:java-1.6.0-openjdk-1.6.0.0-44.1.9.1.fc14.i686
--> Running transaction check
---> Package jpackage-utils.noarch 0:1.7.5-3.11.fc14 set to be installed
---> Package rhino.noarch 0:1.7-0.7.r2.fc12 set to be installed
--> Processing Dependency: jline for package: rhino-1.7-0.7.r2.fc12.noarch
---> Package tzdata-java.noarch 0:2010o-1.fc14 set to be installed
--> Running transaction check
---> Package jline.noarch 0:0.9.94-0.6.fc14 set to be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================
 Package                     Arch            Version                            Repository        Size
=======================================================================================================
Installing:
 java-1.6.0-openjdk          i686            1:1.6.0.0-44.1.9.1.fc14            fedora            27 M
Installing for dependencies:
 jline                       noarch          0.9.94-0.6.fc14                    fedora            88 k
 jpackage-utils              noarch          1.7.5-3.11.fc14                    fedora            60 k
 rhino                       noarch          1.7-0.7.r2.fc12                    fedora           775 k
 tzdata-java                 noarch          2010o-1.fc14                       updates          151 k

Transaction Summary
=======================================================================================================
Install       5 Package(s)

Total download size: 28 M
Installed size: 84 M
Is this ok [y/N]: y
Downloading Packages:
Setting up and reading Presto delta metadata
updates/prestodelta                                                             | 248 kB     00:00     
Processing delta metadata
Package(s) data still to download: 28 M
(1/5): java-1.6.0-openjdk-1.6.0.0-44.1.9.1.fc14.i686.rpm                        |  27 MB     00:10     
(2/5): jline-0.9.94-0.6.fc14.noarch.rpm                                         |  88 kB     00:00     
(3/5): jpackage-utils-1.7.5-3.11.fc14.noarch.rpm                                |  60 kB     00:00     
(4/5): rhino-1.7-0.7.r2.fc12.noarch.rpm                                         | 775 kB     00:00     
(5/5): tzdata-java-2010o-1.fc14.noarch.rpm                                      | 151 kB     00:00     
-------------------------------------------------------------------------------------------------------
Total                                                                  2.2 MB/s |  28 MB     00:12     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : jpackage-utils-1.7.5-3.11.fc14.noarch                                           1/5 
  Installing     : jline-0.9.94-0.6.fc14.noarch                                                    2/5 
  Installing     : rhino-1.7-0.7.r2.fc12.noarch                                                    3/5 
  Installing     : tzdata-java-2010o-1.fc14.noarch                                                 4/5 
  Installing     : 1:java-1.6.0-openjdk-1.6.0.0-44.1.9.1.fc14.i686                                 5/5 

Installed:
  java-1.6.0-openjdk.i686 1:1.6.0.0-44.1.9.1.fc14                                                      

Dependency Installed:
  jline.noarch 0:0.9.94-0.6.fc14                jpackage-utils.noarch 0:1.7.5-3.11.fc14               
  rhino.noarch 0:1.7-0.7.r2.fc12                tzdata-java.noarch 0:2010o-1.fc14                     

Complete!
[root@blueberry bin]# ./scilab

Could not load JVM dynamic library (libjava).
Error: libjvm.so: cannot enable executable stack as shared object requires: Permission denied
If you are using a binary version of Scilab, please report a bug http://bugzilla.scilab.org/.
If you are using a self-built version of Scilab, update the script bin/scilab to provide the path to the JVM.
The problem might be related to SELinux. Try to deactivate it.

Scilab cannot open JVM library.
[root@blueberry bin]# killall selinux
selinux: no process found
[root@blueberry bin]# ./scilab

Could not load JVM dynamic library (libjava).
Error: libjvm.so: cannot enable executable stack as shared object requires: Permission denied
If you are using a binary version of Scilab, please report a bug http://bugzilla.scilab.org/.
If you are using a self-built version of Scilab, update the script bin/scilab to provide the path to the JVM.
The problem might be related to SELinux. Try to deactivate it.

Scilab cannot open JVM library.
[root@blueberry bin]# ./scilab

This worked the second time only because I made SELinux more permissive, but this could have many users give up. Here is what I then got:

Scilab

As expected, there is no support for some fairly basic functions in scilab, which is not a complete octave replacement.

-->imshow('in')
             !--error 4 
Undefined variable: imshow

 
 
-->imread('in')
             !--error 4 
Undefined variable: imread

I do not want to install MATLAB or Fedora (although we do have an academic licence), but experiences with Fedora so far may drive me towards installing proprietary software or simply working from another box which happens to be better equipped and work perfectly well with Octave. That box runs Kubuntu.

My First Major Disappointment in Fedora (Updated)

ABOUT three weeks ago I decided to go back to working with Fedora. This distribution served me well over the years, especially in distributed clusters. Fedora 14 looked very promising and it still is, but there are creases that are hard to undo and to hide. In order for matters to improve I will post a quick rant and hope that someone, somewhere will help address the issue that I’ve already reported (I also submit bug reports whenever that’s possible).

My main problem is package specific. The problem was first mentioned here. Thanks to a blog comment from Rahul I was made aware of fairly trustworthy repositories where packagers offer alternative packages. I soon found this newer build of Octave (needed to manually uninstall the existing one as it does not support updating existing packages). It is one of those unsigned packages, which require the user to jump through some hoops. The changelog looked promising because the latest entry mentioned exactly the bug that I was suffering from (many other people must be suffering from it too):

* Sun Feb 28 2010 Alex Lancaster <alexlan[AT]fedoraproject org> – 6:3.2.4-3
- Temporarily disable %check to enable build to complete and ensure upgrade path works. This works around a crash in the imread.m image test script, this may be the same problem as described by upstream here:

https://www-old.cae.wisc.edu/pipermail/octave-maintainers/2010-January/014891.html

So, here goes:

[root@blueberry roy]# yum remove octave
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package octave.i686 6:3.2.4-3.fc14 set to be erased
--> Processing Dependency: libcruft.so for package: pfstools-octave-1.8.1-1.fc14.2.i686
--> Processing Dependency: libcruft.so for package: octave-forge-20090607-17.fc14.i686
--> Processing Dependency: liboctave.so for package: octave-forge-20090607-17.fc14.i686
--> Processing Dependency: liboctave.so for package: pfstools-octave-1.8.1-1.fc14.2.i686
--> Processing Dependency: liboctave.so for package: plplot-octave-5.9.6-5.fc14.i686
--> Processing Dependency: liboctinterp.so for package: octave-forge-20090607-17.fc14.i686
--> Processing Dependency: liboctinterp.so for package: pfstools-octave-1.8.1-1.fc14.2.i686
--> Processing Dependency: liboctinterp.so for package: plplot-octave-5.9.6-5.fc14.i686
--> Processing Dependency: octave(api) = api-v37 for package: octave-forge-20090607-17.fc14.i686
--> Processing Dependency: octave(api) = api-v37 for package: plplot-octave-5.9.6-5.fc14.i686
--> Processing Dependency: octave >= 3.2.0 for package: qtoctave-0.9.1-2.fc14.i686
--> Processing Dependency: octave for package: plplot-octave-5.9.6-5.fc14.i686
--> Processing Dependency: octave = 6:3.2.4-3.fc14 for package: 6:octave-devel-3.2.4-3.fc14.i686
--> Running transaction check
---> Package octave-devel.i686 6:3.2.4-3.fc14 set to be erased
---> Package octave-forge.i686 0:20090607-17.fc14 set to be erased
---> Package pfstools-octave.i686 0:1.8.1-1.fc14.2 set to be erased
---> Package plplot-octave.i686 0:5.9.6-5.fc14 set to be erased
---> Package qtoctave.i686 0:0.9.1-2.fc14 set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================
 Package                     Arch             Version                        Repository           Size
=======================================================================================================
Removing:
 octave                      i686             6:3.2.4-3.fc14                 @fedora              32 M
Removing for dependencies:
 octave-devel                i686             6:3.2.4-3.fc14                 @fedora             2.5 M
 octave-forge                i686             20090607-17.fc14               @fedora              39 M
 pfstools-octave             i686             1.8.1-1.fc14.2                 @fedora             254 k
 plplot-octave               i686             5.9.6-5.fc14                   @fedora             1.3 M
 qtoctave                    i686             0.9.1-2.fc14                   @fedora             2.9 M

Transaction Summary
=======================================================================================================
Remove        6 Package(s)

Installed size: 78 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : pfstools-octave-1.8.1-1.fc14.2.i686                                             1/6 
  Erasing        : qtoctave-0.9.1-2.fc14.i686                                                      2/6 
  Erasing        : octave-forge-20090607-17.fc14.i686                                              3/6 
  Erasing        : plplot-octave-5.9.6-5.fc14.i686                                                 4/6 
  Erasing        : 6:octave-devel-3.2.4-3.fc14.i686                                                5/6 
  Erasing        : 6:octave-3.2.4-3.fc14.i686                                                      6/6 

Removed:
  octave.i686 6:3.2.4-3.fc14                                                                           

Dependency Removed:
  octave-devel.i686 6:3.2.4-3.fc14                   octave-forge.i686 0:20090607-17.fc14             
  pfstools-octave.i686 0:1.8.1-1.fc14.2              plplot-octave.i686 0:5.9.6-5.fc14                
  qtoctave.i686 0:0.9.1-2.fc14                      

Complete!

This can be done from the GUI as well. But it’s not working. The bug still exists and prevails after the new package gets installed. To make matters worse, for some reason, yum just disallows installing unsigned packages. It does not even produce a warning with an opt-out/force option. It’s very stubborn, so I had to use the GUI. Then, running the program (the new build) showed that:

octave:4> imshow('Konqueror.jpg')
octave: magick/semaphore.c:525: LockSemaphoreInfo: Assertion `semaphore_info != (SemaphoreInfo *) ((void *)0)' failed.
panic: Aborted -- stopping myself...
Aborted (core dumped)
[root@blueberry roy]# qtoctave
[main()] Error loading the QT Translation file for locale 'en_US'.
[main()] Error loading the translation file for locale 'en_US'. Not found in /usr/share/qtoctave/lang 
[Main::Main] Building commands list.

[Main::Main] Commands list builded.
QWidget::setMinimumSize: (/QMdi::ControlLabel) Negative sizes (-1,-1) are not possible
[OctaveConnection::startOctave] Octave path: octave
[OctaveConnection::startOctave] Octave version: 3.2.4 (3.2.4)
[OctaveConnection::startOctave] Starting octave: "octave"  --eval "PS1('octave:\#>');PS2('octave:\#+>');addpath('/usr/share/qtoctave/scripts_octave/')"  --persist --no-history -i 
[OctaveConnection::startOctave] Octave running
klauncher(2168) kdemain: No DBUS session-bus found. Check if you have started the DBUS server. 
kdeinit4: Communication error with launcher. Exiting!
Segmentation fault (core dumped)

Oh, wonderful. Well, eventually I found a way to run qtoctave again. Checking the version/build names again:

[root@blueberry roy]# yum remove octave
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package octave.i686 6:3.2.4-3.el6 set to be erased
--> Processing Dependency: octave >= 3.2.0 for package: qtoctave-0.9.1-2.fc14.i686
--> Processing Dependency: octave = 6:3.2.4-3.el6 for package: 6:octave-devel-3.2.4-3.el6.i686
--> Running transaction check
---> Package octave-devel.i686 6:3.2.4-3.el6 set to be erased
---> Package qtoctave.i686 0:0.9.1-2.fc14 set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================
 Package            Arch       Version              Repository                                    Size
=======================================================================================================
Removing:
 octave             i686       6:3.2.4-3.el6        @/2067.0.octave-3.2.4-3.el6.i686              32 M
Removing for dependencies:
 octave-devel       i686       6:3.2.4-3.el6        @/2220.0.octave-devel-3.2.4-3.el6.i686       2.5 M
 qtoctave           i686       0.9.1-2.fc14         @fedora                                      2.9 M

Transaction Summary
=======================================================================================================
Remove        3 Package(s)

Installed size: 37 M

Yes, even octave-3.2.4-3.el6.i686 has this same bug, so what gives? In Kubuntu 10.04 there is no such problem, not in the packaged version of Octave. Having to go through less official routes to unsigned packages is daunting enough for most people; finding out that it still does not work is even a lot worse. The problem here is not really Fedora but lack of coordination between octave and the magick folks. qtoctave handles this admirably well by restarting octave and not just letting the entire program crash. But still, having wasted several hours on this first looking for bugs in my code and then playing with packages rather than doing research (realising that my code was not the problem), I am left a bit bitter about my Fedora 14 experience. It is not as though I have been too lazy trying to resolve this and for the time being it seems like I will do more of my work on my Kubuntu box. It happens to have done packaging of Octave more successfully (at least that older version).

Update: not even stepping back to older versions of ImageMagic has worked and yum had the same limitations because the packages were unsigned.

[root@blueberry roy]# yum remove ImageMagick
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package ImageMagick.i686 0:6.6.4.1-14.fc14.1 set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================
 Package                  Arch              Version                         Repository            Size
=======================================================================================================
Removing:
 ImageMagick              i686              6.6.4.1-14.fc14.1               @fedora              6.5 M

Transaction Summary
=======================================================================================================
Remove        1 Package(s)

Installed size: 6.5 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : ImageMagick-6.6.4.1-14.fc14.1.i686                                              1/1 

Removed:
  ImageMagick.i686 0:6.6.4.1-14.fc14.1                                                                 

Complete!

Then installing the older version via the GUI. Still the same issue.

[root@blueberry roy]# yum remove ImageMagick
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package ImageMagick.i686 0:6.6.0.2-8.fc14 set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================
 Package          Arch      Version                Repository                                     Size
=======================================================================================================
Removing:
 ImageMagick      i686      6.6.0.2-8.fc14         @/2494.0.ImageMagick-6.6.0.2-8.fc14.i686      6.3 M

Transaction Summary
=======================================================================================================
Remove        1 Package(s)

Installed size: 6.3 M
Is this ok [y/N]: n
Exiting on user Command
Complete!
[root@blueberry roy]# octave
GNU Octave, version 3.2.4
Copyright (C) 2009 John W. Eaton and others.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type `warranty'.

Octave was configured for "i386-redhat-linux-gnu".

Additional information about Octave is available at http://www.octave.org.

Please contribute if you find this software useful.
For more information, visit http://www.octave.org/help-wanted.html

Report bugs to  (but first, please read
http://www.octave.org/bugs.html to learn how to write a helpful report).

For information about changes from previous versions, type `news'.

octave:1> imshow('in')
octave: magick/semaphore.c:525: LockSemaphoreInfo: Assertion `semaphore_info != (SemaphoreInfo *) ((void *)0)' failed.
panic: Aborted -- stopping myself...
Aborted (core dumped)

I’m giving up. Maybe I just need to go to far older versions for compatibility, but I tried the oldest ones built for Fedora 14.

Adobe Trash (Flash) in Fedora 14, the Free Software Way (Gnash)

Summary: An era of Flash barriers is coming to an end, but Techrights is looking for free/libre VoIP/SIP recording software

A

dobe Trash (Flash) is dirt on the World Wide Web. It hinders access to data not just by humans but also by bots. Nevertheless, there are few Web sites that still depend on Flash and require the user/visitor to install it. One site that used to require it for most data (video) was YouTube, but this major site is moving to WebM, which may make Flash and its substitutes a lot less necessary (along with codecs that are not simple to obtain, at least in Fedora). Google can be expected to transcode all of its videos and make them available as WebM within weeks or just a few months. For other Web sites, Gnash, the free/libre alternative, seems to be sufficient and it is simple to install either from the package manager (e.g. KPackageKit) or the universal environment, which is the command line. The package managers vary, but the package names are usually the same (just replace yum with apt-get for example). In Fedora 14, the following commands do the job for Gnash support in Konqueror.

[roy@blueberry ~]$ su
Password: 
[root@blueberry roy]# yum install gnash-klash
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package gnash-klash.i686 1:0.8.8-4.fc14 set to be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================
 Package                   Arch               Version                       Repository            Size
=======================================================================================================
Installing:
 gnash-klash               i686               1:0.8.8-4.fc14                fedora               177 k

Transaction Summary
=======================================================================================================
Install       1 Package(s)

Total download size: 177 k
Installed size: 541 k
Is this ok [y/N]: y
Downloading Packages:
Setting up and reading Presto delta metadata
Processing delta metadata
Package(s) data still to download: 177 k
gnash-klash-0.8.8-4.fc14.i686.rpm                                               | 177 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : 1:gnash-klash-0.8.8-4.fc14.i686                                                 1/1 

Installed:
  gnash-klash.i686 1:0.8.8-4.fc14                                                                      

Complete!
[root@blueberry roy]#  yum install gnash
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
Existing lock /var/run/yum.pid: another copy is running as pid 31528.
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory :  47 M RSS ( 63 MB VSZ)
    Started: Sun Nov 21 12:28:38 2010 - 00:06 ago
    State  : Sleeping, pid: 31528
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory :  47 M RSS ( 63 MB VSZ)
    Started: Sun Nov 21 12:28:38 2010 - 00:08 ago
    State  : Sleeping, pid: 31528
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory :  47 M RSS ( 63 MB VSZ)
    Started: Sun Nov 21 12:28:38 2010 - 00:10 ago
    State  : Sleeping, pid: 31528
Setting up Install Process
Package 1:gnash-0.8.8-4.fc14.i686 already installed and latest version
Nothing to do

Or the short story:

yum install gnash-plugin 
yum install gnash-klash 
yum install gnash
 

In Ubuntu I’ve had less luck with Gnash, which was harder to successfully install and register with the Web browser. On the other hand, Fedora has some other drawbacks that are not its fault (e.g., from today [1, 2]). The bottom line though, as far as Flash content is concerned, things have improved greatly over the years. Not only is there a free substitute for Flash but Flash content itself is dying due to HTML5 (yes, some sites dump Flash in favour of HTML) and free codecs/formats such as Ogg and WebM. This opening up of the Web is further supported by the death of Silverlight and the realisation that mobile devices require access too.

As people who hang out in IRC may already know, Techrights depends on proprietary software only as far as recording is concerned because a VoIP recorder for 2 or more people simultaneously is something that we are still unable to achieve in Ekiga. Any suggestions regarding a free/libre replacement would be appreciated. Having got rid of all dependencies on proprietary software at my job (MATLAB has been the only such dependency for many years), it would be nice to make Techrights not dependent on Skype (for TechBytes) and the FSF too recognises that replacements in VoIP are a “high priority” issue.

Fedora Wishlist Feature: Old Versions

As indicated in the previous post, sometimes it is necessary to use old versions of a particular package which is not available from the repositories. The screenshot below shows what’s available in Fedora as far as Octave is concerned.

Octave package - small

It would be extremely valuable to have links to alternative repositories or even Web sites that offer previous builds of the software, even if these are not “official” and thus less safe. It is not ideal for many different reasons, but it can prevent people from searching the Web for other RPMs that come from entirely untrusted sources.

Fedora is not the problem here, but a constructive suggestion such as this one may become a selling point to some users.

Retrieval statistics: 21 queries taking a total of 0.149 seconds • Please report low bandwidth using the feedback form
Original styles created by Ian Main (all acknowledgements) • PHP scripts and styles later modified by Roy Schestowitz • Help yourself to a GPL'd copy
|— Proudly powered by W o r d P r e s s — based on a heavily-hacked version 1.2.1 (Mingus) installation —|