[Wed Sep 20 10:48:41 CEST 2006]

Much has been written over the last few years about the problems that a regular user (your "average Joe") encounters to run Linux on the desktop: lack of applications, a not so very user-friendly desktop environment, difficulties to install and upgrade software, issues with hardware devices due to lack of drivers... The Linux community has quite often replied that many of those problems are not their fault, and are simply the consequence of the smaller user pool that runs their operating system. Nobody should be surprised, the argument goes, if there aren't nearly as many drivers for Linux as for Windows, since the latter has pretty much a monopoloy on the desktop market. I can see the point, of course. Hardware vendors sell their devices together with a CD containing drivers for Windows, but rarely will you find that those very same CDs also have any Linux drivers. The rationale is understandable too: it costs money to port software to several different operating systems, and cost is something most companies will try to avoid in order to increase their profits. Again, it makes sense.

Now, the problem hardly affects only Linux. I have recently spent a considerable amount of time searching for a wireless PCI card that will work with my wife's G4 and still have to find anything out there. Yes, there are plenty of cards that proudly display the Microsoft logo in their boxes, but I still have to see one with the apple or the penguin. So, after talking to the fine guys at Golden Mac here in Sevilla, I decided to try my luck with a USB wireless card, as they suggested (it was supposed to work with MacOS X version 10.4 or higher). So, I ended up getting a Belkin F5D7050 USB wireless adapter that never worked with the G4 due to... you guessed it, lack of drivers! I searched the Web (thank the gods for Google!) and found that lots of other people had the very same problem. I even found somebody's suggestion to install the Belkin drivers for a slightly older version of the MacOS X, which ended up rendering the system unusable to the point that it wouldn't even boot. I had to proceed to the rescue and remove the just installed drivers. Needless to say, I'm still wondering how such an user-friendly OS allowed me to install the drivers for an older version of the software without a single warning message, therefore screwing things up to the point that the system wouldn't even boot. In any case, to this day, I'm still waiting for a card that will work with the system. So, here you go, user-friendly Apple also has problems with the drivers.

I know, it sounds like a lot of whining from people who chose the wrong side before the battle. However, keep in mind that at this point there are lots of people using an operating system (Windows) that they may or may not like, just because they have no other choice. This is hardly a case of "the free market speaking" when there is no freedom at all, when I simply cannot choose between two, three or more choices. In the end, I'm only left with the following decision: run Microsoft Windows, which will make it easier to use lots of hardware devices and install their drivers although the OS itself sucks big time, or live without using the devices at all. That's no choice to most people. As simple as that.

So, what do we do? We live the days of glory of freewheeling capitalism, and the laws of supply and demand, free market itself have become the new deity we should all pray to in search for an answer. If things go wrong, if something fails, if the end result benefits a few rich people and screws the vast majority of the population, we still have no right to complain. Oh, lo and behold, the free market spoke! Or is there an alternative? In the last few years, we have seen an increasing interest in open source in the public sector, and this may come to turn the tide. Contrary to what many people believe, very rarely do we find in real life what we could label as "perfect free market conditions". For the most part, as it tends to happen, we encounter an imperfect form of the abstract model, and in this real world the public sector can play a role to correct (mind you, not to control or override) the problems introduced by the imperfect working of free markets. I recently had a chance to see this working here in Andalusia, where the regional Government decided to deploy a custom Linux distribution named Guadalinex in all public schools and, gradually, all public offices. As more and more kids have grown used to the software, they barely even notice that's Linux. I asked my boy (going to fifth grade in a public school over here) the other day, and he was unable to tell me the OS the system was running. Only after he described it to me and explained that "it has a big penguin, like the computers you use at SGI" did I discover that he was actually running Linux. He couldn't care any less though. All he knows is that it does what he needs for class, which includes playing some educational games. How does this affect the market though? Well, my kids also had to buy their textbooks recently, and some of them bring a CD-ROM with tools, dictionaries, games and additional information. Guess what? They all include directions to install them and use them both with Windows and Linux. That's how a well thought out public policy can have a positive effect on the market. {link to this story}

[Thu Sep 14 10:15:46 CEST 2006]

Martin Girard writes an interesting piece for OSNews on why the Linux desktop will never take off. Comparing it to the failure of electronic devices that were available in transparent cases a few years ago, and that few people seemed to care for, Girard goes on to argue his point. What makes this article an interesting read is not so much the starting point, which has been repeated a lot throughout the last few years, as the way he goes about furthering it:

