Friday, December 08, 2006

Why OLPC is great for Free Software

It may seem to you that the OLPC project is all about kids in the third world, and does not have much relevance to affluent middle class first-world tech workers.

I think differently to this, and here's why.
  1. It's not just for the "third world".

  2. Even in the affluent societies of the "first world" there are plenty of poor people. Most people who have thought about social equity and justice have come to the conclusion that the way to help people who are blighted by generational low income is through education. The problem with this is that education costs money. Access to information is expensive. The OLPC project, combined with the power of the Internet, drastically reduces this cost.

  3. It will produce a generation of free software users.

  4. If OLPC machines are widespread in society, in five or ten years, a significant proportion of the people entering the workforce will be used to Free Software, and the whole ethos of cooperation and sharing in the software world. Using proprietary, closed software will seem, simply, weird to these people.

  5. Development of software for resource-constrained devices is good for everyone.

  6. I work at a university in New Zealand. I own my own house and car. I have a big TV and stereo, I eat out a lot, ... in short: I am not poor. But I can't see the value in buying a new computer every year (or every three years). Neither can I see the value in investing in ASDL for $50 a month when I can have dial-up for $7 a month. So my home computer is old and slow (2.4GHz Athlon with 1GB Ram) and my Internet connection is slow. I can tell you that using GNOME software is a pain in the ass with such a setup. (Compared to using a one-year-old laptop at work with a high-speed connection.)

    I am looking forward to the technologies that have been developed to slow, low memory, slow-and-intermittent network connected devices filtering down to the main GNU/Linux and GNOME stack. I think that this would help a significant proportion of GNOME users, i.e. those who don't have the luxury of modern setups.
I wonder if we will ever be able to buy a OLPC machine for our five-year-old children, grandchildren, nieces and nephews for Christmas? If you want to spread the Free Software message, I can't think of a more effective tactic.

Monday, August 28, 2006

A Strategy for GNOME?

So, with the upcoming release of GNOME 2.16, I started thinking about GNOME 2.18 (logical, no?). I looked on http://live.gnome.org for information, but there was none (on 2.18 or 2.17) that I could find.

In desperation, I turned to all items on l.g.o that belong to "Category Roadmap". I have to say, if anyone wants to plan a journey using that map, you had better have plenty of supplies, because you are bound to get lost along the way ;-)

In even greater desperation, I started thinking about plans for the future of GNOME. Now, while I feel the force of arguments along the lines of "evolutionary change versus planned change", I can't help but think that it would be nice to know what the (random, naturally selected) change is for. It seems clear that GNOME aims for more than mere survival; but if our goal is more than survival, then what is it?

So I created http://live.gnome.org/Strategy in the hope that people who really know what's going on can share it with the rest of us, so we can help. (I was going to call it Goals, but I thought that would be too similar to http://live.gnome.org/GnomeGoals and would cause confusion.)

If you have any views on the goals that GNOME has, or should have, and how to achieve them, please visit and edit that page.

Thanks,

John

Sunday, July 02, 2006

Performance and Flow

I was not at GUADEC, but thanks to the miracle of the InterWeb, I managed to see Federico's slides on his (wonderful!) GNOME performance work. However one statement intrigued me. "Slow performance breaks the flow (see Kathy Sierra's talk)."

Well, for me, the number one and two interruptions of my flow (and I suspect the flow of many others) is (1) application crashes; and (2) UIs that block on I/O. If we are really serious about making GNOME a viable Desktop Environment, I would like to see these as the next two GNOME goals.

That is all.

P.S. Thanks for your great work Federico :-)

Sunday, May 07, 2006

Getting off my Lazy Arse

Dear Lazyweb:

Previously I have blogged about the woeful state of many GNOME applications with respect to UIs that block on I/O. It seems that no-one (who matters) really gives a shit about the agony of those of us with 57k modem connections, so I have decided to try to attack this problem myself.

