From Out There


Archive for September, 2009

Freedom 0: The freedom to kill people

Wednesday, September 30th, 2009

Continuing from my weirdly popular Windows 7 mini-review (someone actually read that? It’s a strange feeling for a blogging hermit like me) I’m trying to bang together a few articles about the four freedoms that are important to Free Software. On one hand, I always think that it’s clear what the distinction between “freeware”, “Free Software”, “open source” and “public domain” is. But often I find myself talking to people about one thing, with people hearing the other.

cemetery2

This became clearer than ever in the discussions that followed my Win 7 article. Of course the article was mainly about technical things and UI design, but at the core what’s important to me is the freedom.

Here is the first of four articles, each focusing on one of the freedoms of Free Software.

Freedom 0: The freedom to kill people

The first (or zeroth) freedom of the four freedoms of Free Software is:

The freedom to run the program, for any purpose (freedom 0).

As so often with these freedoms, the sentence looks simple, harmless and obvious. “Hah, so what?”, you may think, “I can do that anyway with any software”. Let’s see if that’s true. We assume for the sake of the argument that any software we look at in this article is “free” according to the other three freedoms and only freedom zero is in question.

Let’s look at how a piece of software that is in millions of households cuts into freedom 0: Windows Vista. The end user license agreement for Windows Vista Home Basic, Home Premium and Ultimate contains many clauses that limit your freedom and prevent you from running it for any purpose.

For example in section 2:

c. Alternative Versions. The software may include more than one version, such as 32-bit and 64-bit. You may use only one version at one time.

Even though you have bought the software, you may only run one version of the software at one time. Running a virtual 32-bit instance of Vista inside a 64-bit instance is not allowed, for example. More on virtualization later.

In section 8:

you may not:

  • work around any technical limitations in the software;
  • rent, lease or lend the software; or
  • use the software for commercial software hosting services.

So the license prevents you from using the software in certain types of business (rental, software hosting).

In section 16:

Software Other Than Windows Anytime Upgrade. The first user of the software may make a one time transfer of the software, and this agreement, directly to a third party. The first user must uninstall the software before transferring it separately from the device. The first user may not retain any copies.

You may only sell the software once, if you are the first user. Any subsequent users may not sell the software.

In the addendum about Vista Home Basic:

DEVICE CONNECTIONS. You may allow up to 5 other devices to access the software installed on the licensed device to use File Services, Print Services, Internet Information Services and Internet Connection Sharing and Telephony Services.

So you may not connect from more than five other computers to the computer running this software to do one of the listed things. This prevents you from using the software for the purpose of building a network, e.g. as a proper file server.

USE WITH VIRTUALIZATION TECHNOLOGIES. You may use the software installed on the licensed device within a virtual (or otherwise emulated) hardware system on the licensed device. If you do so, you may not play or access content or use applications protected by any Microsoft digital, information or enterprise rights management technology or other Microsoft rights management services or use BitLocker.

If you are using Vista Home inside of VirtualBox, you are no longer allowed to play all of your purchased music/videos. If any of your music is under Microsoft DRM, you may only listen to it on a real hardware PC. Same for video.

And finally, from the export regulations:

In general, Microsoft products may not be exported to Cuba, Iran, North Korea, Sudan, or Syria.

You can’t sell the product to anyone in these countries. This is because Microsoft operates under US law, and the US embargoes these countries (please correct me if I’m wrong).

Now we’re always picking on Microsoft, and that’s not very friendly, so let’s pan the camera over to Apple for a second. If you thought Microsoft’s license is restrictive and bizarre, wait until you meet this product of the Apple legal department, the end user license agreement for Mac OS X Snow Leopard.

This software may be used to reproduce, modify, publish and distribute materials. It is licensed to you only for reproduction, modification, publication and distribution of non-copyrighted materials, materials in which you own the copyright, or materials you are authorized or legally permitted to reproduce, modify, publish or distribute. If you are uncertain about your right to copy, modify, publish or distribute any material, you should contact your legal advisor.

Okay, I confess. I just wanted to quote this oddity here because it’s so weird, not because it actually takes away your freedom zero. Isn’t it odd for Apple to explictly say “observe the law” in their license? They might just as well say “drive safely”. This sentence says “you may exert all the rights granted to you under the copyright law of your country (if any)”.

