Frogr 0.3 released (hello, flicksoup!)

After more than one year without writing almost anything related to my other pet project “frogr“, I finally found some time, motivation and energy to put all the loose parts I already had more or less in place together and evolve them towards what finally made a new release of this -yet another- GNOME flickr uploader.

That way, I finally released frogr 0.3 two days ago (see the announcement here), featuring the following changes:

  • Replaced flickcurl (synchronous, libcurl based) with flicksoup (asynchronous, libsoup based) as the backend library for dealing with the Flickr API.
  • Improved authentication process and made it more “seamless”, so the application is more aware now of the potential issues that might happen, reporting them to the user if needed (e.g. asking the user to re-authorize the app).
  • Better error handling and reporting, not only about the authorization process but about everything about the user-flickr interaction, which made it way more user-friendly (e.g. quota limit exceeded, host unreachable, process cancelled by the user…).
  • Added support to allow cancelling uploads (no more closing the application if forgotten to do something before pressing ‘Upload’!).
  • Added support to allow setting pictures to be added to albums after the upload process. So far, only adding to already existing albums is available, but for the next release allowing the user to create albums on the fly is also planned.
  • Menubar redesigned, so no options get hidden in the contextual menu (did you know there was one?).
  • Updated translations… errr… well… updated THE only translation we have so far (es_ES). Doesn’t it make you feel like tranlating frogr to your beautiful language? C’mon, it’s a really small file with just a bunch of strings!.
  • Simplified code both in frogr and flicksoup, which should ease a lot future enhancements in next releases of frogr, as former design was blocking quite a lot of things until I changed it once and for all.
  • Lots of bugfixes and several minor improvements.

From the point of view of the end user, perhaps it’s a bit strange to even mention the flickcurl/flicksoup change in the list of features above, but I couldn’t help it since that was the biggest change since 0.2 and what I consider the most important one, since it allowed (or just helped a lot, as you wish) that the rest of points actually happened in the way I thought it would be the right one: through a GNOME-ish library which would allow implementing asynchronous operations without the need of using threads (thanks to the mainloop and implementing the methods using the GIO’s GAsync functions), as well as properly reporting errors through GErrors, as it’s commonly done in these kind of applications.

I must say flickcurl is still a great C library which currently implements 99% of the remote flickr API, but for this project I found it too complicated and limited for the kind of things I’d like to do in frogr, which was leading me in many ocassions to work things around in many ways that wouldn’t be necessary if it was a GObject library based in libsoup, instead of a C library based in libcurl. And that’s why I decided to start its implementation, back in February 2010. Unfortunately, the library is not mature enough yet to be separately released, so for the time being I’m just developing it along with frogr, so I can at least release the application, and keeping the intention of release it separately at some point in the future. Still, you can grab the latest code from its own repository if you want to use it separately, where I regularly dump all the changes I do to it through frogr. But I must warn you, it just implements a few functions so far, those strictly needed by frogr, so don’t expect a complete libsoup based version of flickcurl yet, which is far more mature and full of features than this one.

[UPDATE 03/06/2011]: Today I removed the flicksoup repository from gitorious since the truth is that at the moment is not an independently maintained library and what I was doing at the end was (i)regularly dumping files from frogr repo to the flicksoup one. And this, apart from being tedious and usually out-of-sync, was also an issue from the point of view of some distros (like Fedora) when it comes to package frogr, so I decided to go ahead and remove it for the time being. Hopefully in the future flicksoup will be released as an independent library, but as for now it is just part of frogr (although I will keep the whole picture in mind when developing changes for flicksoup inside of frogr). More details in this bug

As usual, you can grab frogr through different ways:

So far, there are only a few of pre-compiled 32-bit packages for ubuntu and fedora in there (those I generated myself, basically), but hopefully this manual effort could stop being needed at some point in the short terms thanks to the efforts of my mate at Igalia Alberto García, who kindly already packaged for debian and asked for its inclusion in the project. Thanks, Berto!

10 thoughts on “Frogr 0.3 released (hello, flicksoup!)

  1. Pingback: Frogr 0.3 released (hello, flicksoup!)Smile | 9nd.pl

  2. Pingback: Desktop #Flickr tool ‘Frogr’ gets updated

  3. What is your preferred way to submit translations? Is it available on a platform such as Transifex or Damned lies, or do I have to get the pot file from the git repo?

  4. @Alexandre: First of all, thanks for your interest. I’m afraid at the moment the only way to provide new translations is by manually generating new .po files in the po/directory and filling them as needed.

    Still, don’t hesitate to let me know if there’s something I could help you with to ease the task as much as possible.

    Thanks!

  5. As the Flickcurl author, this makes a lot of sense to integrate with the gnome libraries and provide interactive applications Good luck in your development.

  6. @Dave: Thanks for your kind words. I also hope some day the library will be helpful for someone else writing a GNOME app, but I’m afraid flicksoup is still in a too early (and continuously changing) phase of development so I guess that will have to wait a bit till we manage to release it as a separate package.

    Also, I hope you liked the name I used for the library, in honor to your flickcurl thing :-) . I really did benefit of flickcurl a lot when writing frogr 0.1 and 0.2 and I felt like naming my library similar to it as a humble kind of appreaciation for it.

  7. @Alexandre: you can generate it by doing cd po/ && make frogr.pot

    However, I must warn you, before you start to translate it, that I’ve been doing big changes in frogr during these last two weeks, with the intention in mind of releasing the 0.4 version (coming with some interesting new features) in some weeks time, and that new version will come with new strings to be translated too.

    Hence, if you don’t feel like translating twice and prefer to wait till the code is stable enough for the 0.4 release, I’d be more than happy to send you a mail to notify you when it’s a good moment to do it so.

    Of course, if you still want to submit a translation for the current 0.3 version that would be wonderful too.

    Your choice :-)

  8. @Alexandre: Thanks a lot for the translation. As you can see I already applied it to the repository at [1]

    I’ll let you know when I reach the “l10n strings freeze” for 0.4 to update it then, it’s not going to be too much work I guess but still you can be sure some new things will appear on that release that will need translation [2] ;-)

    Thanks!

    [1] http://gitorious.org/frogr/mainline/commit/94c5515bf45250ad1d8e4e39c7b06f5e3591a7cf
    [2] http://gitorious.org/frogr/mainline/blobs/master/NEWS