Friday, July 24, 2009

The Free Open Source Software Evangelist

We humans are socials creatures that tend to flock together in groups, bound by a common set of ideas, believes and values. Sometimes there are tensions between groups, just because their ideas, believes or values differ. As long as they are able to settle their differences in a civilized way, nothing much happens, apart from the exchange of a few insults and the flinging of a few stones and sticks.

But as soon as someone starts to claim that he is the real thing and the others in the group are just phonies and wannabes, you're bound to have trouble. History is full of these examples. Catholics called them "heretics", Hitler called them "Untermenschen", Stalin called them "Trotskists" and McCarthy called them "communists". Being one of these unfortunates was enough reason to be burned, gassed, shot, exiled or imprisoned. Sometimes people could save their necks by denouncing the very thing they believed in.

And now it has happened here. Nobody is safe, not even Richard Stallman. Evidence has been found in his very home that he is a sexist and thus not worthy to lead the Free Software World. New leaders have emerged and we're all about to be excommunicated unless we repent our sins and start installing Mono. Because let's get real, that's what it's all about. It's not because we all wear tin foil hats or that we're harmful to the community and should be expelled. It's because we don't like Mono. And we don't like Mono, because we don't trust Microsoft. And we don't trust Microsoft, because.. Well, do I really have to repeat the whole story again? TomTom, is that good enough reason? Viral licenses? DoJ? Billion dollar fines? Hundreds of patent violations? OOXML? Years of FUD? Being paranoid doesn't mean they're not out to get you.

The last months we've seen that Mono is still a controversial development environment, despite its technical merits. The main problem is not its license, because Mono is licensed under the GPL. The main problem is that it is still unclear whether Microsoft is able (or willing) to destroy the FOSS ecosystem by pulling the plug out of Mono. If substantial parts of the FOSS ecosystem depended on Mono, it would be a devastating blow. Mono proponents went out of their heads to show us the various benefits of Mono, how beautiful a world would be if it were build with Mono and - to a lesser extent - how unlikely it was that Microsoft would nuke us with their patent portfolio. And then - oh heavenly bliss! - Microsoft promised that it would not sue you if you fully implemented ECMA standards 334 and 335. Rejoice! Miguel praised the gods on Mount Redmond for their gift. We are delivered!

Well, always beware of Microsofties bearing gifts. Only a tiny part of Mono was covered by this promise and the controversy remained. That was the end of it. It was time for a new tactic. If you can't kill the message, maybe you can kill the messenger.

Victim one: Richard Stallman
Richard gave a speech of over an hour and dared to pull in the Virgin Emacs for ten seconds. If he had been excommunicated by the Catholic Church I wouldn't have blinked an eye, but I was quite surprised when I heard he was attacked for being sexist, simply because he had used the word "women". That should have been "persons". Most women start up Emacs first thing in the morning, that's why women make up a staggering 1.5% in FOSS software.

Poor Richard should know that women have been brainwashed since their early youth and are now completely unable to make responsible, mature decisions concerning their life, unless carefully guided by enlightened people and protected from horrible persons like RMS that scare them away for life from a future in software development with one single, well aimed, ten second soundbite. Sexism by any objective standards? Since when are there any objective standards in ethics?

I'm Dutch, I can do that. The only things here that are hotter than political correctness are MC Hammer's trousers.

Victim two: Roy Schestowitz
Roy is being accused of spreading FUD, calling certain Microsoft employees "zealots for hire" and should consequently be sued. And the guy knows what he's talking about, because his daddy is a lawyer.

If you're Microsoft and spend a lot of money on phony research reports for the sole reason of spreading FUD, that's alright because that are normal business practices. If you're Microsoft and you're crying for developers because nobody has any fun developing software for that pile of digital junk they call an Operating System, so you're forced to hire your own community, that's alright because that are normal business practices. If you're Microsoft and wait for the right time to fire your legal equivalent of nuclear missiles - aka patents - that's alright because that are normal business practices.

The problem is when you start doing the very same thing and you're neither a company nor a hired gun. Then you are a zealot, harmful to the community and should be hanged or - even better - lynched by the "real" FOSS mob. You're a backseat driver anyway, so that's no big loss! Praise the lord, the great purge has begun. I love show trials, Volksgerichte, Committees for Unamerican Activities and public executions on Friday!