Of course the implied meaning is different: If you use our software to break copyright law (if any) of your country, we no longer license the software to you. Weirdos. Anyway, let’s move on.

you are granted a limited non-exclusive license to install, use and run one (1) copy of the Apple Software on a single Apple-branded computer at a time.

You may only run the software exactly once (like with Microsoft), but Apple has the additional restriction of forcing you to run it on Apple hardware. You may not run it somewhere else.

you may use the system voices included in the Apple Software (“System Voices”) (i) while running the Apple Software and (ii) to create your own original content and projects for your personal, non-commercial use.

You are forbidden from using the voices to e.g. read out text messages sent to a phone system your company offers.

I acknowledge that some of the points I’ve mentioned are not entirely related to the purpose of running the software, but also the mode in which the software is run. I picked license agreements used by two large software makers as examples. Smaller software makers include more bizarre restrictions on the purpose for which their software is used. You have perhaps encountered them before. The point is that there are restrictions on freedom number zero in non-free software.

The freedom to kill people

To give a counterexample, and this is where I take the title of this article from, Free Software will never tell you not to use the software for a particular purpose. You can run the software to kill people — the Linux kernel is used to kill people by being employed in weapons systems. You can run an abortion clinic on Free Software. No word in the license prevents you from doing this.

But Free Software is also used to save people’s lives. Computed tomography scanners made by GE run GNU/Linux. So do some MRI scanners, e.g. by Philips. I’m sure there are other medical devices that do as well, but I don’t know about those.

The point is that freedom zero swings both ways. You may use the software for good, you may use the software for evil, you may use the software for anything, even for helping a Syrian run an Internet Café. The freedoms are non-discriminating. There is no inherent ethical or moral component in the licenses. This ethical/moral part comes much later, when you look at the positive social and psychological consequences that Free Software has.

We must leave the licenses as ethically/morally clear as possible. We must not tell people to “drive safely” in a software license, like Apple does. I think a part of the reason for the success of Free Software licenses is that they are so completely pragmatic in themselves, not moralistic, not full of sermons.

Not about tree-hugging

If you believed that FOSS is mostly about tree-hugging peace-loving hippies and that surely the licenses must have some peace-and-happiness component, remind yourself of the weapons engineer that uses the exact same source code.

Military cemetary photo is CC-By Redvers

Microsoft is jealous of Ubuntu’s release parties

Friday, September 25th, 2009

Note: This is a cross-post from my personal blog.

I’m a bit late to the party (ow, that one hurt) on this, but it’s fun to see none the less.

If you’re an Ubuntu or Debian user, you might know the tradition of release parties. If you’re neither, you ought to come to one. On every new Ubuntu release, people all over the world get together to celebrate. Sometimes there’s just plain ole partying, sometimes more organized info events, sometimes install parties. People usually look like they’re having fun, and there is no bribe from Canonical for having these parties.

I’ve helped organize two of them myself, and while I totally messed up the schedule on the first one (I’m still sorry about that), we had fun and information and community stuff. The Free Software developers themselves gave talks, you could poke a real Amarok coder, there were people from Edubuntu setting up a cluster of diskless thin clients that anyone could use to try Ubuntu during the party, we drank a lot of FreeBeer; it was great, a manifestation of the oft-quoted Ubuntu community spirit in the flesh. This isn’t an isolated event, parties have been happening since at least 2005, and Debian has had them a decade ago as well.

Now cut to 2009. The Ubuntu community is preparing for the 9.10 release parties all over the planet. Meanwhile at Camp Microsoft, they want to copy our cool. I can see how Marketing cooked that one up. “Hey, if those smelly geeks can have so much fun, how much more fun could you have with Windows 7 at a party! Let’s call it… Oooh, here it comes: ‘Windows 7 Launch Party’!”

Yep. Sure looks enjoyable. Just my kind of weekend, exchanging false pleasantries with a committee-selected family (complete with token black dude) who all talk like they’re on Valium.

24sep09_mshpeng

I feel dirty even looking at the video, and not just the bleeped one.

Microsoft are sponsoring a copy of Windows 7 for those who officially register their Win 7 launch party with the company, by the way. I’ve never needed a bounty for organizing an Ubuntu party, those were fun enough all on their own, without the need for compensation.

