Frogr 0.9 released

So, after a bit more than one year without releasing any version of frogr, I finally managed to get some “spare” time to put all the pieces together and ship the ninth version of it, which I believe/hope is going to be a quite solid one.

Frogr 0.9

In all honesty, though, this version does not come with many new features as the previous ones, yet some changes and fixes that I believe were quite necessary, and therefore should help improving the user experience in some subtle ways.

For instance, the layout of the dialog to edit the details of a picture has changed (as per Ana Rey‘s comments during GUADEC) to enable a more efficient usage of vertical space, so much needed these days in small widescreen laptops. Of course, design-wise still sucks, but I believe it’s much more convenient now from a pragmatical point of view.

Also, frogr is now a little bit more “modern” in things such as that it now supports GStreamer 1.0 (0.10 still supported), a lot of deprecated code (e.g. Stock items, GtkActions) has been replaced internally and it now integrates better with GNOME Shell’s search box. Ah! and it also now provides an AppData file to integrate with GNOME Software Center, which is a nice touch too.

Another interesting thing is that I finally fixed the problem that we have with multiple selections in the main view, which was neither intuitive nor very useful, as Ctrl and Shift modifiers did not work as expected. So, from now on, it is finally possible to work with disjoint multiple selections of pictures, a feature I was missing so much.

Last, I fixed two important problems in the code that caused frogr consume two much memory, specially after uploading pictures. It was a quite severe problem since frogr was not properly freeing the memory used by pictures even after those were uploaded and removed from the UI, causing important issues in cases where people tried to upload a lot of pictures at once. It’s hopefully fixed now.

And that’s all I think. As usual, you can check the website of the project to know how to install frogr on your system if you don’t want to wait for your favourite distribution to ship it, or if you just want to check more information about the project or to contribute to it.

FOSDEM 2014

Ah! By the way… I’m going to FOSDEM again this year, but this time by train. Can’t wait to be there! :)

Frogr 0.8 released

During the last weeks, I decided to make the most of some spare time I had while still in “nowhere land” (see my previous post) and so I’ve been working in frogr to see if I could release the 0.8 version before the end of the year. In my mind it looked like kind of a nice and humble Christmas present to the world and, at the same time, a interesting way to spent this time I had between my depart from my previous job and the start of the new one.

And it turns out that, at the end, I didn’t manage to have as much spare time as I initially expected to have (I was pretty busy most of the time, actually), mainly due to many unrelated things I needed also to take care of, but in the end I still managed to steal some minutes here and there and I’m now proudly announcing that the new release is finally out.

But before going on, see the mandatory screenshot, as taken in my Fedora 18 machine:

As you can already spot in the screenshot, some changes are already quite visible, but some others are not, so let’s now comment on the most important ones, one by one…

Ported to GtkApplication and GMenu

It’s no secret that one of my favourite changes in this release is the integration with GNOME 3‘s “global menu” (aka the application menu), which makes frogr more beatifully integrated with the desktop than ever. However that came with a price: I needed to port frogr to GtkApplication first and then implement both the application menu and the menu bar using GMenu, which also made me raise the required version for GTK+ up to 3.4.

Sure I could have kept adding more ifdefs to the code to keep supporting previous GTK+ versions, but I also saw this as a good opportunity to clean up the code and get rid of so many conditional compilation units that were increasingly harder to maintain, and so I did it. As a plus, the OS X specific code has been reduced enormously as well, since GTK+ 3.4 integrates very well with OS X without having to do anything special, as I needed to do when I used GTK+ 2.24 for that port.

Loading and saving ‘projects’

This has been one of the features that several people have suggested in the past in different occasions, and so one of those I hope people will enjoy the most with this new release: the possibility to save the current session into a “project file”, so you can resume your work later.

How it works it’s actually pretty simple: when you save a session to a project, frogr will just serialize your current pictures, sets, groups and local tags to a json file (using json-glib) that you can use to restore the state later. It could be more sophisticated, but I think that it works reasonably well in the tests I did considering what it was designed for. In any case, please feel free to report bugs or feature requests to improve or fix things if needed.

