Archive for the ‘gui’ Category

Announcing GFreenect

Friday, January 20th, 2012

As mentioned in my last post, Edu the mighty Cuban and I have been playing with the Kinect and developed an interactive installation for Igalia‘s 10th anniversary party using OpenFrameworks. (By the way, some people asked me for that application’s code so yesterday I cleaned it and it’s available on Gitorious)
OpenFrameworks offers a number of functionalities either from its core libraries or by means of add-ons and indeed there is an add-on that wraps libfreenect, the Free Software library that allows to control the Kinect.

Using OpenFrameworks was easy, it makes it fast to start developing with it but in many aspects it’s completely different from the way we’re used to work on GNOME. We are used to have single, independent libraries that do one thing and do it well and are used as needed by application developers, for example, do not include a sound library if my application is never going to use it.
Having modules such as GTK+, Clutter, Cairo, GStreamer, etc. already gives us flexible ways to develop certain parts of applications similar to the demo mentioned before: we just had to draw the fish using Clutter/Cairo, implement their behavior and show the Clutter stage. Of course we also would need a way to control the Kinect and it would be really nice if it could offer us an easy to use API for those familiar with GLib…

Ladies and gents, we give you… GFreenect

GFreenect is a wrapper for the Freenect library written using Glib in order to control a Kinect device and make it easy to use with GNOME technologies.
It doesn’t simply wrap the Freenect library but also offers ways of using it that are familiar to you if you have developed something using other GNOME libraries.
One example of this enhanced functionality is that we focused on offering an asynchronous API (although there are some synchronous alternative methods as well). Another example is that when setting the device’s tilt angle, a signal will be emitted when it has finished setting the angle, since it might be useful for some applications.

One of the purposes of having it written with GLib is the GObject Introspection capability. This allowed us to include an example application that controls the various features of the Kinect and was written in Python effortlessly. A screenshot of this app is shown below:

GFreenectView Screenshot

And that’s it! You can find the code for GFreenect in Gitorious (including documentation for this 0.1.2 version). Bear with us if you find some bugs, it is fresh out of the oven.

We hope you find GFreenect useful for your projects and please give us feedback if you find some issues or have any good suggestions.

SeriesFinale for Harmattan (N9/N950)

Friday, November 18th, 2011

As promised before, here is the first release of SeriesFinale for MeeGo Harmattan.

This summer Micke Prag, a fellow programmer from Sweden contacted me because he was starting a port of SF for Harmattan. By then I still didn’t have an N950 because of having missed the deadline for the first developers program. Later, when the second developers program was launched I managed to finally get one. At that point, even though I already had my Samsung Galaxy S (yes, with Android) I still wanted to have a port of SeriesFinale as I had received many emails asking for this port so I started from Micke’s code and finally here it is!

The Harmattan port

SF first version for MeeGo

Maybe it is something obvious but this version is not written in PyGTK/PyMaemo. It uses part of the “old” Python backend that was changed to play well with the new UI code written in QML.

This port’s code is a bit dirty by now and I’m sure there are bugs in this first version but at least it can be used and I didn’t want to make people wait much more. The support and feedback that SeriesFinale’s users have given me is amazing (some people even saying they still use the N900 only for SF!), thank you all for it.
My heart is still filled with GNOME/GTK+ love but QML is really impressive; there are some things I still need to spend some time with to figure out but I like how quick and flexible one can do stuff in QML.

The OVI Store

It was also the first time I published something on Nokia’s Ovi Store and the process took around 2 weeks before it finally got approved (it was rejected twice before due to weird stuff like “they” thinking bugs.maemo.org was not a good place to report issues or the fact that an application that says it works only with English US is eligible only for the USA, not for all the countries…).

The future

I really like the N9/N950. The user experience is something awesome and I believe this was the phone that could really compete with the iPhone and Android. Unfortunately someone at Nokia disagrees and the future of this incredible phone is doomed even though Nokia’s alternative is not better. Due to this mainly, I’m not using the N950 as my main phone. This and the fact that my personal time, in which I develop SF, is very limited, means that unless things change, I don’t know how much more releases I will do but I still wanted to add some cool features. It will probably depend again on the feedback and support.

Anyway here it is at an Ovi Store a few taps/swipes away and for free, as always (although I appreciate when someone buys me a beer :) ):

Get SeriesFinale from Ovi Store

SeriesFinale 0.6.8 and the revenge of the clones

Thursday, July 21st, 2011

Finally I could get a little time to finish SF 0.6.8 release.