How long until MS and Apple finally copy the more important aspects of our operating systems and our communities? The freedom, for example?

Windows 7 review — from a Free Software activist

Sunday, September 13th, 2009

Note: This is a cross-post from my personal blog.

I was curious to see what the final Windows 7 release feels like.

Remember, I’m a hardcore Free Software activist, but I’m also a gamer. And Windows is the only serious operating system for games. Not because the system is especially suitable for gaming (a non-multitasking OS that passes all control to the game’s threads might be much better), but because most game developers target Windows. In gaming, only the sheer market size counts, weak technology be damned.

win7_shot_1

Anyhow. Coming from a very happy experience with KDE 4.3, I had a modern desktop system to compare Win 7 to. And as my employer is full of Mac OS X, I know what that OS feels like, too. I myself have more than twelve years of experience with FOSS operating systems like GNU/Linux and FreeBSD, so I thought I would be in a good position to review Windows 7 from the mixed perspectives of a gamer, a user, a developer and a connoisseur of many operating systems.

If you wonder what FOSS means (yes, I this is for you, new reader), it stands for Free and Open Source Software. I myself like to call it Free Software because I agree with the ethical/moral components. This is something that plain “open source” lacks, but because I don’t mind the OSS people, I call things FOSS. There, we’re all happy now 🙂

When I talk about “FOSS systems” I mean the Free Software and/or open source operating system families: GNU/Linux, the BSD family and OpenSolaris.

Some of this is tongue-in-cheek (you’ll notice), but for the most part, I’m dead serious.

Installation and setup

Installation went smoothly, Microsoft have almost caught up with the FOSS systems now and it’s nearly as easy to install Windows as it is to install GNU/Linux. The installer is just not powerful; you don’t have any decent partition resizing tools included, you can’t play Tetris or browse the web while the system installs, the silly thing can’t even install a decent bootloader. The Windows boot manager still believes that only one system needs to be installed on a machine. It flat out replaces any existing bootloader with itself, and then only displays Microsoft operating systems for booting.

This is plain rude, that’s one thing. But it also shows how limited Microsoft’s bootloader technology is.

The FOSS systems ship with bootloaders that can effortlessly boot ay number of operating system from any vendor. The more user-friendly systems such as Ubuntu even recognize Windows installations and automatically set up a boot menu entry for each of them.

I would expect a partitioning tool that you can run from the CD in this operating system. It was the Professional version of Windows 7 I tested; hopefully this is aimed at professionals. As a professional I’d expect a CD-bootable partitioning tool and a decent bootloader, because all other operating systems have one. The reason it needs to be CD-bootable is that you cannot modify a partition you have booted from. Windows does include a rudimentary partition editor that you can use after booting, but it only supports very few filesystems compared to e.g. GNU parted and its GUIs.

After three reboots (why three reboots? Why isn’t one enough like with FOSS systems or OS X?) I was greeted by a Win 7 desktop. Nice! Unfortunately, we have the German version and there’s no way to change this. No language packs, it’s single-language only. That’s quite weak. Other operating systems let you choose the language before installing and it’s no problem to have multiple languages installed side by side.

Even though the language is set to German, the help files that appear are sometimes German, sometimes English. Not a lot of consistency here. Most other systems perform better in this area. On GNU/Linux it’s a mixed bag because some program-specific help only exists in one language, but this is the same problem on OS X and Windows. The advantage is that with a FOSS operating system, I could at least take part in the translation. With Windows, this is impossible.

The system installation disc now includes some drivers, just like GNU/Linux has always done, only with the difference that they are non-free on Windows. Oh, and the disc is three times the size of a typical Ubuntu CD. But I digress. It’s nice to see that the graphics card actually manages more than 1024×768 out of the box now, like on other systems.

After installation, the system helpfully prompted me to find some antivirus tool. Even though it’s the German version, I wasn’t offered Free Antivir by Avira, the most popular free antivirus tool in German-speaking Europe. I had to download this myself using Internet Explorer 8. The download stopped halfway through. I have no clue why, this usually doesn’t happen on this hardware. I tried from Mozilla FIrefox instead, and the download came through. I tried to install the thing and a window popped up asking me to give administrator privileges. These privileges are given by simply pressing the “yes, fine, sure” button. No password. Questionable security, probably a response to silly people who couldn’t see why you had to enter a password for such actions… I’ll get back to that later.

