Debarshi's den

Archive for the ‘Solang’ Category

Solang 0.4.1 released

with 3 comments

We are glad to announce the release of Solang 0.4.1. This is a new release in the unstable 0.4.x series. It introduces some new features and fixes over the earlier releases in this series.

Solang is a photo manager for GNOME. It lets you manage your collection of photos by tagging them and searching through them based on various criteria — tags, EXIF data, etc; and offers a limited set of editing functionalities. Under the hood, Solang uses Tracker which allows it to automatically detect all the photos on your computer and publishes the tags all across the desktop.

Screenshot of Solang 0.4.1

New Features:

  • Create archives using libarchive instead of File Roller.
  • Brasero exporter to burn selected photos to a CD/DVD.
  • End user help written in Mallard.
  • Free text search that looks at the URIs and tags of photos.
  • Photos are sorted in reverse chronological order based on when they were last modified.
  • Replaced the buttons of the search basket with a context menu.
  • Thumbnails in the browser do not have a frame around them.
  • New dependencies on Brasero (optional) and libarchive. Minimum required version of Brasero is 2.28.3, Tracker is 0.8.0 and libarchive is 2.8.0.


  • Display human readable strings for metering mode instead of the internal representation used in Tracker.
  • Fixed the flip and rotate operations so that the dimensions of the photo remain correct.
  • Mark photos that are going to be exported in the browser.
  • Read the flash and white balance properties of photos.
  • Select the first photo when a new page is shown in the browser.
  • The exporter dialog is now closer to the GNOME Human Interface Guidelines.
  • Wake up the thumbnailer only when there is a pending request.
  • Updated SPARQL queries to reflect changes in Tracker.
  • 608826 – Add comments and context information to aid translation
  • 613499 – Quit enlarged mode with Escape
  • 613518 – Layout is not saved


  • Bengali (India) (bn_IN)
  • Bulgarian (bg)
  • Czech (cs)
  • Danish (da)
  • German (de)
  • Spanish (es)
  • French (fr)
  • Lithuanian (lt)
  • Polish (pl)
  • Russian (ru)
  • Slovenian (sl)
  • Serbian (sr)
  • Serbian Latin (sr@latin)
  • Swedish (sv)
  • Ukrainian (uk)
  • Chinese (Taiwan) (zh_TW)


  • Adrien Beudin
  • Andrej Žnidaršič
  • Bruno Brouard
  • Cheng-Chia Tseng
  • Claude Paroz
  • Daniel Nylander
  • Florent Thévenet
  • Gintautas Miliauskas
  • Hicham HAOUARI
  • Joe Hansen
  • Jorge González
  • Kenneth Nielsen
  • Leonid Kanter
  • Marek Černocký
  • Mario Blättermann
  • Matej Urbančič
  • Miloš Popović
  • Piotr Drąg
  • Sankarshan Mukhopadhyay
  • Slava Zanko
  • Tomas Novak
  • Yasen Pramatarov
  • Yuri Chornoivan


Home Page, Support:


Written by Debarshi Ray

17 April, 2010 at 11:07

Posted in GNOME, Solang

Solang: what is brewing for 0.4.1

leave a comment »

After getting Solang’s Tracker-based backend to work in the last release, we spent the last couple of months polishing up bits and pieces of the user interface, and making some internal infrastructural improvements. Most of these changes are either bread and butter features we have come to expect from a photo management application or are invisible to the end-user. Instead of talking about the mundane stuff (you will find them in the release notes anyway), I will highlight a few interesting bits.

Free-text Search

On first thought free-text search is something we associate with textual content — PDFs, HTML pages, etc., and not with photos. However, some of the meta-data associated with photos can lend themselves to intuitive free-text searches. eg., tags, URIs, Exif, etc.. So we implemented a  free-text search functionality that looks for matches in the URI and tags of your photos.

Screenshot of Solang's free-text search functionality

End-user Help

Thanks to Florent Thévenet, Solang now has end-user help written in Mallard.

Screenshot of Solang's end-user documentation viewed in Yelp


Our recent move to GNOME infrastructure resulted in a big jump in the number of translations. Right now we accept translations from both and Submissions from get reviewed by the GNOME language teams before being committed to the tree.

A big round of applause to all translators!

Written by Debarshi Ray

10 April, 2010 at 12:35

Posted in GNOME, Solang, Transifex

Solang:, Damned Lies, and the stalemate

leave a comment »

A few weeks back Solang started using for its main Git tree, got a module on, and a website on We also started using for accepting translations alongwith, which we were using before the move to GNOME infrastructure. This was mainly done to keep Solang aligned with the rest of GNOME as advised by some kind souls in #c++ on GIMPNet.

Unfortunately this opened up a big can of worms. Apparently if some program is to use then it can not use any other platform for accepting translations.

I really like the idea of being a common platform for translating programs. However GNOME has a vibrant translation community centred around the gnome-i18n list, where new modules are advertised, new translation teams are announced and so on, and there is no such equivalent for So the moment I advertised Solang on the GNOME lists I got a bunch of new languages with a few hours. Such exuberance is not visible on simply because I am unable to reach to the community surrounding it.

So if you are a language translator, I would like to invite you to translate Solang to your native language through Right now your contributions get emailed to me because Transifex has been disallowed from pushing to

Written by Debarshi Ray

22 February, 2010 at 19:41

Posted in GNOME, Solang, Transifex


leave a comment »

Solang was demonstrated by the Tracker team as part of their talk in the cross desktop developers’ room at FOSDEM 2010. Here are the slides in PDF and the corresponding LaTeX sources.