Linux is an operating system that was designed and implemented from the ground-up by geejs and nerds —let them be "technology enthusiasts" if you think it sounds better or less offensive. My point is that the brain of these people is wired very differently from the brain of the average Joe. Whether this is good or bad is irrelevant; what matters is that they are bound to have different perceptions and values, causing a rift between them.

In order to make the Linux desktop appealing to the average Joe, technology enthusiasts would have to betray their core values to such extends that it would be the operating system's undoing. (...) Linux as a desktop (...) has a transparent casing; you see all of the insides. This is one fo the things that makes it appealing to technology enthusiasts because their brains recognize the concept of "technical elegance", analogous to "mathematical elegance", a concept beyond the reach of non-mathematicians. But the crowd has a different opinion; being technophobists, transparency in design and implementation is inelegant, even repelling. Indeed, when you try to explain to your old folks why Linux is technologically superior, you scare them away.

Shocking? Confusing? Allow me to elaborate. First and foremost, technological enthusiasts possess a skill that is essential to the practice of their craft but is far beyond the reach of mere mortals: they are visual-spatial learners. (...) One consequence of this is that visual complexity —or even visual clutter— does not scare them away. It may even be impossible for them to understand why ordinary folks feel overwhelmed by slightly complex user interfaces. The truth is that most people cannot visually grasp the entire screen at once, let alone an interface or fifty icons or user controls. (...) Another isue that makes the open.source world irreconcilable with the crowd is the issue of choice. Tedchnology enthusiasts like the ability to choose between zillions of options, trying and tweaking at their leisure. In fact, it could be said that many enjoy it. Average users would disagree; to them, more choice constitute a source of headache. Even if the list of options is not overwhelming in the sense described in the previous paragraph, they still hate to have to try and make decisions. To them, the simplicity of a monolithic, predetermined set of options is best. (...) There's more. If you ask people why they don't switch to Linux —and get an answer— most often the answer will be games. Another difference between technology enthusiasts and the mob is that the former consider the computer as a tool, while the latter perceive it as an entertainment device. While it does not mean the former cannot be a gamer, that won't stop him from running his favorite OS, but the latter won't see it as being worth the hassle. (...) Last, but not least, technology enthusiasts love to learn. It could be said that the myriad of books, articles, man pages, HOWTO documents and readme files on Linux and open-source software representes the world's biggest user manual. And nearly everyone agrees it is underdocumented!!! Geeks spend hundreds of hours tweaking their systems and reading documentation because they love to learn how it works, just like they enjoyed playing with Lego TECHNIC (they would love the MINDSTORMS now) or science fair kits when they were kids. Needless to say the crowd finds these things rather uncool (yes, even the Lego MINDSTORMS). Most people don't like to read the user manual or learn fifty new concepts before getting started. They like when it just works and it's intuitive —at least to them.

The approach is original, I think, but I have a couple of bones to pick though. First of all, Girard is assuming that because your average Joe doesn't care about technical elegance and transparency, he doesn't care about the consequences of those characteristics either. What if technical elegance and transparency did have an effect on the end product's reliability and overall performance? This is where his simile fails. The transparent casing of a phone doesn't have any effect whatsoever on how it works. It's limited to its aesthetics. However, the same cannot be said of the transparent design of the kernel. The second mistake Girard makes is in assuming that it is not possible (ever) to come up with a design that is both transparent and easy to use. I think he's mistaken there too, and distributions like Ubuntu are proving it. Yes, the source code is available, but that doesn't mean that my grandmother needs to take a peek at it. She doesn't have to, if she doesn't want to. However, when something fails I can take a peek, and can also apply a patch that somebody in the community came up with thanks to the fact that the product has a "transparent casing". By the way, it's not that Linux has a transparent casing at all, since you wouldn't see its inner organs unless you know how to look for them. In the end, I believe Bob Young's (of Red Hat fame) simile is far more appropriate: opensource software is like a car, where you can just lift up the hood and take a look at the engine at any given time, although you obviously have to know how it works; commercial software, on the other hand, is like a car with the hood shut, so nobody can take a look inside. Now, which car would your average Joe out there buy? {link to this story}

[Fri Sep 8 12:31:12 CEST 2006]