Well, what other notorious Mono opponents can you think of? Who will be next? Fallen by the hands of people who have no problem at all to publish private emails in order to reach their goal. That have curious allies with questionable job descriptions. If these are the moral standards of real FOSS proponents I prefer not to be one at all. I prefer to stand under the shower until that label comes off.

I'll be a Free Open Source Software Evangelist, a man who may freely exercise his right on free speech, which is protected by any civilized constitution in the free world. Yes, that's what I'll be: a FREE Open Source Software Evangelist. By conviction – and unpaid. And I'll be proud of it.

Update: Mono proponents are now frantically quoting Torvalds to prove their point. Well, Torvalds uttered that statement in response to a question on the recent Microsoft contribution to the kernel, not on Mono and not on Microsoft critics in general. This is the quote in its entire context.

"We put this question to Linus, asking whether this patch was something he would be happy to include, even though it’s from Microsoft. He replied:
Oh, I'm a big believer in "technology over politics". I don't care who it comes from, as long as there are solid reasons for the code, and as long as we don't have to worry about licensing, etc. issues.

In fact, to some degree, I’d be more likely to include it because it's from a new member of the community rather than less (again, I’d like to point out that drivers are special. They don't impact other things, so they get merged much more easily than some core changes).

I may make jokes about Microsoft at times, but at the same time, I think the Microsoft hatred is a disease. I believe in open development, and that very much involves not just making the source open, but also not shutting other people and companies out.

There are 'extremists' in the free software world, but that’s one major reason why I don't call what I do 'free software' any more. I don’t want to be associated with the people for whom it’s about exclusion and hatred.

So it’s highly likely that this code will be merged into the mainline kernel and that’s a good thing. Who knows, Microsoft might even see the light! Linus is dead right. We shouldn’t deny contributions from anyone based on who they are. It should be the quality of the contribution that matters."

Does anybody dare to ask Torvalds if he would allow Mono code in his kernel? Just to settle this matter once and for all?

Update: It seems I'm not the only one connecting the dots here. Note the numerous trolling comments at the end of the article by someone called "Lefty", repeating over and over his favorite quote from Torvalds. It seems we may have victim number three: Sam Varghese.
These are a couple of reasons why the activities of the online terrorists--and I use that term with all due consideration and care--are totally destructive of the real community they pretend to be a part of, but in reality only wish to bend to their will.

Enough is enough. You've demonstrated yourself to be part of the problem here, Sam: you're aligned with the bad guys, not with the folks in the real community who are actually doing the heavy lifting on the software you claim to support so strongly. I'd like to see you seriously think about that as well.

So what, Lefty. Is systematically defaming people no online terrorism or is it the real online terrorism? All three names are conveniently combined in a single quote from "Lefty":
When I talk about the "faux FLOSS community", I'm talking about the folks voicing the most strident complaints over my actions--people like Sam here, people like Roy Schestowitz over on Boycott Novell, all the folks who all but insist that Mono is the Antichrist and Steve Ballmer actually has horns and a tail; folks who, if you disagree with them, seem decide you're demonically possessed in some way, nothing but a "Microsoft shill".

The people who apparently think that Mr. Stallman is completely above any criticism. As I've said, I'm starting to really believe they view what I've done as a sort of heresy. People who will take the low road to try to take care of the folks who run afoul of them--as Sam here has done--in their zealotry for their "cause".

Update: A few posts related to this subject. As usual, Glyn Moody hits the spot and states that the "ad hominem/ad feminam attacks are not just irrelevant, they are harmful". Note his obvious sarcasm by applying over-the-top "political correctness". As far as I know there were no female parties involved.

Update: The plot thickens. Note how "Lefty" lines up with a confessed Microsoft Technical Evangelist. BTW, -1 for Roy for disabling comments on the follow up. "Lefty" also confesses, that Roy's Mono opinion is a major reason for bashing the site and its most active blogger. Matthew Garrett, who recently posted on this blog, is also involved in the defamation of Sam Varghese, who is accused of being a racist after discrediting a known Mono proponent. Note that the post of the Mono proponent Sam criticized was so harmful to the Mono cause that even the guys from "Mono-nono" felt obliged to erase it.

Update: "Boycott Novell" proudly posts that there is one site that comes to its defense. Roy, you may be mistaking. If there is any evidence that you were involved in any of the accusations that were posed against you, you may find me on the other side of the fence. I certainly don't like it when you disable comments.

