planet.igalia.com

March 13, 2010

Joaquim Rocha

SeriesFinale 0.4 released

I have just release a new version of SeriesFinale.

For this 0.4 version there is a very useful and requested feature: Update All!
Now you will be able to update all the TV shows by just clicking a button instead of having to go show by show and waiting for each one to be updated. As you see on the screenshots below, the shows view now also displays the next episode to watch plus, when updating the shows, feedback on the shows that are finished updating is given by a banner.

SeriesFinale new shows view style

Menu with Update All

Banner showing a just updated Show

You’ll also notice that initializing and quitting the application is now much faster. This happens because as for the shows’ updates, the loading and saving of the database is now run on a different thread.

There was also a bug when manually editing an episode, which is now fixed.
Another bug you might have experienced was duplicated episode entries. It usually happened when there were placeholder episodes named “TBD”, since SF was using the episodes’ names to compare them, when the “TBD” episode was updated with the correct but different name, a new episode would be added instead… I removed the name checking from the comparison and now two episodes are the same if they have the same number and same season number.

Also, you might have noticed that the TV shows view scrolls really slowly. Today I found why such happens and will try to have it fixed for the next release.

As usual, you can find SeriesFinale code on its Gitorious project and expect this new version to appear soon on an AppManager next to you.

I hope you like this version as much as I do!

by Joaquim Rocha at March 13, 2010 12:20 AM

March 12, 2010

Juan A. Suárez

Jump, Grilo, Jump! 0.1.4 released

We are proud to announce a new release of Grilo: 0.1.4.

In this release you can find:

  • Almost all classes and functions have been documented (thanks to Víctor)
  • A system to configure both plugins and sources
  • Content classes have been refactored
  • Some general fixes and improvements
  • New functions to change content in sources that support it
  • Introspection in the build system, and a Javascript example that take advantage of it (thanks to Edu)
  • Some new keys
  • A new source able to store general metadata

As usual, you have the code for framework and plugins, and the packaging branches for debian and rpm, and if it is not enough, a PPA with packages already built.

Enjoy them!

by jasuarez at March 12, 2010 11:37 PM

Andrés Maneiro

Curso de desarrollo para dispositivos móbiles y desktop: últimos días de matrícula

El próximo sábado 27 de marzo se cierra el plazo de inscripción para el segundo de los cursos de especialización que organiza Igalia: Desarrollo para dispositivos móviles y desktop con Software Libre. A lo largo de las 80 horas de docencia se tratarán contenidos como los siguientes:

  1. Introducción. Introducción a las tecnologías que se van a ver durante el curso. Revisión de las principales herramientas de coordinación y desarrollo.
  2. Principales tecnologías libres para el desarrollo. La plataforma GNOME (con C como lenguaje y su relación con Freedesktop.org). La plataforma KDE (con C++ como lenguaje y su relación con Freedesktop.org). Python como lenguaje de alto nivel para programar en el desktop. Mono como plataforma de alto nivel para el desarrollo de aplicaciones.
  3. Desarrollo de software para el desktop. Estudio de las tecnologías GNOME y Freedesktop en profundidad. Creación del demonio cliente con C, GNOME y tecnologías Freedesktop.org. Creación de la UI para el desktop con Python.
  4. Desarrollo de software para dispositivos móviles. Estudio de las plataformas GNOME Mobile, Maemo, Moblin, Android, Openmoko. Migración de la aplicación del curso a plataformas mobile.
  5. Conceptos importantes de desarrollo de software. Internacionalización y localización. Accesibilidad en desktop y mobile. Documentación avanzada de proyectos. Testing e integración continua. Empaquetado y publicación. Gestión de bugs y mantenimiento.

Si te gusta programar sobre las últimas tecnologías y con Software Libre, éste es tu lugar! :D

Más información:

by amaneiro at March 12, 2010 04:01 PM

Alejandro Piñeiro

Gnome-shell starts to talk

After spent some time improving cally, reviewing mx new focusable/focus-manager objects and several days configuring my environment (karmic upgrade, broken linkage in my jhbuild environment, etc) I started to check again how to use cally on gnome shell (first look here).

One of the entries in my TODO is start to make the module loading more that a hacking patch. A first solution proposal and a gratuitous rant here.

Other point on my TODO list is check why accerciser and orca froze gnome-shell. Well, accerciser still frozes the shell, but, fortunately it seems that orca now works (more or less) fine without doing anything special (black magic probably):

orca running on gnome-shell

I know that it would be more useful with sound, but as the gnome shell screencast recording feature doesn’t record audio, and I wasn’t able to use recordmydesktop or istanbul, finally I just recorded the sound with my N900, and I was too lazy to create a video with both. If you are curious enough, you can hear the audio of the previous video screencast here.

How I run gnome-shell

During this environment configuration time, I was also looking for a convenient way to run gnome shell. On live gnome, there are two proposed options to run gnome shell:

  • Replace your own WM (with –replace option)
  • To avoid to replace your own WM, run gnome-shell nested (with –xephyr option).

As I said, running some of the accessibility tools leads to froze the gnome-shell. Additionally in my case, running it on xephyr had a horrible performance, so both options were not really useful to me. Finally I chose a mixed option. I just launch a second X server, and launch the gnome-shell here.

So, in brief:

  • Move to other tty with Ctrl+F1
  • Launch other x server: xinit -- :1
  • Execute gnome-session
  • jhbuild shell
  • ./gnome-shell --replace

Then you can just use Ctrl+F9 and Ctrl+F7 to move between your “normal environment” and your “gnome-shell” environment. Probably someone can wonder why it is required to run gnome-session, and not execute directly gnome-shell (without the replace). Well, for any reason if I do that, the performance is also as horrible as with the –xephyr option. In the same way gnome-session load all my configuration, etc. Not a big issue anyway.

by API at March 12, 2010 03:09 PM

Iago Toral

Grilo and Rygel

After knowing about Grilo, Bastien proposed to use it as a helper library to implement Rygel’s MediaServer D-Bus API spec. This D-Bus API specifies how content providers can expose content over D-Bus that Rygel can consume and then export to the UPnP world. Although this spec was developed for Rygel in particular, it aims to be generic enough so other applications could use it to consume content over D-Bus directly.

The idea is to decouple providers and consumers, this way one does not have to worry about the language they are written in and providers don’t have to be loaded in the consumer’s address space, instead they are communicated through D-Bus.

So, what could be Grilo’s role in this context? As you know, Grilo is a pluggable framework that provides a single, high-level API to consume contents from various sources (Youtube, Jamendo, SHOUTcast, etc) which are implemented as plugins for the framework. As such, the role of Grilo would be that of a content provider. Juan has been working on a daemon that would use Grilo to get access to all the content exposed by the framework and expose it over D-Bus according to Rygel’s MediaServer spec. This will enable Rygel (or any other application), to get access to all this content over D-Bus.

As of today, I think only Rygel has implemented the consumer side of this API, but the idea is that in the future other applications like Totem or Rhythmbox would have plugins to consume it too. Also, since Rygel is a UPnP server, and it is feeding on Grilo through this D-Bus interface, it is also exposing Grilo’s contents to the UPnP world, so any UPnP client should be able to access these contents over UPnP thanks to Rygel. Totem for example, has a UPnP plugin already, and because of that it can consume the contents from Grilo through Rygel even when it does not implement the consumer API of the MediaServer spec.

If you are interested in more details check Juan’s post here. There you will also find a screencast showcasing a Grilo-powered daemon that’s exposing content from various of its plugins over D-Bus, then Rygel feeding on that and exposing them over UPnP, and finally Totem consuming all the content though its UPnP plugin. Of course, you may ask why wouldn’t Totem feed on D-Bus directly, well just because it has the UPnP plugin already and not the D-Bus one, but it will come ;) .

Talking about that, another thing that Bastien proposed and on which we will be working too, is a set of helper libraries to ease development of content producers and consumers. On the producer side (backends) the idea would be to hide all the D-Bus stuff and provide a clean, easy to use interface for exposing content to the bus (for those not wanting to deal with D-Bus directly), and on the consumer side (frontends), we could do the same and maybe add some extra bonus stuff, like widgets to manipulate available sources and the like.

by itoral at March 12, 2010 02:02 PM

Juan A. Suárez

Mailing list for mafw-gst-eq-renderer

Due to lot of questions that people are asking through comments in the mafw-gst-eq-renderer related posts, I have set up a new mailing list: mafweqrenderer-list@garage.maemo.org.

Feel free to join it.

by jasuarez at March 12, 2010 12:35 PM

Rygel, are you hungry?