Support for video uploads

Believe it or not, frogr has been almost ready to upload videos since some time ago, since for Flickr a video is just a “moving picture”, and it’s treated in exactly the same way than pictures when it comes to the upload API.

The only thing that was missing to remove that almost from here was to generate thumbnails for videos so they could get loaded into the UI. Not rocket science, sure, but something which needed doing and which was not a priority at all until now. And to be honest, it is not a priority yet anyway, but I felt like doing it this time once and for all, so from now on you can upload videos too.

Other features & bug fixes

Besides those three and perhaps more noticeable features, frogr 0.8 comes with several other new things, bug fixes, small changes and refinement that I hope will make this release more stable, useful and fun to use than ever.

Some examples of those other new things are, as taken from the NEWS file:

  • Handle and report errors in a better way (no more mysterious failures).
  • Perform after-upload operations (add to sets/groups, set license…) in parallel.
  • Avoid fetching sets/groups/tags when still not connected yet to Flickr.
  • Hide title bar when main window is maximized (see screenshot above).
  • Renamed the ‘Actions’ menu to ‘Edit’ and brought the ‘File’ menu back.
  • Allow sorting elements in the icon view by size.

Last, I’m also quite happy to tell that the OS X port of frogr has been finally migrated to GTK+ 3 in this release (at last!), and that the whole process of building it for that platform is now easier than ever, thanks to a specific Jhbuild moduleset I created for that purpose, following the lead of GEdit (thanks Nacho for the suggestion).

Check out the README file in the osx/ directory if you feel curious about the process or if you want to build it yourself. It shouldn’t take more than 2-3 commands in the terminal to get something like this running in your OS X machine:

Also, another advantage of having that moduleset created, is that now it’s trivial to properly document (by means of a shell script) the bundle file used to distribute frogr in OS X, instead of just providing an “opaque” pre-compiled bundle, as I used to do in an “unofficial way” with previous versions. Feel free to grab the bundle I’ve just created for this release from the GNOME FTP server.

So that’s it. I hope you enjoy using frogr 0.8 as much as I did writing it, and if you eventually find it useful too, then even better! As usual, check the website of the project for additional information or just to know how to install frogr on your system.

Frogr 0.7 released

As you might already know Flickr has added support for OAuth a while ago, which is meant to be the obvious replacement to the old Flickr auth API that has been available since a long long time ago, which has been used by many applications our there, like frogr. But the important point here for apps using the old auth method is that it won’t be longer available after July 31st, which means they should get updated if they want to keep working as so far.

Frogr 0.7

So, this is the main point of this release: to update the internal implementation of the Flickr REST API in frogr (which, ideally, will be released independently as a library at some point) to use OAuth instead of the old authentication API.

Additionally, in order to make things easier for users of older versions, the application will take care of exchanging the authentication token from the old system to the new ones used by the OAuth API. If you want to know more details about this, check the related API. For the rest of you, you shouldn’t notice anything the first time you run this new release.

Still, some other things were included in this new release that are worth mentioning:

  • Ability to import tags already present in pictures  (e.g. as set by f-spot or shotwell).
  • Allow users deciding, right from frogr and on a picture-by-picture basis, whether to set the geolocation information for pictures when uploading them to Flickr.
  • New tags are added to the auto-completion without having to upload anything first.
  • Allow using a dark version of your theme if available (e.g. Adwaita).
  • Some redesign of the menu bar, thinking of a future migration to GMenu.
  • Added menu accelerators for the most common operations.
  • As usual, bugfixes, cleanups… that kind of stuff.

Also, you can check the announcement mail or the NEWS file if you want for more detail about this new release, as well as the website of the project for additional information, such as knowing about ways of collaborating or how to get frogr installed on your system.

I think that’s it. Enjoy!

Frogr 0.6.1 (bugfixing) release

Shit happens in many ways, and sometimes that means you release an application with some bugs you just can’t stand and need to roll out a bugfixing release as soon as possible. Does this sound familiar to you? :)

