GCDS summary

After an exhausting week at GCDS, a similarly exhausting weekend partying in Pamplona for San Fermín, and an again exhausting return to day to day work, just found some time to write some notes from last GCDS.

  • First, about RMS’s talk. I really didn’t find offensive his comments, just was a bit upset by the way he answered some of the questions asked by some people (this is a stupid question or something like that was one of his answers), but well, I can live with that and didn’t feel offended at all. But I found his talk very, very (did I say very?) boring. Talking about how cool is free software in front of an audience of free software enthusiasts, and about the history of GNOME and KDE in front of many of the core contributors to those projects was, IMHO, a total waste of time. While the talk is great for other audiences, it was totally out of place at GCDS. And that’s all I have to say about this, no meme from me.
  • There was a lot of interest on CouchDB from many people:
    • Tracker guys might want to use it to store metadata and files.
    • Roberto Majadas, the newest incorporation to the GNOME Hispano board, has been working on Vala bindings for my couchdb-glib library. He should announce them soon, I think.
    • Henri, from Midgard, implemented, while in Gran Canaria, the replication protocol used by CouchDB for Midgard, which means you would be able to sync (contacts, bookmarks, notes, etc) not only to CouchDB servers, but also to any server running Midgard.
    • People liked a lot (at least they applauded a lot) the demos for the stuff we’ve doing for bookmarks (Firefox) and contacts (Evolution and Akonadi) storage in CouchDB, that Steve Alexander showed in his talk on Wednesday. Thanks BTW to Ryan Lortie, who kindly gave his slot for his gnio talk so that Steve could talk about our work.
  • About GNOME 3 technologies, I have to say that the platform changes seem to be very well on track (thanks to Andre Klapper for keeping track), and GNOME Shell looks really good, even though it seems to still miss some functionality (applets? notifications?), which I’m sure the people working on it will settle down. Not so sure about Zeitgeist. It looks really great, don’t misinterpret me, but after thinking about it for a while, I couldn’t imagine how it would be useful for me, given how I access files. I’m sure it would be quite useful for lots of people, I’m just talking about me, but I think it would make a lot of sense if, instead of a separate application, it were a Nautilus view, just like you have the icon, list and compact views. But well, I’ll try testing it soon and maybe I’ll get convinced.
  • I liked a lot the Telepathy tubes stuff for desktop sharing, as well as the libnice talk by Youness Alaoui. These 2 open the door for very nice things to be added to desktops in the not-so-distant future.
  • I talked with several people about the contents of the conference, and most people agreed that, for someone that follows GNOME development the whole year, most talks are useless. Not that they are not interesting, because they are, but it would be much more useful if they were replaced with discussion groups that came up with plans for the next development cycles. Talks are still ok for new people getting to the conference, but having BOFs just after the core days, where a big percentage of the attendees are already gone, is, IMO, not a good idea, they should really be part of the core days. UDS (Ubuntu Developer Summit) has this right IMO, where there are only a few keynotes, and then several rooms hosting those discussions for different topics, where people come up with clear plans of what they should be working on. I hope we can do something similar for next year.
  • And after complaining about too many talks, I have to say that one of the best things in the conference (along with the GNOME 1, 2, 3 talk by Fernando Herrera and Xan López), at least for me, was the Pitivi tutorial, by Edward Hervey, which showed to the profanes like me how to do nice videos. I hope I’ll be able to follow his teachings and, soon, publish some nice videos of my motorbike and skiing rides as well as my holidays, with good rock&roll as the soundtrack 🙂 That, along with Mistelix (a DVD authoring tool) might change radically the way my friends and family enjoy my photos and videos.
  • Federico was selected as the first GNOME Hispano honorific member in the GNOME Hispano dinner on Thursday. It’s just a honorific title (accompanied by a bottle of local rhum as the prize 🙂 ), but he really deserves anything we can do to show him our admiration to the best hacker I’ve ever worked with.
  • I missed the FreeFA tournament, because playing football at 3PM under the Canarian sun is something my religion forbids 🙂 But yeah, even with me not playing, Bastien lost again 😀
  • Also nice was to have the personal hobbies lightning talks on Tuesday. As I discussed with some people, sexist problems, IMO, might be solved if some people, instead of being all the time in front of a computer, got out once in a while and met some non-geeky people (including women, of course) and share some hobby with them. That might make them understand better how to behave in front of women or people with different cultures. So I hope mega geeky people in the audience used those lightning talks as a starting point to find non-technology hobbies.
  • I really missed more KDE<->GNOME cooperation talks. Most of the cross-desktop talks were about things specific to one or the other desktop, not about how both projects could cooperate more. At the end, except in parties, it was hard to find KDE people (at least I only saw the KDE people I know in parties) around, and I guess the KDE people had the same impression. We even had 2 separate parties one day!!! Have to say though that the GNOME one was funnier, as some KDE people that showed up at the GNOME one told me 😀