When Iago told about the Totem plugin based on Grilo, Bastien mentioned that it would be great if Grilo could provide the content over D-Bus. This would have a series of benefits, like sources running in a different space than clients, they could be implementend in any language, and so on. He even told about a specification that we could use.

It looked like a very good idea, and after talking with him and Zeeshan, we began to work on it. Zeeshan is the main author of Rygel, and also the author of the specification Bastien talked about. Rygel is able to consume content from any external application that implements that specification, and expose them over UPnP. Thus, implementing this specification has the added benefit that content can be accessed also through UPnP, using Rygel as intermediate.

So now we are proud to present rygel-grilo (yeah, name is not so cool :) ), a daemon that exposes Grilo content through D-Bus, feeding Rygel and any other interested client with that content. As a picture is meaningful than words, you can see here a screencast of rygel-grilo providing content to Rygel, and Totem playing it through its UPnP plugin.

While implementing rygel-grilo, we detected that the current specification does not fit quite fine for content that is quite dynamic and large. For instance, there is no way of limiting how many elements you want to retrieve from a specific category. And you know that Youtube and other on-line sources can have thousands of elements…

This and other issues were discussed with Zeeshan, who kindly started to work on a new spec more suitable for this kind of providers. The good news is that rygel-grilo supports this new spec too! So we are compatible with the present and the future of Rygel :)

This is an example of how cool things can be done with Grilo. Future work is to improve rygel-grilo, and adding a set of libraries that would hide all the D-Bus related stuff. These libraries would facilitate both the creation of new backends (even non-Grilo related) and also the creation of new clients, adding a few aditional services that people could use. Stay tuned for them!

by jasuarez at March 12, 2010 11:53 AM

March 10, 2010

Andrés Maneiro

La cara humana del MásterSwLibre: las experiencias de los ex-alumnos

Aunque ya hemos blogueado sobre los resultados de las primeras ediciones del Máster en Software Libre, estos días estamos completando la sección de “Experiencias de ex-alumnos“.

Ellos son la cara humana del máster, los que dan sentido a lo que hacemos en cada edición. Y, la verdad, es una gozada leer lo que nos envían para la sección de la web: ésto, más que los números nos demuestra el gran impacto que está teniendo el máster entre sus participantes.

Os invitamos a leer las experiencias de los ex-alumnos, no tiene desperdicio.

by amaneiro at March 10, 2010 12:35 PM

March 09, 2010

Juan A. Suárez

SeriesFinale for Diablo, v0.3

Promises are debts, so I’ve been working on SeriesFinale for Diablo in order to finalize all features that I left unported in previous version.

So I’m happy to announce that SeriesFinale for Diablo reaches version 0.3.

Besides finalizing the port, this version also integrates all features that Joaquim provided to SeriesFinale for Fremantle v0.3.

I’ve uploaded the new version to Maemo Extras Devel, so if you have it in your repository catalogue, you’ll find SeriesFinale in the Application Manager.

Now, only a step remains to reach the head of SeriesFinale for Fremantle \o/

by jasuarez at March 09, 2010 07:14 PM

Víctor Jáquez

Jhbuild beneath OpenEmbedded

Since a while I’ve been working on a OpenEmbedded overlay called marmita. But this post is not about it. Where I want to aim now is about a nice trick: how to use Jhbuild using an OpenEmbedded setup.

First of all, install jhbuild. And, of course, install Marmita.

In Marmita, just as in Poky, in order to get into the OE environment, the user source the script marmita-init-build-env.

Then, I setup another script, which is though to be the rcfile of a new bash session: marmita-simple-cross-compiling-env.

So, at this moment we have set all those environment variables needed to run a jhbuild session. There is also an alias for the jhbuild build, which specifies the jhbuildrc file, crafted for a cross-compiled environment: marmita.jhbuildrc.

For the moment I’ve only built GStreamer. And as a matter of fact, in the process, I came up with a simple patch for gst-plugins-bad.

By the way, the destination directory is in the /opt directory, under the stage directory; so, if you want to play with the generated output in a device, just copy that directory tree into the device’s file system.

Yes, I cannot say that I achieved a full integration between jhbuild and OE, but what I can state is that cooperation is quite possible.

by vjaquez at March 09, 2010 06:07 PM

apache configuration for video tag in firefox

In contrast with Epiphany-WebKit, Firefox seems to be quite picky at rendering videos through the HTML5 tag <video>: it demands the correct HTTP headers.

It doesn’t assume anything. If the stream doesn’t have the correct headers, Firefox just will put a black box in you face without any further explanation.

In order to overcome this issue, struggling a little with the sparse information available through the Internet, I came with this .htaccess file:

AddType video/ogg          .ogv
Header set Access-Control-Allow-Origin "*"
Header unset Etag
FileETag None

First of all, my Apache server doesn’t recognize the video/ogg mime type.

Second, the header MUST NOT include the ETag key.

And finally, there’s new header, which isn’t fully implemented by the all browsers, but it will be, and will mess up all our pages with embedded videos, is the cross domain accessibility.

More information:

http://diveintohtml5.org/video.html
http://www.bluishcoder.co.nz/2008/11/video-audio-and-cross-domain-usage.html
http://en.flossmanuals.net/TheoraCookbook/MyHosting
http://www.askapache.com/htaccess/apache-speed-etags.html
http://httpd.apache.org/docs/2.0/mod/mod_headers.html

by vjaquez at March 09, 2010 10:13 AM

March 08, 2010

Joaquim Rocha

OCRFeeder is now on GNOME Bugzilla

OCRFeeder is now a product on GNOME Bugzilla and it should now be used for filing new issues. OCRFeeder Google Project’s bugtracker should be abandoned then.

So if you have been using OCRFeeder and found some issues or think it’s missing a great feature, go to the following URL and file a new bug:
https://bugzilla.gnome.org/enter_bug.cgi?product=ocrfeeder

Thank you for helping the GNOME’s OCR application.

by Joaquim Rocha at March 08, 2010 08:47 AM

March 07, 2010

Joaquim Rocha

OCRFeeder version 0.6.1 released

As has become usual every couple of weeks or so, I released a new version of OCRFeeder!

This is version 0.6.1 and the main changes this time are:

* Now you can increase or decrease the zoom using Ctrl+Mouse wheel. This kind of shortcut is well known in many GNOME applications and even I was missing it;
* Warning dialogs are now shown when something went wrong while opening an image;
* Fixed encoding problem when reading non-ASCII characters;
* Fixed error when configuring a new engine;
* Improved Debian package’s files (thanks to Alberto Garcia)
* Fixed zoom issues (sometimes the allowed zoom would not be consistent among tries);

It was a good week on OCRFeeder’s bug tracker, specially thanks to user Hank who reported important problems.

I am really glad about how OCRFeeder is turning out and I expect to make it even better with the help of its users, either by sending suggestions, reporting bugs or simply by using it you will be helping the project.

You can download OCRFeeder 0.6.1 tarball from GNOME FTP or optionally download a Debian package directly.

by Joaquim Rocha at March 07, 2010 12:22 AM

March 05, 2010

Manuel Rego

Import RSS feeds related with categories in TYPO3

This week I’ve been taking a look to a TYPO3 extension to import RSS feeds called Yet Another Feed Importer (yafi).

This extension works really nice, but I miss one feature. I’m going to import blog posts to a TYPO3 website and I’d like to keep the categories already associated with the original post also related with the news imported in the website.

An example:

  • Import one post that has the categories TYPO3 and PHP in the RSS
  • If you have defined in your website the category TYPO3
  • Then the tt_news record imported will be related with TYPO3 category

Finally, I’ve implemented it, you can find a patch at TYPO3 Forge. Also some little bugfixes for yafi extension.

This together with gl_pages_cat could help to feed your website automatically showing only related news on every categorized page.

PD: An inspirational post by Federico Mena today:

[...] If you don’t “git push” today, your day was a waste of time.

by Manuel Rego Casasnovas at March 05, 2010 10:16 PM

Sergio Villar

Tinymail 1.0 released

I’m really proud to announce the release of Tinymail 1.0. New packages are available here.

It has been more than 3 years since the project started, and after all the hard work we think now it is time to release the first version of our beloved framework to build e-mail applications for mobile devices. Thank you very much to all contributors! Specially thanks to Philip, Dape, Dirk-Jan and Rob, you all rock guys!

It is already being mentioned in the official announcement I sent to the tinymail devel list but I would like to highlight the main achievements of this release since the previous 0.0.9 pre-release:

  • New widgets to show the mailboxes tree as a plain list
  • New widget to expose only the latest messages of a mailbox
  • New download external images capability
  • Complete rework of IMAP IDLE
  • Improved namespace handling in IMAP
  • Locking, security and connectivity improvements in POP3 code
  • Improved MIME parsing (PGP/GPG parsing now works)
  • New asynchronous methods for getting folders and messages
  • Upated Vala & Python bindings
  • Improved support for 64-bit architectures