Written by Debarshi Ray

9 February, 2010 at 13:28

Posted in FOSDEM, GNOME, Solang

Solang 0.4 released

with 7 comments

We are glad to announce the release of Solang 0.4. This is an unstable release introducing new features and improvements, and has undergone significant changes.

Solang is a photo manager for GNOME. It lets you manage your collection of photos by tagging them and searching through them based on various criteria — tags, EXIF data, etc; and offers a limited set of editing functionalities. Under the hood, Solang uses Tracker which allows it to automatically detect all the photos on your computer and publishes the tags all across the desktop.

Solang 0.4 screenshot

New Features:

  • Replaced our own database with Tracker. SPARQL is used to gain access to the meta information about the photos. Photos are in the Nepomuk desktop ontology represented by the class nmm:Photo. Tags are in the same ontology represented in its annotation section. They are represented by the class nao:Tag.
  • The folder importer is now obsolete and has been removed because Tracker automatically indexes all photos on the system.
  • Photo meta-data are now obtained from Tracker instead of reading Exif directly.
  • No separate editor renderer. Photos can now be edited directly in the enlarged renderer.
  • Moved the UI controls for the browser render’s pagination bar and zoomer to more standard locations. The previous and next buttons, and slider are now part of the main toolbar, while the currently displayed range is indicated in the status bar.
  • UI cleanup. No text is shown in the thumbnail view and all additions or removals to the search basket are now automatic.
  • New dependencies on GEGLmm, Tracker, D-Bus GLib and the D-Bus services. Minimum required version of GEGL is 0.1.x.
  • Dropped dependencies on Exiv2, Flickcurl, LibGdamm, LibGPhoto2, LibSoup and WebKit Gtk+.


  • Camera and Flickr importers are absent.
  • There is no date view or searching based on dates.
  • Changes made to photos can not be saved and there is no undo/redo.
  • The scale, brightness, contrast and saturation operations are missing from the editor.
  • Tags do not have an icon associated with them.


  • Bengali (India) (bn_IN)
  • French (fr)
  • Hebrew (he)
  • Polish (pl)


  • Adrien Beudin
  • Florent Thévenet
  • Liel Fridman
  • Piotr Drąg
  • Sankarshan Mukhopadhyay
  • Yasen Pramatarov

Download, Home Page, Support:

Written by Debarshi Ray

23 January, 2010 at 19:24

Posted in GNOME, Solang

Solang: what is brewing for 0.4

with 5 comments

It has been a busy vacation for me and Solang. Finally we are at a point where we can release 0.4. So let me write about what we have been doing and what is new.

Integration with Tracker

The most visible change and the one which really sets Solang apart from the crowd [1] is that we are no longer going to use a private database for tracking photos and storing our meta-data. I had briefly written about this earlier, but let me elaborate what this really means for the user.

This means that you, as user, do not need to explicitly click some buttons and select some folders in order to import your collection of photos into Solang. Neither are the tags, that you create in Solang, going to be locked out from the rest of the desktop forcing you to start Solang everytime you need to search something based on those tags. Solang will automatically figure out where all your photos are and let you browse, tag and edit them. Later on, you can access the tags that you created and attached to your photos from other applications as well.

So what is the catch? How does this work?

We rely upon Tracker to let us know where the photos are and to keep track of all the relevant meta-data (eg., EXIF data) and tags. Tracker has a set of miners (right now it only has a filesystem miner, but things like a Flickr miner are being worked upon) which will index all your data behind the scenes. Ideally, your GNU/Linux distribution would be configuring your desktop so that Tracker is started everytime a session is initiated and everything will just work.

Thumbnailing with Tumbler

We completely overhauled our thumbnail management code. We decided to use Tumbler, which is an implementation of the thumbnail management D-Bus specification from XFCE. Other people might turn up with their own implementations but as long as they are implementing the same D-Bus API we do not care who is actually providing the functionality. To keep the application responsive under heavy loads we took a strategy similar to the one used by Thunar when dealing with the thumbnailer.

Well, we could have used GnomeDesktopThumbnailFactory too, but did not for two reasons. With the recent focus on removing libgnome(ui), and the fact that GnomeDesktopThumbnailFactory was previously part of these libraries as GnomeThumbnailFactory I was a bit skeptical about the future of this code. Moreover using Tumbler over asynchronous D-Bus calls automatically makes our application more responsive and the code simpler. GnomeDesktopThumbnailFactory does not appear to have any asynchronous functions in its API and I did not want to run a separate thread to deal with thumbnails.

Editing with GEGL

Lastly we changed our editor to work with the enlarged view itself, instead of having its own view. This should smoothen the workflow for the users as they will not have to move to a different view just to rotate or reflect the odd photo while looking at a collection in enlarged mode.

Secondly, we are going to rely as much as possible on GEGL for our image manipulation code. Previously there were some concerns because GEGL was really really slow, even for some basic operations like rotating by a multiple of 90 degrees or reflections aligned to the axes. However there has been some improvements regarding these issues recently, and using GEGL will make it much more easy for us to add support for higher bit depths and RAW processing later on. After all I want to focus on doing it right instead of doing it quick.


[1] We still want to remain as light as possible.

Written by Debarshi Ray

16 January, 2010 at 17:58

Posted in GNOME, Solang, Tracker

Solang: website and wiki

leave a comment »

Written by Debarshi Ray

8 January, 2010 at 12:38

Posted in GNOME, Solang