2009-10-10
Recently I ported Exaile’s Files panel to use GIO instead of Python’s os module. Why? Simple: remote browsing.
Yes, you can now browse an SMB share or an SFTP server through the Files panel. Just mount the remote filesystem with gvfs-mount and enter the URL into the location bar. Previously Aren ported Exaile’s core to GIO as well, so remote files can be played just fine.
This is the kind of convenience you get out of using GIO/GVFS. In this article I’ll briefly explain what GIO is and how to do some basic file operations—similar to what the Files panel does—using GIO.

Screenshot of Exaile browsing and playing a file through GIO/GVFS
This is the 1st part of my GIO tutorial series. Part 2 talks about GIO stream reading and writing.
Read the rest of this entry »
1 Comment |
All | Tagged: exaile, gio, programming, python |
Permalink
Posted by Johannes
2009-09-25
Many Exaile users like Ex Falso, which is one of the most comprehensive tag editors in the GTK+ land. In fact, the tag editor in Exaile 0.2.x (developed by Ville Lindholm as part of Kesäkoodi 2007) was made to resemble it. This tag editor unfortunately did not make the transition to 0.3.0, which was released with a very simplistic tag editor.
For 0.3.1, Aren plans to have a tag editor that is as powerful as—but less complicated than—Ex Falso and the old tagger. The discussion in #exaile piqued my interest, and I decided to start working on a plugin that lets Exaile use Ex Falso as its tag editor, and idea that has been discussed several times before.

Screenshot of the Ex Falso integration plugin for Exaile
It seems to work quite well now. There were a few things I needed that Ex Falso’s standard API wasn’t designed to do, but they weren’t hard to work around.
Leave a Comment » |
All | Tagged: exaile |
Permalink
Posted by Johannes
2008-12-26
In the Exaile project, we use Bazaar as we used Subversion before (with one central repository that everyone commits to). This post explains the local repository setup and the daily workflow that works best for me and matches the overall project workflow. It may not be perfect for other people or other projects.
Read the rest of this entry »
Leave a Comment » |
All | Tagged: bzr, exaile, vcs |
Permalink
Posted by Johannes
2008-12-16
I took a long hiatus from all my involvements in the free/open-source software world, including writing in this blog. Right now I’ve decided to go back, though I may not be as active as before.
Things happening during my break that I want to comment on:
- Development on Exaile 0.3 started.
- A lot of the database-related codebase was rewritten, but the DB has never been my main interest anyway.
- I don’t see Unicode support improving. At this stage I’ll just wait for Python 3 support.
- Portability bugs have crept in; I’ve fixed some of them
, but haven’t been able to run Exaile on my only Windows (Vista) box.
- The main Bazaar branch now contains several symbolic links. The problem is, Bazaar doesn’t support symlinks in Windows. This makes working on Exaile that much of a hassle, since I effectively can’t checkout the main branch from Windows. Yes, there are ways around this, but the truth is, I hate fighting with revision control systems just to be able to do my work. </rant> I worked around this by removing all the symlinks in the tree and re-creating them when necessary.
- Python 3 released.
- In isolation, this news means little. Python 3 itself is not perfect—I’ve bumped into a couple of problems—so it’ll be a while before it gets mass adoption. However, this release means everyone should start thinking about upgrading their code to the new syntax and API.
- Rules of three: I don’t realistically expect all of Exaile’s dependencies to be ported to Python 3 anytime soon. There are essentially 3 camps we are waiting on: PyGTK, gst-python, and Mutagen. 3 months is my optimistic estimate of the time we need to wait before we can start porting Exaile. After that it’s probably another 3 months’ work for porting. (This projection is wildly off-mark. It’s been a while now and none of our dependencies support Python 3 yet, as of end of 2009. See also GNOME bug 566641.)
- The Australian government is pushing for Internet content filtering.
- The founder of iiNet (a big Aussie ISP) made a pretty strong comment against this.
Leave a Comment » |
All | Tagged: blog, exaile, python, yro |
Permalink
Posted by Johannes
2008-02-13
Kjel Oslund just informed us that GNOME’s multimedia keys interface has changed.
That’s so messed up.
The reason for the change: “With the move of the gnome-settings-daemon to its own module, the DBus interface names have changed.” (source).
I’ll see if they’ve finally written a documentation for this interface, otherwise I’ll post an update to my old reference doc. I’ll put it in the Exaile wiki so it’s more “official”; it’ll also be simpler to edit if it changes again (*cough* API stability *cough*).
Of course, I also have to change the code in Exaile to support both the old and new interfaces. As a reference, the Rhythmbox counterpart might be useful.
2 Comments |
All | Tagged: exaile, gnome, mmkeys |
Permalink
Posted by Johannes
2007-12-21
gtkmozembed is notorious for consistently crashing in some systems. It turns out this is a problem with how the library is built; that is, a distro bug.
Exaile used to have a workaround for this, which apparently breaks in distributions (e.g. Gentoo) that already build gtkmozembed with the right magic.
As of a few hours ago, the workaround has been removed. If the actual problem is not fixed in your distribution (reportedly the development version of Ubuntu has been fixed), you can either ask the gtkmozembed package maintainer to apply the fix or ask the Exaile package maintainer to apply a workaround (note that a security problem has been identified in the old workaround).
Leave a Comment » |
All | Tagged: debian, distro, exaile, gentoo, mozilla, ubuntu |
Permalink
Posted by Johannes
2007-12-05
This is a bug in pysqlite 2.4.0, fixed in 2.4.1.
References:
Leave a Comment » |
All | Tagged: exaile, programming, python, sqlite |
Permalink
Posted by Johannes
2007-11-26
There’s a long-standing internationalisation bug in Exaile that has been nagging me for some time. In localised environments, column names get saved to the settings in translated form. This has annoying consequences.
No more; I’ve merged the fix-columns-i18n branch that I have been working on for a while. There’s just a catch: using existing settings you’ll see no columns at all, which means no cells, which means completely empty playlists. You can simply re-enable them from View → Columns.
Edit (2008-01-29): The remaining bug is fixed now.
2 Comments |
All | Tagged: exaile, i18n |
Permalink
Posted by Johannes