For those of you having a Nokia N900 this release contains more or less the same code shipped within your device (remember that Modest, the email program, is tinymail powered). For all people that followed the progresses in tinymail I blogged about recently (here, here or here) you will have to wait for v1.2 release. I promise you won’t have to wait that much…

by svillar at March 05, 2010 04:13 PM

March 04, 2010

Miguel A. Gómez

Who cares about the piggy? I do!

As I commented in my last post, during my investigation about the state of Qt in Maemo, I decided to start implementing an idea I’ve had in my mind since I got my N900.

I guess I should start explaining that I’m a complete disaster managing my money. I don’t really know what I do with it, or where I spend it. And living in this global-crisis time, this is serious guys! I need a way to fix it.

So I thought: wouldn’t it be great if I could store all my expenses in my brand new N900, so I could not only know where I spend my money, but also be able to know my current state compared to the month budget???? Even more!!! once I have all that information stored, I could perform every kind of weird queries over it, like how much money I spend in coffee, food, beer (mmm… not sure if I want to know about this one :P )
And having all this information, I could start saving money, and my piggybank would be able to leave peacefully without being afraid of being killed!

I guess you already know what happens when you put a developer with an idea in front of a new technology to test so… I started the development of siggy (whose name is a declaration of intentions: Save the pIGGY!) :P

These were the features I wanted to have for its initial release:

  • Be able to define a budget for a month
  • Be able to write down expenses in that month
  • Be able to easily see my evolution during the month, comparing it to an ideal one
  • The creation of expenses should be as fast as possible, and I shouldn’t need to use the keyboard
  • Be able to define categories to the expenses
  • Autocreation of recurrent expenses

And besides those, of course, I wanted to test what could be done with Qt in the N900. So, I had also these ones:

  • Integrate siggy visually with the Maemo environment as much as possible by using the custon Maemo5 QWidgets
  • Internationalization support
  • Integration with the backup system
  • Make siggy rotation aware?

So, I created the siggy repository on gitorious and started coding: put a SQLite database here, a MVC pattern there, a custom widget to draw a graph with the expenses evolution, some basic gesture support, lots of dialogs to achieve the Maemo5 user experience, and… I’m proud to announce that I’ve just released the 0.2 version of siggy!!! :)

What can you find in this 0.2 release? These are the features:

  • A month is represented as a graph where the expenses are represented together with an ideal evolution, so getting info about the current state is really easy and fast. User can navigate through existent months by dragging left or right in the main window
  • There are two views for the month, the daily one and the accumulated one. User may change between them by clicking on the main window
  • User can define a budget for each month, and define a default budget for every month
  • User can create/update/delete items. An item is a category for an expense with a predefined price
  • User can create/update/delete expenses in any month. An expense may or may not be associated to an item
  • User can create/update/delete scheduled expenses in the application. Scheduled expenses will automatically be created in the specified months, so the user doesn’t have to create, for example, an expense for the rent each month
  • Application is perfectly integrated with the Maemo5 environment
  • The application has internationalization support and currently has english and spanish translations
  • Both database and configuration file are integrated with system’s backup application

Of course, this are not the only features siggy will offer, but they are the basic ones needed to start using it and entering data. After this release, my plan is to start implementing features related to extract information from the stored data. But, of course, I’m willing to hear your opinions, suggestions, whatever! :)

You can get the source code from the siggy repository on gitorious, where you can also find a small user manual. Bear in mind that in order to build/run the application, you need to have installed the libqt4-maemo5-* packages available from the extras-devel repository. Please, feel to report any problems you can find :)

And as farewell, here you have some pics! :)

by magomez at March 04, 2010 03:48 PM

Claudio Saavedra

Thu 2010/Mar/04

  • Now that things have settled down a bit in Chile, I can write about how Saturday's earthquake has affected my family and friends.

  • First of all, all my family, friends, and people I know are fine. Some material losses, in different degree, affected to many of them, but that's about it. A huge thanks to all the people who one way or another helped me to find a way to communicate with my family and all of those who showed their support and concern. By now, I can communicate directly with all of them without any problems.

  • For good or bad, one of my sisters was in Viña del Mar on Saturday and Catalina, the youngest, was with my father in Santiago. That means that the quake found my mother alone in Talca, one of the cities that suffered the most with the earthquake. Nothing major happened to her house nor the neighborhood where she lives. The same can't be told about most of downtown Talca. She is still very sensitive about the situation, like most of the people in the area. Sisters didn't manage to travel to Talca until yesterday but, at last, they are all reunited and well communicated with me.

  • Unfortunately, my great-aunt's house in the downtown of Talca collapsed. She and her family were able to leave the place in time but, as many of the old adobe houses in the area, the house couldn't resist at all. I haven't had further updates on their status but I can imagine their suffering right now.

  • The same happened with the student-house where Catalina rents a room in Concepción. Since the semester hadn't started yet, only the elderly landlady was there and, according to my sister, she was rescued right in time out of a window before the old house collapsed. We'll need to find a new place for my sister and replace the things she lost, but luckily that's about it. Glad that no one got hurt; at the same time sad for all of those whose luck wasn't the same.

  • Needless to say, my email at codemonkey.cl is down until further notice, since the server is (or was?) in Talca. You can still reach me through my GNOME or Igalia email addresses, though.

March 04, 2010 09:19 AM

March 03, 2010

Miguel A. Gómez

About G’s, Q’s and M’s

During last years, I’ve been collaborating in the development of the 5th version of Maemo. As you already know, almost everything in this version has been created using GNOME technologies, so these were my tools to help with the development.

But some time ago, Nokia announced that they have changed their mind, and that the new upcoming Maemo6 will be Qt powered. And a bit after that, this new Meego initiative was announced, as the fusion of Maemo and Moblin to create the “ultimate mobile technology that will rule them all”. Well, I must say that these movements attracted my curiosity, so I decided to rescue my Qt knowledge and give a look to what’s really being done in/with Qt inside Maemo. Of course, having some knowledge about the Maemo5 environment and being the proud owner of a N900 made me start with the “what can be done with Qt in Maemo5?” question.

You may (or may not) know that Qt4 is already in your N900 if you have installed the Nokia released updates. It’s the 4.5 version. Nothing new under the sun. But the most interesting stuff is not there, but in the beta 4.6 version that lives in the extras-devel repository (how to enable it?). A lot of work has been and is being doing there to (among other things) ease the development of Qt applications and to be able to use the Maemo5 Hildon widgets from it. You can find more information about it here and here.

So, what’s the cool stuff? For the lazy ones, who don’t want to read all the documentation, these are the main ones regarding app development:

Ok, there are a lot of resources available. Great!. But… are they useful? Are they usable? Can we do cool software with them? The best way to test that is by using them, of course, so a while ago I started to develop an old idea I got for my N900 and… well, I guess that’s a story for another post… ;)

by magomez at March 03, 2010 02:45 PM

Juan A. Suárez

SeriesFinale for Diablo is in extras-devel

Thanks to Joaquim, he has uploaded SeriesFinale for Diablo to extras-devel.

by jasuarez at March 03, 2010 12:26 PM

Joaquim Rocha

Text Prediction on GNOME

I was disappointed with the text completion provided by the N900 (eZiText) that, on top of that, is closed and I wondered if it was possible to have an Open Source solution to provide text prediction and completion.

I searched a bit and besides my original intentions of developing a library to search Free and Open Source dictionaries’ words from a prefix, I found Presage.
Presage is better than most text prediction systems I have seen out there because it really is text prediction, not text completion. This C++ library, retrieves words taking into account the surrounding text, not only the prefix or frequency of words. It uses a database representing N-grams that can be trained with more text; the more you train it, the more accurate it can be.

This means that is you type something like:
“I m”
instead of suggesting nonsense things like:
“I mouse” “I mother” “I market” or “I more
it suggests something more like:
“I must” “I met” “I mean” or “I might
The difference is obvious!

So I developed a little wrapper around Presage in C that provides a yet very basic API to get text completion. Then I created a GTK+ Input Method context to control the user’s input in regular GTK+ text widgets and used the wrapper to process the inputted text. I called it: Predictor Input Method (not very original I know…).
The result is that Predictor suggests you words, even if you type a prefix or not, and lets you accept the candidate word or scroll through a list of suggestions as you can see in the video below:

Text prediction in GNOME from Joaquim Rocha on Vimeo.

How to use it

The current key bindings are:

Ctrl+Enter -> Selects the current candidate
Ctrl+Up/Down -> Scrolls through the list of candidates
Backspace -> Deletes the character previous to the cursor and suggests again
Directional arrows -> Move cursor and discard suggestions

