Thursday, December 31, 2009

A standard Windows desktop is useless

As a consultant I've been working on a lot of different desktops. Well, different? Not quite. Almost everywhere I go I find MS-Outlook, MS-Office, MS-IExplorer and Adobe Acrobat reader. Some of these installations even lack MS-Project, MS-Visio and in some cases even MS-Access. If those really were the only tools at my disposal, I would call it working with "stone axes and bear skins". Fortunately, I always carry my laptop with me, which is equipped with the tools that really make a difference like Graphviz, Dia, Kjots, LyX, MySQL, Apache, PHP, Pegasus Mail, OpenProj and my own 4tH compiler. And no, I did not install Linux on this laptop for the simple reason it is not my laptop. I have a cute EeePC 701 running - yes, you guessed it - Xandros.

So what's your problem, you say. Well, first the desktop freezes every now and then, showing an incredible 0% CPU utilization. I hate that, especially if you have to get some work done. If I'm overloading the beast, OK, I understand that. But why is it sitting there doing nothing? Even a few generations ago I was surfing the Internet, burning a CD while compiling some program. 128 MB RAM, PIII. No sweat.

But the fun already begins when you turn on the thing. Ok, it may be getting stuff from the LAN, but why does it boot so terribly slow? I've waited up to t-w-e-n-t-y minutes until I saw the desktop appear! We're not home free yet, we still have to start Outlook. Even KMail on my poor 32 MB, PII didn't take that long. That's all nice when you come in, slightly late, and want to look up the name of that conference room.. A really nice feature of Outlook is that it can't export its messages to a decent format, it only supports .PST instead of mbox. Of course, there is a solution to that. You can abuse Thunderbirds import utility to do that for you - it's a very dirty hack - or readpst. Unfortunately, I can only use the latter one on.. Linux! I can't get it to compile on Windows - my working hours are restricted to useful work.

I have to admit, MS-Excel is a pretty decent program, the trouble is that I only use it to distribute database reports. So, that one is out of the equation. MS-Word is a useless pile of wasted bytes. I'm there to provide content, I'm not a layout artist and I don't want it to be. Every time you change something, the layout changes for some inexplicable reason - and you have to spend valuable time to correct it. I don't have that time. Of course, there are "styles", endless lists of styles that keep on accumulating. Another fun thing is when you embed pictures. They look fine, you save them and when you reload your document they are all over the place. The real fun part begins when your file exceeds a certain size: MS-Word becomes instable and bombs out. Less computer-savvy users have had a cardiac arrest because of that - nobody makes backups anymore. You can often solve the problem by importing it in.. OpenOffice! But I'm not done yet. Often I want to publish a document on the web and behold what horrible HTML MS-Word produces. Lots of it!

No, I prefer LyX. I type, LyX does the layout. Creating a PDF is painless. With eLyXer HTML creation is easy - and boy, does it look good. With LaTeX2RTF I can create those @#$% Word documents the whole world seems to be craving for. I written my entire 4tH manual with LyX, which is over 450 densely written letter-size pages - with graphics. No problem. Making references, bibliographies or a simple table of contents, it's just a few quick clicks away. I fire LyX up, adjust the document properties and I'm away. I type the title, my name, indicate this is the "title" and "author" and begin my first section. Highlight the section title, indicate this is a "section" and off we go. That's how you produce content. Needless to say that once you've put an image somewhere that it doesn't move anymore - and certainly isn't overlaid.

Now let's move to the pictures themselves. In most cases I don't even enter a graphics program. I write some simple Graphviz code - or let the database generate it - and Graphviz does the rest. Most formats are supported, including SVG, JPG, PDF and EPS. When Graphviz can't help me, I turn to Dia. Dia is a classical diagram program with one little difference: it supports many different formats. When was the last time you successfully converted an MS-Visio file you got over the email to anything useful? Yes, it's always the tedious job of sending an email back - with Outlook <snif> - with the request to send an SVG. Pleeeeaaazzee..

The most useful part of the standard desktop is MS-Access. If you do a lot of data crunching - like me - it is a useful workhorse. Buggy, yes. Useful, yes. Unless you start making applications with it. That is not something I recommend. Importing an MS-Excel sheet or CSV and produce a quick join, OK, but don't use it to make applications! Believe me, I learned this the hard way. Your MS-Access database will corrupt at some point in time, giving rise to data loss or bugs that are impossible to trace or fix. Use a simple WAMP installation with a good framework. That works like magic and you can always install your application on a web server if your client likes it - even if it runs IIS.

Finally, the lack of a decent programming environment. No it doesn't have to be big and complicated. My own 4tH compiler only needs 64K. Why do I need a compiler? Simply because some data conversions or extractions cannot be made with a standard desktop. Unless you do it by hand - something I'm not prepared to do. I recently had to convert a text file with full names to a CSV with first and last names. It took only five lines of 4tH and three minutes. Convinced?