Windows Update wanted to install a few urgent updates. It downloaded the files and tried to install once. The installs all failed. It didn’t tell me why. The system log only showed “an error occurred while installing…”. I retried and one install went through, the other failed. After another try, all installs went OK and the system wanted a reboot. I had known such erratic behavior from earlier versions of Windows, but I would have hoped that they could provide some more information on their latest release. On the other operating systems, you can at least find out what went wrong in such situations. Failing everything, you can strace/dtrace the binaries. And you have the source code so you can dig into the problem.

It left me with a feeling that this OS is unreliable. Not something I like to feel, concerning an OS.

Windows Update wanted to reboot after installing the updates. Why does it need to reboot? Other operating systems only need to reboot when the kernel is replaced, once every few months if it’s a bad year for kernels. This is odd. Do the server versions of Windows need that too? Creepy. How can you run a server park like that?

I tried to install DirectX 10, but the Games for Windows website was down. A few hours later, it worked. No explanation was given.

I tried running some older games that were on the hard drive before. Windows isn’t very good at just running a bunch of executables, and it failed to upgrade from XP to Win 7, so all the games that were installed before are now helpless as a jellyfish in the desert. Since Windows has no clue about dependency or package management, the only choice is to reinstall the games from their original installers. This is a lot more annoying than a simple apt-get install foo on a naked system.

I realize that Windows users are used to this limitation of their operating system, but coming from systems that can do this better, I don’t know how someone could put up with it. I only play games on Windows, so it’s not particularly bothersome, but even installing a bunch of games can profit from proper package management, such as the one that e.g. Debian-like systems such as Ubuntu are built on.

But it’s beside the point anyhow, as with a UNIXoid system I could have just upgraded my system, leaving the originally installed applications alone (they would have been upgraded with the rest of the OS). I have one server whose Debian I’ve upgraded since 1998 with no real issues. From XP to Win 7, you can’t do that.

Interface look and UI design

Fonts look rather horrible, even with ClearType font smoothing and after a bunch of attempts of recalibrating it. Switching it off makes things look even worse. Windows font rendering is not quite as nice as the one found in Mac OS X or the FOSS systems. Characters on Windows often look fuzzy and not evenly anti-aliased. Kerning seems to be a bit random sometimes as well, although it depends on the font.

To keep things fair, I’m only looking at Microsoft’s own fonts, but the odd kerning happens even there. While trying to provide screenshots for this section, I found out that Windows does not include a screenshot tool and the supplied Paint program is very limited (it can’t take screenshots either, but you can paste them there via PrtSc and paste). In contrast, many FOSS systems ship with The Gimp, KDE ships with Ksnapshot and Krita. All of those programs are powerful compared to what’s on Windows, and they are free (as in freedom and beer).

Here are some font tests so you can get your own impressions: Linux with Konqueror, Linux with Firefox, Windows with Internet Explorer 8, Windows with Firefox.

The system overall looks a bit too mixed to be beautiful. Window content is grey and boring, borders are blurred and stylish. The dock (what the task bar evolved to) uses fancy vector-based shading behind various icons, while other areas of the system don’t. Each on their own, the interface elements might look nice, but the mix feels very awkward. It’s like a room with 1960s spherical chairs (with orange cushions) placed around a 2008 Ikea living room table, on an 80s synthetic flokati rug. KDE 4.3 and Mac OS X have much more style and offer a well-rounded appearance.

The Start menu contains a few useful options, such as the ability to search by keyword in programs and files. There are also shortcuts to various areas of the system (your homedir, the system settings etc.) It’s not as powerful as KDE’s kickstart, however. In Kickstart, things have meaningful icons and functionality is arranged into four panes, each with its own topic and specialized UI controls that make getting things done easier. KDE also makes it easier to home in on an item, with larger interface elements. If you want to increase the size of Win 7 start menu elements, you need to increase the font size all over the system. Might not be what you want.

The task bar tries to appear as if it had some of Mac OS X’s functionality, but without delivering any of it. For example, you can’t stick folders in there to make them spring-loaded. You can put programs there, and right-clicking their icons then reveals extra taskbar-related functionality (usually a simple context menu). It’s like right-clicking e.g. Amarok’s notification area icon in KDE.

