Category Archives: Software

Hardy, Java and crashing applications

Following up my problem description in my last post, I tried to get Eclipse (and other crashing Java applications) running with the Java 6 version that is shipped with Hardy.

The changelog of the packages sun-java-* (version 6.06) claims that the locking problems with XCB have been fixed upstream:

* New upstream bug fix release.
  - Release notes at http://java.sun.com/javase/6/webnotes/ReleaseNotes.html.
  - Fixes Xlib/XCB locking problems. LP: #86103. Closes: #414535.

But this is not the case, at least not for me.

Googling the problem showed a few potential workarounds, like

export LIBXCB_ALLOW_SLOPPY_LOCK=true

and

sed -i 's/XINERAMA/FAKEEXTN/g' /usr/lib/jvm/java-6-sun/jre/lib/i386/libawt.so

Neither of them worked. So I’m back with Java 6 from Gutsy, which just works fine on Hardy.

I wonder whether I am the only one with these problems… are they going to release Hardy with a broken Java/XCB combination?

Upgrade to Hardy

I updated to my Ubuntu system to version 8.04 “Hard Heron” RC. It’s a release candidate, so there won’t be many changes until the “real” release in a few days.

The upgrade process itself went through without any problems, but I had to fix a few things which did not work anymore after the upgrade. There was:

  • Applications using GL kept crashing themselves (like fgl_glxgears) or the whole X-server (like Google Earth).

Not good. It turned out that my fglrx installation was somehow broken, Ubuntu even told me that I’m not using any proprietary drivers. So I downloaded the new 8.4 release of fglrx, baked my own debs and installed them.

Nothing crashed, but the applications refused to start because of missing library: libGL.so.1. This might indicate a slightly broken fglrx package creation for Hardy. Anyway, a symbolic link solved the problem.

ln -s /usr/lib/libGL.so.1.2 /usr/lib/libGL.so.1
  • Eclipse kept crashing

Eclipse started, and during building the workspace, it always crashed. I tried without plugins, a fresh installation, etc, then I downgraded Java 6 to the version from Gutsy, and everything worked.

It was enough to pull the packages sun-java6-bin, sun-java6-jdk, sun-java6-jre, sun-java6-plugin and sun-java6-source out of the Ubuntu archives and install them. To make Ubuntu’s update notifier stop bugging me about the existing newer packges (which I just downgraded) I set them all on hold via

echo {$packagename} hold | dpkg --set-selections

The problem might be connected to libxcb and libmawt, because instead of a crashing VM I sometimes get the following messages:

Locking assertion failure.  Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0xb7d00767]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x31) [0xb7d008b1]
#2 /usr/lib/libX11.so.6(_XReply+0xfd) [0x903d91bd]
#3 /usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/i386/xawt/libmawt.so
...

I remember having had some similar problems in Gutsy (or was it Feisty?). I will look into this when I’ve got some more time.

  • Firefox 3 does not support old add-ons

The default browser in Hardy is Firefox 3 (there is still packages will Firefox 2 if you want to). That’s good and bad. It’s good because it feels more lightweight and JavaScript-heavy sites feel much more responsive. It’s bad because it’s still a Beta (I already experienced a few crashes) and because some popular extensions like del.icio.us Bookmarks are still not compatible with the new version.

To keep it simple, I added the following boolean setting to the configuration (about:config):

extensions.checkCompatibility = false

This will give you a warning inside the Add-ons window, but most of the officially incompatible extensions will work after that.

No other problems with the new version so far. ūüėČ

Conzilla and Collaborilla go REST

I just released Conzilla 2.2.2 together with Collaborilla 1.1. The biggest improvement of these versions is the switch to RESTful web services, which makes it finally possible to access Collaborilla even in very restrictive networks – the new services use standard HTTP port 80 which shouldn’t be a problem anymore. To make the picture complete, I also added support for HTTP proxies, so there is no excuse anymore for not being able to use Conzilla.

The noteworthy changes since version 2.2.1:

  • Support for Collaborilla 1.1 and the new RESTful web services
  • Support for connections through HTTP proxies
  • Possibility to conditionally empty the disk caches
  • Fix for problem on MacOS which prevented to open URLs in web browsers
  • Fixed some NullPointerExceptions

Go and get it. Or if you already have an older version: just launch it via Java Web Start, the upgrade should then take place automatically.

Finally upgraded to Gutsy

I finally did it. Everything went fine, except for the proprietary ATI/AMD fglrx graphics driver and the related x.org setup. To get suspend to work I had to upgrade to the latest fglrx driver. After this the UI felt pretty slow, much slower than it was before the upgrade. OpenOffice.org Impress was almost unusable, it took about 5 seconds for a slide change.

The problem consisted of two parts, one was that cpufreqd was slowing down my CPU. I didn’t have it installed before, so I removed it. I’m relying on the ondemand governor anyway. Then I also added the following options to the device settings in my xorg.conf:

