Archive for January 4th, 2007

Open Vs Closed Vs Proprietary

Stefan asked me to rant on this issue, and so here it is:

First of all, “closed” is not the same “proprietary”. I don’t like proprietary technologies, especially when it comes to hardware, because I believe open standards can create a more homogeneous computing experience (if every manufacturer is following them that is). For example, I prefer all my gadgets to charge and exchange data by using a mini-usb connector, rather than the various proprietary solutions in existence today. For the user, it is simply one less thing to worry about if he loses his charging cable, and for the hardware accessory manufacturer it’s one less license fee to pay.

When it comes to open source vs closed source though, I am indifferent. I see computing is as a tool, created by the very need of doing our jobs easier. If I was to be presented and had to choose between two applications with the exact same feature-set and usability, one open source and one closed source, I would pick the open sourced one. Being open source has an added value, but it is NOT a feature.

If the closed source version had one major feature that I needed, and was more stable, I would pick the closed source version — provided that the price was right. For example, between Photoshop and The Gimp, there is no contest, I would buy Photoshop. But between MSN Messenger and Gaim, I would prefer Gaim (multi-protocol). Between IE7 and Firefox, I would prefer Firefox (better interface). But between OE and Thunderbird, I would prefer OE (more stable and less of a data corruptor). What I mean is that first I look to find an app that does my job best, and only later I check if it’s OSS or closed source — as an afterthought.

Also, there is a difference on how software is being developed and tested in the OSS world compared to the commercial space. Yes, there are badly written Windows software out there, but there are powerful tools in the Windows space to help the (less-than-mighty) random developer to create a usable application. Besides, 90% of the Widows users use that specific and mature 1% of well-known apps (e.g. Nero, Trillian, iTunes) and so they rarely have stability problems with them. On Linux, this is not the case. Just the other night we tried to use Eclipse with my JBQ, and it was a terrible usability experience. We had to go from 20 hoops just to debug our little program, let alone that the whole environment is just one big front-end rather than an “integrated” DE — at first it tries to debug… libc before it tries to debug your actual binary. And when we tried to use Anjuta instead, gdb wouldn’t work at all because apparently the 2.6.19 kernel has broken gdb (the bug is fixed on 2.6.20-pre). Which brings me to the point of how poorly OSS software is tested usually. It is absolutely and utterly *unacceptable* to have releases of kernels that break fundamental software like gdb. And all that trouble, just within 20 minutes of using Linux! Sure, there are well-tested OSS apps out there, like Apache, Asterisk, PostgreSQL, but these are not the norm! Most desktop third party applications that I see posted on gnomefiles for example, I can crash with my eyes closed!

I also advocate that some software is so expensive and difficult to write that their companies must not only charge a big fee for them, but also keep the source code tightly closed in order to keep out potential competitors. It is their right to protect their intellectual property, their right to choose the format they want their product to be distributed on (with source or not) and most importantly, their responsibility to their shareholders to make as much money as they can. You can’t blame software houses and individual developers for keeping the source code closed in order to try to make an additional buck, when the economic system is designed this way. If you don’t like this reality, write to your congressman to try and change the economic system of your country.

Now, there are reasons why you want a software stack and especially firmwares to be open sourced. For example, if we all had the Qualcomm source and firmware code, we would have found out long ago that FBI and CIA can listen to us even if our cellphones are turned off. There are privacy implications by some closed source software, and I am not talking about the casual buffer overflow that usually springs up every other day just because most programmers are not used to write secure software, but about popular software that it’s been modified on purpose to work against its users. For me, open source has a real value when it can protect me against malicious intends from corporations or even the government. I don’t care much about isolated incidents/attacks initiated by a Joe Hacker against my PC (a usual issue on Windows PCs for the unitiated), but I do care about modifying election results, being spied on by my own government, or corporations creating a full digital profile of me and then selling it or using it against me. These are the cases where OSS can outshine closed source (if it can’t outshine it in a product comparison basis) as these violations against me wouldn’t be possible because I would know about them and consciously decide to not use the problematic software. Open source as “the source is open, let’s fix this bug” is only practical for 1% of the users who happen to also be programmers. For the rest, it’s only useful as a privacy safeguard; and I am not sure if this is a good-enough reason to have Joe User switch over from Windows to Linux or from his Qualcomm phone to the Greenphone (and I am not even sure that the Greenphone does not use the Qualcomm stack in its low-levels). Users also need application features, stability, speed and ease of use, you see.

In conclusion, I just choose whichever does the job best and offers the the best level of protection and price point. I compare software the same way I compare two brands of cheese, or two brands of jeans. That is all.

Idiots, loyalists and mobile Linux

On a blog post yesterday I wrote that most people in this planet are stupid. Probably I will be seen like a jerk and a snob for writing this, but the truth of the matter is, I get confirmation everyday for the validity of my comment.