But I don't know where to start! I have never written a GNOME application, or a single line of Python code. (It seems that many of the apps that I that have this problem are written in Python. Coincidence?) So if I want to fix yumex, pup, pirut, gaim etc. so that they don't become unresponsive (and don't repaint their window) while waiting for the network, do I look at/learn about:


  1. Python
  2. PyGTK
  3. GMainLoop
  4. Something else
  5. All of the above


???

I am not a student, and am not eligible for Summer of Code funding (plus there is a reasonable probability that I will fail in my mission ...), but any mentoring would be greatly appreciated.

Luv ya,

John

Thursday, March 02, 2006

Meaningless Error Messages

Well, another thing about GNOME that's kinda sucky. I want to use a particular message as an example, but I don't want to be interpreted as picking on the author of that software. (Otherwise I would simply file a bug report.)

Consider this. Everytime my machine boots, or I log out (which only happens when GNOME or X crashes), I get the following message from GDM:

"The configuration file is not correct. Please fix the incorrect line and try again"

How is this supposed to help anyone? It might help someone who knows about the workings of GDM, but everyone else confronted with this message will have to embark on a voyage of discovery that may well take several days.

To be specific: Which configuration file? What is it called? Where is it? Which line is incorrect? How do I find out what the correct value(s) should be?

I reiterate: I don't want to bash GDM here. I'm sure many of you could think of similar examples from other software.

Sunday, February 12, 2006

GNOME 2.16: Polish, Polish, Polish

The feedback on my blog after my last post seems to make it clear that there is some support for the theme/direction/goal of the next release of GNOME to be something along the lines of:


  • Reduce memory usage
  • increase speed
  • pay attention to (i.e. fix) the most reported user-visible bugs
  • resolve crasher bugs


In other words, we pretty much have the feature-set we need, now we need to concentrate on making the Desktop Environment not get in the way of users as they go about their work or play. Of course, the boundary between DE and application suite is somewhat hazy in many people's minds (not least my own!).

What is the feeling in the developer community toward this goal? The comments I am getting seem to be from people who characteris themselves as users, although I am sure that some of them are developers also. I would really like to here from people about this.

P.S. Some people have been asking for a more permanent list of the points that I have been raising in these posts. That will be Coming Soon. ;-)

Thursday, February 09, 2006

Where to from here?

I am continually amazed at the number of positive comments I get on my blog articles: it seems that I am not alone in some of my thoughts! That is always reassuring :-)

The things that I have been blogging about, the comments that I have been receiving, and the recent controversy on the desktop development list (sparked by discussion of the recent showcasing of Novell Linux Desktop) have all started me thinking about this:

Has GNOME lost its way?

By "GNOME" I mean the GNOME "community" as well as the bunch of zeroes and ones that are currently chugging through my computer's CPU. I do not mean to imply that things are bad, it just seems to me that we seem to be somewhat aimless and fragmented. I am not suggesting that we need a benevolent dictator like Linus Torvalds or Larry Wall, or that we need more structure or formalism. (It may be that we do, but I remain to be convinced on that score.)

What I am am suggesting is that we need to articulate our shared values and goals a bit more explicitly. (I think the place for this is the eagerly anticipated but oft-delayed new developer.gnome.org site.) In particular, we need a longer term plan that just the next six months (the next realease) and more concrete than the mythical Three Point Zero.

Can we start to think about 2.16, 2.18, 2.20 and 2.22 and publish these plans on live.gnome.org? Can we nail down a few things we want to achieve in the next two years and track our progress toward them? I think that this would help unify us and give us a common goal much more than anything I see in public channels right now.

Wednesday, February 08, 2006

Thoughts about GNOME 2.16

Now that GNOME 2.14 is almost out I would like to propose an overarching goal for GNOME 2.16. Codenames that reflect this goal are:

GNOME 2.16: No New Features.

or

GNOME 2.16: Polish, polish, polish.

Yes, you heard me. I would like to see six months of GNOME development love going in to fixing bugs and improving the GNOME infrastructure in terms of documentation and web sites. I know that would be boring for many of you, but please: think of the children! Ooops, I mean users.

By "Bug Fixing" I mean not only clearing things out of bugzilla, but also attending to the things that are often talked about as being in need of improvement. I am willing to help where I can. Please bear in mind that I am not a developer, but apart from that, feel free to approach me with tasks. I don't want to be just a complainer ;-)

