.comment-link {margin-left:.6em;}

I Hate Linux

Friday, July 30, 2004

The Thievery of Linux

We’ve all heard of the Microsoft vs Lindows case where Microsoft went to court because someone was making a product that sounded a lot like their own.

Later, we have the Mike Rowe Soft incident, where Microsoft went to court when a person by the Mike Rowe ran a company that phonetically was very similar to their own company name.

Today while working with one of the interns to solve a problem related to RPMs (yes... the same intern who suffered the mysterious disappearance of his /bin folder), some of the Google hits he received were on linuxquestions.org, seeing the domain name, I asked the question “I wonder if there is a windowsquestions.org?” So, he typed it in and what do we find but a redirection to back to linuxquestions.org.

It seems that windowsquestions.net is also registered, however it redirects users to linuxchat.org.

I wonder when Microsoft will attempt to enforce their trademark on the name ‘Windows’ and it’s obviously deceptive use in the above two cases.

Thursday, July 29, 2004

/bin/bash self

While doing some testing of an installable package on his Mandrake 10 based laptop, an intern at my company by the name of Brandon hosed his system quite bad.

I watched him run the package that he’d used not minutes before and received a few error messages, a moment later he went to do an ls and was greeted with an error saying the file could not be found. Long story short, somehow his entire /bin directory was deleted, effectively eliminating his ability to use such useful Linux commands as ls, cp, or mv that may just be needed to fix what is about to be broken.

Of course the same goes for glibc, try to install a newer version of it on an older system and you can end up with a case where none of your binaries function. If you're lucky you can use export to no longer use the newer glibc, but even then things can get rather bad.

I find it rather amazing that the system and/or the shell permits the removal of key system files which would almost certainly be needed to undo any mistakes unless other back ups exist.

When Brandon told me of the cause of his pains, I laughed and promptly ran cmd.exe on my Windows 2000 machine, I then proceeded to type things such as...

del copy
del copy.exe
del copy.com
del del
del del.exe
del move
del move.exe

At the end of it I laughed and said “Ahh yes, the good old Windows command processor... unable to directly neuter its self and help prevent you from doing horrible things you may not be able to undo later that could break your system.” And yes... he was logged in as root, and not being root could have saved him the evening of time he spent rebuilding his system... however there are something’s you should make it very difficult to do, even when you are root or administrator. Do you think you should be able to format your system drive just because you are root or administrator?

“But Linux is better because you can do what ever you want with it, you aren’t restricted by any arbitrary boundaries” some would say... but just because you have all of this power does not mean you need it... or even will use it. I guess I have delusions of easy to use computers that almost anyone can use with out needing to know the ins and outs of it, but then... that is much of what Windows is, much like a previous commenter said here, and I think he summed it up perfectly:

Linux is like a Playboy centerfold: a great idea, but when you start to see the reality of it, not quite as enchanting. Windows is like your mom: maybe not pretty, but you can almost always predict how she's going to behave. And since I don't want to marry my computer, I'll take my mom over a Playboy centerfold any day.

The moral of today’s story...
System File Protection and heavy restriction of cataclysmic powers... Good!
Linux... HAHAHAHA!

Tuesday, July 20, 2004

An overdue update

Last time, on 'I Hate Linux'... Brendan, hated Linux. Now... on 'I Hate Linux'... Brendan still hates Linux.

More on that later. It's been a while since I've posted to this blog, my loathing has increased, but along the way I figured I'd respond to a few comments.
But first, a week ago, a not too bright neighbor broke into my house by removing my window mounted air-conditioned. In short, she was caught by a motion activated camera in my living room, since the break-in I have expanded my paranoia in case this should ever happen again. Visit the break in page for full details.

Lately I’ve been fighting with Red Hat 6.2 to get a wxWidgets based application to work in it. One friend said that doing so to such an old version is not unlike trying to get my application to work under Windows 3.1. I do think this is a rather unfair comparison as Windows 3.1 was released back in 1992 and Windows 3.11 was released in 1993. For a more fair comparison... lets compare it to a Windows version that shipped closer to Red Hat 6.2... say Windows 2000.
Depending on who you talk to, release dates for Windows 2000 vary, some say March 31, 2000, others say Febuary 17th, 2000 (the actual date). In either case, both dates are slightly older than Red Hat 6.2.