Who should use it

This kind of assistance technology can have many applications but the main ones are: the usage in small/mobile devices and the assistance of users with disabilities. Both have the same reasons behind: speeding the input and reducing failed characters, because the input required gets minimized;
Of course, you can as well use it in your GNOME desktop regularly for faster typing your emails, etc.

In the case of users with disabilities, a popup menu could be added to show a complete list of candidates and the bound fast-access keys.

Why is Free Software important in this

This is the kind of technology that everybody should have an interest in using a FOSS solution because of the obvious advantage that is developers from all over the world being able to modify it.
Suppose you’re creating a mobile phone and you choose a closed solution to provide text prediction for your phone. And then you find out you’re disappointing all your users from country X because that library you’re paying for does not support their language and the library owner is not interested that much in adding it. Now if you’re using an open solution, local communities from many places in the world can add support for their languages and your phone can have a better acceptance in places you hadn’t even imagined.

Software that reaches an international audience with different languages is software you want to have open.

How to get Predictor Input Method

You can find the Predictor Input Method’s source its Gitorious page: http://gitorious.org/text-predictor-input-method
Of course, you should also install Presage for it to work.

If you are not using GTK+ Input Methods then you can use the wrapper text-predictor.cpp which is not tight to the Input Method code itself. And of course, you can copy the little tricks used on the Input Method code and apply it to your source (like delaying the retrieval of the candidates some fractions of a second to not block the input, etc.).

Hope you like it.

by Joaquim Rocha at March 03, 2010 09:27 AM

Xabier Rodríguez Calvar

Unbricking my SheevaPlug

More or less one month ago, my SheevaPlug went bananas and didn’t turn on again. After talking to a colleague at Igalia who googled a bit, we found out that it could be a problem with the power supply unit. The issue seems to be known and it happens when you keep an external harddisk taking power directly from the USB port for a long time. It seems that power is not enough and you get a burnt power supply unit.

What I did was opening the Sheeva and taking the power supply unit to electronics specialized shop in my city and they told me that they didn’t have so small power supply unit, but that I could use an external one. He explained me what I should do.

I needed a couple of pieces not to cut the new power supply unit cables and a soldering iron (with some solder, of course). Then I could cut the connector of the broken power supply unit as you can see in the picture:

Next step was soldering the red cables to the inner pole of the adapter and the black ones to the outter pole (if I am not mistaken, you can recognize in the picture that the outter is negative and inner is positive). As I was bad doing this manual works at school and I still am, we (my wife and me, yes the pole soldered by her was in a better shape than mine) had to insulate them with a bit of insulating tape. You can see this in the picture.

The rest was just putting the external power supply connector thru the hole left by the old one and keep the cables where the old one was. I connected it to the motherboard, closed it and voilà!

Now I have the again the Sheeva with the external hard disk, but I provide external supply with something similar to this not to have the same problem again, but I wonder if just using a more powerful power supply unit would remove the problem of having the harddisk with external an external one.

by calvaris at March 03, 2010 09:27 AM

March 02, 2010

Xabier Rodríguez Calvar

mafw goes Grilo

As you may know, some colleagues at Igalia are developing a framework to gather, browse and query multimedia sources called Grilo. Of course it is no replacement for GStreamer as it is at a much higher level and we are focusing in gathering, browsing and querying so far.

We were an important part of the main developers of MAFW, so in this case we are trying to learn from the mistakes and try to create a more useful and easy to use framework.

One of my first steps, as a test, will be creating a MAFW pluging for Grilo, so that we can have all sources managed by Grilo running on the Fremantle official media player (as soon as bug 9361 gets fixed) with the consequence of having integrated important and interesting features as Youtube, podcasts, Jamendo, Shoutcast and so on.

by calvaris at March 02, 2010 11:53 AM

Iago Toral

March 01, 2010

Juan A. Suárez

Grilo 0.1.3 released

As the same time Iago was blogging about the Totem plugin based on Grilo, we were releasing a new version of grilo: 0.1.3

What can you find in this release?

  • A ranking mechanism for plugins: if several plugins are able to provide the same information, this ranking helps to choose which one should be used.
  • New functions to search for sources: now it is possible to search for sources that implement some capabilities. Do you want to know which sources can be searched? No problem. Now it is possible.
  • A new key, bitrate: you know, the standard key to know bitrate of clips.
  • Some improvements in grilo-test-ui: besides other improvements, now eog, totem and mplayer are the default players.
  • Documentation for some classes: we should not forget about adding documentation to classes. It is a bit boring, but a compulsory task. So lets do it step by step.
  • Improvements in plugins: some improvements we were doing in available plugins
  • New plugin, Apple™ Trailers: this new plugin allows to get the latest trailers from Apple™.

As usual, we have packaged this new release, so you can find it here and here. Also, if you use Ubuntu and are a bit lazy, do not forget that a PPA is set up.

Finally, as there is life beyond Debian and deb-based distros, a new branch to create RPM packages for grilo and grilo-plugins have been added. We have been testing it with Fedora 12, and seems it works fine.

As you see, there are no excuses to try Grilo ;-)

by jasuarez at March 01, 2010 04:50 PM

Andrés Maneiro

Máster Sw Libre: videos de la charla de Tomeu Vizoso, SugarLabs

A principios de mes, estuvo con nosotros Tomeu Vizoso, de SugarLabs, para contar su experiencia en el proyecto. La sesión se centró en 2 temas:

  • Sugar: pasado, presente y futuro
  • Contribuir código a Sugar

Estos últimos días hemos publicado on-line los videos de la sesión para que todo aquel que no pudo asitir pueda disfrutar de tomeu y de su experiencia. Esperamos que os guste!


Tomeu Vizoso – Sugar talk at Igalia (1/4)


Tomeu Vizoso – Sugar talk at Igalia (2/4)


Tomeu Vizoso – Sugar talk at Igalia (3/4)


Tomeu Vizoso Sugar talk at Igalia (4/4)

by amaneiro at March 01, 2010 12:31 PM

Iago Toral

Grilo on Totem

In my last post I mentioned I was working on a Totem plugin based on Grilo, last week I put some more effort on that and I got a beta version, you can check out some pics below:

Browsing and playing  videos from Youtube

Browsing and playing videos from Youtube

Browseable sources

Browseable sources

Searching images on flickr

Searching images on flickr

Searching Guadec videos on  Youtube

Searching Guadec videos on Youtube

Browsing content from Jamendo

Browsing content from Jamendo

I have also recorded an ogv video showing the plugin at work in more detail, you can check it out here.

Also, I uploaded the code to gitorious if you feel curious about it. If you want to build the plugin from the sources check the HACKING file on the repository. Also, I suggest you build Grilo from the sources as well or wait for the release 0.1.3 which should be coming out later today.

Now to the more interesting part, the good thing about Grilo is not just the plugins, it is the fact that you can interact with them with a common API. As a matter of a fact, I could now add more plugins to Grilo and those would show up in Totem without having to code anything extra, not a single line on Totem or its Grilo plugin, it would just work: you would be able to browse the new plugins if they are browseable in the Browse view and/or you would be able to search them if they are searchable in the Search view, etc.

The plugin is not really finished, it can still use some extra work, particularly in these areas:

  • Localization support.
  • Proper user interface definition with GtkBuilder.
  • Settings persistence with GConf.
  • Usability tweaks
  • Review memory management, fix memory leaks, etc
  • More testing and general debugging.

but all in all, it is good enough already for others to try and give feedback, so if you have any, please drop me a comment! :)

That’s all for now, I am looking forward to seeing this on the upstream Totem at some point in the future, so if some Totem developer is reading this, please let me know how you feel about that.

by itoral at March 01, 2010 11:31 AM

February 27, 2010

Claudio Saavedra

Sat 2010/Feb/27

February 27, 2010 02:36 PM

February 26, 2010

Juan A. Suárez

Bringing SeriesFinale to Hell

So finally we have brought SeriesFinale to Hell Diablo.

Some months ago I began a port of SeriesFinale to Diablo (Maemo 4), the software that rules Nokia N8×0 series. Working on it every now and then, finally I have achieved a first version which has everything I was using from Fremantle version.

After talking with Joaquim, the original author (and also my workmate), we decided to put this port as a branch in official repository.

What will you find in this port version?

  • It is based on SeriesFinale v0.2.1
  • Some features have not been ported yet. For instance, adding series manually or edit information about episodes is not ported yet, and thus are disabled.
  • It is a multi-window application. Yes, in order to keep as much the same code as original version as possible, I ended up in a multi-window application: browsing through shows, seasons, and so on is opening different windows. Going back is as simply as closing the opened window. I know it is ugly, but my main goal was to have a functional version running in Diablo. And it does, indeed! ;-)