I was impressed by a comment made at GNOME.conf.au in Dunedin recently. Someone mentioned the how the policy in New York City of "Zero Tolerance" to crime worked so well. Apparently the story is that if even the smallest of crimes (like littering and jaywalking) are not tolerated, there is a corresponding fall in the crime rate for the more major crimes. The reasoning behind this is (IIRC) explained in the book "The Tipping Point".) Please, if I'm getting these details wrong, let me know.)

I am reminded of the situation with TeX, and also LaTeX: there are practically no bugs in these packages. We can argue about why this is, or whether it is possible for GNOME to emulate the acheivements of Donald Knuth, but the point remains that bug-free software is possible, and that feeping creaturism must be resisted.

I, and almost all of my normal user buddies, HATE new features almost as much as we hate bugs. (OK, that's an exaggeration.) But honestly, whenever we hear that our versions of Windows, Office or whatever is going to be upgraded, we groan. Because amongst all the new features there is almost never anything actually useful, and all we get are new bugs. Often we have to learn new ways of doing things that don't seem any better than the existing ways. And most of the old bugs don't go away either. The "upgrade" cycle seems to be driven by the IT department needing new central management functionality rather than the actual users demanding new features.

Adding new features to software is largely driven by commercial imperatives, where common business wisdom goes along the lines of "constant innovation is not just the key for success, but a necessity for survival". We in the GNOME community do not have these imperatives.

Adding features is necessary (as opposed to fun) only when we have a desire to produce a system that is a replacement for other systems. (Getting people to start using GNOME in place of something else.) In that case it is necessary to match a large subset, but by no means all, of the system that you are trying to replace. If we are talking GNOME and GNU/Linux versus Windows XP and Mac OS X, there are a few major areas to achieve parity:

1. Multimedia handling
2. Printing
3. Laptop support

Wouldn't it be great if you could buy a new laptop, pop a CD of the latest version of you favourite distro in the drive and install the sucker with no more hassle than if you were trying to install one of the other systems? (Note I am not saying "with no hassle"!)

And then, imagine you could use your laptop without feeling like a second class citizen in the computing world, because your system can't read/play certain files or plug in to the local corporate infrastructure. Wouldn't that be great?

How much of this simply can't be done because hardware and software manufacturers will not let GNU/Linux and GNOME hackers have access to the relevant information? How much of it could be acheived by simply setting it as a goal? I do not pretend to have these answers.

Having re-read this article before posting I realise that I have been ranting. (Actually, I knew that as I was writing it.) I am hesitant to publish this rant, but I will; if only to find out if anyone shares my pain ;-)

Oh, and before I forget:

THANKS!

Thanks to all you GNOME hackers for making a really good GUI for GNU/Linux (and others). A really good desktop environment that has the potential to be great. If it was crap I would just switch to KDE :-)

Love,

John

Monday, February 06, 2006

The Last thing about GNOME that Sucks

I will keep this short: Applications that don't handle intermittent network connectivity well. (That would be pretty much all of them, in my experience.) The software that bites me with this problem almost every day are Evolution (specifically evolution-exchange-storage) and Gaim. I'm sure there are others though.

Right, that's it! There are no more things about GNOME that Suck (in my not-so-humble opinion). Remember, this was about GNOME as a desktop environment, from a user's point of view. Your opinions may (and almost certainly do) differ from mine, so if you feel strongly about these issues, blog about them!

Sunday, February 05, 2006

Things about GNOME that Rock, Number Four

When I started this series, I said that I would blog about things that suck and rock on alternate days. I got out of sequence, posting two sucks in a row, so now I am posting the second rock in a row, because I am the kind of guy who likes things balanced.

So, Rock Number Four: Search functionality. Specifically deskbar-applet, Beagle and Dashboard. These (and other related) tools are seriously cool, and help me in my daily work immensely. I know that Beagle isn't specifically a GNOME application but it is the focus on findability (of objects) that I want to point out as an area of GNOME that is Way Cool.

Now, the bad news. I have decided I can't keep up with the Rocks. (It's so much easier to criticize.) But on the other hand, I seriously can't think of many more things about GNOME that "suck" either. I think I will do one more "suck" and then rename the series (in view of the upcoming GUADEC track) "Thoughts about ToPaZ", in other words, "Things about GNOME that could be improved, but don't actually suck."

Stay tuned. Or not. :-)

Things about GNOME that Rock, Number Three