So that’s why this new release of frogr, just one week after the 0.6 version had been published, has arrived, taking care exclusively of fixing the following problems, as stated in the NEWS file:

  • Fix memory leaks, the most important one happening in the editing details dialog.
  • Problems using combo boxes with versions of GTK prior to 2.24.
  • Fixed problems authorizing frogr on the MacOSX version.

From those above, patches for some them were already included in the debian packages from frogr’s Ubuntu PPA and in the package for the Mac, but the most important ones -the leaks- were not, so that’s why I decided to roll this new version out.

So that’s all, if you were already an user of frogr, go and grab it through the usual ways.

Frogr 0.6 released

After some changes here and there frogr 0.6 is finally out.

Frogr 0.6 running in GNOME 3

Besides the usual bugfixing work, the main new features on this release are:

  • Integration with the GNOME general proxy settings (optional).
  • Open pictures in the default image viewer  from the details dialog and the main view.
  • Allow users to specify the license to be set for the pictures.
  • A new User Manual, under “Help > Contents”.
  • Some UI improvements.

As usual, you can get frogr through different ways: you can grab the source code from its git repository or via the xz and bzip2 tarballs, specific packages for Fedora or for Ubuntu (ranging from Karmic to Oneiric) and even a version for MacOSX, if you dare to use it.

By the way, at the moment frogr is already being packaged in some distros (see this) and others might follow, so perhaps it could be that you already were able to install it by just using your favorite package manager with the standard repos. Otherwise, it might be just a matter of time, I guess…

For more information about the project and also how to contribute, check out its web site.

Last, but not least, I’d like to make an special mention here to the awesome Quinn Dombrowski, who very well could be the “most passionate frogr user I’ve ever known” and who was kind enough to design, handcraft and send -from Chicago to Spain- a stuffed frogr mascot plus a beautiful vest for my son (which design comes also with its own incredible story), as a sign of gratitude for writing this tiny app. I’m still shocked about it, see what I’m talking about:

Frogr mascot Onfim vest

If you want to see more pictures you can check my set in flickr, although I warn you these two ones taken by the artist are way better than mine :-)

Seriously Quinn… and yet once again: Thank you!

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!

Trying latest epiphany/WebKit in Ubuntu

Even though I’ll be stating the obvious for so many ubuntu users/developers reading this post, I’d like to post a quick recipe for those who don’t know how to easily install the latest version of epiphany with the WebKit backend, as well as all the needed dependencies, without having to mess with compiling the source code (which is not always an easy nor a quick task, by the way).

So here we go

  1. First of all, this only works for Ubuntu Jaunty or Karmic, since there are no PPAs available for previous distros to install Epiphany (WebKit PPAs provided since Hardy).
  2. Add the PPA’s from the WebKit Team both for installing latest version of WebKit and Epiphany. So, that is, add the following lines to your /etc/apt/sources.listfile (replace ‘karmic’ with ‘jaunty’ if needed):
    deb http://ppa.launchpad.net/webkit-team/ppa/ubuntu karmic main
    deb-src http://ppa.launchpad.net/webkit-team/ppa/ubuntu karmic main 
    
    deb http://ppa.launchpad.net/webkit-team/epiphany/ubuntu karmic main
    deb-src http://ppa.launchpad.net/webkit-team/epiphany/ubuntu karmic main
  3. Import the GPG key of the repo in APT:
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 2D9A3C5B
  4. Update APT packages cache:
    sudo apt-get update
  5. Install the needed packages:
    sudo apt-get install epiphany-browser epiphany-browser-dataepiphany-extensions
  6. Just wait and let APT to do its magic :-)

And that’s all. After those simple steps you should be enjoying the last version of  this great and amazingly fast browser (2.29.6 at the time of writing this post), which is nowadays under heavy development, continuously getting better, better and even better on its roadmap towards GNOME 2.30.

So, what are you waiting for? Just go ahead and give it a try if you haven’t done it yet and make it your default browser ;-) . Now you don’t have to manually compile all the needed stuff you just don’t have any good excuse not to do it.

