I tend to find a lot of people who like to talk about freedom. I even find some people (like RMS) who've formulated plans and even mobilized them in order to half-heartedly defend certain freedoms. I appreciate their efforts.
However, I've also noticed that many people support measures to defend certain freedoms, but in the same breath go and stick their noses in the business of others who try to defend other freedoms. This short page is not about Richard Stallman, but since he happens to be a pretty good public example of this "split personality" syndrome, I've used links that seem to reflect his approach to the world pretty well.
This page is about the concept of fighting fire with fire. Richard Stallman created a revolution with the GNU General Public License, which turned the tables on business models that relied on taking advantage of the contributions of freedom lovers who refused to defend their freedom, by fighting fire (in this case, laws giving authors a strong monopoly over their work) with fire (taking advantage of those laws to keep other authors from creating a monopoly on work created by (certain) freedom lovers). If you're confused by my explanation, ignore it, and read the original.
The basic concept of fighting fire with fire isn't new. If you take the Bible as a historical record, people started defending themselves against each other shortly after Kain killed Abel. If you take archeology as a historical record, people started defending themselves at some point before they started scribbling about it on cave walls. At any rate, cursory examination of the mechanisms of evolution quickly reveals that the idea of fighting fire with fire is far older than anything even remotely human-like: even certain plants are known to have evolved mechanisms for counter-attacking their attackers, and I'm sure that any Biologist worth his salt can point to even earlier examples of the phenomenon. I'm not aware of too much public work on the science of self-preservation (defined as preserving your freedom to live your own life in peace, not merely being able to avoid dying), though. This page aims to change that. I plan to work with software as a case study, in order to show a concrete example of applying these tactics to a facet of one's life. One who successfully applies these principles to all facets of his life is truly free, and so it's worth keeping that overarching goal in the back of your mind even while you're concentrating on only one particular facet of your life.
The first step might seem silly, but without a clear vision of your primary goal, it's easy to lose focus and take inefficient detours, especially during technical maneuvers. In our case, we're trying to ensure that we'll never have a need for software that we don't have the freedom to do anything we might want to do with it. (Of course, we only care about "anything we might want to do with it" within our own life, so we'll want to optimize our techniques towards giving us as much power as possible within our own lives, rather than focusing on techniques for controlling others' interactions with software. We'll want to avoid a substantial societal investment in proprietary software, though, if we want to have any security against proprietary "standards" that might try to invade our lives (since society demands that we fit into it, so we have no choice but to alter society in this case).)
If we're already at the goal, we need read no further. If we're far enough from the goal for it to be unreachable, we may want to redefine our goal. The most likely case is somewhere in between. We need to take stock of our starting position before we can devise an efficient plan to mobilize towards our goal. In our case, the state of the union isn't too bad, thanks primarily to more than twenty years (and counting) of advances already made by some guy named Richard M. Stallman, and a whole bunch of his friends. In particular, the GNU operating system running on top of the Linux kernel is a technically superior alternative to Microsoft's latest (but not greatest - thank Bill for the boobie traps, useless fences, useful holes, and other Easter eggs) operating systems (Windows 2003 Server and Windows Vista, as I type this), and enjoys rather widespread adoption all over the world. The GNU operating system has a bunch of GUIs (again, technically superior to the only GUI included (or otherwise usable, AFAIK) in Windows Vista), and perhaps more importantly, a fantastic VI clone. There's also a bloated Web browser, which seems to be the single most important feature of an operating system in the 21st century. (I consider it an advance only because it helps free software adoption rates, and hurts proprietary software adoption rates.) The most popular platform for serving Web content (to bloated Web browsers) is LAMP (GAMP?), which is a bundle of free software. On the other hand, something as simple as doing your taxes (fine, not so simple; on the bright side, George W. Bush has a braindead tax plan with one huge advantage, in that it'll save you tons of time every April) is impossible without propriatary software (or paying somebody else who'll probably use proprietary software to do it for you), unless you feel like doing it by hand. Clearly, there's plenty of distance between the status quo and the goal we established.
Every significant goal has obstacles in the way. Negotiating the obstacles will therefore be the single most difficult task towards reaching the goal. In our case, the obstacles are many, ranging from companies whose business model is built on being able to control our interaction with their software, to governments that believe these guys have a natural right to control our computers if we want to use their software (which these governments will often attempt to force us to use, by various methods). There are also many people who believe that "intellectual property" is a basic tenet of Capitalism, and that it's no different than real (physical) property. Our techniques will have to take these obstacles into account.
Each obstacle has a degree of intrinsicity, and a degree of reversibility. Both of those degrees are potentially measurable. It's useful to know whether a particular obstacle is likely to disappear on its own (or even come to help us out), so we don't waste resources negotiating obstacles that just happen to be in the way this second, but will happily move out of the way (or even help our cause) with proper incentive. In our case, companies hoping to run our lives have a very high degree of intrinsicity, since they'd have to turn their business models upside down if all their customers were to accomplish our goal. (They also have the highest degree of reversibility if they're defeated, since a company prefers to change its business model than to go out of business completely.) Governments have a potentially lower intrinsicity, since they can potentially survive without drastic changes even if all their citizens accomplish our goal. (They also have a correspondingly lower reversibility, since they are largely independent of their fiscal decisions, and as such have little incentive to adapt even if the software landscape changes.) Individual people are governed by the rules of Psychology (not Sociology), so we'll have to assess them individually as we encounter them. At any rate, most of them will neither aid nor hurt our cause in an active manner without an event of considerable personal impact occuring, so we don't necessarily need to analyze the vast majority of them.
Nothing in our universe is 100% reliable (except maybe death and taxes), so we'll want to work with techniques that raise the statistical probability of meeting our goals (ideally, before we succumb to death or taxes). A war zone is a game of numbers, and a general is a master of playing the numbers. (Those who consider "war" a four-letter word can think about a card counter playing Black Jack, instead. I value my freedom to think in efficient terms, though, so I don't plan to continue the casino analysis.) We can gain a tactical advantage by being effective generals: streamlining our logistics, consolidating efforts to disrupt logistical concerns of the obstacles (paying more attention to the more intrinsic and/or more reversible ones), and building an imperial system to efficiently manage our gains and/or losses. In our case, we'll want to apply techniques that maximize the amount of free software (i.e., software that allows us to do anything we might want to do with it, within our own lives) available, especially useful software (i.e., software that's likely to have mass appeal, so the maintenance load is highly distributed). We'll also want to apply techniques that'll make proprietary software less attractive to license, more difficult to write, more difficult to maintain, and more difficult to market. Finally, we'll want to carefully craft a system that unifies as much free software as possible, while providing the strongest possible protection, to keep it from benefiting proprietary software market share (directly or indirectly).
Humans are clumsy, slow, and weak creatures. We can't jump, swim, or crawl well. We can't fly at all. We're not exactly world class mountain climbers, tree climbers, or cliff climbers (although we're rather impressive cliff hangers). The only reason we've been able to survive is that we're smart enough to use tools to our advantage. (We're also smart enough to blow up the entire planet five times over with all our green waste bombs.) We'll want to understand the tools at our disposal, so we can use them effectively (and efficiently). In the modern world, the single most powerful tool is government, and the manual is the law ("the law" being defined as the law as implemented in practice - which in the United States (at least) includes the quality of the lawyers involved (but not necessarily their hourly rates), relevant precedents, the mood of the judge, the occupations of the jurors, etc.). Other powerful tools include money, mobs, and fads. In a Capitalistic Democracy, one tool in particular deserves special attention, since it has the power to directly alter all the others (via mob diplomacy): the eyeball. Capitalistic Democracies are notorious for breeding poorly educated masses. (For our purposes, I don't consider trivia (trivia being defined as information that doesn't add to your understanding of your life) to be under the umbrella of education. Most jobs require little knowledge of your life, so most employees have little. Most people are employees. Therefore, most people have little knowledge.) The net result is that the media is easily able to brainwash people (even adults). It can make them believe that Israel is an aggressor, that some rich actor is the most important thing in the world, that Martians have invaded the White House, or practically anything else that strikes its mood on a given day. While people can physically close their eyes, they usually prefer to leave them open if they've been emotionally challenged (which is what tends to happen in movies); they may close their eyes if they're overloaded (during certain scenes in a horror movie, for instance), though, so it's important to carefully estimate mean and standard deviation of expected emotional responses before deploying emotially charged eyeball tactics, to avoid expensive backfiring. In our case, we'll want to analyze IP law, the economies of the various software-related industries, and the Sociological processes that affect the public's perception of right and wrong, good and bad, useful and useless, cheap and expensive, and aspects of convenience.
Once we've identified the tools available (and the subset that's likely to be useful) and studied the relevant manuals, it's time to start studying proper technique for using them. History is the best teacher, so if you can't find a user's manual for whatever tool you're studying, create history (preferably in a sandbox, to limit potential losses), and then study the aftermath. (For a rather amusing illustration of this metatechnique, check out the history of the chaingun during World War I. If you don't know what tools to use for that purpose, I'd suggest WikiPedia or Google.) In our case, we'll want to consider a strategic combination of strong IP (copyright, patent, and trademark, at a minimum) protection, contractual obligations (to avoid unenforceability problems with End-User License Agreements, and to facilitate consolidated litigation), and actively exclusionary policies towards obstacles (the degree of activeness perhaps being determined by the degree of intrinsicity (and reversibility, possibly) of each obstacle).
Now, it's time to apply the knowledge we gained from the exercise above, to create a formal gameplan. The principles don't have any particular order, and so techniques can be refined in an iterative process by repeatedly bouncing them off the metatechniques. Here's my first attempt at a formal gameplan for our case study:
Free software legal frameworks tend to come in three flavors: permissive, weakly protective, and strong. The BSD license is a fairly good example of the former, allowing you to basically do anything you want. (If you've ever wondered why Winsock is so similar to Berkley Sockets, for example, it's because Microsoft basically just lifted it.) The GPL is a weakly protective license: it protects the code itself from being reused in a proprietary product, but it makes no attempt to prevent proprietary software authors from using it, studying it, and potentially cloning it. It also doesn't make any attempt to protect related IP (and in fact goes out of its way to prevent you from taking measures to protect it yourself). Our FA system is a strong free software legal framework, since it goes out of its way to prevent any IP (as defined by local government) originating in the FA from making its way to the proprietary software camp. This essentially gives the free software movement the same degree of protection against legalized industrial spying that companies in the proprietary software camp already enjoy. This technique allows free software to not only beat proprietary software, but to beat it to a pulp, by leveraging an entire network of programmers who care about what they do. A traditional software company will find it difficult to compete in a day when free software is not only technically substantially better, but also holds critical patents.