Self Respect is the Root of Discipline

That made for a pointedly ironic fortune cookie at lunch today.

There is a difference, from what I can tell, in the quality of Open verses proprietary software in terms of the code quality. It is said that Open Source encourages better code quality, because when other people are looking at your code, you care more about what it looks like. Or, put another way, Open Source gives you a greater incentive to take pride in your source code and not just the finished product. It’s a question of respect, not unlike the difference in the quality of housekeeping between a family that regularly entertains guests and a bachelor that lives alone and never invites anyone over. (I assert the right to poke fun at a group of which I am a member.)

I could tell horror stories (most developers probably could), but I won’t. It’s just something that bothers me, that I’ve seen in real life; proprietary software is built on the principle of minimal effort. The necessary level of quality is that which doesn’t generate support requests, and no more. It’s an approach that favors “quick and dirty” solutions over Doing the Right Thing. It’s an approach that doesn’t care one whit for aesthetics (especially if, God forbid, that should get in people’s way)… and in my opinion, it’s often a short-sighted approach.

Free Software projects, on the other hand, frequently enforce very high standards of quality. The Linux kernel is renowned for being very strict about what code gets committed. It’s not in the least uncommon to reject patches with style issues, or missing documentation, or any number of reasons that wouldn’t even be considered in a proprietary project. And yet, I think it’s worth it.

I’ve been accused of being a perfectionist. I’ve also been told “perfect is the enemy of good”. While both are probably true, I still believe in quality. I’m not much in favor of settling for 80% when 95% is attainable. It’s a little difference between “works” and “works well and is both aesthetic and maintainable”.

Someone has posted the entire Best Buy “indoctrination” presentation along with their own comments. I thought I’d pick out a few of the juiciest bits. Warning: some parts may be heavy on sarcasm.

Where to start?

PCs run more of the software programs your customers use most.

…As compared to what, ARM? Nice how they can’t separate hardware from software. Of course, Linux runs OpenOffice.org and Firefox just fine. I wonder how many customers are using those?

Peace of mind

With Windows 7, your customers can feel confident in their purchases and know exactly what they are buying.

That’s excellent news! I wonder if this means Microsoft is finally over their GPL allergy, or if they went with a more liberal license such as MIT/BSD. Because, of course, the only way I can know “exactly what [I am] buying” is if I am able to inspect the source code of my software. Otherwise how do I know it isn’t filled with hidden back doors, security vulnerabilities and anti-features? Not to mention that “purchase” and “buy” don’t need to apply to Linux, since there are many free (gratis) distributions.

Regular updates

Windows is regularly updated[...]

That’s odd, I have the strangest feeling of déjà vu. Maybe it’s because I already talked about updates? While I can’t fault this statement at face value, the implication is wrong. Not only does Linux (as in the Linux kernel) also get regular updates, most GNU/Linux distributions feature regular updates for the entire system – every piece of software you have installed – not just the core OS.

Free downloads

Windows offers free programs for download to help keep your customers’ PCs safer

Oh, the audacity! Most GNU/Linux distributions would end that sentence at “…for download”; last I checked, Microsoft still charges for their office suite. And, while it’s true that there aren’t as many “programs to help keep PCs safer” for Linux, that’s because they aren’t needed on Linux (and the ones out there are largely also free – and not just gratis, but Free as in libre as well).

There’s no guarantee that when security vulnerabilities are discovered, an update will be created.

Yup. Right on the money. Wait, that was supposed to be talking about Linux? Those two-year-old critical unpatched vulnerabilities I keep hearing about in Windows must have confused me.

What shall we take away, they asked?

Really, Windows has one, and only one thing going for it… critical mass. For better or worse (usually worse), Microsoft has had a near-exclusive monopoly on computing for the last decade or so. But that’s changing. They’re behaving more and more like a wounded, cornered animal, and one has to wonder why…

This too, shall pass.

“Ethics? We’ve heard of it” — Microsoft

“You know what Microsoft’s problem really is? They’ve lost the ability to feel ashamed.” — Pamela Jones

So it seems Microsoft has taken it upon themselves to “educate” Best Buy employees about the numerous “benefits” of Windows 7.

I’m not surprised Best Buy is going along with this.

I’m surprised they needed Microsoft’s help.

The thing is, back before I got my current job, I interviewed with Best Buy once (to be a sales floor associate). I think I know why I didn’t get the job. See, there was a question about how to help a customer secure their computer.

Any guesses why “well, let me tell you about these free tools” didn’t go over so well?

Best Buy’s priority (indeed, that of most corporations) is not the customer. It is to make money. Microsoft may be the most egregious (or at least the best known) example of putting profit before people, but they’re hardly alone. And so it is no surprise that Best Buy would lie to make a sale.

