Showing posts with label FOSS. Show all posts
Showing posts with label FOSS. Show all posts

Monday, May 18, 2009

A Licensing Primer For Gamers

For those who aren't long-time open source software developers, especially gamers who write mods or addons (see my previous article) I'd like to provide a quick Q&A to answer some of the questions (and misconceptions) I've seen come up recently. I want to emphasize that I am not a lawyer, but these topics are fairly general, and I believe I'm fairly safe in providing a basic intro. You should read the licenses you apply to your software before you do so, of course.

Question 1: "Are open source and public domain the same thing?"

Answer: Not at all. Public domain works are works that have had their copyright expire, revoked or were not eligible for copyright protection in the first place. Open source software, on the other hand is copyrighted and that copyright has one or more owners who retain the rights with respect to that software. Just because you've allowed others to copy your work doesn't meant that you don't retain control of it. For example, you're the only one who can offer that work under other licensing terms or transfer the copyright to another party.

Public domain licensing (see below) is not open source licensing, though it has some properties in common. That's important to remember.

Question 2: "But don't you give up your rights when you license something as open source?"

Answer: All licenses (regardless of how proprietary they are or are not) represent compromise between the copyright owner and the licensee, but copyright status of a work doesn't change because it was licensed under open source terms. It only means that you've allowed re-distribution and modification of the work.

Question 3: "Can I change the licensing terms of my open source software?"

Answer: You can if you are the sole copyright holder. However, if your software is made up of code that you wrote and code that others wrote, unless they signed ownership of their changes over to you, you do not have sole ownership of the final result, and any change of license must either be allowed by the licensing terms under which they made their changes or must be agreed to by them.

Question 4: "Can someone modify my program / mod /addon and redistribute it without my name"

Obviously, this depends on the terms of the license, but in the case of all of the open source licenses that I know of, no. One exception is public domain software. There's some controversy as to what constitutes public domain software and if you can, in fact, release your own code to the public domain, but as so many developers claim that their code is PD it should be noted that PD software has no copyright, and thus can be claimed by and controlled by anyone.

Question 5: "Why would I want to open source something I worked so hard on"

That's a question no one can fully answer for you, but there are some advantages: it makes it easier and more attractive for others to contribute to your software; if you ever stop maintaining your software, others can pick up the ball; having an open source project under your belt is a nice resume item; and mostly, it just helps to build a sense of community around your software.

Tuesday, May 12, 2009

The Ultimate World of Warcraft Boss: Open Source Software

This is going to take a bit of explaining, but the sad state of affairs in the World of Warcraft community appears to be that open source software has been branded the enemy, not by some powerful corporate machine, but by the users that play the game.

It all began with a language called LUA, you see. LUA is a wonderful little language designed for embedded scripting. Blizzard adapted this language (ironically enough, an open source project, itself) to their immensely popular game. It serves as the scripting interface for nearly everything that a user can control in the game from user interface to casting spells to communication with other players. There have been thousands of addons written in LUA for World of Warcraft, and the vast majority of them have been released under open source licenses, though that may now be changing...

You see, these addon authors need some way to distribute their addons. Blizzard provides no official support in this area, though they condone and even encourage the authoring of addons. Instead a number of hosting services such as Curse and WoWInterface have sprung up. There were others, but some shaking out occurred during the downturn to the point that really only those two remained. And then along game WoWMatrix. They indexed all of the extant mods, provided a universal downloader that worked with everyone's site and generally seemed to be solving the problem. The problem was they were also rather unscrupulous. It's not clear if they didn't understand what they were doing or simply didn't care, but the allegations from several quarters ranging from simple failure to credit authors to modification of licensing terms on addons. This went on for some time, and eventually the hosting sites started to notice the bandwidth drain from users who were not using their sites to browse for addons (no ad revenue) nor were they using these sites' services to update the addons (no subscription revenue), and so the financials were not working out as well as they had. Was it actually a critical problem? I'm not sure, but the net result was that they clamped down on all external updating software, kicking off a storm of controversy.