Most modern Windows based applications work as well under Windows 2000 as they do under the latest shipping version, Windows XP (except for those that are XP specific). I would argue that comparing getting an application to work under RH 6.2 is quite different then getting it to work on Windows 3.1, given the dates above, porting it to Windows 2000 would be a far more fair comparison... but lets go back a ways. We’ve gotten the app running under both Windows 95 and 98, OSes which are still far older then RH6.2, but are still widely supported by software makers.

I always liken Linux to cars. One finds vast number of makes and models, all with slight variations, and with most claiming to be able to support the parts of others. Of course in practical application, it’s not always easy to mount the engine from a land tank like a Hummer into the engine compartment of a VW Beatle, even if it is possible.

“But that’s why you can build from source!” some would say, while others insist “You should use systems that manage dependencies for you”. Both are valid arguments, but ultimately fail in light of the fact that assumes that everything will run without a hitch. On my Red Hat 6.2 machine, wxWidgets and the Xerces-C libraries were built from source and installed with little trouble, and yet custom code which works on multiple other platforms and Linux versions fails here, returning obscure error messages which currently defy explanation. So far six other people from within my department have spent time with me looking at these errors and have all walked away more puzzled then before they started.

An obvious answer to this problem is to upgrade my compiler, I did so, to no effect, I even tried updating glib and binutils, all to no avail.

At least under the Microsoft system of support, you have a very small number of possible OS’s to target. Oh yes! There are many different variations between OS’s, Service Pack versions as well as Internet Explorer versions, all of these can combine into obscure and at times difficult to support differences, but they are nothing compared to what one finds under Linux.

As this blog entry is quite long... I will hold off on responding to some of the comments I’ve received in past until the next update. So until then... remember, I hate the Penguin. 

Thursday, July 01, 2004

Another ‘Stupid Linux’ Trick

Having some source code that was out of date, I did a ‘Get Latest’ in SourceSafe from my trusty Windows machine and copied the entire tree for the project to the Linux machine.

Next, I’d copy the source tree to the directory /home/brendang/test1/src/.

Because I’d been having an ongoing problem with getting kDevelop to compile some of my projects, I decided to have a single directory containing the source and have links to the appropriate folders where the source was to be used. This central directory was the one previously named.

The current project I was using, ‘stupidlinux’ (because I got tired of relevant names as none were working) was located at /home/brendang/stupidlinux/ and using the kDevelop IDE, I added the new files to the project, each time a new file was encountered it would ask if I wanted to link or copy the file and I would choose copy.

With that all done, I attempted a build and received a number of errors whose cause was that one of the files didn’t get updated. I replaced the out of date file with the updated file in /home/brendang/test1/src/ and attempted to build again but ended up with the same problem as before.

I verified that the source file I was copying over was the updated version, it was. I verified that the file in question located at /home/brendang/test1/src/ was updated, it was. Turns out, the link set up by kDevelop was wrong, it was linked to a file by the same name in /home/brendang/test1/, not in /home/brendang/test1/src/.

At this point one might say “That’s not the fault of kDevelop, you were just being dumb and added the file from the wrong directory.” That’s a fair argument... if it had happened just once. But when I did it multiple times, even deleting the source file and the linked file and redoing it several times and it still occurs.

Speaking of problems of kDevelop, when adding files to a project, there is an ability to filter based on file types using a drop down list. Even though you can type in a space provided and that contains what looks like a filter button, not unlike what is provided under the “File tree view in the project directory” in the IDE’s main window... this filter looking button is not what it looks like, clicking on it doies nothing and if you enter a custom filter such as ‘*.cpp’ (with out the quote marks of course) and hit enter... the dialog closes. Thus as far as I can tell there is no easy way of filtering.

Along with that, there is seemingly no easy way to remove large #’s of files from a project. The only method I’ve been able to find is pressing the ‘Remove’ button from the ‘Automake Manager’ tab, then waiting for a prompt asking if I really want to remove the file and hitting ok. This must be done over and over and over again to remove more then one file as there is seemingly no way to select multiple files to remove them in kDevelop 3.0.x as I recall there being in the 2.0 version.

If kDevelop is the best IDE Linux has to offer, I’d say it’s an awful pathetic showing and not something to be proud of... at least that’s my take on it.

And the whole while the problems I am having continue to get worse and more obscure. As an example of one of the easier (I’d think) problems I’m running into...What does it mean for instance when GCC gives the warning on compile "warning: when initialized here"? Google is no help, only gives 24 results, and all are simply pastes from compile logs and not ever referenced on it’s own.