The next fun thing is the lack of a decent editor on a standard desktop. MS-Notepad is unable to read Unix text files. End of story. MS-Wordpad does that for you, no problem. But it lacks a very useful and simple feature. No, I'm not talking about source highlighting. It's the lack of a line number display. So when your PHP bombs out with an error, try to find line 83. Good luck! 1, 2, 3, 4 ..

Finally, the horror of MS-IExplorer. OK, it's half usable as a browser, no problems there. The real fun starts when you're a web developer. Although you're writing perfectly acceptable W3C compliant code, it's not rendered as it should be. And according to the users, you're at fault. Now let's start wasting some serious time by trying to fix it. Yes, there's always a fix. Whether your PNG is not transparent or your SELECT list obscures some DHTML popup, believe me, there is always a fix. And like I said, it may take some time to fix it. You're very proud of yourself when it finally works. Until somebody opens up another browser. Or you get a browser update from Microsoft. You think Microsoft is doing much better now? Don't make me laugh. Even Dillo is doing better.

So, welcome to wonderful world of the standard desktop. How much time do you want to waste today?

Friday, December 25, 2009

Guys and dolls

Carla Schroder recently published an article called "Hug your favorite FOSS contributors today". I have a problem with both that title and the intention. I don't feel like hugging some bearded nerd and if they're anything like me, I don't think they really want to be hugged anyway. Some of them are really grumpy old geeks..

Sure, there are several projects I like and use every day. I even cooperate with some of these projects, but I feel awkward sending a message "I love you, please don't stop". I think the people who run these projects already know I find their products indispensable, because I write about them with every occassion I have. Some of them even publish links to my blog, which is fine. But telling them "I love you". Man, I don't know..

I know my girlfriend thinks it's very important I tell her every day that I love her - which I do - but I'm your average bloke and I feel that if she doesn't run away, I must be doing something good. At least, that's what I've been telling myself every day for the last five years.

I've been in the FOSS business for about fifteen odd years. First I wanted to distribute my software as shareware, but since all these folks gave me all this software for free, that didn't seem right somehow. So, I became a FOSS developer.

Why? Well, I didn't like the way Forth compilers integrated with Linux, so I wrote my own. That's how it is. I had an itch, so I scratched it. Nobody ever thought it was possible, but I did it. And now it was possible, it was blasphemy. Because almost all Forth compilers follow the same architecture which allows instant interpretation. Mine didn't. According to the ANS-Forth standard, it wasn't even a Forth compiler. I was flamed to hell. I couldn't care less.

Up to now, the hardcore Forth sites don't even list it as a Forth compiler, although it is able to compile certain ANS-Forth programs. You think that stopped me? No. It was what I wanted. I wasn't in the business to be liked or wanted, I just wanted to do my thing and nothing was gonna stop me.

Nowadays things are very different and people contemplate about 4tH and accept it as being another player in the field. I rejoice every time a new user joins the newsgroup (all sexes welcome) or examines the possibilities of this tool. But that wasn't why I started it. I'm not here to be loved, I'm here to share an former itch.

I loved the moment a user passed by and told me he had ported a floating point library to 4tH. We spend hours designing a "square root" function and in the end we boosted performance tenfold. I was delighted when a user ported 4tH to FreeGEM and painted some amazing pictures on the screen. I wrote a preprocessor in 4tH, not that I really needed it, but because it was such a neat thing to do. I was really fascinated when I ported Herbert Schildt's "Small Basic" interpreter to 4tH and was able to enhance it beyond Tiny Basic. I really don't need to be hugged, the project in itself is reward enough.

Sometimes I lay down on my bed in the evening and skim the source code I wrote lately. It's beautiful 4tH, it functions perfectly and whether someone uses it of even finds it practical doesn't interest me in the least. It's just my thing and it is well done, so I can go to sleep quietly, knowing that no one will be able to find a single bug.

I know I'll be able to depend on this code, even in a work environment and that's all I need. I don't need the praise of strangers to tell me I've done well. I know. Maybe that is where guys and dolls differ. My father told me this years ago. Men love things. Women love people.

Saturday, December 5, 2009

The best helmsmen stand on shore

Let me make this perfectly clear: I've been in FOSS for over fifteen years. In 1994 I created my 4tH compiler and released it under an LGPL license. Furthermore, I've provided code, documentation and translations to about a dozen FOSS projects. Whether these are important contributions or projects I leave to you, but I think it has been enough to consider myself to be part of the FOSS community. If you're insulting or simply "criticizing" the community, you're insulting or criticizing me.