The icons in Windows 7’s task bar are nice and big, and their clickable areas extend all the way down to the bottom-most pixel of the screen, thus making good use of Fitts’s Law. Hovering over a taskbar icon lets you pick which of the application’s windows you’d like. This is really necessary on a window-heavy system like Windows, and it’s well done. You can get the same (and more) functionality from KDE, and a more stylish way of doing it from the Mac OS X dock on OS X or awn on the FOSS systems.

Here’s a screenshot of what happens when you hover your cursor over an application’s icon. You can then pick the window you want from the set of thumbnails. Very smoothly done:

Screenshot of hovering over an icon of an app that has multiple open windows

Windows makes sure an icon placed in one area of the taskbar stays there, though. This is better than on OS X, where the center-aligned dock means that you can never be sure where a particular icon is. As soon as you add another program to the OS X dock, the relative positions of all others change. This is a fundamental UI design problem of OS X. The Windows UI design team elegantly avoided this trap.

Windows 7 doesn’t seem to produce previews of files when hovering over them, but in the filesystem browser you can enable a preview pane that fits the same purpose. It works for text files, and for video and audio files known to the system. That doesn’t cover too many formats out of the box. A similar feature is present in KDE’s Dolphin file manager, and the preview pane is enabled by default there.

You are often prompted to give your OK to administrative actions on Windows 7. This in itself is fine, a user should know when they are stepping over user boundaries and entering privileged areas. But there are two problems: The dialogs (by default) can just be “OK’d”. No password needs to be entered. This has a bad effect on users. As we know from user interface design research that users normally click away any dialog that pops up without reading it, that means the average Windows 7 user would give administrative privileges to anything that asks, without thinking.

KDE, GNOME and Mac OS X handle this much better. On KDE and GNOME the screen darkens around a password entry dialog, and the dialog is modal, so the user cannot escape and must make a conscious decision.

Another problem with Windows 7’s password prompt is that it often appears in the background. Perhaps that was done not to disturb people (since Win 7 has to prompt so very often), but it would be nice to receive some sort of notification that some action is required. Otherwise a task you though would run through in the background is stopped and waiting for administrative privileges forever, while you cheerfully continue working for hours in the foreground.

Customizing and installing

Visual customizability is okay. There are themes and colors to choose, the usual. KDE and GNOME both offer more visual customizability, but I don’t really see this as a core function of an operating system (what ARE core OS functions these days?), so no complaints here.

Functional customizability seems low all over on Win 7. You can’t really get the system to behave like you want. Instead, you need to behave like the system wants. Contrast this with KDE’s extensive configuration system where every little keyboard shortcut and fine nuances of window behavior can be tweaked until your eyeballs fall out. OS X is similarly weak in this area out of the box, but add-ons to tweak things can be installed. Doesn’t count, though, I’m looking at out of the box functionality here.

Installing programs on Win 7 is as awkward a process as ever. This is about the same as with previous versions of Windows. Examining the control panel only gives you an option to uninstall programs, not to install them. There is no directory of available software. Instead, you have to find the vendor of the program you’d like to install and obtain the software from e.g. that vendor’s website. Or a CD or something. Then you have to run some installation package, which might look and behave differently from vendor to vendor, not really increasing your confidence. You don’t even know whether it’s trustworthy, either, no cryptographic signature! After running this, the program may or may not be installed. There isn’t any dependency management at all.

This is a far cry from what’s standard in any major Free Software operating system. You get a nice list of tens of thousands of pieces of software to install, and you just pick what you like. Some Linux distributions like Linux Mint even offer a companion website to help you pick and rate software. Packages have dependency management and are cryptographically signed. Windows’ approach of single-use installer packages and lack of centralized repositories is crude, feels like something from the 80s.

Included tools

I am typing this in Win 7’s included text editor, and it has been acting strangely from time to time. When I select some text, some other text might slip down one line and ruin my selection. When I save via Ctrl-S, my cursor often jumps back by a random number of characters (2 – 4). Sometimes selecting text becomes impossible as well (the cursor freezes when clicking anywhere in the window). Copying the text and pasting it into another application (e.g. a browser) makes random newlines appear all over it. It looks messy, like a battlefield. My text was thoroughly raped, even the copy saved to the file is broken, and only Windows 7’s editor can even display it now.

