From Out There

Thoughts from years of using Free Software in the wild

Freedom 0: The freedom to kill people

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

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

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.

CH Open Source Awards 2009 — apply with your project

August 5th, 2009

I have the honor of being in the jury of the CH Open Source Awards 2009, organized by /ch/open.

If you’re a Free Software/Open Source/FOSS/FLOSS (you get the idea) project from Switzerland, apply for the award!

The government trojan “Bundestrojaner” will open its source code

July 15th, 2009

Cross-post from my personal page.

Carrumba writes that he has received permission to publish the source code of the Bundestrojaner.

This trojan horse was built under contract from the Swiss government, and among other things, it was one of the first pieces of malware that could listen in on Skype calls.

It will be very interesting to see this. As Carrumba writes, it will finally confirm (or put an end to) the rumors that were going around back when the Bundestrojaner was first released. It will be a chance for anyone “who is also curious what the root of all the rumours was” to see just that.

How competition in the browser market helped all of us

July 2nd, 2009

Cross-blogging from my personal blog.

browserlogos

Remember the 90s, when Microsoft had illegally established a dominant position in the browser market and the dominant browser was MSIE? You might think that was harmless, but it has caused several problems:

  • No competition means websites were written for a specific browser instead of to a standard (that the W3C publishes)
  • MSIE (purposefully?) broke this standard in order to make sites written for MSIE incompatible with other browsers and further strenghten Microsoft’s position
  • MS started adding tags to MSIE that didn’t exist on any other browser. Not for the good of mankind, but to lock people onto the MS product
  • Lack of competition meant that innovation stagnated
  • There are plenty of security holes in MSIE, and there was little incentive for MS to fix them
  • Ask a web developer to tell you just how broken MSIE’s HTML rendering engine is

Yesterday, the Mozilla Foundation released Firefox 3.5 with many new features (mostly under the hood) and speed boosts. People have noticed this new competition and are no longer happy with an old and broken browser like MSIE 6.0, which used to be the default for many. When we look at our website stats at work, about 35% of our users use Firefox, another 35% use Safari and only 25% use Internet Explorer (either 6, 7 or 8). This is excellent news because it is living proof of competition.

If you think that competition doesn’t make a difference, you’d be wrong. Look at what happened thanks to competition:

  • Stability on the web has much improved. Google released their Chrome browser, which runs a separate process for every tab you open, so that only the affected tab crashes if e.g. a plugin messes up, like Adobe Flash often does. Other browser makers are following suit.
  • Google’s Chrome had an extremely fast JavaScript engine, making JavaScript-heavy sites such as Flickr run faster there. There was little competition in this area before Google started the race. Now Firefox 3.5 has caught up with Google Chrome 1.0 in speed, and further improvements in all camps (including MS) can be expected.
  • Mozilla’s rendering engine (Gecko) and various JavaScript engines have been ported to all major platforms. Developers for those platforms have an excellent, open source rendering engine available to use in their projects.
  • The KDE Foundation’s HTML engine (KHTML/WebKit) is used by Apple in Safari and on the iPhone, by Nokia on their mobile phones etc. It’s another Free Software HTML rendering engine. So even among Free Software engines, there is competition!
  • Security is much improved, as pointing at security holes in the competition’s browser can now be used as a marketing tool. Browser developers have improved their QA processes and even Microsoft no longer allows itself six years to fix the browser.
  • Web developers had been frustrated with MSIE’s broken HTML renderer for years. Since there is competition, there is pressure on Microsoft to start following the web standards. Firefox, Chrome, Opera etc. do a much better job at using web standards, but no one cared for a long time since they had to write broken HTML code in order to support MSIE users. Now web developers discovered their pride, started writing according to web standards (with the help of influential figures like Jeffrey Zeldman) and boom, suddenly good standards support is an important feature for a browser. Someone obviously woke up the developers at MS as well, because IE 8.0 does a much better job at standards support than the previous versions.

So if you ever think “bah, it doesn’t matter that there’s a monopoly, I wouldn’t be better off without it”, think of these points. Yes, it does matter. The lack of competition in key IT markets makes a massive difference. Imagine if we had the same situation in operating systems as we have with browsers, a 30/30/30/10% split of the market. Standards would be followed more closely, systems would interoperate better and there would be an actual incentive to innovate and improve. And most importantly, you as an individual or company would have more choice.

Some people think this is just a mantra repeated by free-market fanatics, but it is true, as you can see with your own eyes in today’s browser market, with just the few examples mentioned above. Oppose monopolies in computing. They are bad for you.

Logos used in the image above are the property of their respective owners.

Norwegians protest against OOXML

April 10th, 2008

While Switzerland’s people can see nothing wrong with the scandalous acceptance of MSOOXML as an ISO standard, Norway sees it differently. Perhaps that’s because Norway is more successful in the international software business (Opera, Funcom, Trolltech etc.) and therefore has something to lose, while Switzerland has a very passive and consumerist attitude.

But never mind the reasons, Norwegian people were smart enough to gather in front of the ISO SC34 meeting for a demonstration to kick OOXML out of ISO. One sign even asks Neelie Kroes to intervene. Seeing that the EC has started an investigation into the irregularities encountered during the OOXML voting process, it looks like she read the sign. Yes, throw IS 29500 out. It’s a broken specification, and there is proof.

If any other company had submitted this spec, they would have been sent back to the drawing board to fix all the defects. But Microsoft has the power and the money to manipulate and to bribe, so they can undermine ISO’s integrity and force steaming piles like this through an erstwhile respectable standardization process.