Last but not least, as always, meeting again all the people I already know and making new friends is the best part of this kind of events. It makes you feel again part of a great community.

And to finish, a big thanks to the people that helped in the organization. They already had a big round of applause at the GNOME Foundation Annual Meeting, but I’ll say it again here: thanks a lot!

GCDS expectations

With just a few hours before I leave to Gran Canaria, here’s a list of things I personally would like to get from the conference:

  • I’ve been to all GUADEC’s except for 2 (Stuttgart and Istanbul), and every time I’ve missed one GUADEC, I was doubly excited to go to the next one, so this year, having missed last year’s, this is the case again.
  • Since for the first time we are having a joint KDE/GNOME, I am expecting to have a big push on collaboration and cooperation between the 2 projects. I am not sure what would come out of this, but we should all really be looking for this, since it would just help both projects a lot. So, keep the rivalry only for the sport activities, please (maybe a KDE vs GNOME football game? 🙂 )
  • As I’ve already blogged about recently, we (at Canonical) are trying to push CouchDB use to the desktop. I’ve got all the code I’ve been working on ready to be shown (karmic packages here, but broken for jaunty right now, sorry), so if someone wants to see it in action (a technology preview, of course, not everything is done yet), just find me around and I’ll do a personal demo (a better demo if you buy me a beer 😀 ). Other Canonical staff will be around also showing these (and other) technologies, so if interested, just ask.
  • GNOME 3.0 plans and technologies like mutter, gnome-shell.
  • I only played the FreeFA tournament in Vilanova (yeah, was part of the cool champion team), so looking forward to revalidate the title 😀
  • Mojo Picón, a spicy hot sauce typical from the Canary Islands. Make sure you try the Papas Arrugadas with that sauce.
  • Have a lot of fun!

Only bad thing is that I’m going to miss the first few days of San Fermín festival in Pamplona, but well, since I’ll be back home on the 10th, I’ll have the chance to enjoy the last few days of it. As I said other times, please use other dates than July 6th to 14th next year!

See you all in Gran Canaria!

CouchDB contacts in Evolution

Continuing with my CouchDB on the desktop series, here’s the 1st screenshot:

Evolution addressbook showing contacts stored in CouchDB

It’s Evolution addressbook components showing contacts from a CouchDB database. As stated in previous posts, all contacts in that database would be automatically replicated to a remote CouchDB instance, so, for instance, you could just see and edit/delete/whatever them from a web interface, and the changes would show up in Evolution.

Code is in GNOME git, under couchdb-glib and evolution-couchdb modules.

couchdb-glib 0.1

As the first step on CouchDB desktop integration, here’s version 0.1 of couchdb-glib, a GLib-based API to talk to CouchDB.

This initial version only allows reading and does all operations synchronously (not a problem in most cases, since the communication is done to the local CouchDB instance, which is quite quick, at least from what my tests show so far). Next releases will have all the missing functionality.

And, well, no screenshots to show, so here’s some example code for you to enjoy.

Source code is in GNOME GIT, under couchdb-glib module.

Desktop data/settings replication

In the last UDS, there were some talks about UbuntuOne, the technologies it uses, and how it could be well integrated into the Desktop. Also, there were discussions about how it could be integrated painlessly into upstream projects. So, here’s an idea on how this could be done.

First, it must be said that the easiest (and quickest) way of achieving UbuntuOne integration in Ubuntu would be to just patch/extend applications so that they supported accessing the UbuntuOne server, and have Ubuntu packages use that as default for users with UbuntuOne accounts. That would make most Ubuntu users happy, but it would not benefit at all users of other distributions, and worst, the upstream projects.

Now, if we look at the technologies being used in UbuntuOne, there is one awesome thing, called CouchDB, a project supported by the Apache Foundation, which provides databases (of JSON documents) that can be replicated (and 2-way synchonized) to other hosts. So, what if we had Linux Desktop applications use this for storage of files and settings?

couchdb-in-the-desktop

