Why the free software desktop year is not yet here, and why it doesn’t matter anymore.

Since 2001 or 2002, I remember a press statement each December: "this is going to be the Linux desktop year". Well, every year that happens to be a mistake. That optimism is lead by a visible improvement of the situation, wider hardware support, more standardization etc…

However, I’ve realized that that year is not going to happen, never.

Am I crazy? Maybe, but that doesn’t have anything to do with this article I’m writing.

Does this mean that I’m suggesting that we should just give up and stop developing any free software desktop environments. Hell, no. Its a gap that should be filled, and if we don’t we will fail in showing people what free software platforms are capable to do.

My point is that the model of the desktop is dead itself, and I can’t see any big migration from the current predominat home desktop out there. All the application development is moving towards the web, and virtualization as a solution for the lack of flexibility of the current desktop model, is not far from being a reality in corporate scenarios which means that even the desktop is becoming an online service rather than something you may have installed at home. There are some good highlights of this issue on the Brian Setevens’ talk at the Red Hat Summit ’07.

So, where are we going then? Well, free software platforms are already the strongest option on the most interesting software development market now, the Web. On the desktop side, free software desktop platforms are becoming a serious option on the mobile and embedded landscape, see GMAE, maemoOLPC, OpenMoko, GreenPhone, and the release of Java as free software. This is, is in my opinion, a much more interesting platform, for the long term, to bring freedom to users than the desktop as we know it nowadays. Free software is now the default choice when no previous choice is made by the broad market.

This is a really promising landscape for the free software world, because it means that Microsoft is not relevant anymore, even if they have a huge market, they are not inventing newer ones. Vista? who cares… That’s probably the reason they are talking about IP and patents, Vista is far from being an interesting issue, and it adds 0 or less value over the previous products.

So, as long as the current model gets obsolete, free software and open standards is filling all the new gaps and opening new opportunities. We shouldn’t worry about the current desktop market share anymore, what we should do, is worry about providing a good desktop to fill that gap meanwhile we invent new markets where free software can break through and show all its power.

Now the challenge is to reinvent the meaning of the computer desktop concept by developing something new, that solves problems that are not solved already, this is, real innovation.

Tribute to Adam Crosby

If you see Adam Crosby in the street, give him a hug, if you see it in a pub, give him a beer. Adam has brought me a remote VMWare session with Windows XP to build an test Gtk+ on Windows and try WiX to make the installer.

I still need to figure out how to use WiX, but at least I can run it now. This is going to save me tons of time. Kudos to Adam!

QoTD: This is why

From one of the comments of my previous post:

I use Ubuntu in my job, but my boss uses Windows. Without your easy W32
PyGTK installer, I would not have been able to choose PyGTK+Kiwi to
build my latest project.

Next time someone tell me "who cares about Windows users they don’t care about us" I won’t bother anymore .

Call for Gtk+ Win32 contributors!

I’ve done the first release for the win32 binaries that will be at some point an .msi or .msm installer, you can grab it here as .tar.bz2 or .zip.

After discussing with some people about the issue, it looks like .msi is the way to go, it’s the only missing bit to add value over the existing .zip from Tor and the gladewin32 releases. But I’ll need help with this task.

We need contributors!

Right now is really hard for me to run Windows, I can do it with VMware but the lack of ram on my laptop makes it hard to try some things without making the swap play break dance, and I cannot leave the native Linux session for more than a couple of minutes due to other reasons. So I need people familiar with development environments on Windows, and if possible some experience with WiX, the opensource .msi creator.

Another problem is that the .mo message catalogs format on Linux and Win32 is different. So internationalization is broken. I need to try some kind of fix that doesn’t break the jhbuild automation tool chain.

Why .MSI?

Well, let’s say that it’s the DEB/RPM of Windows, it handles version issues and it’s deployable on hundred of machines through Active Directory, it doesn’t solve the dependency issue, but you can bundle .msm, which is like a modular .msi, inside a .msi, which would make the release of third party apps easier. At the same time, it would make integration with Windows RADs easier too.