I expect to integrate new changes in Fremantle version, and also to implement all features that remain unported.

Regarding the multiple windows issue, I need to evaluate if it is worth to change it and use just one window with some browsing widget. The main point here is that whatever I do, it should make easy to integrate new features from Fremantle version. After all, Fremantle version is the “official” one :)

by jasuarez at February 26, 2010 03:46 PM

José Dapena

Modest mail, now in gitorious.org

This week we’ve finally moved Modest to gitorious:

http://gitorious.org/modest/

The repository itself is called modest:
http://gitorious.org/modest/modest/
git://gitorious.org/modest/modest.git

Reasons are basically that gitorious is faster and better providing git services. So I hope the change is for good.

All the other services will still be in garage: mailing lists, wiki, and project web.

Implementation guide

Last weeks we’ve also been writing some information about how Modest has been implemented, in the wiki. You can find them in Modest architecture documentation. There you’ll find:

  • Description of the classes in Modest implementation, and how they work.
  • Sequence of events that implement some complex use cases.

by jdapena at February 26, 2010 11:32 AM

Xabier Rodríguez Calvar

Seekability and DLNA in MAFW

Seekability when streaming contents involves almost all layers of a multimedia player and it is not a trivial issue. First, your interface needs to have a seekbar or something to do that. Of course, the media you are streaming has to seekable, meaning container and codecs used. And we cannot forget the transport either, this is, HTTP, local access and so on.

Thank Gods, GStreamer does a wonderful job making easier everything related to transport, decoding, containers, etc. But in the case of UPnP-DLNA, there is a extension saying if the media you are playing is seekable or not.

We did not have support for that in MAFW and we needed it, I added the request for the metadata key MAFW_METADATA_KEY_IS_SEEKABLE when requesting data to play media, so now we have duration, uri and seekability. Our approach had to be consevative (otherwise, GStreamer seekability would have been enough), and then if MAFW source provides the metadata key and media is not seekable, se just say it is not seekable. Otherwise, we rely on GStreamer, that has the final responsibility (which is logical, if it cannot seek, seeking is impossible). Of course, seekability depends on duration, meaning, if there is no duration, we cannot seek as we would not know the seeking limits.

About how to implement that in the sources, the only one needing it was mafw-upnp-source. In the other ones we just want to rely on GStreamer, but for UPnP, if we want to honor DLNA specification, we had to do that. Specification is fun itself and of course, adding that every vendor/provider implements what it wants makes it more difficult. A proof is that a friend of mine bought a TV claiming to be DLNA certified and it only works with the crappy server provided by the vendor, closed of course, and with a lot of missing features, like subtitles support, IIRC (yes Zeenix, I told him to use Rygel and Philippe, it was before you joining Igalia :-p). Now with new gupnp this was reworked, but when I wrote it, we had to check the DLNA_OP fields to know if it was seekable or not and it was a pain in the ass to decide what the default was depending on the missing options and so on.

Fortunately, it is working fine now, I think.

by calvaris at February 26, 2010 09:42 AM

February 24, 2010

Iago Toral

Updates on Grilo

Some updates on Grilo since my announcement post (in chronological order):

  • Juan is packaging Grilo, check details here.
  • We have bindings for Vala thanks to Víctor Jáquez.
  • Grilo 0.1.2 is released, check this post for details.
  • We have a plugin ranking system now. This is used when you request Grilo to resolve metadata for a particular media object and there are various plugins capable of doing so (imaging for example that you have two plugins for resolving the album art or the lyrics, etc).
  • We have set up a PPA for Grilo on Launchpad, details here.
  • I am working on a Totem plugin, so far I got a first prototype working and I can use Grilo sources from Totem enabling me to browse and play content from all the Grilo plugins. Now I need to focus on adding a few more features and configuration options.

by itoral at February 24, 2010 07:28 AM

February 23, 2010

Juan A. Suárez

PPA for Grilo

We want to make life easier for all people that want to try Grilo. So we have set up a PPA for Grilo.

If you are using Ubuntu Karmic, add

deb http://ppa.launchpad.net/grilo-team/ppa/ubuntu karmic main
deb-src http://ppa.launchpad.net/grilo-team/ppa/ubuntu karmic main

to your sources.list and you will have Grilo.

If you are using Ubuntu Jaunty or even the next Ubuntu Lucid, do not worry: just replace “karmic” by “jaunty” or “lucid” respectively in the sources.list.

At last, Ubuntu Jaunty have an older version of Vala, while Grilo requires a newer one. So we have backported Vala from Ubuntu Karmic to Ubuntu Jaunty and added to the PPA.

by jasuarez at February 23, 2010 05:31 PM

February 21, 2010

Joaquim Rocha

London

Me and my girlfriend spent the last week in London where we stood in Igalia’s amazing flat.

I had only been to London once, about 14 years ago, I was 10 years old, in a high-school trip. Of course, things now seemed much different.

Coming from a small town and living in a small city, I was amazed by the number of people everywhere. It just seemed to much people, in the streets (okay, the main ones), in the subway, etc.

I was also expecting things to be more expensive, maybe because of the GB pound devaluation… This led me to spend some money on books. I love books and I (usually) hate translations. Maybe some publishers are trying to save some money by hiring cheap translators because some of the books I got in Portuguese have some really lame translations. I mean, I’m not expecting every translator to be an expert on the various subjects a book talks about but I expect at least some research of what some terms and expressions mean. That’s why, when possible (when I can read them), I prefer books in their original language.

I think that in a week, we could try very different things in London. We went to museums like the Science Museum, the Britain at War Experience and Natural History Museum; we went to Notting Hill; and we even got stuck in the subway due to the closing of the central line because of the amount of people.
Though, what I liked most was Camden Town and it’s really cool markets and shops where I bought a few t-shirts.
The stables market was amazing!

Another thing a small city boy like me noticed was the pollution, just like every time I go to Lisbon, by night at home you get the difference, in the skin, in the nose, etc. I am really glad that in A Coruña you don’t have such problem (I also didn’t notice it in Brussels).

I also loved to be a in a foreign country and understand what everyone is saying (well, I guess I am not considering my *not home country* of Spain to be a foreign one anymore) as the last countries I have been to are Belgium and The Netherlands.

About the food… we all know that the UK is not the country you go for gastronomy but I loved the cheap and huge English breakfasts.

Now don’t get me wrong but I was expecting my British fellows to be a lot more, how should I put it, snobbish. Yet, every person we asked for directions was really kind, British or not (except for a few suits that might have thought I was selling something when I wanted to know where the hell was HMS Belfast).

So, conclusions about London now that I am not 10 anymore: It is a wonderful city and I am looking forward to go back visiting it but the rush of things in there, the number of people, the amount of time lost in the bus or the tube, etc. makes me like more a city like A Coruña to live in. Yes, I would prefer *much more* to live in London than in Lisbon for example, but some things are best taken slowly, and life is one of them.

by Joaquim Rocha at February 21, 2010 10:50 PM

Juan A. Suárez

Grilo 0.1.2 released

We have released a new version of Grilo, 0.1.2, a framework that provides access to different sources of multimedia content.

Main changes is this release are:

  • Improved Vala bindings
  • Removed flickcurl from Flickr source
  • Added support for gupnp-av-1.0 new versions (greater or equal than 0.5)
  • Added two new sources:
    • Shoutcast: get content from popular SHOUTcast internet radio stations.
    • Bookmarks: helps to create bookmarks to multimedia content

The work done in flickr and upnp sources has allowed to remove specific packaging branches for Jaunty, Lucid, Sid and Lenny: now you can use debian branch to build the packages in all those distributions.

Besides it, the main reason for getting rid of flickcurl library in Flickr source is that lack of a asynchronous API. As right now we are using a small subset of flickr service API, we have decided to implement our own way of accessing Flickr.

Nevertheless, our mate Mario is working in a project called flicksoup (a pet project so far), that try to fix this problem, providing a very good asynchronous API. We hope to move to that library in future.

Now, time to test Grilo 0.1.2, and stay tuned for news!

by jasuarez at February 21, 2010 01:52 PM

Enrique Ocaña

Shishen Sho compiled for N900

I’ve recalled about my old Shishen Sho game, originally developed for N810 (Maemo4) and I was wondering if it would compile for N900 (Maemo5). Well, after some minor corrections to make it work in a more recent version of Vala, it compiled. You can downloaded it here:

https://garage.maemo.org/frs/download.php/7573/shishensho_0.3.1-maemo5_armel.deb