Well, what would happen is that we’d gain data / settings replication and synchronization for free. And also, if we could come up with standard formats / locations for common information (accounts, notes, mails, calendars, etc, etc), we’d also gain a shared storage for all applications to use, solving the problem of incompatible formats / locations used by similar free software applications.

And other advantages:

  • CouchDB knows already how to deal with conflicts, as this is included in the automatic replication / syncing features it provides.
  • While normal documents in CouchDB are JSON, you can attach any kind of file to any JSON document (even to empty JSON documents), so any kind of files can be stored. Also, it allows users to create as many databases as needed, so storage for different needs can be easily separated.
  • CouchDB provides a sort of revision history, so it could be used for nice stuff like Zeitgeist.
  • This, not being an Ubuntu-only solution, could benefit every Linux Desktop user.
  • UbuntuOne would be a service built on top of this that users can subscribe to. But others could just setup a CouchDB server on their home / company network and use that by just pointing their local CouchDB to their remote CouchDB replication server.

To continue my investigations/playing on this, I’m going to try writing a gvfs backend to manage files in the CouchDB instances. Once that’s done, applications could start just writing their files to couchdb://… URIs instead of file://… ones and enter the replication/synchronization world with just a single change. Next, a GConf/d-conf backend could be added for replicating/sync’ing settings, and so on.

AdminKit 0.0.1

Last week it was hacking week for the openSUSE-GNOME team, so I continued working on a little project I started a few weeks ago, which is, in the good old Richard Hughes tradition, a thing called AdminKit, which is a PolicyKit-based framework for allowing user applications to run administration tasks.

Most of the time hacking on this has been dedicated to the PolicyKit stuff, but now everything should be in place, and, apart from the 2 methods I added (RunAsRoot to replace gnomesu/gksu/kdesu, and AddUser as an example of how to use YaST’s command line interface for the operations), more methods (users management, firewall, samba shares, etc) can be easily added. With this and the GUI from gnome-system-tools, I think we can start providing a distro-independent (and acceptable to all of them) set of administration tools for GNOME (and KDE, if they adopt AdminKit), or just add the needed admin functionality to already existing applications. From now on, here are my ideas:

  • Move PolicyKit mechanisms already existing in some GNOME modules (gnome-panel’s SetTime and SetTimezone, for instance) to AdminKit, provided people agree on adopting it
  • See system-tools-backends and reuse as much knowledge/code as possible
  • See at changing gnome-system-tools’ GUI to use AdminKit (once the functionality needed is moved to AdminKit)
  • Add more admin operations, as needed. For openSUSE, we have quite a lot of functionality via yast’s command line interface, and other distros have similar stuff, so anything we need can be added AFAIK.

Get the code with:

git clone http://www.gnome.org/~rodrigo/git/osc-plugins.git

(cd AdminKit, the other top-level dirs contain unrelated projects)

And, soon, packages at my home build service repository.

Where we are going we don’t need roads


Been reading this last week the decadence in GNOME thread in Planet GNOME, so just wanted to add some thoughts:

  1. First of all, I don’t think GNOME is in decadence at all. The development platform does nothing but improve (GTK/glib, new gio/gvfs, libgnome/bonobo/etc disappearing, good bindings for lots of languages, etc), and applications do the same.
  2. We offer incremental updates on each release, a lot of work is done, but it’s true that for some end users, they might not see changes big enough to consider it a new version. So maybe, apart from the time-based releases (which work pretty well, IMO), we should maybe try to have, apart from the individual modules’ roadmaps, some sort of desktop-wide features to accompany each release. If we set, for instance, a “all apps will use gio and support working with remote files” goal, I think that would make a better release feature that end users will better appreciate. Similar desktop-wide goals could be used for each release, which will change, IMO, the user’s impression of the new releases.
  3. I hear some people considering 3.0 should contain a lot of development platform changes. And well, while changes in the development platform are great (that’s why it’s improving all the time), I don’t think the future of GNOME (the desktop) releases should be so tied to the platform. On the contrary, the platform should adapt to the applications being written. Some years ago we did a lots of improvements to the platform because we were writing big apps (Nautilus and Evolution).
  4. Since I started using GPSs, I ended up visiting forums and mailing lists about the subject, finding that most people use illegal software (cracked programs downloaded from P2P networks) and maps (ditto, got from P2P), so if we could offer a free software-based solution for these people, they would probably move on. This is of course just one example, which is even being already covered by OpenStreetMap, but I’m sure there are lots of similar markets out there that we could try to cover better to bring 1000s of new users to our desktop.
  5. As for innovation, this is probably something we need to improve. There is innovation for sure (Gimmie, Pulseaudio integration, Compiz Fusion (not really a GNOME thing, but it’s got GTK-based tools that nicely integrate into GNOME), Banshee 1.0 (try it, it’s great!), Clutter, etc), but it’s true it’s not easy to make revolutionary changes (like using gimmie instead of our current panel, for instance), since it means convincing a lot of people in endless discussions. I think part of the problem is that people working on similar stuff are not put together to come to decisions (like distros working on similar solutions for the same thing 🙂 ), so we probably need improvement there, like having the hack meetings that were discussed recently.

