Archive for the ‘gnome’ Category

Going to GUADEC

Sunday, July 4th, 2010

One more year, Igalia will give me the chance and the pleasure to attend GUADEC one more year, this time in Den Haag.

I'm going to GUADEC

My fellow Igalians Iago, Alejandro Piñeiro and José Dapena will give talks about Grilo, Cally and Modest 4, respectively.

As for me, I’m hoping my lightening talk about Text Prediction on GNOME gets accepted.

So, as usual, if you wanna talk about GNOME, OCR, Input Methods, Grilo, Django or Free Software in general and have beer while we’re on it, come along!

Hope to see you in Den Haag.

Demystifying Grilo

Wednesday, June 9th, 2010

It’s been a while since Grilo was released and although Iago’s post announcing it, together with Grilo’s webpage, do a good job describing what Grilo is about, it seems many people out there still do not understand what Grilo is and what it isn’t. Hence, I wrote this non-technical post as an attempt to demystify Grilo.

Grilo means cricket in Galician
Grilo means cricket in Galician
(CreativeCommons photo by Danforth1)

What Grilo is

Nowadays, a number of online services provide a public API for application developers to retrieve those services’ information. YouTube lets you retrieve videos’ info by browsing or searching; Jamendo lets you retrieve its music and artists’ info in a similar way; and many more offer similar options.

Although many of these services offer a RESTful API, which already makes it easy, it is up to the applications’ developers to write code to access that API, process the results (usually XML) and build their applications’ own structures with the info. An alternative way is, of course, using an already existing library, suitable for the developers’ needs, but whose API might differ from other services’ libraries

Grilo exists to solve these issues.

Grilo has a number of plugins that retrieve media information from several services. It exposes that information in a consistent API so you don’t have to learn more than one way of getting that media’s info.
Although there are more plugins for online services, there are also plugins for UPnP or for the very filesystem.

For the examples given before, searching for media in YouTube or Jamendo would be as easy as calling a method on Grilo, either choosing to search in one, both or all available media sources.

The search would result in media objects whose information (metadata keys) can be previously configured.

So, this is a very basic definition of what Grilo is: a framework that retrieves content from various services.

What Grilo is not

One thing people often expect from Grilo is for it to play content. Well, Grilo does NOT play media and that’s a planned “misfeature”.

Grilo’s main purpose is to retrieve media, or better said, media information, and to do it well.
GStreamer is already here to play media and it does a wonderful job at it. Having Grilo to be a media player as well would deviate it from its specialization which would surely make it not suitable for some use cases.

Why should you care

More and more online services are being used in many platforms with applications being developed around them. Grilo eases the development of such applications.
For a media player dedicated to play videos from YouTube and Vimeo: Grilo gets you the videos’ URLs, GStreamer plays them and voila, you can focus on other implementation details.

Examples of applications that could have they’re job done easier would be Totem, Rhythmbox and Miro. For Totem and Rhythmbox, Rygel-Grilo (Grilo’s DBUS interface) has already shown (as a proof of concept) how easy it is to provide services as YouTube, SHOUTCast, Jamendo, filesystem’s media, and more, just in a fragment of the code needed to write a dedicated plugin for each of these services.
I put also Miro as an example application because it is a video and audio player strongly intimate with the web, Grilo could only make it easy to find these videos. Plus, Grilo’s podcast plugin could also be used to manage Miro’s video channels’ subscriptions.

As a different use case, a desktop like Meego’s, which integrates, for example, social services in it, could also integrate a way to search media, without the need to use the web browser.

So, summarizing, Grilo fills a gap in the media application development infrastructure; developers that are interested in integrating multimedia content in their applications could get an important benefit from using Grilo to access that content, and that’s why we encourage you to check it out

Late hello to Planet GNOME

Thursday, June 3rd, 2010

Since last last week my blog is syndicated in Planet GNOME and I realized I should probably write the typical Hello Planet GNOME post so people know who I am (even though some posts are already indexed before this one).

Why am I on Planet GNOME?

I started using GNOME around 2005 and have been an advocate of it ever since. This advocacy was more of a local action, related to the organization of some events connected to Free Software.

As my Master’s Thesis project, I developed an easy to use OCR and Document Recognition application in PyGTK, called OCRFeeder, to be used specially with GNOME. This project is the only application of this kind for GNOME (and should I say for Linux as well?) and is now hosted in GNOME’s infrastructure.
As other somewhat-related-to-GNOME projects I’ve been the responsible of Hildon Input Methods for a while and I maintain the SeriesFinale Maemo application which will be in GNOME one of these days.

So, I started pestering some GNOME folks about “entering the Planet” last year. I think a series of unfortunate events might have prevented my emails from being read by those folks but I filed the bug for adding my blog to the planet last Thursday and it was accepted in the same day… :)

Other stuff about me

I work for the wonderful company/community-of-hackers that goes by the name of Igalia, which is involved intimately in GNOME.

Apart from programming and similar geekeries I like listening to metal, playing my guitar, watching TV series and having a nice chat while drinking a cold beer.

I live in the city of Corunna, Spain, but unlike some people may think, I am not Spanish, I am Portuguese.

Oh, and I’m not related to Lucas Rocha, he’s a nice guy but we only share the family name and the language.

I hope you like my blog posts!

Grilo powered Rhythmbox

Wednesday, June 2nd, 2010

Grilo is getting really interesting and one of its newest nice things is the DBUS interface Juan has been working on lately.

This DBUS interface is currently known as Rygel-Grilo (it was originally intended to be a source for Rygel) and uses the MediaServerSpec to allow developers to retrieve the media objects Grilo provides.

Since there aren’t still Python bindings for Grilo, I decided to use the Rygel-Grilo to be able to use Grilo from Python.
So I developed a Rhythmbox plugin that shows every MediaServer1 object available and lets the use browse through the contents of these. Needless to say, although this plugin provides a very generic basic and usage, it’s easy to see how applications like Rhythmbox could be using Grilo to get their media.
The philosophy is: Grilo gives you content, GStreamer plays that content, and you’re free to focus in the rest of your app’s details.

Here’s a video of Rygel-Grilo and the Rhythmbox MediaServer1 plugin in action:

Grilo MediaServer1 Rhythmbox Plugin from Joaquim Rocha on Vimeo.

You can find this plugin under the MediaServer1 Plugins project on Gitorious.

Juan did also developed a cool plugin for Totem similar to this one. Take a look at this post to see the plugin working and a more detailed explanation of what Rygel-Grilo is.

Grilo Vimeo plugin

Saturday, May 1st, 2010

Vimeo is one of the main video sharing places in the web and I thought it would be useful to develop a Grilo plugin to search videos on it.

Yesterday Juan committed the code which means you should now be able to easily search videos from Vimeo and watch them in your desktop using Grilo’s test UI. Here are a couple of screenshots:

Grilo test UI
Vimeo video on Totem

I really like the way Grilo is going. Together with GStreamer, the effort needed to create and media player with sources such as your hard drive, YoutTube, Vimeo, Flickr, etc. is just minimum.

Let’s hope more plugins will arrive at Grilo!