I have previously written about the GNOME community and how it is so good. However since starting this "Things about GNOME" series I have been astounded at the number and quality of positive comments on the series.

I can only reiterate then, that the GNOME community ROCKS! To be specific, the ability of the community to absorb criticism in good faith is truly inspiring from the perspective of a GNOME user (as opposed to a developer).

But now I have a problem. As a user of Windows XP, Fedora Core 4 and Ubuntu Dapper Drake, I am trying to think of things that I really like about GNOME that Windows XP does not have. To be honest, nothing really leaps out at me. Don't get me wrong, I can't see myself ever stopping using GNOME, but I at this stage I can't see many obvious advantages of GNOME over Windows. This is GNOME as a desktop environment. I can't comment on GNOME as a developer platform, as I am not a developer.

This leaves aside the issue of individual GNOME applications. There are a few GNOME applications that I like better than the corresponding Windows options. I think that I will start blogging about those in the future.

As always, if you find these posts pointless, tiresome or offensive, please let me know.

Tuesday, January 31, 2006

Things about GNOME that Rock, Number Two

One comment on a previous post was along the lines of "Why aren't you praising GNOME software? The software should be number one, community is secondary." I am trying in this series "Things about GNOME that {Rock|Suck}" series to avoid talking about specific applications. IMHO that sort of feedback belongs in bugzilla, whereas I am trying to comment on GNOME as a desktop environment and developer platform, i.e. as a whole rather than particular components applications. I hope that makes sense. So, without further ado, Rock Number Two:

Increasing integration of applications, for example Evolution and Gaim. (And now Evolution and Tomboy!) The more that central information stores such as evolution-data-server (and the MIME tye system, DBUS etc.) permeates the desktop, the cooler things will be for a humble user like myself. That is real usability (as opposed to discoverability). Fewer mouse-clicks and keystrokes == more productivity in my book.

Someone else commented that I need screenshots in these posts ("people love bling"), and I was going to include some in this post. However I am currently running the latest CVS build of GNOME, and neither Evolution or Gaim work for me. I thought it was more important to test and report bugs than produce spiffy blog entries, but hey, that's the sort of guy I am...

Things about GNOME that Suck, Number Three

I am running out of things that suck about GNOME. That's cool! By that I mean that all the other things I would have to say really belong in bugzilla, not here :-)

But today's gripe is this: the bug reporting, triaging and fixing system appears to be fundamentally broken.

I will base my commentary of these premises:

1. All software has bugs
2. Users hate bugs
3. Users find it very difficult to produce useful (to developers) bug reports
4. Bugs cause lost productivity for both users and developers (who have to fix them)
5. Bug fixing is often very difficult
6. The sheer number of bugs is a severe psychological barrier to fixing them

Immediate conclusions that follow are:

1. Minimizing the number of bugs leads to greater productivity and happiness for both users and developers, and hence should be a major goal of GNOME.
2. In order to achieve that goal, the quality of bug reports must be increased
3. Because users have limited ability (regardless of motivation) to increase the quality of bug reports, the more the bug reporting system can be automated, the better things will be for both users and developers.

So, what is the way forward? I can think of three broad areas:

1. Forget trying to make bugzilla more friendly to non-technical users. It could probably be done, but other, easier paths will lead to the same destinations. (By the way, the recent improvements are totally awesome!)