They don’t care about the customer, they don’t care about ethics, and they have absolutely no problem with dishonesty and even outright extortion. It’s all about the money for these people.

As far as what Microsoft is up to… Scott Adams hit the nail on the head.

I haven’t run Windows as my primary OS at work almost since I started my current job. For quite some time, I ran it on a secondary machine, using the excellent x2vnc to drive the box from one keyboard and mouse. When that machine died, I invested in moving it over to a virtual machine.

Some time ago, I got fed up with Windows XP crippling my system’s overall performance. See, IT forces Windows machines on the domain to run McAfee anti-virus. Given how often I use Windows (and how I got in the habit of logging out when I am not checking mail), it would tend to happen that McAfee would insist on doing a complete system scan all the time. This, of course, caused the virtual machine’s CPU usage to hover over 50% and pegged the system’s I/O, making it painful to even switch windows (on the host, even), let alone get any work done. There’s another story there, but suffice to say, I haven’t fired up XP in some time.

Today I fired up old XP again to grab some files off the machine, and maybe to import my Outlook mail archives into Thunderbird, so I could use them on the new Linux VM. After watching the performance go from “bad” to “abysmal” (several seconds just to scroll a file list?), I realized the problem. Okay, so I’ll fire up Task Manager and kill the never-to-be-sufficiently-cursed McAfee.

“The operation could not be completed. Access is denied.”

What?

Okay… if I can’t kill it, at least I can tell it to be nice and quit hogging all my resources… so I change the priority (it’s currently one step below Real Time, no wonder it kills the system!) to the lowest setting.

“The operation could not be completed. Access is denied.”

Excuse me? I am logged in as local administrator. This means I should be able to control my machine, but Windows doesn’t let me. On Linux this would never happen. Now, it’s not unheard of on Linux for a process to get kernel-locked (i.e. the process is stuck in an uninterpretable kernel call – in my experience this tends to happen when an NFS server goes down), but Linux would never tell me I can’t do something because I don’t have permission. On Linux, when I am root, I am root, in total control of my machine.

Oh, yeah, and then there is the “updates have been installed, you need to restart your computer” nag message, that I have to click on periodically or XP will decide to restart without my permission.

Linux and Updates

2009/08/24

One excellent feature of Linux that Windows needs to emulate is managing updates. Most Linux distributions have an update tool that handles updates for you, not just of the OS (whatever you take that to mean on a system that’s built from parts from many diverse suppliers) but for everything installed on your system, so long as you installed it from your distro’s package repositories. (Most users won’t ever need to go outside of the repositories.) You can even configure automatic updates if you like, but unlike Windows, the OS doesn’t pressure into turning them on. (Most of the time it doesn’t turn them on automatically, either, which Windows is known to do. I can’t say “never” because there’s been at least one instance where it did, but it was a bug, and you’d better believe it got fixed.) And while “user friendliness” is pushing more distributions to adopt “updates are available” messages, you can always turn them off, and Linux will never reboot without your permission due to updates. You might get prompted that you should reboot, but you don’t have to.

See, Linux handles updates (more specifically, in-use files) better than Windows. If you’re a Windows user, you may have seen “file in use” errors. Except for the occasional application that implements its own concurrency-prevention methods (OpenOffice.org comes to mind), you simply don’t see this on Linux. That’s because Linux has no problem deleting an in-use file. On Windows, you can’t do that. On Linux, it just detaches the file from the file system, and cleans it up when whatever had it open either closes it or goes away. This is why, on Linux, it is easy to do updates. You simply replace the old application with the new one. With a few odd exceptions (most notably Firefox), you can keep using the application because the file isn’t actually deleted immediately; you’ll get the new version when you restart the application. (The reason it sometimes doesn’t work is if an application reopens a file that has changed since the application was started.) So you never have to reboot after updates. For most applications, restarting the application is enough. Only for the kernel and a few core system services do you not see the benefit of updates until you reboot.

My eyes! MY EYES!

2009/08/17

So a coworker was showing me Windows 7 today. Besides that it still looks like Windows (what, still no virtual desktops?), they’ve obviously been stealing from compiz (about time, only took them ten years or so).

Only one thing jumped out at me in the brief tour… the wallpaper. Specifically, the wallpaper that looks like it was made by a bunch of five year olds on crack. I don’t want to know what they were thinking when they picked out the “art” set, but it’s in the category of “things I would have been happier not seeing”. The other collections weren’t quite such an occular assault, but still, a lot of their contents were mediocre-at-best photos… the sort of thing you’d find on kde-look.org.

Follow

Get every new post delivered to your Inbox.