Dec 052008
 

I recently encountered a dead blog entitled “Linux Haters” and instantly thought up writing about tedious fan-boys that think that the operating system they like is the best and everyone should use it. I’ve no time for people like that as they tend to annoy rather than educate. I’ve no problem with people who prefer to use Windows, Linux, Solaris or OSX; it is their choice. Of course in the case of Windows, I do have to wonder why 🙂

But one of the links on that blog led to a place that (amongst other things) ranted about how FOSS projects always have dumb names, and that these projects need a big dose of marketing intelligence. He went on to whinge about the word-games often embedded into the project name.

First of all, he misunderstands how many open source projects start – with a geek or a group of geeks deciding they want something different. Either a new package or a variation on an existing one. There are no marketing types in sight, and the geeks involved probably have no great expectation that they are coming up with the next big thing – they are just having fun and hoping to come up with something useful for themselves. So what if they have a bit of fun playing word games to come up with a name for their project ? Not only do many such projects end up disappearing without a trace, but as marketing types have fun playing with words, why can’t geeks ?

Perhaps the names they come up with are not as punchy as a name thought up by a marketing department, but weirdness does have its own value in this area. A name such as Amarok does tend to stick in the mind more than Music Player 52. And over time, formally weird names such as google and yahoo do tend to become more normal if they are attached to popular projects.

Secondly he specifically criticises names invented by geeks for being recursive acronyms … but does that matter ? He specifically names GIMP which is admittedly particularly guilty being a recursive acronym with no termination. But most users won’t care … once they learn that GIMP does images (and most distributions will tell you so in the menu), they are not going to care that the name is an infinitely recursive acronym … they will just get on and use it.

Thirdly he overlooks the fact that some of the names may in fact have “sensible” names but are in fact sensible names in non-English languages.

Finally he tails off into a moderately incoherant rant with more insults than proper facts.

Perhaps “funny” names do put people off, but perhaps not. Most people are in fact more concerned with compatibility (they use Word because everyone else does) or features.

And of course there are more than a few commercial software packages whose name is not entirely sensible … does Photoshop have anything to do with setting up a shop to sell photos? What does Trent do ? Or Cedar ?

Aug 252007
 

If you’re hoping to read about Linux finally getting ZFS (except as a FUSE module) then you are going to be disappointed … this is merely a rant about the foolishness shown by the open-source world. It seems that the reason we won’t see ZFS in the Linux kernel is not because of technical issues but because of licensing issues … the two open-source licenses (GPL and CDDL) are allegedly incompatible!

Now some may wonder why ZFS is so great given that most of the features are available in other storage/filesystem solutions. Well as an old Unix systems administrator, I have seen many different storage and filesystem solutions over time … Veritas, Solaris Volume Manager, the AIX logical volume manager, Linux software RAID, Linux LVM, …, and none come as close to perfection as ZFS. In particular ZFS is insanely simple to manage, and those who have never managed a server with hundreds of disks may not appreciate just how desireable this simplicity is.

Lets take a relatively common example from Linux; we have two disks and no RAID controller so it makes sense to use Linux software RAID to create a virtual disk that is a mirror of the two physical disks. Not a difficult task. Now we want to split that disk up into seperate virtual disks to put filesystems on; we don’t know how large the different filesystems will become so we need to have some facility to grow and shrink those virtual disks. So we use LVM and make that software RAID virtual disk into an LVM “physical volume”, add the “physical volume” to a volume group, and finally create “logical volumes” for each filesystem we want. Then of course we need to put a filesystem on each “logical volume”. None of these steps are particularly difficult, but there are 5 seperate steps, and the separate software components are isolated from each other … which imposes some limitations.

Now imagine doing the same thing with ZFS … we create a storage pool consisting of two mirrored physical disks with a single command. This storage pool is automatically mounted as a filesystem ready for immediate use. If we need separate filesystems, we can create each with a single command. Now we come to the advantages … filesystem ‘snapshots’ are almost instantaneous and do not consume additional disk space until changes are made to the original filesystem at which point the increase in size is directly proportional to the changes made. Each ZFS filesystem shares the storage pool with the size being totally dynamic (by default) so that you do not have a set size reserved for each filesystem … essentially the free space on every single filesystem is available to all filesystems.

So what is the reason for not having ZFS under Linux ? It is open-source so it is technically possible to add to the Linux kernel. It has already been added to the FreeBSD kernel (in “-CURRENT”) and will shortly be added to the released version of OSX. Allegedly because the license is incompatible. The ZFS code from Sun is licensed under the CDDL license and the Linux kernel is licensed under the GPL license. I’m not sure how they are incompatible because frankly I have better things to do with my time than read license small-print and try to determine the effects.

But Linux (reluctantly admittedly) allows binary kernel modules to be loaded into the kernel and the license on those certainly isn’t the GPL! So why is not possible to allow GPLed code and CDDLed code to co-exist peacefully ? After all it seems that if ZFS were compiled as a kernel module and released as a binary blob, it could then be used … which is insane!

The suspicion I have is that there is a certain amount of “not invented here” going on.

May 192007
 

Microsoft has recently claimed that open source software breaches exactly 235 software patents. Apparently open source developers “burn down the patents system”. Well my response to that is “well done open source developers”. Software patents are the biggest scam out there … bigger by far that all those scams we receive in our inbox every day. I quite happily say that companies trading on their portfolio of software patents are amongst the slimiest examples of capitalism and that even Microsoft were not that bad. Of course now they seem determined to join them.

A bit of tedious history … patents were first introduced as a mechanism to protect individual inventors from being ripped off by large companies. The 19th century is full of examples of individual inventors being ripped off by large companies. So patents for “hardware” inventions are not necessarily bad things.

Software is somewhat different. Software developers utilise software libraries written by others without inspecting the libraries for ‘patent violations’. When writing new code, they will come up with solutions to problems without realising that the solution they come up with has been used before. For instance one of the many algorithms for sorting is the insertion sort; it is not the most efficient sort, but is efficient enough (and probably more importantly is a stable algorithm) and is so simple that it has probably been re-invented many times. Certainly I thought of it back when I wrote a database engine for the BBC micro. There are many examples of software patents that are this simple.

For example, Microsoft holds a patent on a mechanism for navigating a web page in a graphical browser using the keyboard which requires that the ‘current link’ is highlighted in some way. Not only is there an example of a web browser using this mechanism before Microsoft’s patent (Lynx … a text browser that does exactly what is described in Microsoft’s patent), but it is a mechanism that is so obvious that it has been invented many times independently. Text editors on text terminals in the 1970s (and earlier!) used some sort of highlighting to indicate the current ‘active point’ on the screen and many of these editors were developed independently. So Microsoft’s patent here is a development of prior art (the only new thing is the graphical interface), and the basic concept of pointing where the ‘active point’ is, is one of those things that is obvious.

Back to Microsoft’s claim that open-source software is in breach of its patents … what exactly are these patents ? Well Microsoft doesn’t appear to be letting anyone know, which is kind of underhand as it stops open source developers from attempting to remove the problematic code. Linux Torvalds also points out that Microsoft hasn’t released their own source code to see how many patents they might be in breach of. Who knows ? Perhaps Microsoft has taken open source code and then patented concepts developed by open source developers … certainly it is known that Microsoft’s TCP/IP software is based on the BSD TCP/IP network software. Linux also points out that Microsoft has probably used many technologies developed by IBM such as demand paging and the like.

Most sensible people seem to believe that Microsoft’s tactic here is to spread FUD over the use of open source software to encourage people to use their own software. Perhaps they should spend more time on making their software better rather than indulge in dubious legal practices.