Disclaimer: It’s compiled “as is”, with no adaption for sliding menus, no new hardware keys and no new fancy features. It just works and will let you have a good time while waiting for the bus.

by eocanha at February 21, 2010 02:11 AM

February 20, 2010

Joaquim Rocha

SeriesFinale 0.3.6 AKA Color Edition (TM)

As promised, I’ve added the original air dates of the episodes to SeriesFinale.

This feature had been requested since people first knew of SeriesFinale and it is quite useful. It will tell you, by the color and actual date information, when a show’s episode was first aired in its network. Of course if you happen to watch a show on another network (usually this happens if you’re not from the same country as the TV show itself), then you won’t need this date to warn you to go sit and watch it but at least you see which episodes were already aired on their original country.

This release has not many changes apart from the date thing plus a couple of bug fixed and the Spanish translation (thanks to Juan A. Suárez Romero).

(By the way, as I write this, TheTVDB seems to be down so you are likely to have some trouble updating your shows and getting the air dates on it but I hope it will be up again soon)

Here are a few screenshots:

SF: Seasons with colors and dates

SF: Episodes list with air date info

SF: Episode info with air date

by Joaquim Rocha at February 20, 2010 09:41 PM

February 19, 2010

Juan A. Suárez

mafw-gst-eq-renderer 0.1.2009.47-1-1 released

A new version of mafw-gst-eq-renderer has been released: 0.1.2009.47-1-1.

mafw-gst-eq-renderer is a renderer plugin for MAFW, the multimedia framework used in Maemo 5. It is a fork of original MAFW renderer plugin which adds an equalizer.

This release integrates all changes from original mafw-gst-renderer v0.1.2009.47-1 plugin. So it should have all features as original (and unfortunately all bugs too).

If you want to use it with the default mediaplayer, I suggest to install MGR flavour.

Installing mafw-gst-eq-renderer

Installing mafw-gst-eq-renderer (I’m assuming you want to install MGR flavour) is very easy: download it and from a terminal, install it, uninstall original mafw-gst-renderer and reboot the device.

For those that need a detailed step by step:

  1. sudo gainroot
  2. dpkg -i mafw-gst-eq-renderer_0.1.2009.47-1-1mgr_armel.deb
  3. apt-get remove mafw-gst-renderer
  4. reboot

Uninstalling mafw-gst-eq-renderer

If for any reason you want to uninstall it, it is easy too: you must restore original mafw-gst-renderer and then remove the fork.

Again, step by step:

  1. sudo gainroot
  2. apt-get install mafw-gst-renderer mp-fremantle-generic-pr
  3. apt-get remove mafw-gst-eq-renderer
  4. reboot

After this, everything should work fine.

by jasuarez at February 19, 2010 03:19 PM

Sergio Villar

The Postman always rings twice

Thanks to the hackfest time Igalia gently gives me every week I could resume the work I had previously started to add ENVELOPE support to tinymail.

What’s this stuff about? Well basically what we can do now is ask the server for ENVELOPE instead of fetching a random set of headers (like ‘From:’, ‘Subject:’ …). Why is this cool? For several reasons:

  • Speed: IMAP servers do cache ENVELOPE information so they do not have to inspect every email message to extract the requested headers. They can give you ENVELOPE blazingly fast (I run a rough test and downloading a folder with ~1500 headers from AOL IMAP server lasted twice the time of downloading ENVELOPE and BODYSTRUCT, and this means minutes).
  • Bandwidth: ENVELOPE is smaller in size than headers as the name of the headers is not transmitted over the network
  • Future: RDF storage support in tinymail is now closer

You can find this new feature in trunk.

by svillar at February 19, 2010 11:33 AM

February 17, 2010

Claudio Saavedra

Wed 2010/Feb/17

  • By the end of January, I started to feel an annoying pain in my right hand, starting somewhere in the thumb and moving through the wrist on to the arm. Pain was mild, but enough to scare me, so I made a visit to the doctor (when I finally discovered that terveysasema was the word I was looking for).

    The doctor at the Finnish health center diagnosed Carpal Tunnel Syndrome. Something that I didn't really believe in the first place, since she didn't run any specific tests and just checked the inflammation and my story. Also, it is known that CTS is usually misdiagnosed to people with this type of pain and coming from the IT industry.

    Later, I made a new visit to the doctor while I was in A Coruña, who after performing a few basic tests came to the conclusion that it wasn't CTS at all, but some sort of Repetitive Stress Injury. A couple of weeks in a sick leave, away from the keyboard, the phone, and guitar, and I should be fine.

    These weeks were pretty frustrating on the one hand [1], but on the other hand gave me some time I needed for some tasks more related to my personal life, so in the end it wasn't so bad.

    Now pain is mostly gone, and I've changed the way I type to something less stressful. I still need to get used to this and get back to speed with my work.

    [1] no pun intended.

  • FOSDEM was really cool. It was a good motivation to stay away from the laptop for several days and allow the hand to rest. Talks were as cool as one can imagine, I met many of the good old friends and made a few new ones. But anyway, isn't that the usual thing at conferences?

    I guess it's better, as usual, to let the pictures speak.

    Leonidas

  • It's been an unusually snowy winter in southern Finland. As a proof of the spring coming soonish, it's already possible to see bicycles starting to bloom in the snow fields:

    That much snow

February 17, 2010 06:26 PM

February 16, 2010

Xan López

Browser Pong

Fresh from the ovens of Igalia’s Industrial Web Hackery division I bring you what all of you were waiting for: support for the DOM methods window.{moveTo, resizeTo, moveBy, resizeBy} in WebKitGTK+, and the corresponding fix in Epiphany. What does this mean? It means that Browser Pong now works in Epiphany!

What? Browser Pong? Yes: Browser Pong.

Go nuts, this is better than World of Warcraft.

by xan at February 16, 2010 01:22 PM

February 15, 2010

Sergio Villar

Some Modest sir? Sure, with Sugar please

Last week we received a very kind visitor. Tomeu Vizoso, maintainer and developer of several Sugar core modules, came to our office in A Coruña to share with us his ideas and to talk about the current status of the project.

Tomeu Vizoso @ Igalia

Tomeu Vizoso @ Igalia

In a hole, creating technologies that help children and try to change education is really a very beautiful goal. We were shocked when Tomeu told us about the size of deployments in some countries of South America, keep rocking guys.

There are some myths and misconceptions about the OLPC project. One of them is that almost everybody uses Windows on their OLPCs. The fact is that almost nobody want Windows in their laptops and most of the teachers are asking for Sugar powered devices.

I talked to Tomeu in order to know what is the status of email in Sugar, and he replied that they do not have any solution yet. So I proposed him to try to get Modest running in Sugar as the current look&feel of the pure gtk+ version seemed to fit very well into Sugar’s UI experience.

In the Sugar UI you don’t have exactly applications. They call them activities, and you could have activities like read, write, chat or browse Internet. Having a single window per activity is highly desirable, and stuff like modal dialogs are almost forbidden.

Then I built tinymail and modest using current Sugar libraries (pretty easy BTW as they use very well known GNOME technologies). Here it is the result, note that is not fully “sugarized” and that the platform misses some icons here and there but it looks nice for just a short hackfest session.

Modest showing list of headers in Sugar

Modest message editor in Sugar

Modest message editor in Sugar

by svillar at February 15, 2010 06:29 PM

February 14, 2010

Enrique Ocaña

La Fonera support

Do you have a Fonera (version 1) router? Now Meiga can talk to it to redirect ports, so content sharing to the Internet is going to be easier for you from now on.

By now this feature is only in the git HEAD, but stay tuned for more features to come and for a new release to be published.

by eocanha at February 14, 2010 02:01 AM

February 12, 2010

Víctor Jáquez

Grilo meets Vala

Last week, after the internal presentation of Grilo, I got pretty excited about the project: basically, using Grilo I could make epris consume feeds from Jamendo.

I started to generate the bindings for Vala. I never thought it could be that hard: the heavy use of atypical callbacks in Grilo made me find a bug in the code writer of Vala. And eventually I came with a small patch, which I’d just pushed.

Those problems brought into the discussion to use GAsyncResult within Grilo instead of the custom callbacks mechanism. We’ll see where we can go.

Finally I got my small test snippet. Cute, isn’t it?

Today also pushed another patches I’d in my Vala queue. The interesting part is, after talking with Zeeshan, I understood that the gstreamer vapi must be generated with the latest release of GStreamer. Something logical but I never stopped to think about it.

by vjaquez at February 12, 2010 09:19 PM

Juan A. Suárez

Grilo repository

Iago did a good introduction about Grilo some days ago. As he told, source code is kept in Gitorious, and we welcome any feedback, patches or plugins. Take in account that this is a starting work, so probably lot of changes might happen.

