Re: On Version Control Systems

I would like to add some points regarding Lennart’s last post on Version Control Systems (sorry for such a long post, but I wanted to make my point here 😉

First, I completely agree on Lennart’s first point that DVCS is not the solution to all of our pains and it won’t make people suddenly write better code.

However, I strongly disagree that our decision should be done following a popularity contest, the decision should be taking thinking in the long term impacts of it, not just about the current situation. Okay, the Linux kernel choose git, and consequently fd.o too, but we shouldn’t give for granted that if it’s a good decision for them it’s a good decision for us.

We target to a quite different developer base than an, our project works differently, our culture is different. We sometimes forget that VCS is one of the key entry points for new contributors, the harder it is to learn the VCS, the harder it is to contribute to our project (actually, I would say that DVCS are harder to learn than SVN).

Git is probably the responsible of the current popularity of DVCS, specially after Linus talk at Google, but despite having the best performance and probably being the most popular has its drawbacks as well, and we might consider the impact of those drawbacks on our particular community.

First drawback is usability, at this point git is extremely hard to understand because of its inconsistent and weird semantics and the lack of proper error reporting that denies users to be able to instinctively learn what needs to be done to solve the problem plus current documentation is extremely poor. Now imagine the frustration of new contributors while learning how to create a new project or contribute for their first time to GNOME. I don’t think asking people who are already used to one DVCS to learn another one is a big deal compared to force new users, that might not even used a centralized VCS ever, to go through that pain.

Second one is the lack of a portable and reusable design, git is too tied to a UNIX environment, for it to work on Windows it requires msys, curl, perl and other UNIX specific bits this makes really hard to maintain a high quality port of the tool, and ties a Windows user to a bash terminal to effectively use the tool.

Of course we all love the flexibility that a shell based implementation allows by using pipes and that stuff, and that’s fine for kernel developers or developers because its source code is aimed to Linux/OpenSolaris/BSD developers in the 99% of the case.

However we have projects at svn that are supported on Windows, such as Gtk+ or Evolution. Setting up a development environment on Windows for a GNOME project is hard enough at the moment, using a tool that won’t work natively on this platform by design won’t make the situation any better in my opinion and this will prevent new contributions from other platforms happening.

On the other side, this design prevents the effective reuse of git from other tools such as IDEs or web services without accessing the command line, which drives to security issues and less maintainable code.

Gran Canaria candidate for GUADEC+aKademy 2009

During the latest months I’ve been working with the local government of Gran Canaria and a group of open source companies to prepare the candidacy of Gran Canaria (Canary Islands, Spain) to host GUADEC+aKademy for 2009, check out the bid here.

It’s been a few years since I’ve been looking forward to see GUADEC organized in my home town (not my home anymore though since I’m moving back to Dublin for good pretty soon), and when Agustin, a pretty good KDE fellow told me he was working to get aKademy hosted at Gran Canaria we though it was the perfect timing to get both conferences happening together, which is also something I’m willing to see happening as well.

Gran Canaria, and the Canary Islands is one of the most famous touristic targets in Europe, the weather is quite nice all over the year, and of course food is as nice as the rest of Spain (if not better ;-), we’re in the middle of the Atlantic Sea and have an international airport. The city itself, Las Palmas de Gran Canaria, is a 400K population city and has dozen of things to do over night.

One of the biggest strengths is the venue, the Alfredo Krauss Auditorium which is placed beside one of the best rated beachs in the world, Las Canteras, which is a 3km beach placed right in the middle of the city with plenty of hotels, restaurants, pubs. Actually for those who like surf, the auditorium is placed right in the side of the beach where is best suited for it!

Alfredo Krauss Auditorium, photo by Mariela Sevilla

Las Canteras Beach, Las Palmas de Gran Canaria

Another big strenght is the commitment from the supporters of the bid, the local opensource companies, the local linux user group, the Spanish linux user group and the two canary islands universities, specially the local government, which already approved a quite impressive budget of 250K Euros in case the bid succeeds to cover the venue, and all the infrastructure and people needed to get the event done.


I’m soooo excited about this that I can’t wait until the GNOME Foundation and the KDE e.V. take the desicion, if you want more details, check out the bid document. Meanwhile, see ya at Istambul.

Breaking Assumptions: Chapter 1.

Seems like a good moment to throw out the ideas about how to do real innovation on GNOME, while I think Andy’s post was a little bit pessimistic, I think is good it has started the discussion inside the community, and I do think that I have some points into it so here’s my 2 cents on the topic. I´ll do a few post with different points to not bore everyone.

Decadence threat!

The Desktop is the OS

I think it’s time to break loads of assumptions and to risk some "backwards compatibility", not in terms of API/ABI, but in terms of how do we think about our desktop. We must start thinking about the desktop as something more similar to an OS rather than something on top of the OS in favor of a better user experience. I will try to show what I mean with an example.

We sometimes have a hard time developing good UIs to manage basic OS services such as sharing a folder or configuring the network. I encourage you to create a bridge interface and add your Ethernet and your Wi-Fi card into it under XP and compare then doing that on few Linux distribution. The first thing you’ll notice is, typing ifconfig / brctl won’t store the configuration, and modifying the text files won’t change the current configuration until you restart some machine, the second thing you’ll notice is that each distribution will have it’s own configuration format, and in some cases its own tools.

That’s why projects like NetworkManager and GNOME System Tools have a hard time to succeed, the first one tries to solve only the obvious and simple problems, but it ignores totally ignores the stored configuration and the specific services of the distribution, and the second one tries to support every distribution, which leads to a huge maintaining effort.

Instead, the GNOME community could say, see, this is how you’re going to store network configuration (interfaces, proxy, vpn, gprs, ppp…) if you want an unified user experience and this is the UI and the command line tools for it. If the right tools and the right APIs are there, I don’t see any reason for distributions not adopting it after a few releases. Let’s stop delivering half arsed solutions.

This is just an example of what can be achieved, other examples could be the current directory layout (I can’t sleep thinking about the screams of users browsing / from the file chooser), software installation (go PackageKit go!) and (put your favorite legacy weirdness here).

The landscape has changed a lot over the latest 10 years, and we have showed that we can offer a predictable release that’s API/ABI stable, we’re the desktop and the development platform of choice for all the major opensource desktop vendors (RedHat, Canonical, Sun Microsystems, Novell…) and they’ve showed they’re willing to work closely with us (see the GIO port success!) to achieve reasonable goals, we have not only the power, but also the responsibility to boost changes to improve the whole situation. Yes, we can! 😉

Stay tuned.