The Church of Emacs (Pdf)

Total Page:16

File Type:pdf, Size:1020Kb

The Church of Emacs (Pdf) The church of Emacs The church of Emacs f Richard Stallman, the creator of Emacs, the Free software Foundation and the GPL, Lawrence Lessig, professor of Law at Stanford University and commentator on the issues of copyright, wrote, ‘Every generation has its philosopher’ a writer or artist who captures the imagination of a time. Sometimes these philosophers are recognised as such; often it takes generations before the connection is made real. But recognised or not, a time gets marked by the people who speak its ideals, whether in the whisper of a poem, or the blast of a political movement. Our generation has a philosopher. He is not an artist, or a professional writer. He is a programmer.’ Undoubtedly Stallman’s greatest creation as a programmer was Emacs, more specifically GNU Emacs, first released in 1985 as the foundation of the nascent GNU A cocky novice once said to Stallman: “I can guess why project, written in C and providing Emacs Lisp as a the editor is called Emacs, but why is the justifier called powerful extension language. Stallman’s first version of Bolio?”. Stallman replied forcefully, “Names are but names, “Emac & Bolio’s” is the name of a popular ice Emacs was written at the MIT AI Lab during the 1970s. cream shop in Boston-town. Neither of these men had Emacs was an abbreviation of “Editing MACroS”. anything to do with the software.” Coincidently, “Emack & Bolio’s” was the name of an ice His question answered, yet unanswered, the novice cream store close to the home of MIT in Boston. A text- turned to go, but Stallman called to him, “Neither Emac or Bolio had anything to do with the ice cream shop, either.” formatting program created at MIT by Dave Moon was In 1984, Stallman began working on GNU Emacs. The later named BOLIO, giving rise to the legend that Emacs first released version was numbered 15.34, and appeared in had been named after Emack & Bolio’s, of whose ice- 1985. As the first project within the GNU canon, GNU Emacs heftily embodies the politics and principles of free cream Stallman was not a fan - a legend that was later software. Martin Howse dissects a unique environment reflected in the hacker koan, Emacs and Bolio: within the history and culture of open code. 28 LinuxUser & Developer LinuxUser & Developer 29 The church of Emacs The church of Emacs domains, that “it’s just a tool,” should hopefully receive its final death closer inspection, and can rather be considered as overarching picture mode for ASCII image creation, make for a The Free Software song knell thanks to the superb extensibility and porous nature of this framework, as much more than an OS, pushing further integration-wise pretty funky editing experience. Minor modes, supreme coding environment. In the opening words of Larry Ayer’s than the often brittle, finegrained shell. The comical Church of Emacs, which, in contrast, can be mixed and matched, Join us now and share the software; GNU Emacs and XEmacs, “What sets Emacs apart from other espoused by the alt.religion.emacs newsgroup back in the day, presents are more concerned with toggling individual You’ll be free, hackers, you’ll be free. editors is the extent to which the ‘guts’ of the program are exposed a holy trinity of OS, computer language and editor which well embeds the features. For example, the commonly used M-x The Emacs to the user.” And that’s really what free software should be about, fascination and sheer magic of shared code works. auto-fill-mode switches on or off simple word Hoarders may get piles of money, commune, revealing shared code to all by way of license, development model wrapping. and design. Practical GNU Emacs That is true, hackers, that is true. under which the Though GNU Emacs basics are best left to the excellent online GNU Editor MACroS But they cannot help their neighbors; The advanced, self-documenting, customisable, manual, the works of O’Reilly and friends, and of course embedded Digging deeper into the thousand or so Emacs That’s not good, hackers, that’s not good. software was extensible real-time display editor tutorial and help, with Emacs providing a great example of self- code extensions shows not only an historical made freely GNU Emacs, in common with a few other very good things, is best documenting code, it’s worth explaining usable entry points for the embedding, with Emacs reaching out octopus-like When we have enough free software appreciated through experience rather than cold-blooded description. beginner and basic operation to make plain our arguments. And although At our call, hackers, at our call, available as Thanks to its sheer extensibility, and the long gestation of such shared code historic variants, such as XEmacs, and the plain old GNU model under X works, it has become all things to all people, and thus increasingly difficult can make use of mouse and menus, our pure GNU Emacs, with an -nv We’ll throw out those dirty licenses long as user/ to pin down. Extendibility and customisation is by way of suitably self option appended if under glorious X, is a keystroke only affair, with Meta Ever more, hackers, ever more. coders agreed documenting Emacs Lisp (elisp) files. Emacs grows and grows in highly or Alt key, written as M- with accompanying keypress, in concert with modular fashion; a portable, vast architecture composed of collective code CTRL, as C-, doing most of the fretwork. Again it’s a question of Join us now and share the software; to “give back modules. In short Emacs offers a totally integrated and readily configurable speed and flexibility. The CTRL key is used for most common You’ll be free, hackers, you’ll be free. environment for all manner of common and uncommon coding, text- tasks, such as working with files, with really obvious all extensions processing and computing tasks. operations bound to a single CTRL and keystroke GNU Emacs can be used to write and edit texts such as this one, to option, for example C-p which moves us to the enera. Home of the brave coder but very they made, so test, write and run code, edit web pages transparently across servers, previous line. Next up are less common Meta much not located anywhere near the land as to help update and publish blog entries, organise thoughts and notes in new ways single keystrokes, and then we have C-x Gof the free; Genera, the legendary OS and and as an entry point for manipulation of the all powerful Unix shell. The list followed by further keystrokes, for example fully featured development environment running on EMACS can readily be extended. C-x C-f to retrieve a file, C-c again followed the historic Symbolics Lisp machines, and later, in Eminently customisable, iterating over both the real world and potential by other keyings and M-x command- the guise of Open Genera, on Alpha hardware. improve,” uses of GNU Emacs would easily occupy a vast volume. Interface is one name-in-full all in descending order of Genera presented the ultimate interface running morphed into category which could well be used to classify such extensions; both as importance. on top of an extremely interrogative operating interface to the underlying OS and interface to tasks. In the first instance, Before blindly walking into the system. Despite being highly proprietary, and the practical we have shell access and, even eshell, a command shell running on top of thicket of dense, interactive indeed marking an historic split which, as we’ll Emacs. GNU Emacs provides a non-visual interface to integrated browsing tutorial, accessed by way of C-h see, lies at the very birth of free software, Genera’s GPL and mail functionalities for disabled users, and also offers up new interfaces t under most installs or failing users could dig deep into highly exposed or subroutine for editing, managing and playing sound files for those less enamoured of that M-x help-with-tutorial, extruded code within a tightly integrated mesh of the GUI. We know well of GNU Emacs as interface to code, as superlative one keystroke well worth remembering is C-g, which should get you out of all manner of recursive The age-old adage that “it’s just a tool,” should hopefully minibuffer nastiness. Such tutorial material makes plain basic receive its final death knell thanks to the superb extensibility operation, along with key notions of buffer, and porous nature of this supreme coding environment temporary files for editing, and practically treats of modes, OS, GUI and object oriented Lisp language. Code IDE (Integrated Development Environment), yet perhaps receiving less frames and split was the interface, and at the heart of such If we view attention is Emacs as the interface to various interpreters, opening up a screen methods. interaction was an Emacs, a supremely flexible vast new realm of live coding. Lisp by way of SLIME is an obvious example, Customisation with macro based text editor whose current free operating but we can also interface to the increasingly popular Smalltalk-like .emacs file specifying incarnation is GNU. Indeed the Lisp Machines had system as multimedia environment, SuperCollider, using SCEL (SuperCollider Emacs). peculiarities and two Emacs, EINE and ZWEI, morphing into If we view operating system as primarily interface, looking both ways to personality, macros ZMACS under Symbolics. Echoing the recursion primarily embrace lowly code and high level task, Emacs can well be viewed as a wrapping up wrapped up in the GNU acronym, EINE stands for prime example of a seriously advanced OS.
Recommended publications
  • The Clon User Manual the Command-Line Options Nuker, Version 1.0 Beta 25 "Michael Brecker"
    The Clon User Manual The Command-Line Options Nuker, Version 1.0 beta 25 "Michael Brecker" Didier Verna <[email protected]> Copyright c 2010{2012, 2015, 2017, 2020, 2021 Didier Verna Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the section entitled \Copy- ing" is included exactly as in the original. Permission is granted to copy and distribute translations of this manual into an- other language, under the above conditions for modified versions, except that this permission notice may be translated as well. Cover art by Alexis Angelidis. i Table of Contents Copying ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 1 1 Introduction :::::::::::::::::::::::::::::::::::::::::::::::::::: 3 2 Installation:::::::::::::::::::::::::::::::::::::::::::::::::::::: 5 3 Quick Start ::::::::::::::::::::::::::::::::::::::::::::::::::::: 7 3.1 Full Source :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 7 3.2 Explanation ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 7 4 Using Clon :::::::::::::::::::::::::::::::::::::::::::::::::::: 11 4.1 Synopsis Definition ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 11 4.1.1 Synopsis Items ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 11 4.1.1.1 Text ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    [Show full text]
  • Bringing GNU Emacs to Native Code
    Bringing GNU Emacs to Native Code Andrea Corallo Luca Nassi Nicola Manca [email protected] [email protected] [email protected] CNR-SPIN Genoa, Italy ABSTRACT such a long-standing project. Although this makes it didactic, some Emacs Lisp (Elisp) is the Lisp dialect used by the Emacs text editor limitations prevent the current implementation of Emacs Lisp to family. GNU Emacs can currently execute Elisp code either inter- be appealing for broader use. In this context, performance issues preted or byte-interpreted after it has been compiled to byte-code. represent the main bottleneck, which can be broken down in three In this work we discuss the implementation of an optimizing com- main sub-problems: piler approach for Elisp targeting native code. The native compiler • lack of true multi-threading support, employs the byte-compiler’s internal representation as input and • garbage collection speed, exploits libgccjit to achieve code generation using the GNU Com- • code execution speed. piler Collection (GCC) infrastructure. Generated executables are From now on we will focus on the last of these issues, which con- stored as binary files and can be loaded and unloaded dynamically. stitutes the topic of this work. Most of the functionality of the compiler is written in Elisp itself, The current implementation traditionally approaches the prob- including several optimization passes, paired with a C back-end lem of code execution speed in two ways: to interface with the GNU Emacs core and libgccjit. Though still a work in progress, our implementation is able to bootstrap a func- • Implementing a large number of performance-sensitive prim- tional Emacs and compile all lexically scoped Elisp files, including itive functions (also known as subr) in C.
    [Show full text]
  • GNU Emacs Manual
    GNU Emacs Manual GNU Emacs Manual Sixteenth Edition, Updated for Emacs Version 22.1. Richard Stallman This is the Sixteenth edition of the GNU Emacs Manual, updated for Emacs version 22.1. Copyright c 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Sections being \The GNU Manifesto," \Distribution" and \GNU GENERAL PUBLIC LICENSE," with the Front-Cover texts being \A GNU Manual," and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled \GNU Free Documentation License." (a) The FSF's Back-Cover Text is: \You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development." Published by the Free Software Foundation 51 Franklin Street, Fifth Floor Boston, MA 02110-1301 USA ISBN 1-882114-86-8 Cover art by Etienne Suvasa. i Short Contents Preface ::::::::::::::::::::::::::::::::::::::::::::::::: 1 Distribution ::::::::::::::::::::::::::::::::::::::::::::: 2 Introduction ::::::::::::::::::::::::::::::::::::::::::::: 5 1 The Organization of the Screen :::::::::::::::::::::::::: 6 2 Characters, Keys and Commands ::::::::::::::::::::::: 11 3 Entering and Exiting Emacs ::::::::::::::::::::::::::: 15 4 Basic Editing
    [Show full text]
  • Omnipresent and Low-Overhead Application Debugging
    Omnipresent and low-overhead application debugging Robert Strandh [email protected] LaBRI, University of Bordeaux Talence, France ABSTRACT application programmers as opposed to system programmers. The state of the art in application debugging in free Common The difference, in the context of this paper, is that the tech- Lisp implementations leaves much to be desired. In many niques that we suggest are not adapted to debugging the cases, only a backtrace inspector is provided, allowing the system itself, such as the compiler. Instead, throughout this application programmer to examine the control stack when paper, we assume that, as far as the application programmer an unhandled error is signaled. Most such implementations do is concerned, the semantics of the code generated by the not allow the programmer to set breakpoints (unconditional compiler corresponds to that of the source code. or conditional), nor to step the program after it has stopped. In this paper, we are mainly concerned with Common Furthermore, even debugging tools such as tracing or man- Lisp [1] implementations distributed as so-called FLOSS, i.e., ually calling break are typically very limited in that they do \Free, Libre, and Open Source Software". While some such not allow the programmer to trace or break in important sys- implementations are excellent in terms of the quality of the tem functions such as make-instance or shared-initialize, code that the compiler generates, most leave much to be simply because these tools impact all callers, including those desired when it comes to debugging tools available to the of the system itself, such as the compiler.
    [Show full text]
  • Getting Started Computing at the Al Lab by Christopher C. Stacy Abstract
    MASSACHUSETTS INSTITUTE OF TECHNOLOGY ARTIFICIAL INTELLI..IGENCE LABORATORY WORKING PAPER 235 7 September 1982 Getting Started Computing at the Al Lab by Christopher C. Stacy Abstract This document describes the computing facilities at the M.I.T. Artificial Intelligence Laboratory, and explains how to get started using them. It is intended as an orientation document for newcomers to the lab, and will be updated by the author from time to time. A.I. Laboratory Working Papers are produced for internal circulation. and may contain information that is, for example, too preliminary or too detailed for formal publication. It is not intended that they should be considered papers to which reference can be made in the literature. a MASACHUSETS INSTITUTE OF TECHNOLOGY 1982 Getting Started Table of Contents Page i Table of Contents 1. Introduction 1 1.1. Lisp Machines 2 1.2. Timesharing 3 1.3. Other Computers 3 1.3.1. Field Engineering 3 1.3.2. Vision and Robotics 3 1.3.3. Music 4 1,3.4. Altos 4 1.4. Output Peripherals 4 1.5. Other Machines 5 1.6. Terminals 5 2. Networks 7 2.1. The ARPAnet 7 2.2. The Chaosnet 7 2.3. Services 8 2.3.1. TELNET/SUPDUP 8 2.3.2. FTP 8 2.4. Mail 9 2.4.1. Processing Mail 9 2.4.2. Ettiquette 9 2.5. Mailing Lists 10 2.5.1. BBoards 11 2.6. Finger/Inquire 11 2.7. TIPs and TACs 12 2.7.1. ARPAnet TAC 12 2.7.2. Chaosnet TIP 13 3.
    [Show full text]
  • Emacspeak User's Guide
    Emacspeak User's Guide Jennifer Jobst Revision History Revision 1.3 July 24,2002 Revised by: SDS Updated the maintainer of this document to Sharon Snider, corrected links, and converted to HTML Revision 1.2 December 3, 2001 Revised by: JEJ Changed license to GFDL Revision 1.1 November 12, 2001 Revised by: JEJ Revision 1.0 DRAFT October 19, 2001 Revised by: JEJ This document helps Emacspeak users become familiar with Emacs as an audio desktop and provides tutorials on many common tasks and the Emacs applications available to perform those tasks. Emacspeak User's Guide Table of Contents 1. Legal Notice.....................................................................................................................................................1 2. Introduction.....................................................................................................................................................2 2.1. What is Emacspeak?.........................................................................................................................2 2.2. About this tutorial.............................................................................................................................2 3. Before you begin..............................................................................................................................................3 3.1. Getting started with Emacs and Emacspeak.....................................................................................3 3.2. Emacs Command Conventions.........................................................................................................3
    [Show full text]
  • Emacs Speaks Statistics (ESS): a Multi-Platform, Multi-Package Intelligent Environment for Statistical Analysis
    Emacs Speaks Statistics (ESS): A multi-platform, multi-package intelligent environment for statistical analysis A.J. Rossini Richard M. Heiberger Rodney A. Sparapani Martin Machler¨ Kurt Hornik ∗ Date: 2003/10/22 17:34:04 Revision: 1.255 Abstract Computer programming is an important component of statistics research and data analysis. This skill is necessary for using sophisticated statistical packages as well as for writing custom software for data analysis. Emacs Speaks Statistics (ESS) provides an intelligent and consistent interface between the user and software. ESS interfaces with SAS, S-PLUS, R, and other statistics packages under the Unix, Microsoft Windows, and Apple Mac operating systems. ESS extends the Emacs text editor and uses its many features to streamline the creation and use of statistical software. ESS understands the syntax for each data analysis language it works with and provides consistent display and editing features across packages. ESS assists in the interactive or batch execution by the statistics packages of statements written in their languages. Some statistics packages can be run as a subprocess of Emacs, allowing the user to work directly from the editor and thereby retain a consistent and constant look- and-feel. We discuss how ESS works and how it increases statistical programming efficiency. Keywords: Data Analysis, Programming, S, SAS, S-PLUS, R, XLISPSTAT,STATA, BUGS, Open Source Software, Cross-platform User Interface. ∗A.J. Rossini is Research Assistant Professor in the Department of Biostatistics, University of Washington and Joint Assis- tant Member at the Fred Hutchinson Cancer Research Center, Seattle, WA, USA mailto:[email protected]; Richard M.
    [Show full text]
  • 1 What Is Gimp? 3 2 Default Short Cuts and Dynamic Keybinding 9
    GUM The Gimp User Manual version 1.0.0 Karin Kylander & Olof S Kylander legalities Legalities The Gimp user manual may be reproduced and distributed, subject to the fol- lowing conditions: Copyright © 1997 1998 by Karin Kylander Copyright © 1998 by Olof S Kylander E-mail: [email protected] (summer 98 [email protected]) The Gimp User Manual is an open document; you may reproduce it under the terms of the Graphic Documentation Project Copying Licence (aka GDPL) as published by Frozenriver. This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANT- ABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Graphic Documentation Project Copying License for more details. GRAPHIC DOCUMENTATION PROJECT COPYING LICENSE The following copyright license applies to all works by the Graphic Docu- mentation Project. Please read the license carefully---it is similar to the GNU General Public License, but there are several conditions in it that differ from what you may be used to. The Graphic Documentation Project manuals may be reproduced and distrib- uted in whole, subject to the following conditions: The Gimp User Manual Page i Legalities All Graphic Documentation Project manuals are copyrighted by their respective authors. THEY ARE NOT IN THE PUBLIC DOMAIN. • The copyright notice above and this permission notice must be preserved complete. • All work done under the Graphic Documentation Project Copying License must be available in source code for anyone who wants to obtain it. The source code for a work means the preferred form of the work for making modifications to it.
    [Show full text]
  • The MH-E Manual Version 8.5 March, 2013
    The MH-E Manual Version 8.5 March, 2013 Bill Wohler This is version 8.5 of The MH-E Manual, last updated 2013-03-02. Copyright c 1995, 2001{2003, 2005{2013 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of either: a. the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts being \A GNU Manual," and with the Back- Cover Texts as in (a) below. A copy of the license is included in the section entitled \GNU Free Documentation License." (a) The FSF's Back-Cover Text is: \You have the freedom to copy and modify this GNU manual." b. the GNU General Public License as published by the Free Software Foun- dation; either version 3, or (at your option) any later version. A copy of the license is included in the section entitled \GNU General Public License." i Table of Contents Preface :::::::::::::::::::::::::::::::::::::::::::::: 1 1 GNU Emacs Terms and Conventions ::::::::: 2 2 Getting Started ::::::::::::::::::::::::::::::::: 4 3 Tour Through MH-E ::::::::::::::::::::::::::: 6 3.1 Sending Mail ::::::::::::::::::::::::::::::::::::::::::::::::::: 6 3.2 Receiving Mail ::::::::::::::::::::::::::::::::::::::::::::::::: 7 3.3 Processing Mail :::::::::::::::::::::::::::::::::::::::::::::::: 7 3.4 Leaving MH-E ::::::::::::::::::::::::::::::::::::::::::::::::: 9 3.5 More About MH-E ::::::::::::::::::::::::::::::::::::::::::::: 9 4 Using This Manual ::::::::::::::::::::::::::::
    [Show full text]
  • GNU Texmacs User Manual Joris Van Der Hoeven
    GNU TeXmacs User Manual Joris van der Hoeven To cite this version: Joris van der Hoeven. GNU TeXmacs User Manual. 2013. hal-00785535 HAL Id: hal-00785535 https://hal.archives-ouvertes.fr/hal-00785535 Preprint submitted on 6 Feb 2013 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. GNU TEXMACS user manual Joris van der Hoeven & others Table of contents 1. Getting started ...................................... 11 1.1. Conventionsforthismanual . .......... 11 Menuentries ..................................... 11 Keyboardmodifiers ................................. 11 Keyboardshortcuts ................................ 11 Specialkeys ..................................... 11 1.2. Configuring TEXMACS ..................................... 12 1.3. Creating, saving and loading documents . ............ 12 1.4. Printingdocuments .............................. ........ 13 2. Writing simple documents ............................. 15 2.1. Generalities for typing text . ........... 15 2.2. Typingstructuredtext ........................... ......... 15 2.3. Content-basedtags
    [Show full text]
  • Learn Emacs Through Org-Mode
    About Emacs Configuration & Basics The org-mode Further Topics Learn Emacs through org-mode Linyxus1 Dec 2018 [email protected] Linyxus Learn Emacs through org-mode About Emacs Configuration & Basics The org-mode Further Topics Outline About Emacs Configuration & Basics The org-mode Further Topics Linyxus Learn Emacs through org-mode About Emacs Configuration & Basics The org-mode Further Topics Learning curve Emacs may be best known for its learning curve: Linyxus Learn Emacs through org-mode About Emacs Configuration & Basics The org-mode Further Topics History2 A brief list: I 1970s, in Artificial Intelligence Laboratory at MIT, TECO I 1976, by Stallman, the first Emacs("Editor MACroS") I 1978, by Bernard Greenberg, MulticsEmacs, introducing MacLisp I 1981, the first Emacs to run on Linux, Gosling Emacs I 1984, by Stallman, GNU Emacs 2according to EmacsWiki Linyxus Learn Emacs through org-mode About Emacs Configuration & Basics The org-mode Further Topics What a excellent editor is like I Highly extensible (Emacs can do everthing!) I FLexible (freely define your own key bindings) I Portable (bring your Emacs everywhere) I Compatible (GUI && Terminal) I Macros Linyxus Learn Emacs through org-mode About Emacs Configuration & Basics The org-mode Further Topics Emacs deserves your efforts I It will never be out of date. I Be used in a wide range. I Programming I Documenting I Mailing I IRC I Playing games I ... I It’s really powerful. Linyxus Learn Emacs through org-mode About Emacs Configuration & Basics The org-mode Further Topics Aim of this lecture Find your passion The best way to learn Emacs is to use it.
    [Show full text]
  • Free As in Freedom (2.0): Richard Stallman and the Free Software Revolution
    Free as in Freedom (2.0): Richard Stallman and the Free Software Revolution Sam Williams Second edition revisions by Richard M. Stallman i This is Free as in Freedom 2.0: Richard Stallman and the Free Soft- ware Revolution, a revision of Free as in Freedom: Richard Stallman's Crusade for Free Software. Copyright c 2002, 2010 Sam Williams Copyright c 2010 Richard M. Stallman Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License." Published by the Free Software Foundation 51 Franklin St., Fifth Floor Boston, MA 02110-1335 USA ISBN: 9780983159216 The cover photograph of Richard Stallman is by Peter Hinely. The PDP-10 photograph in Chapter 7 is by Rodney Brooks. The photo- graph of St. IGNUcius in Chapter 8 is by Stian Eikeland. Contents Foreword by Richard M. Stallmanv Preface by Sam Williams vii 1 For Want of a Printer1 2 2001: A Hacker's Odyssey 13 3 A Portrait of the Hacker as a Young Man 25 4 Impeach God 37 5 Puddle of Freedom 59 6 The Emacs Commune 77 7 A Stark Moral Choice 89 8 St. Ignucius 109 9 The GNU General Public License 123 10 GNU/Linux 145 iii iv CONTENTS 11 Open Source 159 12 A Brief Journey through Hacker Hell 175 13 Continuing the Fight 181 Epilogue from Sam Williams: Crushing Loneliness 193 Appendix A { Hack, Hackers, and Hacking 209 Appendix B { GNU Free Documentation License 217 Foreword by Richard M.
    [Show full text]