Also yesterday I wrote an open letter to an analyst about his wrong analysis regarding the homogeneity of the mobile Linux. Some Linux loyalists were quick to defend an undefendable position, but I guess I can forgive them for not having written a single line of code in their lives (obvious from their completely off topic comments). Complete idiots irritate me but not as much as the people who have HALF-knowledge of what they are talking about. There are these who do have a cursory experience on what they are talking about, and yet, they are missing the whole point.

For example, an obviously not-all-that-unexperienced guy wrote (comment #6) that what I argued is crap, because any programmer can include the whole stack of his desired toolkit and include it within the application’s package, and so his application would run on all Linux mobile platforms. While in theory this is of course workable, it is hardly a solution. The last thing a user wants to do is to download a 10 MB package on a phone that might not have more than 50 MBs of free internal flash space and that it’s required to be installed in the main filesystem rather on the flash card. More over, if the application is not statically linked to the foreign toolkit and another developer releases another version of the toolkit with his app, chances are that things will break. In fact, I am experiencing this exact thing right now on my XP machine because Gaim installed some new libraries and broke my Mugshot which depended on a specific libpango!

But even that it’s not the point. The mobile space has different requirements than the powerful desktop cousins. Applications should not weigh more than 30 KB or 500 KB. And toolkits must be well-tested and well-integrated and stable. Cellphones are NOT the same as the Nokia 770 which is a pretty liberal and open platform. Cellphones have strict guidelines from carriers about what a developer can and should do and manufacturers are trying to restrict users from creating potential problems to their customers. The stakes are much higher in the cellphone arena than it is in the PDA or desktop market. Besides, if developer A is originally writing his app for toolkit B, this does not mean that he can recompile the toolkit for another Linux platform, because most of these official toolkits are closed source. Using an OSS third party toolkit that someone might have ported does not guarantee the same level of integration, looks and stability as a native toolkit. Two years ago a few commercial WM2003 apps were coming with an installer that included the .NET CF stack, and I can tell you, it pissed off a lot of users! Look, theoretically, some of these ideas can be realized. But practically, they will never work for the vast majority of the consumers and the real boss of the whole game, the carriers. The point remains, that if your app doesn’t use the native toolkit, it won’t be received well by anyone.

It seems that many in the Linux community must get a better grip as to how the mobile space works. It’s not the same as the desktop one, and surely as hell not the same as the Zaurus or Nokia 770 where every Joe Programmer has a free ride and the consumers themselves are usually geeks with low expectations and knowledge of the command line. This is not a case where the Linux hackers should find tricks to make their apps and toolkits work on all Linux phones, but rather the Linux manufacturers themselves must agree on a single platform. Because as much pain the current distro fragmentation and DE fragmentation brings to the desktop Linux, it will be 10x more worse in the mobile space.

I write all that because I care about the mobile space and Linux in that specific market (that’s why I own 3 Linux phones — more than any Linux loyalist that I know of) and not because I am a troll as some idiotic blind zealots like to think.

UPDATE: As I write this my email address is being spammed over and again with the message “long live c++”. For some weird reason, this guy thinks that I don’t like… C++ and that my open letter yesterday is just a rant against C++. See what I mean when I say that most people are _COMPLETE_ and _UTTERLY_IDIOTS_? Call me snob if you like, but at least I know I have my screw tightly screwed on.

Getting laid after watching chick flicks

Haha, this was funny (free reg. req.). A guy who couldn’t get his gf to have sex with him, he loses the battle as to which movie to watch at the theater one night. He pretends that he likes “The Notebook” and his gf gives up later that night. In the thread, women replied with things like “typical man” and “you’re sick”, “you’re a jerk” etc. while the men replied with things like “you are a God”. The original poster says he will try “Pride & Prejudice” next. I mean, really, do women get emotional over and like these boring movies? Why? If a guy was dragging me to watch any of these movies I would walk out of the theater.

On unrelated news, Evangeline Lilly doesn’t know how to dress herself.

10 movies to see before you die

These are not my all-time favorite movie list, but they are less known gems (than say, The Matrix, LotR, Minority Report or even Vanilla Sky) that deserve to be seen by more people. Not in any particular order:

* Dark City
If you liked the Matrix, you will like this one too.
* Donnie Darko
Weird movie, but very well-done. If you get the DVD, buy the “Director’s cut”.
* Eternal sunshine of the spotless mind
Destiny shows its teeth.
* K-Pax
Equal proof that a man is either human or alien.
* The Truman Show
A human being is bought by a broadcast corporation and used as a product.
* Galaxy Quest
Hilarious sci-fi satire.
* Memento
A man with a small memory capacity is being used.
* Gattaca
The loss of freedom of choice.
* Equilibrium
Battle against a totalitarian system.
* Contact
Faith vs science.

Yup, you guessed it, I love mystery and sci-fi. I just wish there were more good spaceship-based sci-fi movies out there.