2. Delete all bugs from bugzilla and start again. (Tell everyone that we're doing this, and why.) Devote massive resources to the triaging system. Make sure that every bug that gets assigned to a developer is assigned to the corrects developer, has sufficient information to be useful, and is not a duplicate.

3. Bug Buddy needs love. Lots and lots of love. And when it has been loved so much that it is limp, it should be loved some more. Bug Buddy is not usable for non-technical users. Not convinced? Let me show you what I mean. (At last, some bling!)

Testing the latest Evolution from CVS:


Hmm... trouble! Better report it. Press the "Inform Developers" button. First Bug Buddy tells me that my information is out of date. Well, it told me that last night too, and I updated it then, but I suppose things may have changed. OK, download updates and wait while "Bug Buddy gathers information". Inspect the stack trace and confirm that it appears to be, indeed, about evolution-exchange-storage. But wait, what's this? Bug buddy tries to help me by eliminating duplicate bug reports. Cool! But what's all this about products that have nothing to do with evolution-exchange-storage? How is that relevant? Wouldn't it be better to present information about the application that crashed?


Whatever. Let's go to the next step. What's this? I have to choose the application that I'm reporting on? Doesn't Bug Buddy know already? It's got the stack trace. And couldn't the system that launched Bug Buddy tell what has crashed? Never mind. Let's try to pick the application. But wait, it's not there!

Oh, maybe evolution-exchange-storage is not an application. But hang on, Evolution is, why isn't it there? Oh well, try "Products" instead. (Puzzling over the difference between an "Application" and a "Product".) What now? Why are there so many duplicate entries, and how can I tell which one I should choose? And where is evolution-exchange-storage?

Hmmm. Oh, wait. I've been using GNOME for years, and I recall that once upon a time it was called "Ximian Connector". Look under "X", no, ... OK, there is a "Connector" (or two), one of them is (probably) the right one. Hang on, why is "Crossover" in this list? I have never installed that, ever, on any of my computers! Whatever ...


What's next? I have to tell Bug Buddy what version of the product I am reporting on? Can't the system that launched Bug Buddy provide that information? And what about "Severity"? How do I decide what to put in there?

Whew! Finally I get to actually type in the bug report. It appears there should be exactly three steps to reproduce a bug. OK, I suppose I can adapt my experience to that framework. Now, once the information is entered, I get to choose what to do with the report. I have to choose between saving it as a text file, or emailing it. (Why can't I do both? What if mailing fails? Do I have to go through all this again?)


Yay! At last! The bug report has been filed. I feel a warm glow of satisfaction at having fulfilled my duty as a non-developer member of the GNOME community: I have filed a (damn good!) bug report. But wait, have I really? If I check bugzilla.gnome.org it does not appear to be there. Even days later. What's going on? Perhaps the mail did not get through? How do I check? What was that about sendmail in the mailing options?

Discover mailq, and the fact that the bug report was not, as claimed, file. Dismayed to find that now I have to learn how to configure sendmail. It's about enough to make a poor user want to cry...

Things about GNOME that Suck, Number Four

First, let me thank all the people who have been posting comments on my blog entries. I never expected such a positive and encouraging response to this series! For those of you who have not read the comments, I can summarize the frequency distribution of classes of comments as follows:

1. "Right on! Keep up the good work": lots.
2. "That's bullshit/You suck": none.
3. "What about ?": some.

Thanks! But just to reiterate: If you think that I am being unfair, or am JPW (Just Plain Wrong), please let me know. I could let this go to my head otherwise... ;-)

So, Gripe Number Four: The desktop environment does not remember the size and position of windows.

Premises:
1. The purpose of computers is to make the lives of humans better and easier
2. Computers are for automating tasks that are boring and repetitive
3. GNOME is simple and easy to use
4. GNOME "Just Works".

Data:
Every time I start the applications that I use every day (Evolution, Firefox, Gaim, a couple of terminals, Emacs) I have to arrange the size and locations of the application window, both across virtual desktops and within each desktop.

Conclusion:
At least one of the premises are false.

I know that it is a deliberate policy decision of the Metacity hackers to not handle this functionality. I also know about Devil's Pie (thanks Ross!). But I still find the premises compelling. I don't want them to be false. Do you?

Things about GNOME that Suck, Number Two

(Editorial note: I am trying to keep these posts short and to the point. I have had about 20 responses to them so far, all but one positive. So I will keep going for now.)

The woeful state of multimedia. Specifically: handling the (in)ability to play some formats.

A typical scenario that occurs at least once a week for me is that I will attempt to play a multimedia file (usually a movie), and the application I use can not deal with it. That's actually fine, especially if you are free software/anti-patent bigot like me. What bugs me, however, is that the shell (Nautilus?) will happily launch the application, or allow you to associate the application with the particular MIME type, when it is known that the application is unable to deal with the file. (I use Totem, Xine, and Mplayer by the way.)

I was going to post about something else today, but this one leapt to the fore in my brain after I had waited for a long time for a file to download (5Mb on a 56k connection) after Firefox offered me the option to save it to disk or open it with Totem. Totem starts up and then tells me it can't handle that file. OK, so it was a WMV. Try again with the Quicktime version of the file. Same result. DVDs? With Totem? Forget it. That's why I have to have three media players: to handle all the formats that I come across.



GNOME "Just Works"? GNOME is simple? I don't think so. And considering the ubiquity of multimedia in today's computing experience, I see this as a major impediment to encouraging people to start using GNOME.

The way forward: can we change the MIME type infrastructure to disallow the user associating applications with MIME types that they cannot handle? Nautilus offered to open a VOB file with Gedit. I can't remember associating Gedit with VOB files, and I am pretty sure that I would not have done so on purpose. Perhaps a distribution associated VOB files with Totem. But why would one do so? We know that will cause failure and frustration.

More: can the error dialogue of Totem be changed to give the user a clue about how to install plugins and where to find them? And perhaps a link to a page describing GNOME's stance on proprietary formats? (Does such a page exist?) I have hope on this front, and want to publicly thank the Gstreamer people for their efforts.

/EndTransmission

Monday, January 30, 2006

Things about GNOME that Rock, Number One

Well, I have had about a dozen comments on my previous blog entry (Things about GNOME that Suck, Part One), all of which were along the lines of, "yeah, me too". I have had one private email from someone (whose opinion I respect) who suggested that it's not very nice to criticise people in public. I have some sympathy for this view, but do not entirely agree with it. But, if anyone here objects to my criticism, please let me know! I would not want to piss off a bunch of people for whom I have huge respect and admiration.

As I said in my previous entry, I want to criticise and praise on alternate days. So here is my first item of praise. :-)