Bruce Byfield is a technical writer turned journalist and I have to admit his technical articles are very good. As a matter of fact, every time he publicizes one, I wholeheartedly agree with him. But every time he roams away from that path he achieves nothing, but damage to his credibility as a technical journalist.

What most people are still unable to understand is that the FOSS community is the FOSS community. There is no central body that governs it. You can "criticize" it, but most people can and will simply shrug their shoulders and get on with what they're doing. Every time a wildfire breaks out, fierce comments are written, many blogs get updated and nothing really changes. Few people will start using Emacs instead of vi. Few people will wipe GNOME from their machine and start using KDE. The community is much more than just Richard Stallman, Linus Torvalds and Miguel de Icaza. It consists of many thousands of tiny, small, medium, abandoned, forked, major and corporate projects.

Bruce Byfield is completely unaware of this too. In his latest misguided rambling 'Open Source Projects and the Meritocracy Myth' he lists a number of major projects with paid developers. As if meritocracy is and should only be applied there.

First, he obviously doesn't understand the full concept of meritocracy. Meritocracy in FOSS is about merits, not just "who is the best". If a paid developer can spend eight straight hours per day and provides most of the code he will obviously rise in the ranks, a fact that is clearly supported by the findings of the FLOSS polls, that infamous report that everybody likes to quote and nobody obviously read. Furthermore, in our capitalist world those who pay call the shots. The privilege that the community has is that if it doesn't like it, it can fork. Something that Eben Moglen recently confirmed.

Second, reducing the community to a few major projects simply doesn't cut it. Thousands of projects are not depending on paid developers. Are those projects not part of the community? Is there proof that meritocracy doesn't work there? "Yes", Bruce says, "talking about some of the barriers to women's participation in FOSS."

Ok, now it's becoming clear what this is all about: it's the whole feminist thing again! I know this trick, Bruce. As a matter of fact, I applied it as well during the previous discussion we had. Simply attack the fundamentals of an ideology and you're home free. Well, not this time, Bruce. You have to be better than that - and frankly: you're not.

Meritocracy is not the guiding principle of the FOSS ideology. It simply works best for these thousands of unpaid volunteers you're so eager to insult and attack on each and every opportunity you get. Proof? Here you got it. Source? FLOSS polls!

So Bruce, what will be your answer? Whine again that Sam Varghese and me "don't like you"? Like Sam said, we never met! I'm merely criticizing you. But before you criticize the community, note you're not part of it. You never contributed anything to it. It's like we Dutch say: "The best helmsmen stand on shore", meaning that those who have the most criticism on how to do better actually don't have anything to do with it.

We tend to use it in situations where some "advise" can better be ignored. Like yours, Bruce.

Update: Recently Bruce published an article titled "When people say it’s not personal, it usually is" on his private blog. It quickly turned out I was one of the people he meant. He accused me of being "obsessive".

The truth is I commented six times on four of his articles on three different subjects in the span of three years - with a pause of one-and-a-half year. Bruce produced about twenty-five articles on the last half year on Datamation alone. I have published about sixty on this blog in the course of three years.

Consistent disagreement? I don't think so. It is obsession or that you can't stand any criticism, Bruce? When I published these figures on his site, he conveniently closed the comments.. Nuff said.

Update: Obviously, Bruce monitors my blog as well. Shortly after I published this update, Bruce conveniently produced this post. No problem Bruce, after Caitlyn's posts concerning this subject I already had my answer ready. I didn't publish it, because I don't want to stir things up in the community. I feel bloggers have a responsibility as well - and they should be more aware of it.

Since I'm not afraid of a discussion, I also offered Bruce's post to LXer (boy, these guys are good!) and LT. Of course, since I'm unofficially banned from LT, Bruce didn't get any airtime either. <snif>! The snapshots keep piling up, Carla.. Don't say you didn't know.

Update: Although I have left Bruce alone for some time now, he continues to think "people are out to get him". Ok, it can't be me this time. I really had to bite my tongue sometimes, but it worked, I did it. Still, when he published this piece - obviously aimed at his other nemesis, Sam Varghese - couldn't remain silent, so I published this comment at his site. I'm not quite sure it will surface there, but here it is:
Well, when you choose sides (and despite your claims you're always "balanced", you do) you divide the world in two parts: those who agree with you and those who don't.

When you take sides, you're bound to have criticism - which may be on the spot or completely beside the point. Apart from some rational arguments, which is which is up to anybody.

However, those people who criticize you are not out to "get you". If you continue to think that, you're showing signs of paranoia and I advise you to get some professional help.

Making yourself into a "victim" all the time will not get you more sympathy or more people who agree with you - because the issues simply remain.

Stop whining and grow up!

Agree with me or not - that is a choice I leave to you.

Update: My comment didn't surface. Why am I not surprised..