And don’t forget to report any issue you find in the bugzilla. Remember feedback (and patches, of course) is the best way to help with improving it even more!

Ah! by the way, almost forgot to say that…

I’m attending FOSDEM

…as another member of the Igalia gang hanging around there this weekend.

See you there guys!

[Update 2010/01/04] As commented by zerwas, there’s an even easier way from Karmic on:

  1. Add the PPA’s from the WebKit Team both for installing latest version of WebKit and Epiphany:
    sudo add-apt-repository ppa:webkit-team/ppa
    sudo add-apt-repository ppa:webkit-team/epiphany
  2. Update APT packages cache:
    sudo apt-get update
  3. Install the needed packages:
    sudo apt-get install epiphany-browser epiphany-browser-dataepiphany-extensions

Frogr 0.2 released!

After coming back from an awesome week of holidays in Paris (lovely city, btw!), today I finally managed to get some time for making up what it became the second upstream release of frogr: frogr 0.2

Just trying to give a brief update on “what is new”, here you have an excerpt from the NEWS file:

  • Generate ChangeLog from git log with ‘make dist’
  • Added .spec file for fedora 11 packaging system (thanks Adrián Pérez)
  • Added drag’n'drop support for loading pictures in frogr
  • Added support to add tags to pictures (instead of just replacing)
  • Fixed (legacy) support for libgnome2 to compile in debian lenny
  • Use accesor functions instead direct access and removed some deprecated GTK+ symbols (thanks Javier Jardón)
  • Added i18n support and a es_ES lang file (thanks Alejandro Piñeiro, aka API)
  • Support silent build rules with automake 1.11 (thanks Javier Jardón)
  • Bugfixes and several minor improvements

Entering in more detail, and as you can easily extract from the list above, the main improvements from the user’s point of view are:

  • Drag’n'drop now supported, so having to add pictures through the filechooser is no longer the only method to load pictures in frogr.
  • New “add tags” dialog, very handy to add tags to some specific pictures before uploading them.
  • i18n support, which should make easier to get more contributions for frogr in further releases, in the form of new translations to make it even more accessible for people all over the world (did I say we’re eager for new language files?)

At last, just to mention that you already can find pre-compiled packages for some distros at the web of the project, as well as the source code tarballs in gzip and bzip2 formats. And of course, get the source code from the git repository at gitorius, in case you prefer to directly clone the source tree to make up wonderful and nice patches to contribute with, or just to provide new pre-compiled packages for your favourite distro ;-)

So… what else could I say? Just go and get it… Hope you enjoy it as much as I do :-)

Update [2009/10/14]: It seems the other day my mind was still a bit “on holidays” :-) and I screwed it up when creating both the pre-compiled packages and the source tarballs uploaded to the web of the project, so they would just not  work as they should when installing frogr (basically, they would not install files under the proper path so frogr just would not work).

I realized of this yesterday and now everything should be fixed in packages (and tarballs) uploaded in the “Downloads” section of such a web, so if you experienced any problems two days ago just try now again and everything should be fine.

Frogr 0.1 released!

After perhaps quite a long time since I announced the “pre-release” of frogr, back in June, I’m now happy to tell the world that the 0.1 release is finally here, providing the user a very basic but still useful set of features to upload his/her pictures to flickr. Basically, as it’s told in the NEWS file, most important changes in this first release regarding to the code from almost 2 montsh ago are:

  • A better UI. Faster and better user experience.
  • Basic configuration management to store account details (auth token).
  • Support for editing details of multiple pictures at the same time.
  • Added status and improved the progress bar usage to show the status of async operations, giving a much better feedback to the end user.
  • A better (and more easily hackable) code and design.
  • No more .glade files, no more gtk-builder-convert.
  • Avoid libgnome dependency if gtk+ >= 2.14 is present
  • Still implemented some parts of the UI (menubar) without GtkBuilder to keep compatibility with Gtk+ 2.12 (least version supported)
  • Bugfixes and several (minor and major) improvements

