Your SlideShare is downloading. ×
Once Upon A Time At the MIT AI Lab
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Once Upon A Time At the MIT AI Lab

1,336
views

Published on

A talk on the philosophy of the GNU GPL, what it is for, and what it does.

A talk on the philosophy of the GNU GPL, what it is for, and what it does.

Published in: Technology, Spiritual

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,336
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • First a warning, if you thought I was going to talk about software licenses, I’m not. Not really. I’m going to talk mostly about people. Ideas are one thing, they are the compiled results of processes that people go through. I want to decompile some ideas. I want to talk about that.\n\nTo that end, let me tell you a story. Let’s go back to 1980, Richard Stallman is employed as a staff hacker at the MIT AI lab. This is the stuff of legend.\n\nThe lab had recently been given a new prototype printer from XEROX PARC. This was ten times faster than the previous printer, finishing a 20 minute job in 2 minutes and with more precise shapes to boot. This was the same sort of tech that a decade hence would touch off the desktop publishing revolution. But back at the AI lab, the printer was becoming the source of more headache than anything else. Stallman and others would send jobs to the printer only to show up later to find that the job had jammed four pages in. This was a minor annoyance, but it was multiplied by everyone at the lab. Stallman thought, “why should I have to babysit this machine when I can code?”\n\nStallman knew a way to attack this sort of problem. On a previous printer he had modified the source to insert some monitoring code in the printer driver. Periodically, Stallman’s code would check to see that the printer was proceeding in its assigned job, if it had stalled, the program would alert whoever’s print job was affected. You’d get a message like: “The printer is jammed. Please fix it.” It wasn’t perfect, but it informed those most interested in the problem.\n\nThe solution this time around would be similar. Stallman could grab his old code, tweak it for the new printer and voilá: jam notifications. So Stallman rolled up his sleeves, grabbed a coffee, and opened up the Xerox source code.\n\nIf you see where I’m going here, you’ll probably see what’s coming next. There was no source code. Stallman even spoke with the programmer that had worked on it and that programmer wasn’t allowed reveal the code to Stallman.\n\nThis is the moment where something happens. This is where an insight strikes, the apple falls on your head, the disparate pieces line up and you need to jump out of the tub and tell the world. Stallman decided, at that moment, that some fundamental wrong had been done: the wrong of not being allowed to help your neighbor by telling him how code works.\n
  • This brings me to the main point of this talk. This is the thing that, even if everything else you hear is mangled or forgotten, I want to come through unchanged: RMS believes that software has moral implications, the choice of what kind of SOFTWARE you want is a choice about what kind of WORLD you want.\n\nNote all the things that I didn’t say. It isn’t about what is technically superior. It isn’t about what is good for being able to sell. It isn’t about what the legal department says. It has no bearing on what various companies will tell you to be worried about. It isn’t about being good for playing games, or having flash support. It is nothing more and nothing less than a philosophical stance. You can agree with it, or disagree with it in exactly the same way as you would argue about Plato’s Forms.\n\nI feel like this is the key misunderstanding in discussions surrounding the GPL and Free software. I’m taking a philosophical, an ethical, and maybe a moral stance. I haven’t brought anything else into it. Often, when I see discussions about software licenses, I feel like people are talking past one another from the very first sentence.\n\nIt is profoundly nonsensical to compare something like “justice” to something like a wrench.\n
  • Philosophers begin by defining words, because if they don’t, we’ll get so mired in the muck of argument that no points are made, no progress is made.\n\nThe word “free” is a good place to start. Free can be taken to mean “no cost” but it can also be taken to mean “freedom”. This is sort of a fine point to make, but I think it could lead to lots of confusion.\n\nFree software has to do with the “freedom” part. There are lots of really good objections at this point. The one that I have anticipated is “freedom for whom?” And that’s the core of the so-called permissive divide in the broader category of “open” software. The permissive people would respond to the “freedom for whom” question with something like “certainly not for me, you say I *must* share changes, that’s pretty restrictive.” And the answer to “freedom for whom?” that I want to present here is...\n\nWell, that’s the rest of my talk.\n
  • The GPL is a really a more general case of the Emacs license.\n\nNow Emacs has a pretty storied history, wikipedia dates it back to the mid seventies, well before GNU or Emacs-as-GNU-project. But by the time of the release of Emacs 15, there was a sort of proto-GPL license attached. It served to give “users the right to make and distribute copies” and “the right to make modified versions, but not the right to claim sole ownership of those modified versions”. It was moving in a similar direction, but it was not as legalistically formal as the eventual GNU project would need it to be.\n\nStallman’s intellectual property attorney at the time viewed the GNU Emacs License pretty much as a simple contract, although one that stipulated a rather odd price. Rather than money, the license cost access to any changes. Users would have to share modified versions of the software. The attorney remarked: "I think asking other people to accept the price was, if not unique, highly unusual at that time"\n\nIn 1989 a 1.0 version of the GPL had emerged. The preamble read:\n\nThe General Public License is designed to make sure that you have\nthe freedom to give away or sell copies of free software, that you\nreceive source code or can get it if you want it, that you can change\nthe software or use pieces of it in new free programs; and that you\nknow you can do these things.\n\nTo protect your rights, we need to make restrictions that forbid\nanyone to deny you these rights or to ask you to surrender the\nrights. These restrictions translate to certain responsibilities for\nyou if you distribute copies of the software, or if you modify it.\n\none notable change was that users were no longer required to share changes. You could make private in-house tweaks to the software without being forced to share these changes back to the community.\n\n
  • License agreements are not usually characterized by what they *give* you, rather, as we scan ever longer End User License Agreements, or plow through revision 271 of Facebook’s new much-better-we-assure-you privacy policy, we are looking for things that they are taking from us.\n\nThe GPL, in essence, tries to codify a very idealistic hacker ethic. It is for tinkering, changing, breaking, reassembling, and passing it on to your friend. It is software as mix-tape.\n\nThe main things that the GPL gives you are broken down into four parts, aka the “four freedoms”\n
  • Zero: You’re allowed to do what you want with the software. An author can’t proscribe the software’s use for something that they don’t approve of. This is pretty profound, I think.\n\none: if you are going to be able to do this, you’ll need the source code. You’ll also need whatever is required to actually end up with a working program. This can be a point of contention. A corner case of this is in embedded systems such as set-top boxes where the code may be GPL, busybox is a common example, but you can’t actually change the code due to things like code signing.\n
  • two: I think it is interesting that two emphasizes the goal of the redistribution. It isn’t just for fun or for copying’s sake, it is because we view software as something that can help people.\n\nfreedom three, the final freedom. You’ll also need access to the source code to realize this one. You are allowed to make public changes to the code. The difference with freedom one is that you’re allowed to do this out in the open, rather than just in private and for your own reasons. You can fork. You can contribute back.\n\nlurking in freedom three is also the core of my argument, which I promise I’m getting to really soon.\n
  • I’m going to try and dispel a common myth about the GPL, one I’ve heard a lot. The general gist is that “the GPL is to copyright as anarchy* is to government.” Something that is opposed to the very notion of it. This is where people get the idea that any business built on such shifting sand of self-destruction must be flawed in some way.\n\nOpposition to copyright is an interesting subject, there’s lots of good debate. But it doesn’t really have anything to do with the GPL. The GPL has staked its efficacy IN copyright.\n\n*I mean to use anarchy only in the sense of “opposition to government”. I know that anarchy as modernly understood is not at all chaos. As I understand it, it is more about removing the class distinctions of rulership which are inherently harmful; and using egalitarian self-governing.\n
  • Like some sort of legalistic uroboros, the GPL uses the rights of the creator to say, in effect, “here are the rights you have with regard to my work, oh and by the way, you are also required to extend no less than these rights to anyone else”\n\nFar from being some sort of anti-copyright construct, the GPL’s EXISTENCE depends on copyright, if you didn’t have copyright, you couldn’t have the GPL (or lots of other stuff). You wouldn’t get any say in what people do with your stuff... but that’s another discussion entirely!\n\nSo for the rest of the talk, consider copyright to be a constant underpinning, a foundational necessity for everything else we’re talking about. It’s just that we’re going to use it for something that it wasn’t intended: we’re hacking it.\n
  • BAM: flip it\n\ncopyleft: pay it forward.\n\nAs Stallman said: “see [the GPL] as a form of intellectual jujitsu, using the legal system that software hoarders have set up against them”, he actually lifted this from a similar sticker from a sci-fi convention which read: "Copyleft (L), All Rights Reversed.”\n
  • And this brings me around to what my thinking on the GPL is. I guess I’m kinda surprised by all the emphasis on virulence these days. The metaphor is broken. Metaphors are broken--but that’s another talk.\n\nCasting aside any metaphors, the GPL is an INDUCTIVE LICENSE. This is a term that I made up but I think it describes the nature of the GPL much better than saying that it is viral.\n\nAn initial case is established. You have the four freedoms: the freedom to run, freedom to change, freedom to redistribute, and the freedom to share those changes.\n\nBut for it to really be Free software, the person RECEIVING the software must have these freedoms. So it is not good enough for us to leave it here. We only have the base case for a software license. We have to prove the general case, not me or you, but person N+1.\n
  • So the person who’s freedom we’re talking about is person N+1, the inductive person.\n\nThis idea is the essential difference between being permissive software and being free software. Free software describes the case of that person N+1, inductively. It raises the “freedom for whom?” question and answers it with “the inductive person”.\n\nSo I’ll leave where, approximately, I started with a definition:\n\nThe word “induction” is the practice of deriving general laws from specific cases, it arises from a root word meaning “leading to” or “hypothetical”. Free software asks us to consider this hypothetical person on the assumption that it could someday be anyone, indeed everyone.\n\nThanks!\n
  • \n
  • \n
  • NOTE: THIS IS MY STUPID OPINION. I AM DUMB ABOUT THIS STUFF AND I AM NOT ANY SORT OF LAWYER. I DONT SPEAK WITH ANY SORT OF AUTHORITY AND YOU SHOULDNT LISTEN TO ME. SERIOUSLY GO AWAY.\n\nbut\n\nthis is why you shouldn’t be afraid of gpl stuff in the case of most web apps. You may have created (I am researching this wrt gems and such) a gpl’d program (maybe), but the thing is by the gpl v3 you aren’t conveying it. that means this is the same as a personal copy for yourself and you don’t have provide the source.\n
  • This is my favorite way of disarming an argument about free software.\n
  • based on the same principle that I can take some bsd code, close it up, and include it in my $$$-making project (proprietary licensed, of which, as I’ve said, the gpl is a weird species).\n\nthe “can’t” in the second bullet is in the sense that you can’t have the result be bsd-licensed\n\nso both bullets above would result in a gpl-licensed whole\n
  • Transcript

    • 1. once upon a time at the mit ai lab... ...a printer jammed
    • 2. RMS is a philosopher
    • 3. free software is a philosophy•“free” as in “freedom”•“free” has two roots: •“gratis” at no cost •“libre” freedom
    • 4. what is the gpl?•what does it give you?•how does it work?
    • 5. what does it give you?
    • 6. the four freedoms•zero: the freedom to run the program for any purpose•one: the freedom to study how the program works, and change it to make it do what you wish
    • 7. the four freedoms•two: the freedom to redistribute copies so you can help your neighbor•three: the freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits
    • 8. how does it work?
    • 9. what if we could hack the legal system?
    • 10. !what if we could hack the legal system using the legal system?
    • 11. viral inductiveN = 0 : freedom for you
    • 12. viral inductive N = 0 : freedom for you AND N+1
    • 13. thanks
    • 14. pointers1.Free as in Freedom: Richard Stallman’s Crusade for Free Software O’Reilly Press. ISBN:978-14414378842.“We Really Don’t Know How to Compute.” Strange Loop 2011 Talk3.http://www.fsf.org/

    ×