Why do you work on this if you don’t run Windows?

I want everyone to be able to do what I do, enjoy PyGTK, there are people that cannot choose their operating system, and at the same time, they would like to be able to write GUI apps easily. I want to remove this "Linux/*BSD/Solaris Users Only" advertise on the doors of the GNOME community.

At the same time, I find the current release process of GTK+ on windows obscure, due to lack of time on the people that are doing the releases already, a proper documentation of the process is hard to get and requires self made scripts. My will is to integrate everything in just a .jhbuildrc and a moduleset, so anyone can give it a try with familiar tools.

Re: Building the Community Mojo

Glynn, I agree with all your points, but I think you missed some other important assets of Ubuntu. And the ones that I most admire about it as a project.

The first one, is that everybody is welcome, it is a community of communities, GNOME and KDE people on the same place, server and desktop, enterprise and education, and recently multimedia people with Ubuntu Studio. They have achieved the goal of making everyone feel like they are at home, no matter what you know, no matter what you like, You Are Welcome, your words are going to be listen, there are no second class citizens.

And the second one, is the tools, launchpad, despite of being closed source, is probably the better set of community tools out there in terms of usability. You don’t need to know about gettext or svn to do collaborative translation, you don’t need to know the deep roots of the system and the organization to know how to file a bug, and more other things that make community life easier and more accessible to most people.

Community is growing around ubuntu, in part, because is a comfortable community to work with.

My two cents 🙂

Hello Planet OpenSolaris!

Our beloved Glynn has just added me to Planet OpenSolaris, thank you dude!

I’m Alberto Ruiz, 23yr old Spanish guy, moved to Dublin a month ago to work for Sun Microsystems in the SunRay team to give APOC,  the Sun’s Desktop Profile Manager, some love and bring it to the software freedom for the sake of the Unix desktops! Before that I’ve been working for two years on the Free Software Office, at my Universty, spreading the word of free software among students, teachers and helping the regional government of Canary Islands drive effective free software strategies and deployments.

I’ve been an active community member of the Gnome Desktop project for a couple of years now, mostly doing PyGTK stuff until a couple of months that I started to give love to others parts of the desktop and the platform. I’m also a Python fan. I love to work on free software projects that makes people’s life easier, and I love to make them even more accessible to "normal" people.

My involvement with OpenSolaris started last year on Guadec ’06 (thanks to alo!) when I saw ZFS working and realized that it solved most of my problems with my father’s backups and storage problems under Linux and I’ve been following the project very closely. Righ now I’m running Nexenta on top of a VMware on my laptop and Nevada build60 at my workstation at the office.

If you want to know more about me and my projects take a look at my older posts 🙂

During this month I’ve started to get involved with the Irish OpenSolaris User Group, which has let me to  give a talk on the last meeting about how to migrate from Linux to OpenSolaris, with some tips on networking and ZFS, check the slides. BTW Tim is doing a great job with the UG here.

Hope to be helpful in this community. Let’s make the whole open source world rock even more!

Tango and Gtk+ love

Tango love

Michal Pryc, is one of my co-workers/co-interns at Sun, and one of the first friends that I’ve made here. While Ian and his Indiana project solves the whole issue, Michal is providing a interesting approach to the package problem on OpenSolaris, jPack, a GUI to rule them all. Every package management system in Solaris can be now managed from an usable graphical interface. Great work Michal!

He asked me to create a logo for the project, and here we go, now, Java’s Duke knows how to dance Tango!

Obviously, jPack is written in Java

I had so much fun with it, that I decided to give even more tango love to the free world, every time I go to bugzilla.gnome.org, I found the geebee pet boring, so I’ve came up wit this idea:

Guess why the bug is dead?

Gtk+ on Win32 progress

I’ve done a successful build and it works! although, it is not full binary compatible with the current releases from gladewin32. bkor just gave me ftp access and fixed my svn account, so as soon as I fix a couple of things, I will start to release tarballs with the full tool chain. I’ve also updated the cross compiling Gtk+ page at the wiki.