In this release one thing I wanted to improve was the startup time. With the number of TV shows I have in my SF, it was taking around 25 seconds before showing me the list of shows. Part of this is due to the deserialization from the DB (no, it’s not using SQLite and I have no time to make the switch) which takes its time but also because it was attempting to sort the list of shows every time a show was added and it also took some time loading the shows’ covers from disk.
This fix was basically loading of the covers asynchronously and sorting the shows only after they are added to the tree view. It improved from 25 seconds to 12 seconds more or less.

While the shows’ covers are being loaded on startup or downloaded from the web, it displays something like shown on the following screenshot:

One of the features people like more is the display of the next episode’s air date. To improve this, I’ve added a small tweak to humanize the dates close to today so it displays “Yesterday” instead of “20 Jul”.

The covers retrieval was broken for a while and this is fixed too. What happened was that TheTVDB started redirecting images to a mirror and SF was not following redirected links… It should follow them now, so it is unlikely to happen again.
I’m also including the French translation kindly sent by David Landreau.

Other important improvements and fixes are:
* Fix deleting seasons;
* Add sorting options to the seasons view;
* Fix infinite loop when updating episodes (it happened when there were two shows with the same name);
* Consider next episode to watch only when it has an air date;

There are also some good news from other platforms’ ports. Nacho has created a branch where he is porting the GNOME version to GTK3/PyGI. A user named Micke Prag is porting it to QML which means it will be available on MeeGo one of these days. I wanted to apply for the developer’s N950 program (to port SF) but I was on honey-moon when it was announced and I ended up forgetting about it…

Revenge of the clones

When I first developed SF in 2009, I did it to scratch an itch and I couldn’t find such an app when I googled for it, I even wondered if anyone apart from me would be interested in such an app. Short after, my friend and colleague from the University, Paulo Cabido told me how much he liked the idea and created DroidSeries, a SF’s clone for Android. After a while I also found SeriesWatcher, a clone in Qt that also ran on the Linux desktop, Windows and Mac OSX.
What surprised me was that last week I was browsing the Android Market (out of curiosity, I don’t own an Android phone) and found out that there are:
* Series Droid (notice the name? If my friend Paulo was M$ or Apple, he would sue their asses :D )
* TV Show Favs
* TV Start
* Episode Calendar (this seems to be the only Open Source one in the list)

Although only DroidSeries and SeriesWatcher say they are based in SF, I like to think the others do as well (maybe indirectly like being based on another clone :) ). Or maybe those were developed before SF and I didn’t notice… What I’m trying to say is that not only from mainstream platforms come nice end user apps. In the Maemo world, even though we have problems of other nature, we also have good ideas and good applications for end user.



Get SeriesFinale 0.6.8 soon from your N900′s updates or here.

OCRFeeder 0.7.4 released

Sunday, March 20th, 2011

After more than two months since the last OCRFeeder release (I’ve been busy with other projects in Igalia), I have just released the version 0.7.4.

The highlights for this new version are:

Add plain text exportation

Sometimes users just want to get the plain text from a scanned document and this is especially useful for visually impaired users that will be able to read the text files with Orca afterwards.
This feature was developed by Andrew McGrath, a student from New Hampshire, who is contributing to OCRFeeder as part of his involvement in the Software for Humanity project. It would be great to have more colleges involved in this kind of initiatives.

Recognize the current page or the whole document

Now it is possible to automatically recognize the current page (as it did before) or the complete document. I’ve also added a confirmation dialog before the recognition is performed when there are changes in the project.

Thanks also to Joanmarie for all the great suggestions like this one and to Juanje Ojeda for the patches he sent me.

These were just the two main features I’ve picked from the list of changes, to view them all check the NEWS file.

Stay tuned for more improvements in the future.

Source tarball
Git
Bugzilla

SeriesFinale version 0.6.6 released

Tuesday, February 22nd, 2011

Since last night, SeriesFinale version 0.6.6 should be available for those who have the extras-devel catalog.

This version’s highlights are:

* Live search of shows. Finally it includes a way to quickly filter shows, this is especially useful for those who have a large number of shows in the list.

* Quick access to the next/previous episodes. This was another request from a user, when viewing an episode, add a way to quickly go to the previous or next episode. I have added this by panning/dragging horizontally in the episode view, dragging left or right will bring the next or the previous episode, respectively.

* Switched episodes’ “watched” check-boxes to the right. After adding the portrait mode, it was clear that having the episodes’ check-boxes on the right made more sense for right-handed people. This is now the default position, nevertheless, a new option was included in the settings dialog so users can choose to either have on the right or left.

* Last but not least, Juan has made SF more reliable and fast by saving the database and settings only if they have been changed.

We will keep the list of bugs and feature requests in mind for the SF development (for both Maemo and GNOME) so, you are welcome to submit more.

If you use the extras-testing catalog, be sure to try this new version of SF and vote for it when it appears here.