I don’t know how, but Microsoft managed to break ASCII text files. That’s an achievement.

I can’t try to find and fix these problems because Microsoft doesn’t provide the source code (or a permissive license) for their text editor. It doesn’t really raise my confidence in an operating system if the included text editor doesn’t function correctly. Not only do the other systems have more powerful editors included (and ones that don’t malfunction), on the FOSS systems in particular it’s easy to find specialized text editors for particular purposes. KDE has its own framework for text editing, which e.g. the Kate editor uses. Very pretty, very powerful.

The default text editor on Windows 7 can’t do the job properly, so a third-party one would have to be installed. This is where the problem with the lack of software repository and packaging comes back into play.

I’ve also briefly looked at the included image viewer. It’s quite adequate, but not as powerful as e.g. Gwenview on KDE. WordPad, the included word processor, should be decent enough for most people. Most FOSS systems come with OpenOffice preinstalled (or an easy to install package), so they still have the advantage here.

The included media player appears to be a resource hog and can only play very few media formats. It couldn’t identify a Matroska file correctly, and then failed to download the appropriate codecs, even though it acted as if it could. A third-party player (like VLC) is necessary if you have any sort of variety in your media collection.

General problems

The largest problem with Windows is of course that it’s non-free. You as a user are severely restricted in what you can do with the operating system. You cannot give copies to your neighbor, you cannot make modifications to the source code, you can’t even look at it. There is only one company in control of the system, no outside contributions are possible and if that company decides to e.g. force you into an upgrade, you have no choice but to comply.

This also means that competitors on Microsoft’s platform are helpless and at the mercy of Microsoft. If Microsoft wants to deliberately break Java compatibility on their platform to hurt Sun Microsystems, they can do that. And they have done that, by the way.

These are just a few examples of how non-free software distorts the market and hurts you as an individual.

If you want to read a few more examples, the GNU project has a bunch of nice essays.

Conclusion

Windows 7 is neither overly powerful, customizable or modern. It does avoid many of the problems of Windows Vista by introducing aggressive prefetching and changing the UI design so actions require less clicks, and this makes the system appear faster. This comes at the expense of chewing up a lot of RAM, so a gaming system should probably have 4 GB or more.

Windows 7 makes a good OS for gaming simply because so many games are available on it. There is no other reason.

Windows 7 makes a reasonable OS for everyday work (office suite, web browser, e-mail, watching media files, simple games). It is RAM-hungry while doing that, although the same could be said about a fully customized KDE 4. Media file support is very weak out of the box. If gaming is not a priority for you, you would be better off replacing Windows with one of the FOSS systems. That gets you freedom in addition to an operating system that does everything you need.

For a programmer, Windows 7 is a straitjacket. You can program on it, but you can’t program it. No source code is available, no decent license. The FOSS systems are far ahead here.

As a piece of software given to a human being, Windows 7 is a trap. It is full of non-free software, and you cannot follow your natural instinct to share and pass it on to your neighbor, otherwise you act against the law (and the license). By purchasing and using the system, you surrender much of your freedom and are under the control of a single company.

If many members of society do this, the market stays as distorted as it is right now. Monopolistic entities can rule like czars because it’s them who provide and control the infrastructure.

It might not be news to you, but if you want to retain your freedom, Windows 7 is not for you.

Alternatives

The following systems don’t restrict your freedoms and don’t manipulate markets:

  • Ubuntu GNU/Linux, an easy to install/use GNU/Linux system
  • gNewSense, a GNU/Linux system similar to Ubuntu, but where any and all non-free software was removed
  • FreeBSD, a powerful UNIXlike system for professionals
  • OpenSolaris, another powerful UNIXlike system, this time by
    Sun Microsystems

Update 1, 2009-09-15

Following some discussion on the FSFE Blogs version of this article (and some additional research), I’ve updated a bit. Here’s a list of changes:

  1. I didn’t see the preview pane option in Windows’ file manager. Now that I’ve discovered it, I changed the section that claimed there doesn’t seem to be one.
  2. I clarified the section about the partitioning tool: I expect one to be on the CD when using an operating system aimed at professionals. This is Win 7 Pro, so I suppose this is aimed at professionals.