I’m starting to take the .msi .msm windows installers approach really serious, however, I don’t have a Windows workstation to work with but I’m taking a look at the wix documentation, and they don’t seem to support post install commands exec and enviroment variables, which are mandatory to get Gtk+ working on windows, anyway, I need to look further into it. If anyone has some experience with it already, let me know.

PyGTK’s Gajim and IconView test working with my binaries not-so-out-of-the-box. Yay!

I’ve received lots of positive input on this work, so I think that Gtk+ needs some love on Windows after all, despite some people that think we shouldn’t care about Windows users. The only way to go 10×10, is getting closer to them, and 90% of them are on the dark side, we don’t lose anything trying to bring some freedom for them without the need of setup a Linux installation.

On the other hand, more developers would take Gtk+ as an option if it’s cross platform enough, Imendio guys are also working hard on the Mac world. With some effort Gtk+ and Gnome are very close to be everywhere.

Update: Please, notice that bugs.gnome.org is just an alias and I used it because is the domain that I usually do. The official url for Gnome’s bugzilla is http://bugzilla.gnome.org.

Gtk+/Win32 amateur release engeneering

I’m in the middle of a long weekend, and without too many things to do, so I’ve spending it trying something that I was looking forward to do from some time now. Build GTK+ and all its dependencies from scratch for win32.

Since I started all this PyGTK on Windows thing, one of the very first problems that I realized is, GTK+ redistribution on windows for third party apps just sucks. We cannot expect Windows users to take care on the GTK+ runtime versions they already have installed (we cannot expect that from Linux users also, but package managers already do that job). However, it’s not trivial to build gtk+ for windows (now I know how much pain it is), so most third party apps just ask users to install the GTK+ runtime, or package the runtime installer inside the application installer, like Gaim (sorry, pidgim) does for instance. I can imagine most users saying, what the hell is GTK+ and why are you asking me to install it? (You can replace the ‘GTK+’ string with ‘Java’, ‘Python’, ‘Mono’, it’s the same problem for all them).

Layout idea stolen from GMAE 😉

So my goal is to find a way that anyone can build and package their own tool chain, but avoiding the pain of dealing with configure and cross building issues. For that purposes I’ve created a jhbuildrc  so people just grab it and add their own tool chain by inheriting from the standard module set. And after 3 days of burning out my cpu and patching weird packages like zlib or jpeg, you can get a fresh jhbuildrc that only needs jhbuild and mingw32 to be installed.

My personal challenge now is produce an installable package runtime like the gladewin32 one, but releasing the NSiS scripts so anyone can build their own installers. This could be really helpful for projects like Pidgin so they don’t need third party installers.

Right now I’m wondering to automate the override of the unneeded parts, like the whole gettext stuff. This is really easy with the {PANGO, ATK+, GTK+} set since tml already has zip builders that only gets the imprescindible stuff. But I need to figure out what can be done with the underlaying bits.

Now I wonder where to put all this stuff since I would like to keep them on a visible place so people don’t loose their time trying to do what I did, I will try to ask to the release team what do they think. By the way, even after all the pain, is impressive to see how everything was built successfully, kudos to tml for the huge efforts for port and support the whole stack on the Win32 platform.

Re: OpenSolaris negative publicity

Eric, while I agree on you that there are a lot of people out there over hyping OpenSolaris and FUDing Linux at the same time, I think that you shouldn’t take that as a measure of quality of the whole OpenSolaris community.

I’ve been using it every day at work for a month now, and OpenSolaris lacks lots of features to make system administrator life easier, starting from the software package or a non resource-hungry installer, hardware support, still-closed source bits… We all in the OpenSolaris community are aware of this problems, and we all are working on solving them. So, read this comment from an OpenSolaris enthusiast: nowdays Linux it’s easier to set up and administrate and it works on much more platforms than OpenSolaris does.