I find it quite ironic to read now in The Motley Fools that Wind River is flying high with Linux, especially since the vendor spent years refusing to release any Linux-based product with the argument that the GPL license wasn't nearly as business-friendly as the BSD license that they promoted. Perhaps the BSD versus GPL debate is highly overrated and customers only care about a product that works reliably and enjoys very wide support? It's something to consider, I think. {link to this story}

[Fri Sep 8 11:32:53 CEST 2006]

While going through some old email, I found Debunking the Myth of High-level Languages, by David Chisnall, published on the InformIT website. I found some parts of the article quite interesting, like this reflection about C:

When C was created, it was very fast because it was almost trivial to turn C code into equivalent machine code. But this was only a short-term benefit; in the 30 years since C was created, processors have changed a lot. The task of mapping C code to a modern microprocessor has gradually become increasingly difficult. Since a lot of legacy C code is still around, however, a huge amount of research effort (and money) has been applied to the problem, so we still can get good performance from the language.

Comparing this to a just-in-time compiler, Chisnall adds:

Consider the case of function inlining. Although SPARC is something of an exception to this rule, function calls on most architectures are relatively expensive; you have to save the current register ser on the stack and then do the same operation in reverse later. For small functions, the time spent performing the function call can be greater than the time spent inside the function. Due to the way C works, it's impossible for the compiler to inline a function defined in another source file. Both source files are compiled to binary object files independently, and these are linked.

A just-in-time compiler doesn't have these limitations. It can even inline functions defined in the standard library, because the inlining won't be preserved between program runs, allowing the library to be updated without rebuilding the application.

To give some idea of how important this one optimization can be, I increased speed in a C program by more than 25% last year simply by moving some commonly used functions into header files where the compiler could inline them.

{link to this story}

[Fri Sep 1 14:15:50 CEST 2006]

Charles Hannum, one of the founders of NetBSD, worries about the future of the project and, along the way, leaves us with a few thoughts that surprise any Linux fan who is aware of the deep-seated anti-Linux attitude that at times seems to transpire the whole BSD community:

As we've seen over the years, one of the great successes of Linux was that it had a strong leader, who set goals and directions, and was able to get people to do what he wanted —or find someone else to do it. This latter part is also a key element; there was no sense that anyone else "owned" a piece of Linux (although de facto "ownership" has happened in some parts), if you didn't produce, Linus would use someone else's code. If you wanted people to use your stuff, you had to keep moving.

NetBSD did not have this. Partly due to lack of people, and partly due to a more corporate mentality, projects were often "locked". One person would say they were working on a project, and everyone else would be told to refer to them. Often these projects stagnated, or never progressed at all. If they did, the motivators were often very slow. As a result, many important projects have moved at a glacial pace, or never materialized at all.

(...)

...NetBSD is very far behind on a plethora of very important projects. Threading doesn't really work across multiple CPUs —and is even somewhat buggy on one CPU. There is no good flash file system. There is no file system journaling (except for LFS, which is still somewhat experimental). Although there's been some recent work on suspend support, it's still mostly broken. Power management is very primitive. Etc. Even new hardware support is generally not being originated in NetBSD any more; it's being developed by FreeBSD and OpenBSD, and being picked up later. (I think the only recent exception to this of any significance is Bluetooth support).

The reason why I find this so interesting is that not so long ago one had to stand the BSDers talking about the intrinsic better quality of their development model with that superiority attitude that has come to characterize them. Now it turns out that a benevolent dictator and some degree of chaos is not so bad after all. The more "corporate mentality" (Hannum's words, not mine) that was so praised yesterday as a clear example of how BSD was more "professional" is now acknowledge to be an unbearable overweight on one of the BSD projects. With a bit of luck, they may even realize their mistake now and correct the course, although that would require some humility. I'm just not sure that is a quality that's overtly present in the BSD community, to be honest. {link to this story}

[Fri Sep 1 14:05:47 CEST 2006]

Wikis are all the rage lately. I don't know of any company that doesn't use them internally, and they are definitely a great collaboration tool with a ver low entry level cost. Linux.com publishes today a nice introduction to personal wiki (i.e., small, simple alternatives to the traditional MediaWiki behemoth, the software behind Wikipedia). The programs are well worth a look: DoxWiki, Wiki on a Stick and TiddlyWiki. Especially interesting is the Wiki on Stick, I think, an implementation specifically designed to be run on a USB thumb drive. {link to this story}