Code is right now split in two repositories: grilo, which contains the core framework, and grilo-plugins, which contains a set of plugins ready to be used. Right now, we have plugins that can access local filesytem, uPnP servers, Flickr, Jamendo, and Youtube. Also, there is also a plugin to deal with podcasts, another one that is used to get cover arts from Last.FM, and finally a “fake” source used to do some tests.

Also, in order to help people to try Grilo, we have packaged it. There is a branch named debian, both in grilo and grilo-plugins repositories, that contains a recent version of Grilo: just build the packages and you can play with Grilo. We will try keep always the last version of code.

As plugins have some requirements, it could be that your Debian/Ubuntu distribution can not satisfy those requirements. Thus, we have created specific branches for this distributions. If you have Debian Lenny (stable), Debian Sid (unstable) or Ubuntu Jaunty (9.04), use the appropriate branches when creating the packages. Take in account that these branches just get rid of plugins that can not be built due to lack of requirements. As Grilo is a live code, might be in future fixes can be committed so they can be built in that distribution. In this case, we will get rid of that branch and people will use the debian branch.

by jasuarez at February 12, 2010 10:56 AM

February 11, 2010

Philippe Normand

Mirabeau on Maemo

At FOSDEM Frank and I showed the work we did on Mirabeau, a screencast was made few days before FOSDEM and we showed it but I wanted to add some comments and re-arrange some parts of it, so here it is now, re-arranged with PiTiVi :)

Please install a HTML5 compliant browser. Meanwhile you can download the video from http://base-art.net/static/mirabeau2.ogg

(Video here in ogg/theora/vorbis if your browser fails to play it).

This is still work in progress, we have some issues with Telepathy MUC Tubes, I promised Sjoerd from Telepathy fame to create some new bugs in bugzilla. Also the UI itself still needs work, especially the MediaRenderer UI. I will also at some point add a chatroom window.

Oh and we also won a N900 at the XMPP developer contest thanks to this application! Thanks a lot to the XSF and Nokia :)

by Philippe Normand at February 11, 2010 02:20 AM

February 10, 2010

Iago Toral

Grilo

After working for quite some time in MAFW for Maemo I thought it was about time we exported some of the ideas to other platforms, including the desktop, of course. For those who haven’t heard of MAFW yet, you can get a good description of it in the abstract of the talk I gave at GUADEC last year.

MAFW takes care of quite a few things related to high level multimedia development, but there is one in particular I find specially interesting, which is source abstraction. Basically, MAFW defines a set of interfaces for accessing media content providers (a.k.a. Youtube, UPnP servers, local media, radio streams, podcasts, etc). in a generic way (one API to rule them all), easing a lot the effort required on the application side to write modern media players that integrate many of these services.

MAFW was a step forward in this regard, but probably too tied to Maemo in general and to its Fremantle iteration and the N900 in particular. I think the ideas behind MAFW about media browsing are totally valid outside Maemo, however I find its implementation and design packed with Maemo specific (or even N900 specific) choices. I guess this is ok for Nokia since Maemo is its major priority when developing software, but for those willing to export these ideas to other contexts, like me, it is not good enough. And this is is why we have created Grilo.

Grilo is a framework focused on making media discovery and browsing easy for application developers which has been developed following some of the good ideas behind MAFW but with a broader target in mind and adding some extra interesting features as well. In few words, Grilo provides:

  • A single, high-level API that abstracts the differences among various media content providers, allowing application developers to integrate content from various services and sources easily.
  • A collection of plugins for accessing various media providers. Developers can share efforts and code by writing plugins for the framework that are application agnostic.
  • A flexible API that allows plugin developers to write plugins of various kinds.

At the moment, even though we are still starting the work, we have a bunch of plugins already available that provide support for various kinds of services:

  • Youtube
  • Jamendo
  • Flickr
  • Podcasts
  • UPnP

We also have a simple GTK+ test user interface that allows users to browse, search and query these plugins for available media, for those who want to get a grasp on how the framework can be used from an application. We also have a Last.FM album art plugin too.

Grilo is LGPL and its source code is available on Gitorious. We welcome interested users and developers to check it out and provide feedback, patches or new plugins. We are still in the early stages of the framework definition and we are looking forward to incorporate new ideas into it.

The advantages of having a framework like Grilo are easy to spot:

  • Less work on the application side. All the plugin development happens in the framework and application developers can focus on making good user interfaces. It is the same with GStreamer if you think about it, application developers do not have to write decoders to playback content any more, they get the decoders from GStreamer (the framework) and that eases a lot application development. Well, this is the same idea, but applied to media browsing and discovery instead of media playback.
  • Code reuse. There are many media player applications allowing users to access contents from various services. This is nice, but all this is done at the application level, which usually means that all that code cannot be directly reused in other projects. Because of that there are developers writing application specific plugins for all these services in various applications (Totem, Rhythmbox, Amarok, etc), replicating code that cannot be reused directly in other projects. If the plugins were developed on the framework side, all these developers could share efforts and write support for these services only once in the framework, making them available for all the applications using the framework for free. Every one wins.
  • Quick learning curve. Think about it, if you want to write a media player with support for various different media content providers, you would have to learn how to deal with each one of them independently: want to add Youtube videos? go and learn about Youtube data API, want to add music from Jamendo? go and learn about how Jamendo allows you to do that, want to provide access to your local media? Go and learn how Tracker APIs work for example, want to access UPnP servers? then go and learn about using GUPnP, and so forth… this is a lot to learn, and even more code to implement. The framework approach would ease all this, one would only have to learn only one API (the framework API) and that would enable application developers to access all these services through the framework plugins. These plugins act as adpaters for those into design patterns.

I guess this post is getting long enough for now, so I’ll stop here and write more about Grilo some other day…

by itoral at February 10, 2010 04:43 PM

Sergio Villar

Moblin support for Tinymail

I have just submitted a couple of patches (this and this) to Tinymail that add Moblin to the list of supported platforms.

Basically the main addition is the TnyMoblinDevice, it’s an object that allows every application that uses Tinymail to use the connectivity services provided by Moblin’s Connection Manager.

In order to build Tinymail for Moblin you just need to use --with-platform=moblin in the configure process.

by svillar at February 10, 2010 12:13 PM

February 09, 2010

Alberto Garcia

Tomeu Vizoso (Sugar Labs) na Corunha

O próximo dia 11 de Fevereiro, e como parte do Master em Software Livre, Tomeu Vizoso estará no local de Igalia na Corunha das 16 às 19 horas para falar do projecto Sugar.

Sugar

A entrada é aberta a todo o mundo, só limitada pola capacidade do local.

Mais info no blogue de Tomeu (em inglês) e no blogue do master (em espanhol).

by berto at February 09, 2010 01:04 PM

Joaquim Rocha

FOSDEM follow-up

FOSDEM was really nice this year. Still too many interesting presentations to attend than our physical condition allows but that’s life.

Like I announced on my last post, I gave two presentations there and I am glad with both of them. People seemed really interested in OCRFeeder and I hope they try it out, send me feedback and spread the word about it.
I could personally meet P. Christeas, who had send me a patch for it, and listen to the questions and suggestions of people about how OCRFeeder works.

I must say the most impressive presentation I attended was by  Professor Andrew Tanenbaum himself, about MINIX 3, what a beautiful piece of software it seems.
If you have not attended it, maybe you can watch the video recording once it is available.
Later on I had a nice chat with him regarding web browsers on MINIX and the real portability of applications that are said to be multi-platform.

Here are the slides for the presentations I gave:

Looking forward for FOSDEM 2011!

by Joaquim Rocha at February 09, 2010 10:53 AM

Sergio Villar

Dear GMail IMAP server developers…

Some people have already complained about the way GMail IMAP works. With great power comes a great responsibility. Google guys, you have one of the largest email services in the world, so this means that you have to care a lot about users and clients. Dape recently reported and error in how GMail creates the body structure of some particular messages and still got no answer.

Now I found that it does not return the full bodystructure of a multipart/mixed with two refc822 messages in it. If this sounds strange to you, it’s basically how Mozilla Thunderbird creates an email with two other emails as attachments. GMail simply will not tell you about the structure of the two attached emails.

Bodystruct support in Modest is working in most cases although these problems with GMail will most likely mean that it won’t be shipped with the next software update for the N900.

by svillar at February 09, 2010 09:01 AM

February 08, 2010

Víctor Jáquez

Slides of my talk at FOSDEM 2010

I still don’t know how to submit my slides into the FOSDEM website, so I’m linking them here by now:

DSPBridge on OMAP3 - fosdem 2010

by vjaquez at February 08, 2010 08:00 PM

February 07, 2010

Enrique Ocaña