The general idea being tossed around by leaders of the Swiss standardization body is now "let’s all be happy and hug each other, and start to fix IS 29500 together". Come again? Why should we waste our time and money to fix a broken product that we do not even control, because of the patents on it and because of the proprietary extensions that are at any point possible? Why shouldn’t we instead invest this time into making the existing ODF standard even more interoperable and accessible?

It’s not impossible that IS 29500 at some point is mature enough, but the problem is that it should have been mature enough to begin with. Microsoft should not have submitted such a broken spec and come through with it. That they have shows that the standardization process has failed.

Link via noooxml.org.

Gbarcode Support for Ruby FPDF

January 26th, 2008

I was going mad fixing a bug in a very convoluted barcode printing feature in the equipment management system we’re developing. After a while I gave up — we must have triggered something deep within Rails or Ruby, and it wasn’t going to go away soon. The details are complicated and boring, but just know this: Instead of fixing the bug, I completely rewrote our barcode handling and as a side effect developed an extension for Ruby FPDF to support Gbarcode 🙂

Please give it a try if you need barcode support in your PDFs and let me know what you want to improve and what fails horribly for you.

I wanted to send it to Brian Ollenberger to see if he likes it and would like to include it with Ruby FPDF, but his website appears to be down. Anyhow, I would have to clean things up and make it all elegant and sexxay first.

Still, standing on the shoulders of giants is just the beginning. With a dozen lines of code I managed to tie Gbarcode into Ruby, and through that into Rails, and I’m not even a good coder. Free Software rocks! Well, okay, FPDF isn’t technically Free Software, but still. All of this just feels very good, and it gives me a kind of productivity I could only dream of with proprietary software and complicated licenses. I had the whole thing hacked together in less than an hour.

Vow of Software Freedom

January 16th, 2008

I have taken a vow around September 1999, and it is sometimes hard to explain to people, so I’ll write it down here. I said to myself, "From this day on, I shall not use non-free software or secret file formats in my work, ever again." As you might notice, I’m still alive, which means that it’s possible to make a living without those two things. But it’s obviously not so simple, so here are:

Vow of (Software) Freedom: The Details

I will not use:

  • Software for which the source code is unavailable.
  • File formats for which the full specifications are not available.

When will I not use these?

  • When I produce a work product for myself, my employer or other humans.
  • When I share a file with my fellow human being.

Why will I not use these?

  • Because software for which you do not have the source is inherently suspicious.
  • Because software without the source often comes with very restrictive licenses, so I may not exercise freedom 2 and help my neighbor. I want to help my neighbor. I want to give away and improve software. I can’t do that with non-free software, so I see no reason to use it.
  • Because proprietary formats destroy information, stifle competition, are considered harmful, are impossible to implement and are just generally a bad idea, especially in today’s age of information sharing. Giving away files in secret formats only serves to strengthen these formats, so it isn’t wise.

How come this is doable?

Because of the efforts of millions of Free Software developers and yes, even those who call it Open Source. Because of the work of engineers that have their head screwed on properly and strive to publish specifications of their file formats.

Today, and since many years, you can have an entire PC operating system compile itself out of raw source code right in front of your eyes. In fact, several different systems are capable of this. You should be content with nothing less.

It’s your machine the stuff is running on, it’s your right to know what your machine is running and to decide about the formats you save your important information in. Don’t give this right away. It’s probably not a good bargain.

My New TV Runs Linux

January 7th, 2008

Oh yes, I broke down and bought a Full HD TV. What can you do, they’re practically giving them away after the Christmas price hike. And I have other excuses! Old set? A 16 inch one. Plus, I had plans to hook up a PC and watch HD content. Can’t very well do that on an SD TV. The new one is a Sharp LC-37X20E. I know it has red push and I know this has to be corrected either in the signal source or via the service menu, but once you do that, it’s an excellent set with good black levels, fast response and the ability to show a great amount of detail. I’m happy.

It does come with an extra feature though: it runs Linux. When reading through the manual, one of the last pages includes a references to the GPL and the LGPL, and it lists libpng, zlib, the Linux kernel etc. as being included inside your TV. Sharp provides the source at this website. This is a fantastic first step! Sharp sells hundreds of thousands of LCD TVs each year, and they all run Free Software. Sharp is not alone: I haven’t done a formal survey, but I hear that using Linux as kernel and some GNU utilities or busybox is becoming the norm with flat-screen television makers. It makes sense for everyone: They save billions of dollars in R&D because they don’t have to develop their own kernel, and the customer gains the stability and features Linux can provide. It’s certainly win-win.

Now I’m not all happy with the way Sharp is treating this. They are currently making the typical “Free Software newbie” mistake of just dumping their source somewhere on a website and leaving it at that. This makes me believe Sharp is primarily in this game because of the financial benefits they are gaining, not because of any social interests. In an ideal situation, Sharp would have set up a svn server or something where people can contribute changes and then roll out the firmware to new TVs. They do state somewhere that they will review and accept user modificiations, but the way their GPL website looks — it just doesn’t smell right yet.

I’m confident that companies like Sharp will become good players in the Free Software community over time, though. This is not something you can learn in just a few weeks, it takes an ideological shift on many levels of the company, and anyone who has ever worked for something medium-to-large knows how long this may take. At any rate: Thank you, Sharp, for choosing Free Software for my TV. I have it hooked up to an old PC I don’t need anymore. With GNU/Linux, it runs movies at 1920×1080 on that TV without breaking a sweat. It’s yummy to behold what a 100% Free Software stack can do nowadays in terms of media.