One thing about GNOME that rocks HARD is the community spirit, and the ease with which can become involved and contribute within the bounds of one's abilities. I am not a developer, but I feel that I can and have contributed something, however small, to GNOME. (I also feel that I could do much more, but that's a different story.) This is something about GNOME that should not be underappreciated. So to all you other people in the GNOME community: Hello! And thanks!

Sunday, January 29, 2006

Things about GNOME that Suck, Part One

Well, after GNOME.conf.au I have been re-invigorated. My desire to contribute to GNOME has risen, so here is my first concrete action. Unfortunately it isn't a patch or anything as concrete as that. What is it then? I have resolved to blog every second day about one and only one thing that bugs me about GNOME. On alternate days I will blog about things that I love about GNOME. When I have run out of those things, I will stop. ;-)

So, without further ado, here is Gripe Number One from me. UIs that block on I/O. In particular: yumex, Gaim and Evolution. I suspect that the reason why I notice this and it bugs me so much is that (at home) I am on a 56k modem connection. Waiting on a response from the network really exposes those "no-repaint" moments.



What to do about it? There has been discussion on this planet recently about multi- threading vs. not. Perhaps the one way to drive the point home is for people who develop network-using applications to dogfood their project using a network throttler. Have a fat pipe? Maybe that's why your application looks unprofessional.

Update: someone asked for evidence of Gaim blocking on I/O: here it is:

Friday, January 06, 2006

GNOME Miniconf in Dunedin

Hello fellow freedom lovers! As some of you may know, LinuxConf.au is in Dunedin, New Zealand this year. That is where I live, so I thought I would attend. :-)

I will be presenting in the GNOME MiniConf, talking about marketing GNOME. I have quite a few thoughts on the matter, but almost none of them are original to me. I think about marketing GNOME quite a bit, but most of this thinking is evaluating the ideas and opinions of others.

So, unless you want to see another article from me in GNOMEJournal that is just a rehash of stuff you've already seen elsewhere, please contact me (jwilliams@gnome.org) with your thoughts on:


  1. What {are | should be} the goal(s) of the GNOME marketing team?

  2. How effective is the marketing team at achieving these goals?

  3. What is the marketing team doing right?

  4. What is the marketing team doing wrong?

  5. What is the marketing team not doing (that they should be doing)?



Now the punch line: You are all on the GNOME marketing team. You are just not full-time marketers. You are part-time marketers. Every time you change a GNOME "product", or interact with one of GNOME's stakeholders, you are performing a marketing function. Marketing is about (all the activities that achieve the goal of)matching the desires and capabilities of the organisation with the desires of the market. And since GNOME is a loose network organisation, YOU are, in a sense, "the organisation". Yes, YOU, punk. I'm looking at YOU.

That is all.