Meiga 0.3.2 released

This new release doesn’t use GtkBuilder anymore, so the GUI problems caused by incompatibilities between GtkBuilder versions shouldn’t be noticed now.

Files are now iterated instead of being mapped into memory. This makes Meiga a little bit slower but allows execution on low memory machines, as suggested by Steven.

Meiga now also works in Karmic. Just use the Jaunty packages and they will work fine. You can get it from http://meiga.igalia.com.

by eocanha at February 07, 2010 08:30 PM

February 05, 2010

Alejandro Piñeiro

And finally Cally talks

Cally was somewhat stuck during December due Christmas and parallel projects, but January was a productive month.

A ClutterText bug was committed, and this allowed to push several cally bugs solutions and other blocked local commits, and going forward to do a real test of Cally with ORCA. The idea was being able to run the toy-cally examples with ORCA before move to bigger things. So bug 1946 was created with several comparative cally-gail test cases. I want to give thanks to Joanmarie for all her help as ORCA expert, testing and bug detection.

As I said, this bug leads to detect some extra bugs (on clutter and on cally). Finally these bugs were solved, so now you can use ORCA with the cally text examples.

During this task, I personally discovered that the manipulation of keyboard codes is something near to hell, and that currently Gdk and Clutter has a slightly different behaviour. This would lead to problems using the ATK interfaces, as AtkKeyEventStruct was defined really tied to GDK (at that moment the use case to contemplate). I tried to minimize that on Cally as far as possible.

Next steps? While I was working in this bug MX team announce the 0.5 release. This announce include the addition of MxFocusable and MxFocusManager, used to improve the keyboard focus management. I would like to check if it will be useful for keyboard navigation bugs in gnome-shell, as Owen Taylor suggested in the mailing list.

BTW, I have added a Cally page on live gnome, http://live.gnome.org/Cally

by API at February 05, 2010 02:43 PM

Andrés Maneiro

Máster en Sw Libre: los estudiantes van al FOSDEM 2010

Como acabamos de anunciar en el blog del máster, los alumnos de la III edición del Máster en Software Libre participarán en el FOSDEM 2010, que tendrá lugar durante este fin de semana en Bruselas.

Si los alumnos de la primera edición fueron al FOSDEM y los de la segunda a la GUADEC, en esta tercera repetimos con el FOSDEM, que es uno de los mejores lugares para respirar el ambiente de la comunidad y conocer el estado y novedades de los grandes proyectos.

Continuamos así con la política de participación en los eventos de comunidad, que siempre es motivante para participar más y mejor en los proyectos de software libre.

by amaneiro at February 05, 2010 12:35 PM

February 04, 2010

Xan López

Unless the enemy has studied his Agrippa, which I have

In a few days we’ll release Epiphany 2.29.90, so this is a good time as any to show a few of the new cool things it will bring.

The big one is, without doubt, good enough support for HTML5 video tag for the Youtube HTML5 beta to work. Pretty much all of the credit goes to the dynamic duo of Sebastian Dröge and Philippe Normand, which have been working tirelessly to improve our media support all across the board. As you probably know we use GStreamer for all our media needs, so if you happen to have the right codecs installed stuff will just work out of the box, like it should. Here you can see it in action, playing one scene everybody should know and love:

Screenshot-YouTube - The Chatty Duel---The Princess Bride

Another recently fixed bug is support for windowless NPAPI plugins, contributed by Brian Tarricone. For those of you still enslaved to plugins it should fix a few annoyances, not to mention that it allows for the plugin content to be manipulated alongside the rest of the web content, since it’s rendered directly in the browser window.

The world-famous Diego Escalante, who is doing an internship in our company with the mission of fixing as many Epiphany bugs as he possibly can, reimplemented EphyEmbedPersist on top of WebKitDownload , which will have the visible effect of making those mysteriously broken save-related context menu items work again.

On the same “kill all regressions” mood I spent some time implementing acceptance policies for cookies in libsoup and hooking the new APIs here and there. The result? This pesky items in the preferences dialog should do something again:

Screenshot-Preferences

When I was not doing that or losing my youth in the depths of WebKit chasing some nasty bugs I’ve also been spending some time on the GObject DOM bindings for WebKit. I’m happy to say that a couple of preliminary patches have been already committed, and the first big-step patch of the process is under active review and hopefully will be accepted shortly, so you should begin to get some exciting new APIs to manipulate web content in a not-so-distant release!

There are just a few of the latest things we have been working on. I’ll, as usual, keep you more or less up to date here, but if you want the gory details of the day to day business, or even get your hands dirty on the stuff yourself, don’t hesitate to join our IRC channels (#epiphany on GimpNet and #webkit-gtk on FreeNode) or mailing lists. Happy hacking!

by xan at February 04, 2010 11:14 PM

Alberto Garcia

Updates on Hildon and Vagalume

It’s been almost two months since my last blog post so here’s a quick update on the things I’ve been doing lately.

Vagalume 0.8.3

The first thing that I’d like to mention is the upcoming release of Vagalume 0.8.3 (which will probably happen during this weekend). The only changes in this version are that menus and dialogs have been fremantlized using the Hildon 2.2 style. It’s not an enourmous change, but it was about time :)

Here’s a screenshot of the new preferences dialog (click to enlarge):

Vagalume preferences dialog

Note that this release is only interesting for N900 users. There are no significant changes in v0.8.3 compared to v0.8.2 for other platforms.

Hildon development

There’s been quite a few changes in Hildon during the last weeks. The maemo.org Bugzilla has been working reasonably well and I’m glad to say that some important bugs that have been fixed lately were reported directly by end users.

Apart from tons of bug fixes and speed improvements, perhaps the most easily noticeable change in Hildon that you’ll see in the upcoming Maemo update is the new “live search” feature for tree views.

Hildon Live Search

You’ve seen it in the “Contacts” application and Claudio talked about it some weeks ago. There’s been a lot of tuning since then (including the support for icon views) and now it’s essentially ready. I hope it’ll make the overall user experience of the N900 a bit better.

FOSDEM 2010

Last, but not least, tomorrow I’m flying to Brussels to attend FOSDEM 2010.

I'm going to FOSDEM, the Free and Open Source Software Developers' European Meeting

Some fellow Igalians are giving talks there (Joaquim about OCRFeeder and SeriesFinale, Victor about the dspbridge for OMAP3 and Philippe about multimedia in WebKitGTK+ with GStreamer).

We’ll arrive soon so we’ll be at the beer event on Friday night.

See you there!

by berto at February 04, 2010 02:01 PM

February 03, 2010

Mario Sánchez

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.list file (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 going to FOSDEM, the Free and Open Source Software Developers' European Meeting

…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

by msanchez at February 03, 2010 09:53 PM

January 29, 2010

Philippe Normand

Guess what

http://base-art.net/static/fosdem-2010.png

Arriving friday morning and leaving monday evening! I will do a quick presentation about WebKitGTK+ and a talk with my friend Frank about Mirabeau and personal media networks in the XMPP room.

We will be a whole Igalia gang hanging out there at Fosdem, looking forward socializing around beers :) Oh and don't miss Joaquim and Victor's talks!

by Philippe Normand at January 29, 2010 10:59 AM

Víctor Jáquez

gstjpegparser

Back in August 2009 I was chatting with my old peers in Mexico, and they told me that they needed a JPEG parser element in GStreamer for their DSP accelerated JPEG decoder. So, I went to bugzilla and found a bug report about the issue and a proposed patch. But the published patch still missed some features so I took it and worked on it.

After attaching my first try, Arnout, the first author of the patch, came with some comments to improve the element. Several weeks after I retook the element and almost rewrote it again. So I was waiting for the OK from a GStreamer developer.

Finally, this week, Stefan review it and pushed it. Sadly for me, I didn’t notice, when I rebased my local commits, squashing my change set into one single commit, that this commit had as author Arnout, not me :(

Now the commit is under the Arnout’s credit.

Yeah, sometimes I’m so absentminded.

by vjaquez at January 29, 2010 10:37 AM

January 28, 2010

Joaquim Rocha

Going to FOSDEM!

I'm going to FOSDEM, the Free and Open Source Software Developers' European Meeting

… and also, this year I giving two presentations there.

I’m presenting OCRFeeder in the GNOME DevRoom and SeriesFinale in the Embedded/Mobile DevRoom!

I just love FOSDEM, the spirit of it, the number of important Open Source projects in there and the city of Brussels!

If you wanna have a chat about OCRFeeder, SeriesFinale, Hildon Input Methods, Rancho (for Django folks), Igalia or other important Open Source projects, while drinking a nice Belgian beer, let me know!

by Joaquim Rocha at January 28, 2010 09:05 PM