However, there is a 10% of shiny innovation, ZFS is just a brilliant solution and simpier than any filesystem/storage facilities on Linux. With DTrace you don’t need to stop and tweak services to know what’s going on, SMF is able to detect failing services and suggest how to solve the problem instead of throwing a stack trace on your face or annoying log messages. This doesn’t meant that is better than Linux, it just means that for a specific set of problems, it’s a better solution and saves you lots of headaches. For the people that this tools are critical to solve their problems, OpenSolaris has become a more than appealing platform.

Regarding FUD, let’s talk about the Linux community, this thread  is just an example around the FUD and misinformation on the licensing decisions of Sun from the Linux community. While lot’s of operating systems out there are integrating ZFS, they claim that the Sun commitment to openness and freedom is limited, since we have taken CDDL for OpenSolaris just because is incompatible to GPLv2.

The Linux community deserves respect on its decision of take the GPLv2 to protect their interest, but that doesn’t mean that the GPLv2 is the one and only free software. Sun deserves the same respect since the very first moment that CDDL is OSI approved. The OpenSolaris community could also blame the Linux project for not changing their license to get the huge hardware support linux has for CDDL and OpenSolaris needs. Have you heard anyone doing this? Don’t think so. Again, both parts deserves respect for their license decision as both licenses are OSI approved, both are free software although they are incompatible.

The most funny thing here is that GPLv2 version of ZFS from Sun it’s been out there for a while now.

Chris, all that I want to say, is that FUD and trolls are part of every open source community, and that doesn’t means that those communities are evil, it just does means that they all attract passionate users. and you cannot get the wisdom of the crowds without their stupidity.

P.S. I don’t know the author of the last quote, sorry for not referencing it.

Some PyGTK love

PyGTK.org revamp

So, after some months of discussion with Rafael Villar (pachi) and delaying the issue, I’ve finally found some time to improve the pygtk.org site. I strongly believe that pygtk is one of the easiest ways to create cross platforms GUI. Some people may say, it’s not so cross platform, because it’s hard to install on windows. Okay, and that’s why I did the pygtk all-in-one installer for Windows.

I think that most of the potential of pygtk is lost because it’s hard to figure out how powerful it is, and the good documentation resources are not obvious. For example, if you have visited pygtk.org before, you have realized that the 90% of the information on the front page, is news, the rest are links. So the first time someone visits the site with no clue on what pygtk is all about it’s so hard to figure out what is it all about. Also, the about section, talks about a lot of technologies, but fails on explain what PyGTK can do for you, which problems it solves.

Another problem on the site was the download section, on top of it you have the sources of the releases, and almost at the end, the win32 version. I’ve been using pygtk for almost 5 years if I remember correctly. I have never built it yet, I have installed it using apt, yum, yast, emerge and the windows installers. Why on earth do we need the sources on top of the page? Then I realized another thing, people from linux, have it installed already on almost all distros. From the statistics of the site, we realized that most visitors are windows users, and most of them, go to the download page always. So the most potentially useful bit of the download section is the windows installer.

So, this issues have been improved, we have updated the about page, we have put some information on the front page and we have reordered and merged some sections on the download page. Also, we have improved the documentation on how to install it on windows inside the PyGTK FAQ, which it’s now alive on http://live.gnome.org.

We also would like to improve the documentation page, and the documents itself. The tutorial is not the best document to getting started, and it’s a direct translation from the GTK+ tutorial so it misses some PyGTK specific magic. However is the most downloaded bit, guess why? It’s on top. We’re thinking about a starter guide rescuing some material from the articles and the FAQ, and rename the tutorial to manual.

Help, suggestions, and patches to the pygtk-web module of the Gnome SVN are welcome.

PyGTK Win32 Installer

I’m getting have ready to upload the MS Windows all-in-one installer, (btw, I need to find a better name) for pygtk nsis sources, so people can help me to improve it and I can start making regular releases, if it gets into an stable and acceptable shape, we may use it as the official pygtk windows installer. Up to now, the patch to include the script and the installer building Makefile is waiting in waiting for approval in the pygtk bugzilla (#435319).