GUADEMY 2008

Last weekend I’ve been in Valencia for the II GUADEMY, organized by PoLinux (the Linux Users Group of the Universidad Politécnica, where the event took place).

The purpose of this II GUADEMY was to really serve as a starting point for further sharing between free desktops (it’s true it was just about GNOME and KDE, although I’m sure we could easily get other free desktops in), and I really think that it has succeeded. There were some core KDE and GNOME developers around, even though lots of GNOME/KDE Spanish developers were missing (where were you?), and even though not big decisions have been made, I feel that this is the beginning of a new era in free desktops sharing. Of course, it’s a very long trip what we just started, but seeing people from both desktops willing to cooperate as much as possible means we (the people that believe in further sharing) are not that wrong 🙂

So, here are my conclusions from what I have seen/heard during this weekend with lovely weather and very little sleep in Valencia:

  • We are sharing some stuff now, much more than a few years ago (HAL, DBus, PackageKit, WebKit, poppler, fd.o specs, etc), but we still have a lot of duplication (duplicated screensaver / power management / login manager / etc cores, with lots of security and other issues).
  • People generally agree in sharing code, but sometimes in the form of “here’s our implementation, based on our technologies, use it if you want”, which doesn’t work. There were complains about how GIO was written without taking KDE’s KIO people into account, and about KDevelop new code, which didn’t take into account Anjuta’s people. So, we need to fix this.
  • We need a process to determine what to share, as Will said in our talk, and, from what I got from Vincent‘s talk, Freedesktop.org is in need of an official board that can establish a formal process for accepting standards and implementations, and also it needs to get more KDE people involved so that it’s not seen as a GNOME-only thing. It seems to me the natural way would be to fix fd.o’s situation and use it for further sharing.
  • The whole Saturday morning was dedicated to talk about the GUI toolkits’ future, with Carlos Garnacho, Holger Freyther and Javier Fernández from igalia. It was really interesting to see what the future might bring us, since free GUI toolkits need not only to cope with better look&feels, but also with different devices, given the mobile device market is making a lot of use of our technologies.
  • Some further examples of things that could be shared: an indexing/metadata system, PIM data access and management.
  • I missed Sunday’s talks, since my bus was leaving at 11AM, but I’ve heard there were some joint conclusions in the last session, so let’s see if someone that attended publishes them.
  • Vincent didn’t want to believe me, but really, normal Spaniards don’t usually go to places like Los Bestias 🙂 (details from Jos). I wouldn’t really recommend it to anyone, except for stag parties (if you ever go to this kind of parties), but it was fun to see something different, we laughed a lot during the dinner. Fortunately, we arrived a bit late, so we just had to listen to the Karaoke for a few minutes, after that, it was shut down.
  • Not related to GNOME/KDE, but I convinced a couple of more people to use their GPSs to record their travels and send them to me for uploading to the OpenStreetMap database, even though one of those guys’ GPS suffered a disgusting accident 🙂

Just wanted to end up with a big congratulation to the organizers, they managed to do a great conference, with core international speakers, even though the planning started quite late. Now looking forward to GUADEMY III, which might perfectly take place, why not, in the joint GUADEC/Akademy in 2009.

You can see the slides of my talk here. These don’t include Will’s plan for code sharing process, which I guess he’ll publish soon.

Summer of Code 2008

For the first time, I am mentoring a student for this year’s Google Summer of Code, who will be working on a GNOME client for the openSUSE build service.

Mario (ie, the student) seems to be a very motivated person, so I’m willing to see the results of his work this summer, and to have another future contributor to openSUSE and GNOME.

As for the mentoring itself, following Federico’s mentoring HOWTO should make things easier for me, so I hope to do a good job. More news about the project as things progress.