Having contributed to Slashdot for years in the 1990s and early 2000s, I know what happens when you have a large community of technical and non-technical people who engage in debates that involve software licensing: insanity. However, this insanity reached new heights. Here's one example of a user trying to explain open source licensing on the official forums:
Open source is a LICENSING scheme that, like all licensing, relinquishes part or all of an author's copyright. -Nyxia
But, it gets worse. Because of this debacle and the arguments over how or if WoWMatrix violated copyright and various licenses (which is actually quite difficult to judge given that they did not, at least in some cases that I'm aware of, host addons themselves, but only hosted index information), the villain in the conversation came to be open source licensing itself. Time after time, users have been lept upon for attempting to discuss addon authorship in terms of open source development models because of the WoWMatrix incident. Worse, many authors who were distributing their addons under open source licenses have now moved to a cryptically blank, "all rights reserved," entry in the required "Licensing" field in the index information for their code.

This is a sad move, not only because it hampers legitimate attempts to maintain outdated addons by third parties (something that has been done time and time again in the WoW addon community), but because it doesn't actually address the problem. Any addon licensed under the GNU General Public License, for example, must retain all authorship, copyright and licensing information, unchanged, with every version distributed by the original source or any downstream recipients. If WoWMatrix changed this information, then they were obviously already in violation of the terms of any addons distributed under the GPL. Changing to a more restrictive license doesn't change that fact, and only hurts the community.

I found out about this because I made the mistake of trying to solve an orthoganal, but related problem: the lack of a decentralized distribution mechanism for addons in the wake of these recent changes. Hopefully, as I get my prototype system working, some of the ire will have died down, and addon authors will come to realize that they didn't want to shot themselves or their fellow developers in the feet to spite WoWMatrix.

Wednesday, April 29, 2009

Free and Open Source Software: Why It Works

In a recent exchange on Slashdot I made the assertion that free software was possible because of the lack of manufacturing costs. I'd like to elaborate on this because it's critical to non-technical people understanding why free and open source software (FOSS) exist and why it's possible to do things in the software world that have comparisons only in the print publication world, and even then have economies of scale that cannot be compared.

In the 1970s, a man by the name of Richard Stallman decided that he had had enough of software that he couldn't modify. He was a brilliant "hacker" in the old MIT sense. He loved to tinker with software and hardware and make it do exactly what he needed, not what a manufacturer told him it should do. This kind of inventive tinkering was the heart of the electronics revolution of the two generations that preceded Mr. Stallman. It was nothing new, but something had changed. In the age of radio or aerospace, engineers could tinker on their own to a certain extent. Math has always been free and parts for many enthusiast projects related to electronics were within reach of the average person. Now, however, Richart Stallman and others of his peers were discovering that they could distribute the products that they developed to a world of collaborators and users without either having to manufacture anything or rely on the expertise of the recipient to reproduce results (e.g. to build their own electronics). Software could be moved electronically over networks that were comparatively cheap in relation to any other product and still retain its full utility without re-assembly.

At first, this process was still only applicable to savvy computer professionals. Software was often shipped in source code form to save space and improve portability, but as networks became faster and platforms more universal, these concerns dropped away. By the 1990s, free software was in use by many who had no technical understanding. The advent of the World Wide Web put these products in the hands of millions and allowed them to find them easily without retail distribution. Anyone using the Firefox browser is a testament to this.

There is another dimension as well. Companies began contributing to FOSS. Why? They all had their own reasons. Red Hat was founded on the distribution and support of FOSS as a business model, and what they found was that there was a large and lucrative market in giving software away for free and absorbing minimal manufacturing and distribution costs while providing optional support services. Even the costs involved in contributing to hundreds of these projects directly (and founding many) was not a barrier to their financial success because of the economies of scale.

Google, on the other hand, used FOSS for their infrastructure and found that contributing to these projects allowed them to develop software for their proprietary use more rapidly than their competition while creating large amounts of good well. Google Code is a tool used by Google and hundreds of developers to coordinate their efforts of FOSS. Similarly, IBM has used FOSS to leverage their vast stables of programmers and develop products as well as provide professional support services.

All of these companies contribute to FOSS because the costs that they save themselves and their competition do not dramatically impact anyone's bottom-line, and free them to consider their core competencies. It is because of the order of magnitude lower manufacturing and distribution costs of software, enabled by the Internet and earlier communications media, that have transformed this industry and continue to do so. Now that bandwidth costs have come down, even larger media are beginning to be impacted. Music and video sharing are a growing sign that the free software model may be ripe for those industries as well, which have only recently begun to seriously interact with electronic distribution.

Git, BitKeeper and the Power of Open Source

Update April 2012: The comparison page that I reference now just mentions "other SCM", but a side-bar continues to compare their product only to non-distributed, circa 1980s and 1990s offerings.


Back in the mists of 2002, debate ran hot in the Linux development community. The debate was over a proprietary source code management (SCM) tool called BitKeeper that was used as the primary SCM for the Linux Kernel. When a dispute with the vendor resulted in a schism between the Linux developer community and BitKeeper in 2005, the tool was dropped in favor of a replacement written by Linus Torvalds over a one-month period. To understand the importance of this achievement, understand that BitKeeper was written by eight developers over the course of three years and McVoy, its primary architect and original developer estimated that it would cost $12 million to do it again in an ordinary, non-startup company.

Instead, Torvalds sat down behind his keyboard and set out to replace it. How successful was he? If you look at BitKeeper's comparison page with other SCM tools today, you'll notice that it compares itself to many other tools (and makes quite a few rather large errors along the way), but none of them is git. In fact, none of the list are any of the next-generation tools that have followed in git's wake such as Bazzar or Mercurial. Why? Well, git is simpler, easier and better. It also happens to be radically faster. There's no point in comparing yourself with such a tool in public, since it's only going to make you look bad to say that the free tool is radically better.

McVoy also made the claim that a replacement for BitKeeper wouldn't be possible because it was too hard and programmers capable of doing the work wouldn't do it for free. Why is this? Well, it comes down to graph theory and its application to text revisions. Recognizing text differences is hard enough, but to extend that to maintaining a directed acyclic graph of revision histories and branches in a distributed way... well that's downright hard. Sure, it's hard, but then so is writing a POSIX-compatible kernel. The fact that there are now three excellent options out there for distributed source code management that excel at doing just what McVoy said would be impossible to reproduce should go a long way to demonstrating that free and open source software development is one of the most powerful new paradigms of engineering to come along since the invention of the functional specification.