As usual you can get the source code at http://gitorious.org/frogr, where development for version 0.2 has already started, btw. And if you visit the project’s web at http://code.google.com/p/frogr you could even find some packages for you favourite distro there as well (currently only i386 packages for Ubuntu hardy, intrepid and jaunty are available, but more flavours and platforms are coming soon: debian, fedora, x86_64…).

For the special case of hardy you’ll need to install a newer version of libflickcurl0 than the bundled in hardy repositories (0.12), which you can get from here: http://packages.ubuntu.com/intrepid/libflickcurl0 (yes, intrepid package will work fine on hardy).

At last, knowing that people use to love screenshots, here you have three of them showing the current status and UI for frogr 0.1. Yes I know, still not too ‘eye-candy’ but hey!… it’s the 0.1 release! what did you expect? We’ll have time enough to improve the UI in the future as long as frogr gets more mature and complete. And in the meanwhile I honestly think current UI is not a complete disaster either :-)

Frogr 0.1 screenshots

Hope you find this interesting.

Have fun!

My Slug, my PS3 and me

As Juan, I’m one of the proud owners of a Linksys NSLU2 (aka Slug) perfectly (and continuously) running the Debian/NSLU2 distribution for more than 6 months, currently featuring the following configuration (both sw and hw), after some slightly changes:

  1. Attached 500Gb 2,5″ HD (powered through its USB2.0 connector).
  2. MediaTomb uPnP media server, to keep a nice “media center” running always available.
  3. Samba filesharing server (to easily share files with any device connected to the LAN)
  4. rtorrent bitTorrent client, to use the Slug as a dedicated machine always up and ready to download whatever you want.
  5. The ‘screen’ command line utility (useful to easily keep the rtorrent app always running and “detachable” ;-) ).
  6. OpenSSH server (ssh port forwarded in the router to access the Slug from the Internet), to easily manage my Slug from anywhere in the world.

With the exception of the HD (which used to be a 3,5″ 120Gb HD since June to December, when I replaced with the 500Gb one), the rest of the configuration was amazingly working with no problems at all for more than 6 months, as I previously stated. This, along with the fact that this  device is quite small, noise-and-heat-free (no fans) and only needs 8W (it’s the 266Mhz, ‘underclocked’ version) to work, makes it one of my favourite devices I ever had :-) .

But all this was kind of “incomplete” stuff until I got a PS3, as a present from my girlfriend during last Christmas holidays, which gave it a new dimension to the Slug, since the PS3 bundles a nice uPnP client for pictures, audio and video which works perfectly with the MediaTomb server installed in this cute device.

The point now is that I no more need to copy the video files I download with my Slug to another device (a desktop PC, a laptop…) to watch them, either in such a device or in the TV (with the help of a multimedia HD)… all I need to do is just:

  1. Have the MediaTomb server continuously running in the Slug, watching (through its inotify feature) to the /storage/videos directory for new videos (I want it to index them whenever I copy new downloaded videos under that path).
  2. Have the PS3 connected to the local network, either through it’s wired or wireless interface.
  3. Move the video files, as soon as they get fully downloaded, from my /storage/downloads path into /storage/videos

This way, just by the moving the downloaded media files as explained in (3), and waiting a couple of minutes for the MediaTomb to index them, I have that media content available to be directly watched in the TV, which is really cool and very handy, by the way :-)

Of course, you can also do the same with regular pictures or audio files (which is very nice also if you have, like me, the PS3 audio output also plugged into a Hi-Fi), but I think you’ll agree with me that watching video files seems to be the best way to make the most of the Slug+Ps3+TV combo :-) .

And that’s all, I think… just to mention I’ve written this post while I was listening to a nice Thin Lizzy album (“Dedication“) stored in the Slug, through the PS3 and my Hi-Fi equipment. It sounds good, doesn’t it? :-)

PS: One of these days I’ll post more in detail how to set up the configuration for all the components I’m currently using in my Slug (rtorrent, Samba, MediaTomb…), just in case someone found it useful.