Update: "Lefty" suggests on his website that Chani published the following text on her blog:
..talking about relieving women of their virginity casts women in a submissive role, with men in a dominant role, and brings up thoughts of oppression and (indirectly) rape. (Yes, thinking about a roomful of guys thinking about taking womens' virginity does eventually lead me to wondering how many of them would take it by force.) It becomes less about the non-sexual meaning of "virgin" and more about all the crazy ideas societies have had about virgin women. And thinking about that stuff would make any woman uncomfortable.

That really looks like something a hysterical feminist could have written, which is certainly not the impression Chani makes. So I decided to dig a little deeper. A week before. A month before. Still could find that darn R-word. Finally, I tried Chani's search feature. Still nothing. That leaves three possiblities:
  1. Chani did write it, but removed the post afterwards.
  2. Chani did write it, but not on her blog, but in e.g. a private email.
  3. Chani never wrote it.
Still, what Chani does say on her blog on July 14th is:
I didn’t comment on this little incident, even though I knew I should. I mean, it’s RMS, I don’t really expect him to change. And it's easier to just ignore it and pretend it didn't happen. Thankfully, Lefty tackled the issue for us. Ok, publishing private mail is rude, but I'm glad he did.

I would be obliged if Chani would clear this up. I promise to add her comments to this blog.

Update: Well, Chani did obviously write it, but in her comments. I suggest "Lefty" to update the link so it points to the right place. Still Chani, isn't it a bit over the top? Obviously, not every woman shares your viewpoint. Thanks to an anonymous reader for clearing this up.

Update: Although he comes from "a family of lawyers", "Lefty" admits breaking the law by publishing Richard Stallman's emails. In short, his daddy might have some pro deo work on his hands in the near future if RMS decides to sue him. Go get 'em, Dick!

Update: I've researched some of the comments on "Lefty" and since I have not found substantial proof for the things he was accused of, I've taken the comments offline. I also found a pretty well documented timeline article on the "Lefty-BN" controversy for those wanting to make up their own mind.

Update: Boycott Novell posted a rectification on behalf of "Lefty".

Thursday, May 7, 2009

Windows 7 makes me laugh

I happen to be Dutch and if you're into Linux that is a major disadvantage. If countries were shops, The Netherlands would be a Windows-only shop. There are very few Linux magazines (err.. one!) and even that one I gave up reading, because even the columnists were on Microsofts hands. I happen to do a lot of writing and once offered a major magazine to write Linux articles. "Well," they said "Not many people are using Linux.. We'll call you." I'm still waiting. Consequently, even now there are people who still think Linux is a toy. Fortunately, I read German. If you happen to drive a Mercedes or a BMW, you know these guys know what engineering is. Linux is big over there. You know that SuSE was a German firm?

For most people in The Netherlands, an Operating System means Windows. If it's not Windows, it can't be a computer. So if a new version of Windows comes out, it is major news. I got this video from the site of a major Dutch commercial news show.



Yes, it is Windows 7 for sure. But listen to the background music.. it seems we're presented the best invention of sliced bread! Are you impressed? I'm not!

This is a Linux Compiz video. It has been on YouTube for two years. I don't think it has had many hits since then. Technology has improved, new and better effects are available. It's quite a lengthy video without any loud trumpets, so I guess you'll all be asleep before it ends. But it's neat, flashy and has very subtle background music.



In many ways it's like Linux itself. Humble, inconspicuous, fast and silently doing its job. I like it.

Monday, April 13, 2009

Cross compilers, the new wave

When my faithful Linux machine silently died under my fingers, I knew I had a lot of work to do. I need a lot of different software and installing and configuring it takes quite some time. A job I'm particularly "fond" of is installing the cross compilers I need for my 4tH compiler. Yes, although I'm a dedicated Linux user, I create MS-DOS and MS-Windows packages as well.

Even if you're using a Debian-based distro this may apply to you, because although several people pointed out to me that cross compilers can be installed easily with apt-get, you're still left with a barebone cross compiler. The fun starts when you want to add a library. But since I use OpenSuSE 11.0 I have no such luck whatsoever. There are several cross compilers available from the repository for a host of different systems, but the ones I need are lacking.

So yesterday I took a deep breath and started installing. First I gave Volker Grabsch's MinGW cross compiling environment 2.5 a go. I had some very good results with his previous version, so I didn't worry too much about that one. The previous version consisted of a shell script, but this one was completely different. The documentation is very terse, so I felt a bit apprehensive anyway.

The first thing you should do is save any previous installation of the MinGW cross compiling environment. Assuming you've installed it under /opt/mingw (any other directory will do as well), you should execute the following commands:
su
mv /opt/mingw /opt/mingw.old
exit

Now download and unpack the tarball:
tar -xzvf mingw_cross_env-2.5.tar.gz

Then we need to transfer the entire directory to its definitive location. I will assume again you use /opt/mingw, but feel free to use any other directory if you like.
su
mv mingw_cross_env-2.5 /opt/mingw
exit

We're almost done. Just change to your newly created directory and get going:
cd /opt/mingw

Now it depends on what you actually want - or need. If you choose to enter:
make

You're in for a long wait, because Volker's tool compiles a lot of stuff. Almost seventy packages, including a whopping 58 libraries. On the other hand it doesn't require any intervention, so you're free to do whatever you like - like watch a movie or go for a night on the town. When it's done you'll find that you've installed a very capable Win32 cross compiler onto your system. Vanilla Debian packages won't provide you with a cross compiler environment as rich as this one.

Volker told me that if you only need the most basic tools you can also use:
make gcc

And add any additional packages you need later on. However, this has not been documented yet, but it will certainly be included in the next version. You can also supply a host of packages on the commandline, e.g.:
make gtk lua libidn

He assured me that you'll always end up with a consistent cross compiler environment. After you're done it just needs a little post-installation. Edit your .bashrc script in order to change $PATH:
export PATH=/opt/mingw/usr/bin:$PATH

BTW, note that any compiler related environment variables (like $CC, $LDFLAGS, etc.) may spoil your compiling pleasure, so be sure to delete or disable those. You probably will have to make a few adjustments to your Makefile:
CC=$(CROSS)gcc
LD=$(CROSS)ld
AR=$(CROSS)ar

You may have to add a few others, depending on your project. All you have to do is type this:
make CROSS="i386-mingw32msvc-"

If you're using configure, all you have to do is:
./configure --host="i386-mingw32msvc"
make

That's it! Don't let any warnings put you off:
configure: WARNING: If you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used.

Everything will be just fine. All in all, Volker's MinGW cross compiling environment is a painless road to Win32 cross compilation. Highly recommended.

Now the really scary thing was on: the compilation of the MS-DOS cross compiler DJGPP. You may remember that the last time installation was far from flawless. Well, not much has changed. If you use a reasonably recent distro, this may help you. If not, refer to my previous post on cross compilers.

First download binutils, crx and gcc. Then execute the following commands:
su
rpm -Uvh djcrx-2.04pre-5.src.rpm

Now change to the SPECS directory, which is usually located at /usr/src/packages/SPECS. If not, you will have to find it for yourself. Then continue as root:
rpmbuild -bb djcrx.spec

After that you'll find a neat package in the RPMS directory. Install it:
cd ../RPMS/noarch
rpm -Uvh djcrx-2.04pre-5.noarch.rpm

Now return to the directory where you downloaded the files and install the next one:
rpm -Uvh djcross-binutils-2.19-9ap.src.rpm
cd /usr/src/packages/SPECS
rpmbuild -bb djcross-binutils-2.19.spec
cd ../RPMS/i586
rpm -Uvh djcross-binutils-2.19-9ap.i586.rpm

Return again to the directory where you downloaded the files and install the final one:
rpm -Uvh djcross-gcc-4.3.2-8ap.i686.rpm
exit

Done. That wasn't too hard was it? Well, I tried to compile the source RPM and after four attempts I simply gave up. I couldn't do it. I did a few simple tests and DJGPP seemed to work fine, although I have to stress I still have to test it properly. IMHO it is this kind of installs that give Linux its bad rap in certain circles and I hope the maintainers will get their act together in the future.

The bottom line? By using cross compilers I can create an entire Win32 installation package in the comfort of my Linux machine without resorting to virtual machines or proprietary software. So next time you install the 4tH compiler on your Windows machine, you know it is the first time it dwells in this environment.

Update: I've used the cross compilers in order to produce the release of 4tH v3.5d and they did the job. The MS-DOS cross compiler produced relatively large binaries, but they worked just fine. It was pointed out to me that there is a nice alternative to the MinGW cross compiler environment that also produces an OS/X cross compiler. I haven't tested this one, but since it might be interesting to others, I'm happy to list it as well.