Option	"XAANoOffscreenPixmaps"
Option	"AccelMethod"	"XAA"

No my X is as fast as before, I even gained a bit of 3D performance with the new fglrx drivers.

Suspend and wake up works also after I set the following options in /etc/default/acpi-support:

SAVE_VBE_STATE=false
POST_VIDEO=false

Conzilla 2.2 released

The Conzilla team is proud to announce the release of Conzilla 2.2.

This is a usability release for improving the user experience and making it easier to perform collaborative conceptual modeling.

The major improvements since version 2.1 are:

  • Undo/redo functionality in edit mode.
  • Advanced logging for improved user feedback.
  • Improved “Offline mode”.
  • Keyboard shortcuts for most important editing actions.
  • Various improvements for editing single concepts and their relations to context-maps and sessions.
  • Context-Map metadata files (.ccm) and associated mime-type for easy opening of context-maps.
  • Support for importing collaboration settings from files, makes initial installation easier.
  • Announcements to the Sindice semantic indexer when publishing context-maps or contributions.
  • “Source view” for viewing a context-map in RDF.
  • Multi-threaded loading of context-maps resulting in smoother surfing.
  • Various improvements in the session manager.
  • New status bar with information on context-maps.
  • Splash screen with progress bar when starting Conzilla.

… and many more bugfixes and new features, see the automatically generated change log of our bugtracker for details!

Conzilla 2.2 requires a Java Runtime Environment in version 1.5 or newer and can be installed via the download page. If you already have an installation of Conzilla 2.1 it should be sufficient to launch Conzilla via the shortcuts. Java Web Start will then take care of the upgrade.

If you have comments or suggestions you can send them directly to the Conzilla mailing lists.

WebDAV library Jakarta Slide discontinued

The Apache Jakarta subproject Slide does not exist anymore. After several years of bugfixing only, the project has been stopped and recommends to switch over to other libraries like Jackrabbit.

I introduced Slide a while ago to Conzilla for accessing the WebDAV/SVN data store used by the Collaborilla collaboration server. I was not very happy with the spartan info I got out of some exceptions (some messages were just “null”), the documentation was a bit holey as well. At that time I thought of using Jackrabbit, not just as a WebDAV-client, but as a complete replacement for the LDAP/WebDAV/SVN combination. I like the concept of a real content repository, and that’s exactly what Jackrabbit is: an open source reference implementation of JCR 170.

The next release of Collaborilla will contain major changes, I think it will even be an almost complete rewrite. I don’t know yet whether the backend will be a traditional DBMS or a content repository, but I already know which library is not going to be used anymore.

No Gutsy for me – yet

Five days to go, a release candidate is out and I felt like upgrading – then I noticed that bug #121653 (“fglrx breaks over suspend/resume”) is still open. I have a ThinkPad T60 with an ATI X1400 and I’m using the closed-source fglrx driver, so my setup is clearly affected by this bug.

As a solution I could switch to the free ATI driver, without 3D support, and with somehow degraded 2D performance. I don’t want that. Or I could just stop using Suspend-to-RAM. I don’t want that either. So either I wait until AMD fixed the driver, or I compile my own kernel with the SLAB allocator which is known to work with fglrx. I’m not sure whether the latter really is an option, it probably breaks other modules from the Ubuntu repositories, and I’m not keen on compiling every single piece myself. I’m running Ubuntu, not Gentoo. And the slogan “It Just Works” made me switch from Debian to Ubuntu…

Anyway, this shows once again how important open-source drivers are, and according to reports AMD is working already towards this direction. I will gladly install the open drivers once they are released.

AJAX, the Web and Everything

Today our research group had, together with some people from Uppsala Learning Lab and IML at Umeå University, a very giving all-day workshop on AJAX and the toolkit Dojo in particular. My colleague Matthias Palmér was talking first about existing approaches for realizing modern web-based applications in general and focused later on the architectures ReST and AJAX. The whole day culminated in doing some hands-on stuff, which means hacking together small applications using Dojo, just for the sake of getting a feeling for how it works or at least how it is supposed to work.

For me it was pretty new terrain. Having done some decent JavaScripts before, the “AJAX using Dojo approach” opened up a load of new possibilities on “how to do things differently” [tm]. Dojo is a powerful toolkit for simplifying such advanced web programming, and I guess I will be using it in a number of applications and prototypes. One of the first (and an important one as well) will be a web-based lightweight version of the concept browser Conzilla. Lightweight means that it will not have any editing support as we know it from the fully-featured Java application. At least not from the beginning. The main purpose will be easy and embeddable presentation of context-maps in different kinds of web documents.

Matthias already developed a prototype which is able to render context-maps directly in the browser. I’m working right now on a Restlet which supports dynamic creation of JSON-data which will be fed into the AJAX client. This will be the foundation of the web-based Conzilla client. Watch out for news on this topic!