* bug#17404: Scrolling is painfully slow
@ 2014-05-05 6:59 Richard Stallman
2014-05-05 8:43 ` Eli Zaretskii
0 siblings, 1 reply; 7+ messages in thread
From: Richard Stallman @ 2014-05-05 6:59 UTC (permalink / raw)
To: 17404
[-- Attachment #1: Type: text/plain, Size: 477 bytes --]
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
[19295] 2014-05-01 17:15:29.522 INFO: Updated to revision 117039 of branch bzr+ssh://rms@bzr.savannah.gnu.org/emacs/trunk
If you visit the file below in Rmail and type C-s GNU Emacs,
then C-n takes around 15 seconds.
SPC after that takes around 5 seconds.
[-- Attachment #2: foo2.mail --]
[-- Type: application/octet-stream, Size: 122041 bytes --]
From wget@gnu.org Sat May 3 03:58:19 2014
Return-path: <wget@gnu.org>
Envelope-to: rms@gnu.org
Delivery-date: Sat, 03 May 2014 03:58:19 -0400
Received: from Debian-exim by fencepost.gnu.org with local (Exim 4.71)
(envelope-from <wget@gnu.org>)
id 1WgUpu-0002CT-Ta
for rms@gnu.org; Sat, 03 May 2014 03:58:19 -0400
Date: Sat, 03 May 2014 03:58:18 -0400
Message-Id: <E1WgUpu-0002CT-Ta@fencepost.gnu.org>
To: rms@gnu.org
From: wget@gnu.org
Reply-To: rms@gnu.org
Content-Type: text/plain; charset=us-ascii
Subject: wget: 1 files retrieved with wget https://medium.com/message/705b87339971
X-RMAIL-ATTRIBUTES: --------
Please report bugs to <owner-wget@gnu.org>.
#!/bin/sh
# 1 files: '705b87339971' (text/html)
cat << '!EOF!-705b87339971' > '705b87339971'
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" user-scalable="no"><title>The Great Works of Software — The Message — Medium</title><link rel="canonical" href="https://medium.com/message/705b87339971"><meta name="title" content="The Great Works of Software"><meta name="description" content="Is it possible to propose a software canon? To enumerate great works of software that are deeply influential—that change…"><meta property="og:site_name" content="Medium"><meta property="og:title" content="The Great Works of Software"><meta property="og:url" content="https://medium.com/message/705b87339971"><meta property="og:image" content="https://d262ilb51hltx0.cloudfront.net/max/800/1*UA2ebfw3RASQXPI9oHkoCg.jpeg"><meta property="fb:app_id" content="542599432471018"><meta property="og:description" content="Is it possible to propose a software canon? To enumerate great works of software that are deeply influential—that change…"><meta name="twitter:site" content="@Medium"><link rel="publisher" href="https://plus.google.com/103654360130207659246"><link rel="author" href="https://plus.google.com/+PaulFord"><link rel="author" href="https://medium.com/@ftrain"><meta property="og:type" content="article"><meta name="twitter:card" content="summary_large_image"><meta property="article:publisher" content="https://www.facebook.com/medium"><meta property="article:author" content="https://medium.com/@ftrain"><meta property="article:published_time" content="2014-04-30T13:13:50.284Z"><meta name="twitter:creator" content="@ftrain"><meta name="twitter:app:name:iphone" content="Medium"><meta name="twitter:app:id:iphone" content="828256236"><meta name="twitter:app:url:iphone" content="medium:/message/705b87339971"><meta property="al:ios:app_name" content="Medium"><meta property="al:ios:app_store_id" content="828256236"><meta property="al:ios:url" content="medium:/message/705b87339971"><meta property="al:web:url" content="https://medium.com/message/705b87339971"><script>if (window.top !== window.self) window.top.location = window.self.location.href;var OB_startTime = new Date().getTime(); var OB_fontLoaded = 0; var OB_loadErrors = []; document.addEventListener('error', function (e) { OB_loadErrors.push(e) }, true); function _asyncScript(u) {var d = document, f = d.getElementsByTagName('script')[0], s = d.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = u; f.parentNode.insertBefore(s, f);}function _asyncStyles(u) {var d = document, f = d.getElementsByTagName('script')[0], s = d.createElement('link'); s.rel = 'stylesheet'; s.href = u; f.parentNode.insertBefore(s, f);}(function() {var config = {kitId: "dta5koc", scriptTimeout: 3000, active: function(){window.requestAnimationFrame && window.requestAnimationFrame(function(){OB_fontLoaded = new Date().getTime(); window._onWebfontLoad&&window._onWebfontLoad();})}, inactive: function(){window._onWebfontError&&window._onWebfontError()}};var h=document.getElementsByTagName("html")[0];h.className+=" wf-loading";var t=setTimeout(function(){h.className=h.className.replace(/( |^)wf-loading( |$)/g,"");h.className+=" wf-inactive";window._onWebfontError&&window._onWebfontError()},config.scriptTimeout);var tk=document.createElement("script");tk.src='//use.typekit.net/'+config.kitId+'.js';tk.type="text/javascript";tk.async="true";tk.onload=tk.onreadystatechange=function(){var a=this.readyState;if(a&&a!="complete"&&a!="loaded")return;clearTimeout(t);try{Typekit.load(config)}catch(b){}};var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(tk,s)})();var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-24232453-2']); _gaq.push(['_trackPageview']); _asyncScript(('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js');var _kmq = _kmq || []; var _kmk = _kmk || '965ccfe7459a74a1209b1412b24fe962252de6b3'; _asyncScript('//i.kissmetrics.com/i.js'); _asyncScript('//doug1izaerwt3.cloudfront.net/' + _kmk + '.1.js');</script><script>_asyncStyles('\/\/dnqgz544uhbo8.cloudfront.net\/_\/fp\/css\/main-sprites.r_X1aYqr16H7UDITghbtWA.css')</script><link rel="stylesheet" href="//dnqgz544uhbo8.cloudfront.net/_/fp/css/main-base.PNUWwzkspvpmSQnsHqU-YA.css"><!--[if lt IE 9]><script charset="UTF-8" src="//dnqgz544uhbo8.cloudfront.net/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js"></script><![endif]--><link rel="apple-touch-icon-precomposed" sizes="152x152" href="/apple-touch-icon-precomposed-152.png"><link rel="apple-touch-icon-precomposed" sizes="120x120" href="/apple-touch-icon-precomposed-120.png"><link rel="apple-touch-icon-precomposed" sizes="76x76" href="/apple-touch-icon-precomposed-76.png"><link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-precomposed.png"></head><body itemscope itemtype="http://schema.org/Article" class="template-flex-article os- js-loading "><nav class="site-nav" tabindex="-1"><button class="site-nav-logo distraction-free-component" data-action="open-nav"><span class="icons icons-logo-m"><span class="screen-reader-text">Medium site navigation</span></span><div class="site-nav-activity-flag"></div></button><div class="site-nav-scrollable-container"><ul class="site-nav-list"><li class="site-nav-list-item navigable-list-item site-nav-list-item-home"><a class="site-nav-list-item-btn" title="Go home" href="/" tabindex="-1" ><span class="icons icons-logo-m"></span>Home</a><a class="site-nav-list-item-btn-secondary" title="Search Medium" href="/search" tabindex="-1"><span class="icons icons-search"><span class="screen-reader-text">search</span></span></a></li><li class="site-nav-list-item navigable-list-item"><a class="site-nav-list-item-btn" title="Collections" href="/collections" tabindex="-1"><span class="icons icons-collections"></span>Collections</a></li><li class="site-nav-list-item navigable-list-item"><a class="site-nav-list-item-btn" title="Sign in with Twitter" data-action="sign-in-with-twitter" href="/m/account/authenticate-twitter" tabindex="-1"><span class="icons icons-twitter"></span>Sign in with Twitter</a></li></ul></div></nav><div class="site-nav-overlay"></div><div class="container" id="container"><div class="butter-bar error"></div><div class="surface"><div id="prerendered" class="screen-content"><article class="post-article lang-tier-1" data-allow-notes="true"><div class="metabar u-clearfix metabar-light metabar-top "><div class="metabar-block align-right"><div><div class="metabar-text">15 min read</div><div class="btn-set "></div></div></div></div><div class="post-field image image-picker-wrap background-size-full picker-layout-fill" data-url="https://d262ilb51hltx0.cloudfront.net/fit/t/1200/960/gradv/29/81/55/1*UA2ebfw3RASQXPI9oHkoCg.jpeg" data-image-id="1*UA2ebfw3RASQXPI9oHkoCg.jpeg" data-width="1962" data-height="903" data-image-style="full"><div class="post-field caption caption-truncated" title="A DEC PDP-11 computer, from Wikipedia Commons. Photo by “Shieldforyoureyes Dave Fischer” under the Creative Commons Attribution-Share Alike 3.0 Unported license. http://commons.wikimedia.org/wiki/File:Pdp-11-70-panel.jpg">A DEC PDP-11 computer, from Wikipedia Commons. Photo by “Shieldforyoureyes Dave Fischer” under the Creative Commons Attribution-Share Alike 3.0 Unported license. http://commons.wikimedia.org/wiki/File:Pdp-11-70-panel.jpg</div><div class="story-cover" data-load-img=".post-header-image-cover"><div class="picker-target-clone"></div><div class="picker-target story-cover-image" style="background-image: url(https://d262ilb51hltx0.cloudfront.net/fit/t/1200/960/gradv/29/81/55/1*UA2ebfw3RASQXPI9oHkoCg.jpeg);"></div><div class="post-preview layout-foreground post-preview-with-image post-preview-unfiltered"><div class="post-preview-content layout-single-column align-middle layout-fill-height"><div class="align-block layout-fill-width"><div class="post-preview-description">Next in trending</div><h3 class="post-preview-title">The Great Works of Software</h3><h4 class="post-preview-subtitle">Is it possible to propose a software canon? To enumerate great works of software that are deeply influential—that changed the nature of the…</h4><ul class="post-item-meta"><li class="post-item-meta-item"><a href="/@ftrain" class="post-item-author link link-secondary" title="Go to the profile of Paul Ford" ><img src="https://d262ilb51hltx0.cloudfront.net/fit/c/64/64/0*5MUGve9BqcUb2vLq.png" class="avatar-icon post-item-meta-avatar" title="Paul Ford"><span >Paul Ford</span></a> in <a href="/message" title="Go to The Message" data-collection-slug="message" data-id="81c7d351c056" class="post-item-collection link link-secondary">The Message</a></li><li class="post-item-meta-item"><span class="reading-time">15 min read</span></li></ul></div></div></div><div class="layout-table-row layout-fill"><div class="picker-content story-cover-content"><div data-scroll="post-cover" ><div class="post-content layout-single-column"><header class="post-header notes-header-source"><h1 itemprop="name" name="title" class="post-title">The Great Works of Software</h1><ul class="post-item-meta"><li class="post-item-meta-item"><a href="/@ftrain" class="post-item-author link link-secondary" title="Go to the profile of Paul Ford" ><img src="https://d262ilb51hltx0.cloudfront.net/fit/c/64/64/0*5MUGve9BqcUb2vLq.png" class="avatar-icon post-item-meta-avatar" title="Paul Ford"><span >Paul Ford</span></a> in <a href="/message" title="Go to The Message" data-collection-slug="message" data-id="81c7d351c056" class="post-item-collection link link-secondary">The Message</a></li></ul></header></div><span class="story-cover-arrow" data-action="scroll-to-post-start"></span></div></div></div></div></div><section class="post-page-wrapper post-page-wrapper-full"><div class="post-page-wrapper-inner"><div class="post-content"><div class="post-content-inner"><div class="notes-source"><div class="post-field body"><section name="cb22"><div class="section-divider layout-single-column"><hr class="section-divider"></div><div class="section-inner layout-single-column"><p name="d74f">Is it possible to propose a <em>software canon</em>? To enumerate great works of software that are deeply influential—that changed the nature of the code that followed?</p><p name="ceb2">Canons emerge over time, as certain works gain in critical appreciation. But software is mutable stuff, quick to obsolesce. Only banks, governments, and your parents run the same programs for more than a couple years at a time; the rest of us are forced to upgrade to new versions every two years or we risk being regarded as backward-minded hill people.</p><p name="bd4a">As far as I can tell, no truly huge world-shifting software product has ever existed in only one version (even <a target="_blank" href="http://en.wikipedia.org/wiki/Flappy_Bird" rel="nofollow"><em>Flappy Bird</em></a><em> </em>had updates). Just about every global software product of longevity grows, changes, adapts, and reacts to other software over time.</p><p name="62c6">So I set myself the task of picking five great works of software. The criteria were simple: How long had it been around? Did people directly interact with it every day? Did people use it to do something meaningful? I came up with the office suite Microsoft Office, the image editor Photoshop, the videogame Pac-Man, the operating system Unix, and the text editor Emacs.</p><p name="16c4">I realized that each one of these technologies set out to help people <em>do </em>something but consequently grew and changed over time. Each ultimately provided a way for large groups of people to talk about and think about very difficult problems:</p><ul class="post-list"><li name="5ddb"><em>Microsoft Office</em>: How do we <em>communicate about work?</em></li><li name="ae01"><em>Photoshop</em>: How do we <em>create and manipulate images?</em></li><li name="2f01"><em>Pac-Man: </em>How do we <em>play?</em></li><li name="389e"><em>Unix: </em>How do we <em>connect abstractions together to solve problems?</em></li><li name="cb93"><em>Emacs: </em>How do we <em>write programs that control computers?</em></li></ul><p name="0f10">Computer people often talk about <em>products. </em>But each of these five have come to represent something else—an engagement with hard problems that are typically thought to be in the domain of philosophy, literature, or art, rather than programming. This software doesn’t just let people do things; it gives them a way to talk about and share what they did.</p><p name="1a66">Other people have made similar lists. Matthew Kirschenbaum, a professor of English at the University of Maryland, wrote in <em>Slate</em> about <a target="_blank" href="http://www.slate.com/blogs/browbeat/2013/07/30/_10_most_influential_software_programs_of_all_time_from_sabre_to_minecraft.html" rel="nofollow">influential programs</a> [see note] <em>(</em>text editor Wordstar,<em> </em>programming environment Hypercard, image editor Photoshop, information manager Lotus Notes<em>) </em>in a list he made last July<em>. </em>Back in 2007, <em>PC World </em>published <a target="_blank" href="http://www.pcworld.com/article/130207/article.html" rel="nofollow">a list of the best tech products of all time</a>, leading off with the first commercial web browser, Netscape Navigator<em>, </em>and ending at #50 with the Northgate Omnikey Ultra keyboard. Recently here on Medium <a href="https://medium.com/tech-talk/a708cda55921">Max Dunn published an appreciation of the desktop publishing program Adobe <em>InDesign</em></a>.</p><p name="abc5">So <em>Slate</em> used “influence” as its criterion; <em>PC World,</em> the more nebulous criterion of “bestness.”</p><p name="7935">I propose a different kind of software canon: Not about specific moments in time, or about a specific product, but rather about works of technology that transcend the upgrade cycle, adapting to changing rhythms and new ideas, often over decades.</p><h2 name="4238"><strong>Microsoft Office</strong></h2><figure name="e44e"><div class="aspect-ratio-placeholder aspect-ratio-locked" style="max-width: 658px; max-height: 420px;"><div class="aspect-ratio-fill" style="padding-bottom: 63.800000000000004%;"></div><img data-image-id="1*fTCXpjN_5oiZ6a0KEma47w.gif" data-width="658" data-height="420" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*fTCXpjN_5oiZ6a0KEma47w.gif"></div><figcaption class="image-caption">In the days before the ribbon.</figcaption></figure><p name="5914">Ten years ago I watched a six-year-old girl catch a misspelling in something she was writing on paper with a pen. She went and got a red pen and underlined the misspelled word with a wavy line, just like Word does.</p><p name="e5e3">I distrust Microsoft Office, because it is a bear to use and expensive, and it has destroyed many drafts by crashing. Yet greatness is not the same as goodness and I must admit that it is a great work of software—powerful, omnipresent, and woven into the culture. It was first announced by Microsoft in 1988, but components had been around far longer—Microsoft Word<em> </em>since 1983. So the original ideas inside of Office have been around for 30 years.</p><p name="b3b6">For all that people discuss teaching kids to code, or how the Web gives people a voice, Microsoft Office is the most <em>empowering</em> software in the world. Word<em> </em>is used to write memos and novels; PowerPoint is used to sell ideas and teach classes; and Excel<em> </em>is used to share budgets for freelancers or giant companies alike. These tools are used to do schoolwork, and to set up billion-dollar deals. While their hegemony is no longer total—Google Docs and the like are nibbling at Office’s heels—the programs in the suite remain the mass instruments of economic power. To use anything else invites suspicion. Who wants to be the person who sends a spreadsheet that doesn’t open in Excel?</p><p name="32e0">Office is emphatically not a singular thing. It changes with Microsoft’s perception of the market. There are many versions for home, office, or web. Sometimes it includes a database program called Access, sometimes it doesn’t. Some bundles might include other tools like Publisher (desktop publishing), Project (project management), and Visio (diagramming). <a target="_blank" href="http://en.wikipedia.org/wiki/Microsoft_Office" rel="nofollow">A fairly complete history is available at Wikipedia</a> if you are so inclined.</p><p name="c674">While Office is a testament to the power of bundling software, the integration between the different applications is still awkward. Decades in, it’s still a risky move to paste a spreadsheet into a word-processing document; to do that gives even the fastest computer pause. The boundaries and borders between Office’s are difficult to cross. In theory, one can turn a Word document into a PowerPoint presentation. In reality, well.</p><p name="56c2">What Office provides is <em>a language for doing office things</em>. You don’t go in front of an audience without a PowerPoint deck. Businesspeople “live” in Excel; its language (it actually <em>is</em> a crypto-programming language) has become the language of money and budgets. People who do work with symbols and language to make a living organize their thoughts into the containers and systems that Office provides. Office is not so much a software product as a dialect that we all speak as we proceed about our labors.</p><h2 name="cb26"><strong>Adobe Photoshop</strong></h2><figure name="f49b"><div class="iframe-container"><iframe data-width="1280" data-height="720" width="700" height="394" src="/media/322d821f0c7d139a80279ffab42d30d7?maxWidth=700" data-media-id="322d821f0c7d139a80279ffab42d30d7" frameborder="0"></iframe></div><figcaption class="image-caption">http://player.vimeo.com/video/81847258</figcaption></figure><p name="c1ad">Development on Photoshop started in 1987, and while it too exists inside a suite of tools (the Adobe Creative Suite), including a huge variety of software products for everything from film production, it is Photoshop that is part of the cultural lexicon, today a verb. None of the other applications in the Creative Suite are as prevalent (no one asks, “Is that <em>Illustrator</em>ed” or “did you <em>InDesign</em> that?”).</p><p name="91bd">To <em>photoshop</em> something is to manipulate an image, sometimes with the intention of making the subject of the photo more aesthetically pleasing than the original source image. It is of particular concern when it comes to women’s bodies; Photoshop has become the tool that we use to trim fat and reduce the effect of aging. Only pregnancy has swelled more breasts.</p><p name="0f6d">Photoshop itself is basically an enormous collection of ideas about images. <a target="_blank" href="http://www.adobe.com/devnet-apps/photoshop/fileformatashtml/" rel="nofollow">The Photoshop file format</a>, the way that its files are arranged and stored on disk drives, is a potted history of everything people have ever thought about images and computers, a fascinating hellish palimpsest. Here’s <a target="_blank" href="https://code.google.com/p/xee/source/browse/XeePhotoshopLoader.m?r=f16763d221dfca6253983824b470adf553a19e06" rel="nofollow">how one programmer described it</a>:</p><pre name="3788">Trying to get data out of a PSD file is like trying to find something in the attic of your eccentric old uncle who died in a freak freshwater shark attack on his 58th birthday. That last detail may not be important for the purposes of the simile, but at this point I am spending a lot of time imagining amusing fates for the people responsible for this Rube Goldberg of a file format.<br><br></pre><p name="63e1">Photoshop also remains the way that professionals communicate about the appearance and behavior of web pages. There are many ways to specify how web pages look, many tools that people use, but more often than not, when it’s time to design a web page or banner ad, it is Photoshop bouncing in the dock.</p><p name="8584">Thus, like Office, it is the de-facto standard, the tool that gives people a language (<em>bounding box, crop, blur, channel ops, layer</em>) for talking about digital images. It’s more than a quarter-century old and it is a verb. It belongs in the canon.</p><h2 name="ff10"><strong>Pac-Man.</strong></h2><figure name="1cf8"><div class="aspect-ratio-placeholder aspect-ratio-locked" style="max-width: 700px; max-height: 266px;"><div class="aspect-ratio-fill" style="padding-bottom: 38%;"></div><img data-image-id="1*4eh1NnclTIEl2w1pmZZ_Vg.png" data-width="1316" data-height="500" data-action="zoom" data-action-value="1*4eh1NnclTIEl2w1pmZZ_Vg.png" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*4eh1NnclTIEl2w1pmZZ_Vg.png"></div><figcaption class="image-caption">From Musescore http://musescore.com/user/85429/scores/107109</figcaption></figure><p name="28a7"><a target="_blank" href="http://en.wikipedia.org/wiki/Toru_Iwatani" rel="nofollow">Pac-Man was created in 1980, written by Toru Iwatani. </a>It’s a small game, running on laughable hardware. But it gave us a shorthand for a specific kind of play—iconographic, silly. The gameplay of Centipede was better, but the story (a gnome that shoots bugs) was vague; the gameplay of Missile Command crawled but the narrative was incredibly bleak.</p><p name="43bd">Pac-Man was a chase, a Tom and Jerry cartoon. It presented a perfect inversion where, upon eating a certain kind of dot, the prey became predator. It took over a year to develop, and a great deal of thought went into the player’s psychology, the fact that they would empathize with the yellow circle of Pac-Man.</p><p name="3931">Here’s <a target="_blank" href="http://programmersatwork.wordpress.com/toru-iwatani-1986-pacman-designer/" rel="nofollow">Iwatani in 1986</a>, talking about ghost attacks:</p><blockquote name="9bfe">When a human being is constantly under attack like this, he becomes discouraged. So we developed the wave-patterned attack–attack then disperse; as time goes by the ghosts regroup and attack again. Gradually the peaks and valleys in the curve of the wave become less pronounced so that the ghosts attack more frequently.</blockquote><p name="9753">The mechanics of the game aligned to some primitive reptile-brain sense of narrative. <em>Run eat run eat run eat KILL EAT KILL EAT KILL EAT KILL run eat run eat run. </em>The music burrowed into the mind, so much so that a whole generation can hear the theme music…</p><blockquote name="2359" class="pullquote">Doo-do-doo-doo-dudla-doop<br>Doo-do-doo-doo-dudla-doop<br>Doo-do-doo-doo-dudla-doop<br>Doodla-doodla-doodla-doodla-doop<br>—Pac-Man Theme Song</blockquote><figure name="55d7"><div class="iframe-container"><iframe data-width="640" data-height="480" width="640" height="480" src="/media/a4f2df3c9e2be2272045fa79eedcb3a8?maxWidth=640" data-media-id="a4f2df3c9e2be2272045fa79eedcb3a8" frameborder="0"></iframe></div><figcaption class="image-caption">https://www.youtube.com/watch?v=BxYzjjs6d1s</figcaption></figure><p name="a720">Pac-Man machines ran on solid-state technology; they had no moving parts and operated for decades. The game itself seeped out into every aspect of pop culture: wind-up toys, watches, rip-offs galore, plush toys, a terrible animated cartoon, featuring a Pac-Baby. It even showed up in <a target="_blank" href="http://www.gocomics.com/bloomcounty/1983/02/27/#.U1ptwuZdVU4" rel="nofollow"><em>Bloom County</em></a><em>.</em></p><p name="9238">It was in every way a fad, but nonetheless people kept plowing quarters into Pac-Man machines for years; they became one of the steadiest earners at arcades. Namco, the game’s distributor, today offers a collected version of Pac-Man games and its derivants, like Ms. Pac Man, bundled together into something called “<a target="_blank" href="http://www.bandainamcogames.com/game/pac-man-museum.html" rel="nofollow">Pac-Man Museum</a>”—its place in the canon has become part of its marketing. Echoes of its gameplay show up anywhere a joystick is used. And the image of a pie missing a slice has become a universal symbol for “video game”; <a target="_blank" href="https://www.youtube.com/watch?v=pIrvpn3k9A4" rel="nofollow">people dress up and run around in Pac-Man costumes</a>. And it’s remained <a target="_blank" href="http://vimeo.com/64586136" rel="nofollow">part of the culture</a> for 34 years.</p><h2 name="272e"><strong>Bell Labs Unix</strong></h2><figure name="39f2"><div class="aspect-ratio-placeholder aspect-ratio-locked" style="max-width: 700px; max-height: 561px;"><div class="aspect-ratio-fill" style="padding-bottom: 80.10000000000001%;"></div><img data-image-id="1*3hGB-r63bpQ7nZ5JbFmxeA.jpeg" data-width="1498" data-height="1200" data-action="zoom" data-action-value="1*3hGB-r63bpQ7nZ5JbFmxeA.jpeg" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*3hGB-r63bpQ7nZ5JbFmxeA.jpeg"></div><figcaption class="image-caption">This became your Mac. Dennis Ritchie (standing) and Ken Thompson at a PDP11 computer in the 1970s. (CC licensed; via: <a target="_blank" href="http://commons.wikimedia.org/wiki/File:Ken_Thompson_%28sitting%29_and_Dennis_Ritchie_at_PDP-11_%282876612463%29.jpg" rel="nofollow">http://commons.wikimedia.org/wiki/File:Ken_Thompson_(sitting)_and_Dennis_Ritchie_at_PDP-11_(2876612463).jpg</a>)</figcaption></figure><p name="e22a">Unix is an operating system, which means it’s a set of programs that run <em>other</em> programs on a computer. It’s part of what’s inside your Macintosh computer running Mac OS X, and it’s what runs many of the servers that you access on the web. It’s also inside billions of phones. The open-source operating system Linux is a kind of Unix, and <a target="_blank" href="http://bellard.org/jslinux/" rel="nofollow">you can run Linux inside of a web browser now</a>, because everything can be everything else in the land of computers. So if you want to take Unix for a spin, <a target="_blank" href="http://bellard.org/jslinux/" rel="nofollow">go to.</a></p><p name="f164">Unix was born at Bell Labs in 1969. What it offered over its predecessors was: As little as possible. It came with a few handfuls of tiny little programs and then assumed that people would want to chain all those programs together (“piping” the output of one program into the input of another). It just didn’t make that many assumptions about what people wanted. (“Perhaps paradoxically,” wrote its creators, “the success of the Unix system is largely due to the fact that it was not designed to meet any predefined objectives.”)</p><p name="2a3e">Unix is best-known for its command-line “shell.” Here’s a Unix shell program that makes a list of the top ten words in this Medium post; it’s okay if your eyes glaze over:</p><pre name="1fc6">cat medium_post.txt | tr ' ' '\n' | tr -d '[:punct:]' \<br>| tr '[:upper:]' '[:lower:]' | sort | uniq -c \<br>| sort -nr | tail -n+10 | head -30 \<br>| column -c 60</pre><p name="a6e5">It looks like gobbledygook if you’ve never used Unix, but it’s actually a simple set of tools chained together (I placed an explanation in a comment above if you’re curious what it all means). Anyone who takes a week and learns about Unix shells will understand what’s happening here.</p><p name="788e">That’s a ton of power available to users for very little trade-off in time and energy; it’s not <em>easy</em> but it’s extremely <em>powerful </em>and not that hard to learn<em>. </em>Here’s what that command spits out, above:</p><pre name="73f3"> 45 that 17 unix 13 one<br> 33 its 16 on 13 into<br> 33 for 16 has 12 time<br> 27 software 15 was 12 not<br> 26 as 15 office 11 they<br> 25 but 14 this 11 pacman<br> 21 people 14 so 10 world<br> 21 are 14 more 10 photoshop<br> 19 about 14 an 10 language<br> 18 at 13 with 10 ideas</pre><p name="81eb">In 1983, when Pac-Man was three, the Association for Computing Machinery gave Dennis Ritchie and Ken Thompson, the inventors of Unix, the Turing Award, which is the biggest award in computing. <a target="_blank" href="http://amturing.acm.org/award_winners/ritchie_1506389.cfm" rel="nofollow">The ACM wrote</a><a target="_blank" href="http://the%20success%20of%20the%20unix%20system%20stems%20from%20its%20tasteful%20selection%20of%20a%20few%20key%20ideas%20and%20their%20elegant%20implementation.%20the%20model%20of%20the%20unix%20system%20has%20led%20a%20generation%20of%20software%20designers%20to%20new%20ways%20of%20thinking%20about%20programming.%20the%20genius%20of%20the%20unix%20system%20is%20its%20framework%2C%20which%20enables%20programmers%20to%20stand%20on%20the%20work%20of%20others./" rel="nofollow">:</a></p><blockquote name="22cf">The success of the UNIX system stems from its tasteful selection of a few key ideas and their elegant implementation. The model of the Unix system has led a generation of software designers to new ways of thinking about programming. The genius of the Unix system is its framework, which enables programmers to stand on the work of others.</blockquote><p name="c820">True. You read <a target="_blank" href="http://pdos.csail.mit.edu/6.828/2004/readings/ritchie74unix.pdf" rel="nofollow">the documentation for early versions of Unix</a> it’s all very simple and plain-spoken, if pretty wonky. Here’s the original paper from 1974, if you’re interested:</p><figure name="6885"><div class="iframe-container"><iframe data-width="600" data-height="780" width="600" height="780" src="/media/26d8ede03d0c3de78f934e19d11ed6b6?maxWidth=600" data-media-id="26d8ede03d0c3de78f934e19d11ed6b6" frameborder="0"></iframe></div><figcaption class="image-caption"><a target="_blank" href="http://pdos.csail.mit.edu/6.828/2004/readings/ritchie74unix.pdf" rel="nofollow">http://pdos.csail.mit.edu/6.828/2004/readings/ritchie74unix.pdf</a></figcaption></figure><p name="5edd">There’s a sad tendency in most manuals and programming guides to congratulate people simply for thinking. Not here; you’re expected to think. That can be very exciting when you’re used to being patronized, and it’s one of the best things about Unix.</p><p name="7ae8">The people who invented Unix were not trying to teach you how to use a computer as we understand computers today; rather, they were educating professionals as to the best way to operate an incredibly heavy and expensive piece of industrial equipment. The 1974 paper says that you can run Unix on cheap computers, computers that cost as little as $40,000 ($202,000 in 2014.) Right now there are two Unix workstations in my closet that cost $35 each.</p><blockquote name="033a" class="pullquote">The phone company gave birth to Unix. Now there is no phone company and Unix runs on your phone.</blockquote><p name="6cdb">Mass production and cheaper technology have changed almost everything about how we use computers—but not quite. Some fundamental ideas about software are the same, four decades later. Unix made it easy for computer people to talk about computing, and it still does.</p><h2 name="0806"><strong>GNU Emacs</strong></h2><figure name="74a1"><div class="aspect-ratio-placeholder aspect-ratio-locked" style="max-width: 700px; max-height: 440px;"><div class="aspect-ratio-fill" style="padding-bottom: 62.9%;"></div><img data-image-id="1*8-wuASRTy7aIvkXuTCk3pg.png" data-width="2062" data-height="1296" data-action="zoom" data-action-value="1*8-wuASRTy7aIvkXuTCk3pg.png" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*8-wuASRTy7aIvkXuTCk3pg.png"></div><figcaption class="image-caption">Looks like fun!</figcaption></figure><p name="3dcf">Finally, <a target="_blank" href="http://www.gnu.org/software/emacs/" rel="nofollow">GNU Emacs</a>. This is my text editor—meaning that it’s emphatically not a word processor, but rather a tool for dealing with pure text, such as programming languages. There are other text editors, like <a target="_blank" href="http://www.vim.org/" rel="nofollow">Vim</a>, and there are passionate debates over which is best. But it’s not simply in its ability to wrangle words on screen that Emacs excels; it’s that each letter you type is not simply part of a file but rather a dynamic entity that can be manipulated, enhanced, compared, and transformed.</p><p name="ba99">The program’s name is tricky. The “GNU” means that it’s a project of the <a target="_blank" href="http://www.gnu.org/" rel="nofollow">GNU Foundation</a>, and stands for “GNU’s Not Unix” (a recursive acronym—nerds). Explaining <em>why </em>GNU’s Not Unix would ruin your afternoon; just assume it has to do with powerful feelings felt by programmers in the early 1980s.</p><p name="6741">“<em>Emacs</em>” is a contraction of “Editor MACroS.” Macros are little rules, sort of mini-programs. So—stay with me—<em>Emacs</em> started as a set of macros built on top of <em>TECO</em>, which was born in the 1960s and stood for <strong><em>T</em></strong><em>ape </em><strong><em>E</em></strong><em>ditor and </em><strong><em>CO</em></strong><em>rrector</em>, because it let you edit things on magnetic tapes. People used it at MIT.</p><p name="2a4e">People started messing with TECO and adding macros, and then a man named <a target="_blank" href="http://stallman.org/" rel="nofollow">Richard Stallman</a> and another man named <a target="_blank" href="http://en.wikipedia.org/wiki/Guy_L._Steele,_Jr." rel="nofollow">Guy Steele, Jr.</a>, wrapped all of that up into a new program called Emacs. That was in 1976. Later, Emacs was very conspicuously <a target="_blank" href="http://www.gnu.org/software/emacs/manual/html_node/emacs/Distrib.html" rel="nofollow">made freely available to all</a>—one of the first programs to be licensed so that anyone could <em>change</em> the code, but no one could <em>take the code away</em> from the community.</p><figure name="44a8"><div class="aspect-ratio-placeholder aspect-ratio-locked" style="max-width: 700px; max-height: 568px;"><div class="aspect-ratio-fill" style="padding-bottom: 81.10000000000001%;"></div><img data-image-id="1*hnQ8Sep6KacI33b4bjYnrA.png" data-width="1726" data-height="1400" data-action="zoom" data-action-value="1*hnQ8Sep6KacI33b4bjYnrA.png" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*hnQ8Sep6KacI33b4bjYnrA.png"></div><figcaption class="image-caption">Typical emacs working session</figcaption></figure><p name="c8df">What makes Emacs different is that it’s not so much a program as an editor-development toolkit. It provides an entire programming language for doing what it does, called <em>Emacs</em> LISP (elisp). You don’t need to program in elisp to use Emacs, but it’s there if you want to try something new. It’s absolutely, infinitely extensible.</p><p name="3c0a">Since 1976 the community around Emacs has been accreting little elisp programs into its standard library—thousands of them—that perform an extraordinary range of software tasks. When you download and use the program they are already installed, ready to use, and you can get yet more of them on the Internet. There are calendar programs and outliners, a version of Tetris that is perfectly usable, a text adventure, tools for searching and replacing through thousands of files, and on and on, all built up together. As you work, whether writing code or writing prose, <em>Emacs </em>is constantly trying to guess what your text means; it tries to intuit what you want and what you mean. Being as it’s edging on 40 years old, it knows quite a bit.</p><p name="a8a8">There are <em>modes </em>for different languages. You switch from one mode to another depending on what you’re doing. There’s txt-mode for editing text, js2-mode for editing JavaScript code, outline-mode for editing outlines, and modes built <em>atop</em> those. Different commands mean different things in these modes. The nature of editor shifts slightly depending on what you’re doing. But because all of these modes exist and are well understood by hundreds of thousands of people, when new technologies and programming languages arrive, Emacs responds—often very quickly. There are modes for just about every programming language in common use, and for dozens that are not in common use at all.</p><p name="c2c5">You can see all the code that has gone into this because it is open-sourced. The code history of Emacs <a target="_blank" href="https://github.com/mirrors/emacs/commits/master?page=3746" rel="nofollow">goes back 29 years</a> on Github. You can skim over that code (it would take years to read it all) and see programmers coming and going, see how Emacs reacted, as a community and as a piece of software, to the incredible rate of change around it. Emacs provably represents literally decades of continual, community contemplation of a solitary question: <em>What does it mean to create with words and symbols?</em></p><h2 name="4108">Conclusion</h2><figure name="923a"><div class="aspect-ratio-placeholder aspect-ratio-locked" style="max-width: 700px; max-height: 525px;"><div class="aspect-ratio-fill" style="padding-bottom: 75.1%;"></div><img data-image-id="1*3BnE5N-XmKZCK1IzsGHQ_A.jpeg" data-width="710" data-height="533" data-action="zoom" data-action-value="1*3BnE5N-XmKZCK1IzsGHQ_A.jpeg" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*3BnE5N-XmKZCK1IzsGHQ_A.jpeg"></div><figcaption class="image-caption">Planetary, an iPad app acquired by the Cooper Hewitt design (image from <a target="_blank" href="http://www.cooperhewitt.org/object-of-the-day/2013/08/26/planetary-collecting-and-preserving-code-living-object" rel="nofollow">http://www.cooperhewitt.org/object-of-the-day/2013/08/26/planetary-collecting-and-preserving-code-living-object</a>)</figcaption></figure><p name="9449">Canons are tricky things. There are pieces of software—like the <a target="_blank" href="http://en.wikipedia.org/wiki/Internet_protocol_suite" rel="nofollow">TCP/IP stack</a> that allows computers to communicate on the Internet—that have fundamentally changed global culture. The legendary <a target="_blank" href="http://en.wikipedia.org/wiki/TeX" rel="nofollow">programming language TeX</a>, used to prepare typeset documents, has been around for decades and has a massive community. And of course many other massively popular software products that are worthy of consideration. I expect that people will leave comments to that effect.</p><p name="a872">Not long ago <a target="_blank" href="http://www.cooperhewitt.org/object-of-the-day/2013/08/26/planetary-collecting-and-preserving-code-living-object" rel="nofollow">the Cooper-Hewitt Design Museum (part of the Smithsonian) </a>acquired an iPad app called <em>Planetary </em>for its collection:</p><blockquote name="3d1d">With Planetary we are hoping to preserve more than simply the vessel, more than an instantiation of software and hardware frozen at a moment in time: Commit message <a target="_blank" href="https://github.com/cooperhewitt/Planetary/commit/fd247e35de9138f0ac411ea0b261fab21936c6e6" rel="nofollow">fd247e35de9138f0ac411ea0b261fab21936c6e6</a> authored in 2011 and an iPad2 to be specific.</blockquote><p name="d68e">Translated from moon language, this means that goodly museum people acquired this app as an art object—as a set of code and graphical assets and sounds as they were assembled at a specific moment in time (“commit message”) on a specific platform (“iPad2”).</p><p name="7753">Museums have a tricky time of it, because they need to put pins in things, assign names and numbers, and integrate them into larger historical collections. In acquiring Planetary, the Cooper-Hewitt was (very consciously) asking the question: What kind of art is software? How do we name it? Their work is like the work of lexicographers, who must try to encapsulate spoken language into dictionaries, even though language is huge, changing, and ever-moving, like clouds. It’s impossible but also incredibly useful.</p><p name="7797">But software is a unique art because it is so reactive. Not just on the screen but over time, as programs adapt and change with the culture—a culture they help define. Software provides identity (consider the Linux user, the web zealot, the “Unix greybeard”), a sense of affiliation and shared experience. The greatest works of software are not just code, or programs but social, expressive, <em>human </em>languages. They give us a shared set of norms and tools for expressing our ideas about words, or images, or software development. Great software gives us tremendous freedom, as long as we work within its boundaries.</p></div></section></div></div><div class="post-footer-actions post-supplemental layout-single-column"><div class="btn-set"><button class="btn btn-large btn-toggle btn-primary btn-suffix recommend-button no-user-select "data-action="sign-in-prompt"data-requires-token="true"data-popover-type="sign-in"data-redirect="/_/vote/message/705b87339971"data-popover="Sign in to recommend" data-popover-position="bottom" data-popover-signin-type="recommend"title="Recommend this post"><span class="icons icons-heart"></span><span class="btn-label recommend-button-label" data-suffix="ed">Recommend</span></button><div class="vote-widget"></div><div class="post-footer-secondary-actions"><a class="btn btn-chromeless" title="Share this post on Twitter" data-action="share-on-twitter" data-action-value="705b87339971"><i class="icons icons-twitter"></i></a><a class="btn btn-chromeless" title="Share this post on Facebook" data-action="share-on-facebook" data-action-value="705b87339971"><i class="icons icons-facebook"></i></a></div></div></div><div class="post-follow-ups post-supplemental layout-single-column"></div><div class="post-footer-cards post-supplemental layout-single-column"><div class="layout-multi-column-half"><h4 class="cards-heading">Written by</h4><ul class="cards"><li class="card card-user"><div class="card-image"><a href="/@ftrain" title="Go to the profile of Paul Ford" ><img src="https://d262ilb51hltx0.cloudfront.net/fit/c/190/190/0*5MUGve9BqcUb2vLq.png" class="card-avatar" title="Paul Ford"></a></div><div class="card-content"><h3 class="card-name"><a href="/@ftrain" data-id="168dab556633" title="Go to the profile of Paul Ford" rel="author" class="link link-primary">Paul Ford</a></h3><p class="card-description">(1974– ) Writer, editor, programmer. Working on a book about web pages for FSG. Contact <a rel="nofollow" target="_blank" href="mailto:ford@ftrain.com">ford@ftrain.com</a> if you spot a typo.</p><div class="btn-set"><button class="btn btn-small btn-follow btn-toggle btn-suffix btn-primary no-user-select "data-action="sign-in-prompt"data-requires-token="true"data-popover-type="sign-in"data-redirect="/_/subscribe/user/168dab556633"data-popover="Sign in to follow this user" data-popover-position="bottom" data-popover-signin-type=""><span class="btn-label follow-label" data-suffix="ing">Follow</span></button></div><div class="card-additional"><div class="card-description-additional card-published"><span>Published</span> <span><time class="post-date">April 30, 2014</time></span></div><div class="post-collaborators"><span class="post-collaborators-heading" data-tooltip="The following people helped Paul Ford with this post by adding notes to provide feedback before the post was published.">Thanks to:</span> <span class="post-collaborator-item post-collaborator-visible"><a class="post-collaborator-link link " href="/@quinnnorton">Quinn Norton</a></span><span class="post-collaborator-item post-collaborator-visible"><a class="post-collaborator-link link " href="/@katelaurielee">Kate Lee</a></span><span class="post-collaborator-item post-collaborator-visible"><a class="post-collaborator-link link " href="/@waxpancake">Andy Baio</a></span><span class="post-collaborator-item post-collaborator-visible"><a class="post-collaborator-link link " href="/@robinsloan">Robin Sloan</a></span><span class="post-collaborator-item post-collaborator-visible"><a class="post-collaborator-link link " href="/@zeynep">Zeynep Tufekci</a></span><span class="post-collaborator-item post-collaborator-visible"><a class="post-collaborator-link link " href="/@zephoria">danah boyd</a></span></div><div class="post-footer-cover-caption"><span class="post-footer-cover-caption-heading">Cover photo:</span> A DEC PDP-11 computer, from Wikipedia Commons. Photo by “Shieldforyoureyes Dave Fischer” under the Creative Commons Attribution-Share Alike 3.0 Unported license. http://commons.wikimedia.org/wiki/File:Pdp-11-70-panel.jpg</div></div></div></li></ul></div><div class="layout-multi-column-half"><h4 class="cards-heading">Published in</h4><ul class="cards"><li class="card card-collection"><div class="card-image"><a href="/message" title="Go to The Message"><img class="card-collection-image" alt="Go to The Message" src="https://d262ilb51hltx0.cloudfront.net/fit/c/160/160/1*A4gr9zR7s1_L2khTRq94fA.jpeg" /></a></div><div class="card-content"><h3 class="card-name"><a href="/message" title="Go to The Message" data-collection-slug="message" data-id="81c7d351c056" class="link link-primary">The Message</a></h3><p class="card-description">A Pandaemonium Revolver Collection by @anildash @craigmod @fimoculous @ftrain @jomc @page88 @pomeranian99 @quinnnorton @robinsloan @waxpancake @zephoria @zeynep</p><div class="btn-set"><button class="btn btn-small btn-follow btn-toggle btn-suffix btn-primary no-user-select "data-action="sign-in-prompt"data-requires-token="true"data-popover-type="sign-in"data-redirect="/_/subscribe/collection/message"data-popover="Sign in to follow this collection" data-popover-position="bottom" data-popover-signin-type=""><span class="btn-label follow-label" data-suffix="ing">Follow</span></button><button class="btn btn-small btn-link" data-action="show-other-collections">Also in 16 collections</button></div></div></li></ul></div></div></div></div></div></section><footer class="post-footer post-supplemental"></footer></article></div></div></div><div class="loading-bar"></div><script>// <![CDATA[
var GLOBALS = {"addImageAnimationImg":"//dnqgz544uhbo8.cloudfront.net/_/fp/img/add-image-educational-animation.o-7vvwjxzuGedJM_NpO6Eg.gif","baseUrl":"https://medium.com","bestOfFirstSlug":"may-2013","bestOfLatestSlug":"april-2014","buildLabel":"8917-4a48286","contributeSoonUrl":"//medium.com/help-center/3b131d33f3fc","currentUser":{"userId":"lo_1ea4794684dc","id":"lo_1ea4794684dc"},"promoStartWritingBackgroundImage":"//dnqgz544uhbo8.cloudfront.net/_/fp/img/logged-out-home/camping.vhSr1NbYxkuV0oTUO0-dIA.jpeg","promoStartWritingHomeImage":"//dnqgz544uhbo8.cloudfront.net/_/fp/img/logged-out-home/post-screenshots.IbMd8HVjZpiqvXLFOQAozQ.png","defaultPreviewImage":"//dnqgz544uhbo8.cloudfront.net/_/fp/img/default-preview-image.IsBK38jFAJBlWifMLO4z9g.png","defaultUserImage":"//dnqgz544uhbo8.cloudfront.net/_/fp/img/default-avatar.dmbNkD5D-u45r44go_cf0g.png","deviceWidth":1200,"deviceWidthImageBucket":1200,"devicePixelRatio":1,"embedded":{"value":{"id":"705b87339971","versionId":"c430e4e191cb","creatorId":"168dab556633","creator":{"userId":"168dab556633","name":"Paul Ford","username":"ftrain","createdAt":1344389161873,"lastPostCreatedAt":1398887302483,"imageId":"0*5MUGve9BqcUb2vLq.png","backgroundImageId":"0*fQ2va1gJ_GmlwXEM.png","bio":"(1974– ) Writer, editor, programmer. Working on a book about web pages for FSG. Contact ford@ftrain.com if you spot a typo.","virtuals":{"bioHTML":"(1974– ) Writer, editor, programmer. Working on a book about web pages for FSG. Contact \x3ca rel=\"nofollow\" target=\"_blank\" href=\"mailto:ford@ftrain.com\"\x3eford@ftrain.com\x3c/a\x3e if you spot a typo."},"twitterScreenName":"ftrain","social":{"userId":"lo_883bd103b2a6","targetUserId":"168dab556633","type":"Social"},"type":"User"},"homeCollection":{"id":"81c7d351c056","name":"The Message","slug":"message","tags":[],"creatorId":"efbf32ca8675","responseTimeFuzzy":"within a day","description":"A Pandaemonium Revolver Collection by @anildash @craigmod @fimoculous @ftrain @jomc @page88 @pomeranian99 @quinnnorton @robinsloan @waxpancake @zephoria @zeynep","shortDescription":"A Pandaemonium Revolver Collection by @anildash @craigmod…","image":{"imageId":"1*A4gr9zR7s1_L2khTRq94fA.jpeg","filter":"","backgroundSize":"contain","originalWidth":1869,"originalHeight":1073,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":12,"followerCount":893,"activeAt":1399004570058},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"homeCollectionId":"81c7d351c056","intendedCollectionId":"","title":"The Great Works of Software","detectedLanguage":"en","latestVersion":"c430e4e191cb","latestPublishedVersion":"c430e4e191cb","isPublished":true,"hasUnpublishedEdits":true,"latestRev":4445,"createdAt":1397269995475,"updatedAt":1398891954010,"acceptedAt":0,"firstPublishedAt":1398863630284,"latestPublishedAt":1398891954010,"isRead":false,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"","caption":"A DEC PDP-11 computer, from Wikipedia Commons. Photo by “Shieldforyoureyes Dave Fischer” under the Creative Commons Attribution-Share Alike 3.0 Unported license. http://commons.wikimedia.org/wiki/File:Pdp-11-70-panel.jpg","bodyModel":{"paragraphs":[{"name":"d74f","type":1,"text":"Is it possible to propose a software canon? To enumerate great works of software that are deeply influential—that changed the nature of the code that followed?","markups":[{"type":2,"start":28,"end":42}]},{"name":"ceb2","type":1,"text":"Canons emerge over time, as certain works gain in critical appreciation. But software is mutable stuff, quick to obsolesce. Only banks, governments, and your parents run the same programs for more than a couple years at a time; the rest of us are forced to upgrade to new versions every two years or we risk being regarded as backward-minded hill people.","markups":[]},{"name":"bd4a","type":1,"text":"As far as I can tell, no truly huge world-shifting software product has ever existed in only one version (even Flappy Bird had updates). Just about every global software product of longevity grows, changes, adapts, and reacts to other software over time.","markups":[{"type":3,"start":111,"end":122,"href":"http://en.wikipedia.org/wiki/Flappy_Bird","title":"","rel":""},{"type":2,"start":111,"end":123}]},{"name":"62c6","type":1,"text":"So I set myself the task of picking five great works of software. The criteria were simple: How long had it been around? Did people directly interact with it every day? Did people use it to do something meaningful? I came up with the office suite Microsoft Office, the image editor Photoshop, the videogame Pac-Man, the operating system Unix, and the text editor Emacs.","markups":[]},{"name":"16c4","type":1,"text":"I realized that each one of these technologies set out to help people do something but consequently grew and changed over time. Each ultimately provided a way for large groups of people to talk about and think about very difficult problems:","markups":[{"type":2,"start":70,"end":73}]},{"name":"5ddb","type":9,"text":"Microsoft Office: How do we communicate about work?","markups":[{"type":2,"start":0,"end":16},{"type":2,"start":28,"end":51}]},{"name":"ae01","type":9,"text":"Photoshop: How do we create and manipulate images?","markups":[{"type":2,"start":0,"end":9},{"type":2,"start":21,"end":50}]},{"name":"2f01","type":9,"text":"Pac-Man: How do we play?","markups":[{"type":2,"start":0,"end":9},{"type":2,"start":19,"end":24}]},{"name":"389e","type":9,"text":"Unix: How do we connect abstractions together to solve problems?","markups":[{"type":2,"start":0,"end":6},{"type":2,"start":16,"end":64}]},{"name":"cb93","type":9,"text":"Emacs: How do we write programs that control computers?","markups":[{"type":2,"start":0,"end":7},{"type":2,"start":17,"end":55}]},{"name":"0f10","type":1,"text":"Computer people often talk about products. But each of these five have come to represent something else—an engagement with hard problems that are typically thought to be in the domain of philosophy, literature, or art, rather than programming. This software doesn’t just let people do things; it gives them a way to talk about and share what they did.","markups":[{"type":2,"start":33,"end":43}]},{"name":"1a66","type":1,"text":"Other people have made similar lists. Matthew Kirschenbaum, a professor of English at the University of Maryland, wrote in Slate about influential programs [see note] (text editor Wordstar, programming environment Hypercard, image editor Photoshop, information manager Lotus Notes) in a list he made last July. Back in 2007, PC World published a list of the best tech products of all time, leading off with the first commercial web browser, Netscape Navigator, and ending at #50 with the Northgate Omnikey Ultra keyboard. Recently here on Medium Max Dunn published an appreciation of the desktop publishing program Adobe InDesign.","markups":[{"type":3,"start":135,"end":155,"href":"http://www.slate.com/blogs/browbeat/2013/07/30/_10_most_influential_software_programs_of_all_time_from_sabre_to_minecraft.html","title":"","rel":""},{"type":3,"start":344,"end":388,"href":"http://www.pcworld.com/article/130207/article.html","title":"","rel":""},{"type":3,"start":546,"end":629,"href":"https://medium.com/tech-talk/a708cda55921","title":"","rel":""},{"type":2,"start":123,"end":128},{"type":2,"start":167,"end":168},{"type":2,"start":189,"end":190},{"type":2,"start":280,"end":282},{"type":2,"start":309,"end":311},{"type":2,"start":325,"end":334},{"type":2,"start":459,"end":461},{"type":2,"start":621,"end":629}]},{"name":"abc5","type":1,"text":"So Slate used “influence” as its criterion; PC World, the more nebulous criterion of “bestness.”","markups":[{"type":2,"start":3,"end":8},{"type":2,"start":44,"end":53}]},{"name":"7935","type":1,"text":"I propose a different kind of software canon: Not about specific moments in time, or about a specific product, but rather about works of technology that transcend the upgrade cycle, adapting to changing rhythms and new ideas, often over decades.","markups":[]},{"name":"4238","type":2,"text":"Microsoft Office","markups":[{"type":1,"start":0,"end":16}]},{"name":"e44e","type":4,"text":"In the days before the ribbon.","markups":[],"layout":1,"metadata":{"id":"1*fTCXpjN_5oiZ6a0KEma47w.gif","originalWidth":658,"originalHeight":420}},{"name":"5914","type":1,"text":"Ten years ago I watched a six-year-old girl catch a misspelling in something she was writing on paper with a pen. She went and got a red pen and underlined the misspelled word with a wavy line, just like Word does.","markups":[]},{"name":"e5e3","type":1,"text":"I distrust Microsoft Office, because it is a bear to use and expensive, and it has destroyed many drafts by crashing. Yet greatness is not the same as goodness and I must admit that it is a great work of software—powerful, omnipresent, and woven into the culture. It was first announced by Microsoft in 1988, but components had been around far longer—Microsoft Word since 1983. So the original ideas inside of Office have been around for 30 years.","markups":[{"type":2,"start":365,"end":366}]},{"name":"b3b6","type":1,"text":"For all that people discuss teaching kids to code, or how the Web gives people a voice, Microsoft Office is the most empowering software in the world. Word is used to write memos and novels; PowerPoint is used to sell ideas and teach classes; and Excel is used to share budgets for freelancers or giant companies alike. These tools are used to do schoolwork, and to set up billion-dollar deals. While their hegemony is no longer total—Google Docs and the like are nibbling at Office’s heels—the programs in the suite remain the mass instruments of economic power. To use anything else invites suspicion. Who wants to be the person who sends a spreadsheet that doesn’t open in Excel?","markups":[{"type":2,"start":117,"end":127},{"type":2,"start":155,"end":156},{"type":2,"start":252,"end":253}]},{"name":"32e0","type":1,"text":"Office is emphatically not a singular thing. It changes with Microsoft’s perception of the market. There are many versions for home, office, or web. Sometimes it includes a database program called Access, sometimes it doesn’t. Some bundles might include other tools like Publisher (desktop publishing), Project (project management), and Visio (diagramming). A fairly complete history is available at Wikipedia if you are so inclined.","markups":[{"type":3,"start":358,"end":409,"href":"http://en.wikipedia.org/wiki/Microsoft_Office","title":"","rel":""}]},{"name":"c674","type":1,"text":"While Office is a testament to the power of bundling software, the integration between the different applications is still awkward. Decades in, it’s still a risky move to paste a spreadsheet into a word-processing document; to do that gives even the fastest computer pause. The boundaries and borders between Office’s are difficult to cross. In theory, one can turn a Word document into a PowerPoint presentation. In reality, well.","markups":[]},{"name":"56c2","type":1,"text":"What Office provides is a language for doing office things. You don’t go in front of an audience without a PowerPoint deck. Businesspeople “live” in Excel; its language (it actually is a crypto-programming language) has become the language of money and budgets. People who do work with symbols and language to make a living organize their thoughts into the containers and systems that Office provides. Office is not so much a software product as a dialect that we all speak as we proceed about our labors.","markups":[{"type":2,"start":24,"end":58},{"type":2,"start":182,"end":184}]},{"name":"cb26","type":2,"text":"Adobe Photoshop","markups":[{"type":1,"start":0,"end":15}]},{"name":"f49b","type":11,"text":"http://player.vimeo.com/video/81847258","markups":[],"layout":1,"iframe":{"mediaResourceId":"322d821f0c7d139a80279ffab42d30d7","iframeWidth":1280,"iframeHeight":720}},{"name":"c1ad","type":1,"text":"Development on Photoshop started in 1987, and while it too exists inside a suite of tools (the Adobe Creative Suite), including a huge variety of software products for everything from film production, it is Photoshop that is part of the cultural lexicon, today a verb. None of the other applications in the Creative Suite are as prevalent (no one asks, “Is that Illustratored” or “did you InDesign that?”).","markups":[{"type":2,"start":362,"end":373},{"type":2,"start":389,"end":397}]},{"name":"91bd","type":1,"text":"To photoshop something is to manipulate an image, sometimes with the intention of making the subject of the photo more aesthetically pleasing than the original source image. It is of particular concern when it comes to women’s bodies; Photoshop has become the tool that we use to trim fat and reduce the effect of aging. Only pregnancy has swelled more breasts.","markups":[{"type":2,"start":3,"end":12}]},{"name":"0f6d","type":1,"text":"Photoshop itself is basically an enormous collection of ideas about images. The Photoshop file format, the way that its files are arranged and stored on disk drives, is a potted history of everything people have ever thought about images and computers, a fascinating hellish palimpsest. Here’s how one programmer described it:","markups":[{"type":3,"start":76,"end":101,"href":"http://www.adobe.com/devnet-apps/photoshop/fileformatashtml/","title":"","rel":""},{"type":3,"start":294,"end":325,"href":"https://code.google.com/p/xee/source/browse/XeePhotoshopLoader.m?r=f16763d221dfca6253983824b470adf553a19e06","title":"","rel":""}]},{"name":"3788","type":8,"text":"Trying to get data out of a PSD file is like trying to find something in the attic of your eccentric old uncle who died in a freak freshwater shark attack on his 58th birthday. That last detail may not be important for the purposes of the simile, but at this point I am spending a lot of time imagining amusing fates for the people responsible for this Rube Goldberg of a file format.\n","markups":[]},{"name":"63e1","type":1,"text":"Photoshop also remains the way that professionals communicate about the appearance and behavior of web pages. There are many ways to specify how web pages look, many tools that people use, but more often than not, when it’s time to design a web page or banner ad, it is Photoshop bouncing in the dock.","markups":[]},{"name":"8584","type":1,"text":"Thus, like Office, it is the de-facto standard, the tool that gives people a language (bounding box, crop, blur, channel ops, layer) for talking about digital images. It’s more than a quarter-century old and it is a verb. It belongs in the canon.","markups":[{"type":2,"start":87,"end":131}]},{"name":"ff10","type":2,"text":"Pac-Man.","markups":[{"type":1,"start":0,"end":8}]},{"name":"1cf8","type":4,"text":"From Musescore http://musescore.com/user/85429/scores/107109","markups":[],"layout":1,"metadata":{"id":"1*4eh1NnclTIEl2w1pmZZ_Vg.png","originalWidth":1316,"originalHeight":500}},{"name":"28a7","type":1,"text":"Pac-Man was created in 1980, written by Toru Iwatani. It’s a small game, running on laughable hardware. But it gave us a shorthand for a specific kind of play—iconographic, silly. The gameplay of Centipede was better, but the story (a gnome that shoots bugs) was vague; the gameplay of Missile Command crawled but the narrative was incredibly bleak.","markups":[{"type":3,"start":0,"end":54,"href":"http://en.wikipedia.org/wiki/Toru_Iwatani","title":"","rel":""}]},{"name":"43bd","type":1,"text":"Pac-Man was a chase, a Tom and Jerry cartoon. It presented a perfect inversion where, upon eating a certain kind of dot, the prey became predator. It took over a year to develop, and a great deal of thought went into the player’s psychology, the fact that they would empathize with the yellow circle of Pac-Man.","markups":[]},{"name":"3931","type":1,"text":"Here’s Iwatani in 1986, talking about ghost attacks:","markups":[{"type":3,"start":7,"end":22,"href":"http://programmersatwork.wordpress.com/toru-iwatani-1986-pacman-designer/","title":"","rel":""}]},{"name":"9bfe","type":6,"text":"When a human being is constantly under attack like this, he becomes discouraged. So we developed the wave-patterned attack–attack then disperse; as time goes by the ghosts regroup and attack again. Gradually the peaks and valleys in the curve of the wave become less pronounced so that the ghosts attack more frequently.","markups":[]},{"name":"9753","type":1,"text":"The mechanics of the game aligned to some primitive reptile-brain sense of narrative. Run eat run eat run eat KILL EAT KILL EAT KILL EAT KILL run eat run eat run. The music burrowed into the mind, so much so that a whole generation can hear the theme music…","markups":[{"type":2,"start":86,"end":163}]},{"name":"2359","type":7,"text":"Doo-do-doo-doo-dudla-doop\nDoo-do-doo-doo-dudla-doop\nDoo-do-doo-doo-dudla-doop\nDoodla-doodla-doodla-doodla-doop\n—Pac-Man Theme Song","markups":[]},{"name":"55d7","type":11,"text":"https://www.youtube.com/watch?v=BxYzjjs6d1s","markups":[],"layout":1,"iframe":{"mediaResourceId":"a4f2df3c9e2be2272045fa79eedcb3a8","iframeWidth":640,"iframeHeight":480}},{"name":"a720","type":1,"text":"Pac-Man machines ran on solid-state technology; they had no moving parts and operated for decades. The game itself seeped out into every aspect of pop culture: wind-up toys, watches, rip-offs galore, plush toys, a terrible animated cartoon, featuring a Pac-Baby. It even showed up in Bloom County.","markups":[{"type":3,"start":284,"end":296,"href":"http://www.gocomics.com/bloomcounty/1983/02/27/#.U1ptwuZdVU4","title":"","rel":""},{"type":2,"start":284,"end":297}]},{"name":"9238","type":1,"text":"It was in every way a fad, but nonetheless people kept plowing quarters into Pac-Man machines for years; they became one of the steadiest earners at arcades. Namco, the game’s distributor, today offers a collected version of Pac-Man games and its derivants, like Ms. Pac Man, bundled together into something called “Pac-Man Museum”—its place in the canon has become part of its marketing. Echoes of its gameplay show up anywhere a joystick is used. And the image of a pie missing a slice has become a universal symbol for “video game”; people dress up and run around in Pac-Man costumes. And it’s remained part of the culture for 34 years.","markups":[{"type":3,"start":316,"end":330,"href":"http://www.bandainamcogames.com/game/pac-man-museum.html","title":"","rel":""},{"type":3,"start":536,"end":586,"href":"https://www.youtube.com/watch?v=pIrvpn3k9A4","title":"","rel":""},{"type":3,"start":606,"end":625,"href":"http://vimeo.com/64586136","title":"","rel":""}]},{"name":"272e","type":2,"text":"Bell Labs Unix","markups":[{"type":1,"start":0,"end":14}]},{"name":"39f2","type":4,"text":"This became your Mac. Dennis Ritchie (standing) and Ken Thompson at a PDP11 computer in the 1970s. (CC licensed; via: http://commons.wikimedia.org/wiki/File:Ken_Thompson_(sitting)_and_Dennis_Ritchie_at_PDP-11_(2876612463).jpg)","markups":[{"type":3,"start":118,"end":225,"href":"http://commons.wikimedia.org/wiki/File:Ken_Thompson_%28sitting%29_and_Dennis_Ritchie_at_PDP-11_%282876612463%29.jpg","title":"","rel":"nofollow"}],"layout":1,"metadata":{"id":"1*3hGB-r63bpQ7nZ5JbFmxeA.jpeg","originalWidth":1498,"originalHeight":1200}},{"name":"e22a","type":1,"text":"Unix is an operating system, which means it’s a set of programs that run other programs on a computer. It’s part of what’s inside your Macintosh computer running Mac OS X, and it’s what runs many of the servers that you access on the web. It’s also inside billions of phones. The open-source operating system Linux is a kind of Unix, and you can run Linux inside of a web browser now, because everything can be everything else in the land of computers. So if you want to take Unix for a spin, go to.","markups":[{"type":3,"start":338,"end":383,"href":"http://bellard.org/jslinux/","title":"","rel":""},{"type":3,"start":493,"end":499,"href":"http://bellard.org/jslinux/","title":"","rel":""},{"type":2,"start":73,"end":78}]},{"name":"f164","type":1,"text":"Unix was born at Bell Labs in 1969. What it offered over its predecessors was: As little as possible. It came with a few handfuls of tiny little programs and then assumed that people would want to chain all those programs together (“piping” the output of one program into the input of another). It just didn’t make that many assumptions about what people wanted. (“Perhaps paradoxically,” wrote its creators, “the success of the Unix system is largely due to the fact that it was not designed to meet any predefined objectives.”)","markups":[]},{"name":"2a3e","type":1,"text":"Unix is best-known for its command-line “shell.” Here’s a Unix shell program that makes a list of the top ten words in this Medium post; it’s okay if your eyes glaze over:","markups":[]},{"name":"1fc6","type":8,"text":"cat medium_post.txt | tr ' ' '\\n' | tr -d '[:punct:]' \\\n| tr '[:upper:]' '[:lower:]' | sort | uniq -c \\\n| sort -nr | tail -n+10 | head -30 \\\n| column -c 60","markups":[]},{"name":"a6e5","type":1,"text":"It looks like gobbledygook if you’ve never used Unix, but it’s actually a simple set of tools chained together (I placed an explanation in a comment above if you’re curious what it all means). Anyone who takes a week and learns about Unix shells will understand what’s happening here.","markups":[]},{"name":"788e","type":1,"text":"That’s a ton of power available to users for very little trade-off in time and energy; it’s not easy but it’s extremely powerful and not that hard to learn. Here’s what that command spits out, above:","markups":[{"type":2,"start":96,"end":100},{"type":2,"start":120,"end":129},{"type":2,"start":155,"end":157}]},{"name":"73f3","type":8,"text":" 45 that 17 unix 13 one\n 33 its 16 on 13 into\n 33 for 16 has 12 time\n 27 software 15 was 12 not\n 26 as 15 office 11 they\n 25 but 14 this 11 pacman\n 21 people 14 so 10 world\n 21 are 14 more 10 photoshop\n 19 about 14 an 10 language\n 18 at 13 with 10 ideas","markups":[]},{"name":"81eb","type":1,"text":"In 1983, when Pac-Man was three, the Association for Computing Machinery gave Dennis Ritchie and Ken Thompson, the inventors of Unix, the Turing Award, which is the biggest award in computing. The ACM wrote:","markups":[{"type":3,"start":193,"end":206,"href":"http://amturing.acm.org/award_winners/ritchie_1506389.cfm","title":"","rel":""},{"type":3,"start":206,"end":207,"href":"http://the%20success%20of%20the%20unix%20system%20stems%20from%20its%20tasteful%20selection%20of%20a%20few%20key%20ideas%20and%20their%20elegant%20implementation.%20the%20model%20of%20the%20unix%20system%20has%20led%20a%20generation%20of%20software%20designers%20to%20new%20ways%20of%20thinking%20about%20programming.%20the%20genius%20of%20the%20unix%20system%20is%20its%20framework%2C%20which%20enables%20programmers%20to%20stand%20on%20the%20work%20of%20others./","title":"","rel":""}]},{"name":"22cf","type":6,"text":"The success of the UNIX system stems from its tasteful selection of a few key ideas and their elegant implementation. The model of the Unix system has led a generation of software designers to new ways of thinking about programming. The genius of the Unix system is its framework, which enables programmers to stand on the work of others.","markups":[]},{"name":"c820","type":1,"text":"True. You read the documentation for early versions of Unix it’s all very simple and plain-spoken, if pretty wonky. Here’s the original paper from 1974, if you’re interested:","markups":[{"type":3,"start":15,"end":59,"href":"http://pdos.csail.mit.edu/6.828/2004/readings/ritchie74unix.pdf","title":"","rel":""}]},{"name":"6885","type":11,"text":"http://pdos.csail.mit.edu/6.828/2004/readings/ritchie74unix.pdf","markups":[{"type":3,"start":0,"end":63,"href":"http://pdos.csail.mit.edu/6.828/2004/readings/ritchie74unix.pdf","title":"","rel":"nofollow"}],"layout":1,"iframe":{"mediaResourceId":"26d8ede03d0c3de78f934e19d11ed6b6","iframeWidth":600,"iframeHeight":780}},{"name":"5edd","type":1,"text":"There’s a sad tendency in most manuals and programming guides to congratulate people simply for thinking. Not here; you’re expected to think. That can be very exciting when you’re used to being patronized, and it’s one of the best things about Unix.","markups":[]},{"name":"7ae8","type":1,"text":"The people who invented Unix were not trying to teach you how to use a computer as we understand computers today; rather, they were educating professionals as to the best way to operate an incredibly heavy and expensive piece of industrial equipment. The 1974 paper says that you can run Unix on cheap computers, computers that cost as little as $40,000 ($202,000 in 2014.) Right now there are two Unix workstations in my closet that cost $35 each.","markups":[]},{"name":"033a","type":7,"text":"The phone company gave birth to Unix. Now there is no phone company and Unix runs on your phone.","markups":[]},{"name":"6cdb","type":1,"text":"Mass production and cheaper technology have changed almost everything about how we use computers—but not quite. Some fundamental ideas about software are the same, four decades later. Unix made it easy for computer people to talk about computing, and it still does.","markups":[]},{"name":"0806","type":2,"text":"GNU Emacs","markups":[{"type":1,"start":0,"end":9}]},{"name":"74a1","type":4,"text":"Looks like fun!","markups":[],"layout":1,"metadata":{"id":"1*8-wuASRTy7aIvkXuTCk3pg.png","originalWidth":2062,"originalHeight":1296}},{"name":"3dcf","type":1,"text":"Finally, GNU Emacs. This is my text editor—meaning that it’s emphatically not a word processor, but rather a tool for dealing with pure text, such as programming languages. There are other text editors, like Vim, and there are passionate debates over which is best. But it’s not simply in its ability to wrangle words on screen that Emacs excels; it’s that each letter you type is not simply part of a file but rather a dynamic entity that can be manipulated, enhanced, compared, and transformed.","markups":[{"type":3,"start":9,"end":18,"href":"http://www.gnu.org/software/emacs/","title":"","rel":""},{"type":3,"start":208,"end":211,"href":"http://www.vim.org/","title":"","rel":""}]},{"name":"ba99","type":1,"text":"The program’s name is tricky. The “GNU” means that it’s a project of the GNU Foundation, and stands for “GNU’s Not Unix” (a recursive acronym—nerds). Explaining why GNU’s Not Unix would ruin your afternoon; just assume it has to do with powerful feelings felt by programmers in the early 1980s.","markups":[{"type":3,"start":73,"end":87,"href":"http://www.gnu.org/","title":"","rel":""},{"type":2,"start":161,"end":165}]},{"name":"6741","type":1,"text":"“Emacs” is a contraction of “Editor MACroS.” Macros are little rules, sort of mini-programs. So—stay with me—Emacs started as a set of macros built on top of TECO, which was born in the 1960s and stood for Tape Editor and COrrector, because it let you edit things on magnetic tapes. People used it at MIT.","markups":[{"type":1,"start":206,"end":207},{"type":1,"start":211,"end":212},{"type":1,"start":222,"end":224},{"type":2,"start":1,"end":6},{"type":2,"start":109,"end":114},{"type":2,"start":158,"end":162},{"type":2,"start":206,"end":231}]},{"name":"2a4e","type":1,"text":"People started messing with TECO and adding macros, and then a man named Richard Stallman and another man named Guy Steele, Jr., wrapped all of that up into a new program called Emacs. That was in 1976. Later, Emacs was very conspicuously made freely available to all—one of the first programs to be licensed so that anyone could change the code, but no one could take the code away from the community.","markups":[{"type":3,"start":73,"end":89,"href":"http://stallman.org/","title":"","rel":""},{"type":3,"start":112,"end":127,"href":"http://en.wikipedia.org/wiki/Guy_L._Steele,_Jr.","title":"","rel":""},{"type":3,"start":239,"end":267,"href":"http://www.gnu.org/software/emacs/manual/html_node/emacs/Distrib.html","title":"","rel":""},{"type":2,"start":330,"end":336},{"type":2,"start":364,"end":382}]},{"name":"44a8","type":4,"text":"Typical emacs working session","markups":[],"layout":1,"metadata":{"id":"1*hnQ8Sep6KacI33b4bjYnrA.png","originalWidth":1726,"originalHeight":1400}},{"name":"c8df","type":1,"text":"What makes Emacs different is that it’s not so much a program as an editor-development toolkit. It provides an entire programming language for doing what it does, called Emacs LISP (elisp). You don’t need to program in elisp to use Emacs, but it’s there if you want to try something new. It’s absolutely, infinitely extensible.","markups":[{"type":2,"start":170,"end":175}]},{"name":"3c0a","type":1,"text":"Since 1976 the community around Emacs has been accreting little elisp programs into its standard library—thousands of them—that perform an extraordinary range of software tasks. When you download and use the program they are already installed, ready to use, and you can get yet more of them on the Internet. There are calendar programs and outliners, a version of Tetris that is perfectly usable, a text adventure, tools for searching and replacing through thousands of files, and on and on, all built up together. As you work, whether writing code or writing prose, Emacs is constantly trying to guess what your text means; it tries to intuit what you want and what you mean. Being as it’s edging on 40 years old, it knows quite a bit.","markups":[{"type":2,"start":567,"end":573}]},{"name":"a8a8","type":1,"text":"There are modes for different languages. You switch from one mode to another depending on what you’re doing. There’s txt-mode for editing text, js2-mode for editing JavaScript code, outline-mode for editing outlines, and modes built atop those. Different commands mean different things in these modes. The nature of editor shifts slightly depending on what you’re doing. But because all of these modes exist and are well understood by hundreds of thousands of people, when new technologies and programming languages arrive, Emacs responds—often very quickly. There are modes for just about every programming language in common use, and for dozens that are not in common use at all.","markups":[{"type":2,"start":10,"end":16},{"type":2,"start":233,"end":237}]},{"name":"c2c5","type":1,"text":"You can see all the code that has gone into this because it is open-sourced. The code history of Emacs goes back 29 years on Github. You can skim over that code (it would take years to read it all) and see programmers coming and going, see how Emacs reacted, as a community and as a piece of software, to the incredible rate of change around it. Emacs provably represents literally decades of continual, community contemplation of a solitary question: What does it mean to create with words and symbols?","markups":[{"type":3,"start":103,"end":121,"href":"https://github.com/mirrors/emacs/commits/master?page=3746","title":"","rel":""},{"type":2,"start":452,"end":503}]},{"name":"4108","type":2,"text":"Conclusion","markups":[]},{"name":"923a","type":4,"text":"Planetary, an iPad app acquired by the Cooper Hewitt design (image from http://www.cooperhewitt.org/object-of-the-day/2013/08/26/planetary-collecting-and-preserving-code-living-object)","markups":[{"type":3,"start":72,"end":183,"href":"http://www.cooperhewitt.org/object-of-the-day/2013/08/26/planetary-collecting-and-preserving-code-living-object","title":"","rel":"nofollow"}],"layout":1,"metadata":{"id":"1*3BnE5N-XmKZCK1IzsGHQ_A.jpeg","originalWidth":710,"originalHeight":533}},{"name":"9449","type":1,"text":"Canons are tricky things. There are pieces of software—like the TCP/IP stack that allows computers to communicate on the Internet—that have fundamentally changed global culture. The legendary programming language TeX, used to prepare typeset documents, has been around for decades and has a massive community. And of course many other massively popular software products that are worthy of consideration. I expect that people will leave comments to that effect.","markups":[{"type":3,"start":64,"end":76,"href":"http://en.wikipedia.org/wiki/Internet_protocol_suite","title":"","rel":""},{"type":3,"start":192,"end":216,"href":"http://en.wikipedia.org/wiki/TeX","title":"","rel":""}]},{"name":"a872","type":1,"text":"Not long ago the Cooper-Hewitt Design Museum (part of the Smithsonian) acquired an iPad app called Planetary for its collection:","markups":[{"type":3,"start":13,"end":71,"href":"http://www.cooperhewitt.org/object-of-the-day/2013/08/26/planetary-collecting-and-preserving-code-living-object","title":"","rel":""},{"type":2,"start":99,"end":109}]},{"name":"3d1d","type":6,"text":"With Planetary we are hoping to preserve more than simply the vessel, more than an instantiation of software and hardware frozen at a moment in time: Commit message fd247e35de9138f0ac411ea0b261fab21936c6e6 authored in 2011 and an iPad2 to be specific.","markups":[{"type":3,"start":165,"end":205,"href":"https://github.com/cooperhewitt/Planetary/commit/fd247e35de9138f0ac411ea0b261fab21936c6e6","title":"","rel":""}]},{"name":"d68e","type":1,"text":"Translated from moon language, this means that goodly museum people acquired this app as an art object—as a set of code and graphical assets and sounds as they were assembled at a specific moment in time (“commit message”) on a specific platform (“iPad2”).","markups":[]},{"name":"7753","type":1,"text":"Museums have a tricky time of it, because they need to put pins in things, assign names and numbers, and integrate them into larger historical collections. In acquiring Planetary, the Cooper-Hewitt was (very consciously) asking the question: What kind of art is software? How do we name it? Their work is like the work of lexicographers, who must try to encapsulate spoken language into dictionaries, even though language is huge, changing, and ever-moving, like clouds. It’s impossible but also incredibly useful.","markups":[]},{"name":"7797","type":1,"text":"But software is a unique art because it is so reactive. Not just on the screen but over time, as programs adapt and change with the culture—a culture they help define. Software provides identity (consider the Linux user, the web zealot, the “Unix greybeard”), a sense of affiliation and shared experience. The greatest works of software are not just code, or programs but social, expressive, human languages. They give us a shared set of norms and tools for expressing our ideas about words, or images, or software development. Great software gives us tremendous freedom, as long as we work within its boundaries.","markups":[{"type":2,"start":392,"end":398}]}],"sections":[{"name":"cb22","startIndex":0}]},"image":{"imageId":"1*UA2ebfw3RASQXPI9oHkoCg.jpeg","filter":"","backgroundSize":"full","originalWidth":1962,"originalHeight":903,"strategy":"crop-fixed","height":0,"width":0}},"media":null,"virtuals":{"currentCollectionId":"","statusForCollection":"APPROVED","createdAtRelative":"21 days ago","updatedAtRelative":"2 days ago","acceptedAtRelative":"","createdAtEnglish":"April 12, 2014","updatedAtEnglish":"April 30, 2014","acceptedAtEnglish":"","firstPublishedAtEnglish":"April 30, 2014","latestPublishedAtEnglish":"April 30, 2014","allowNotes":true,"languageTier":1,"snippet":"Is it possible to propose a software canon? To enumerate great works of software that are deeply influential—that changed the nature of the…","previewImage":{"imageId":"1*UA2ebfw3RASQXPI9oHkoCg.jpeg","filter":"","backgroundSize":"full","originalWidth":1962,"originalHeight":903,"strategy":"crop-fixed","height":0,"width":0},"wordCount":3446,"imageCount":7,"readingTime":14.403773584905661,"draftSnippet":"Is it possible to propose a software canon? To enumerate great works of software that are deeply influential—that changed the nature of the…","subtitle":"","isOnReadingList":false,"postedIn":[{"collectionId":"2f5d932216f0","collection":{"id":"2f5d932216f0","name":"Interaction Design","slug":"interaction-design","tags":[],"creatorId":"4e2138440b04","responseTimeFuzzy":"within a couple of days","description":"Posts about interaction design, creative technology, and all it's correlated fields and practices","shortDescription":"Posts about interaction design, creative technology, and…","image":{"imageId":"0*H9n-df7f5paZcNRB.jpeg","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":32,"followerCount":113,"activeAt":1399033015515},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"4e2138440b04"},{"collectionId":"330fd71d33d1","collection":{"id":"330fd71d33d1","name":"Change the world with lines of code","slug":"changing-the-world-with-lines-of-code","tags":[],"creatorId":"845e49dcc8d1","responseTimeFuzzy":"","description":"A series of posts on how we are empowered to change the world with technology.","shortDescription":"A series of posts on how we are empowered to change the…","image":{"imageId":"0*SaWGzUJgyzPI5Mkb.jpeg","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":19,"followerCount":103,"activeAt":1398872444602},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"845e49dcc8d1"},{"collectionId":"3b8217daefce","collection":{"id":"3b8217daefce","name":"New Media: Art & Science","slug":"new-media-art-science","tags":["NEW MEDIA","DIGITAL MEDIA","THEORY"],"creatorId":"623fc1470dee","responseTimeFuzzy":"within a couple of weeks","description":"Articles that examine the bricolage of art and science that we call “new media.” Theory, criticism, and analysis of the nascent digital paradigm and its “human” creators and consumers.","shortDescription":"Articles that examine the bricolage of art and science that…","image":{"imageId":"1*ZWdfgMAO5VYvU4JNBoKLJA.jpeg","filter":"","backgroundSize":"contain","originalWidth":2560,"originalHeight":1600,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":16,"followerCount":21,"activeAt":1399064790255},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"623fc1470dee"},{"collectionId":"50f448cb602b","collection":{"id":"50f448cb602b","name":"What I’m Reading on Medium","slug":"what-im-reading-on-medium","tags":[],"creatorId":"a75df5e8a16c","responseTimeFuzzy":"after a few months","description":"I don’t think this is how I’m supposed to use collections.","shortDescription":"I don’t think this is how I’m supposed to use collections.","image":{"imageId":"0*A1HXTX9ENo-NC7So.png","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":147,"followerCount":261,"activeAt":1398882989101},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"a75df5e8a16c"},{"collectionId":"7804d7b91ee8","collection":{"id":"7804d7b91ee8","name":"Technology, Invention, App, and More","slug":"technology-invention-and-more","tags":["TECHNOLOGY","INVENTION","GOOGLE"],"creatorId":"10c138087717","responseTimeFuzzy":"within a month","description":"Technology trends and New Invention? Follow this collection to update the latest trend!","shortDescription":"Technology trends and New Invention?","image":{"imageId":"1*wveKpIfQ5atiMtY9oX2X3w.jpeg","filter":"","backgroundSize":"contain","originalWidth":1600,"originalHeight":1000,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":512,"followerCount":249,"activeAt":1399091094757},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"10c138087717"},{"collectionId":"81c7d351c056","collection":{"id":"81c7d351c056","name":"The Message","slug":"message","tags":[],"creatorId":"efbf32ca8675","responseTimeFuzzy":"within a day","description":"A Pandaemonium Revolver Collection by @anildash @craigmod @fimoculous @ftrain @jomc @page88 @pomeranian99 @quinnnorton @robinsloan @waxpancake @zephoria @zeynep","shortDescription":"A Pandaemonium Revolver Collection by @anildash @craigmod…","image":{"imageId":"1*A4gr9zR7s1_L2khTRq94fA.jpeg","filter":"","backgroundSize":"contain","originalWidth":1869,"originalHeight":1073,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":12,"followerCount":893,"activeAt":1399004570058},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"168dab556633"},{"collectionId":"82c3baec1d33","collection":{"id":"82c3baec1d33","name":"Art of Product Design","slug":"art-of-product-design","tags":["PRODUCT DESIGN","PRODUCTS"],"creatorId":"1a1057a7c395","responseTimeFuzzy":"within a month","description":"A collection of the best that Medium has to offer on the art of product design","shortDescription":"A collection of the best that Medium has to offer on the…","image":{"imageId":"1*hWS5zlyzgNgma3Ds4zMCew.jpeg","filter":"","backgroundSize":"contain","originalWidth":1280,"originalHeight":853,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":131,"followerCount":1776,"activeAt":1399102803232},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"1a1057a7c395"},{"collectionId":"83e5f9f68250","collection":{"id":"83e5f9f68250","name":"Contemporary Design Discourse","slug":"contemporary-design-discourse","tags":["DESIGN,","DESIGN RESEARCH","DESIGN, TECH"],"creatorId":"bfe5ba8a4cad","responseTimeFuzzy":"","description":"A mash-up of contemporary scholarship ranging graphic design, product design, technology, design thinking, design research, design innovation, ","shortDescription":"A mash-up of contemporary scholarship ranging graphic…","image":{"imageId":"1*--NYXGxVkX_SESm0rQTvUw.jpeg","filter":"","backgroundSize":"contain","originalWidth":201,"originalHeight":251,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":1,"followerCount":1,"activeAt":1399050230775},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"bfe5ba8a4cad"},{"collectionId":"87df9093a629","collection":{"id":"87df9093a629","name":"Ford’s Sensorium","slug":"fords-sensorium","tags":[],"creatorId":"168dab556633","responseTimeFuzzy":"","description":"A collection of sensations (to see what sticks)","shortDescription":"A collection of sensations (to see what sticks)","image":{"imageId":"0*xoq3Jb_L14HhM9_w.png","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":11,"followerCount":47,"activeAt":1398863641154},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"168dab556633"},{"collectionId":"88f00580e7e5","collection":{"id":"88f00580e7e5","name":"Technology Related","slug":"technology-related","tags":[],"creatorId":"8157a996cd72","responseTimeFuzzy":"","description":"Everything related to Technology and Science","shortDescription":"Everything related to Technology and Science","image":{"imageId":"0*sctlXFM9cFnQNrkE.jpeg","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":5,"followerCount":0,"activeAt":1398965045154},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"8157a996cd72"},{"collectionId":"92a6087d961e","collection":{"id":"92a6087d961e","name":"Chicken Rice","slug":"chicken-rice","tags":["UX","DESIGN THINKING","DESIGN,"],"creatorId":"f5f565d60b62","responseTimeFuzzy":"within a few weeks","description":"Design and Life","shortDescription":"Design and Life","image":{"imageId":"1*0pILngn81ekiTzuETtmQng.jpeg","filter":"","backgroundSize":"contain","originalWidth":3088,"originalHeight":2056,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":54,"followerCount":2,"activeAt":1399051493276},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"f5f565d60b62"},{"collectionId":"9ef0bc905be6","collection":{"id":"9ef0bc905be6","name":"Software Engineering","slug":"software-engineering","tags":[],"creatorId":"b63fc3f8a943","responseTimeFuzzy":"within a couple of weeks","description":"Languages, tools, experiences and other things related to programming","shortDescription":"Languages, tools, experiences and other things related to…","image":{"imageId":"0*tV1FC2A4aj-BIcm2.jpeg","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":19,"followerCount":9,"activeAt":1398912133614},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"b63fc3f8a943"},{"collectionId":"b33420323228","collection":{"id":"b33420323228","name":"Liminal Encyclopedia","slug":"notebook-and-liminal-encyclopedia","tags":[],"creatorId":"168dab556633","responseTimeFuzzy":"","description":"A notebook of observations, for when I am between projects in the day and need to clear my mind.Paragraphs start with “When” or “Sometimes.” Pieces take the form W-SS-WWW-SS-W. All pieces written in 10 or 20 minutes.","shortDescription":"A notebook of observations, for when I am between projects…","image":{"imageId":"0*Gm_Kv8v3KYDjrvv7.jpeg","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":5,"followerCount":68,"activeAt":1398863638497},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"168dab556633"},{"collectionId":"bdd4ca488c58","collection":{"id":"bdd4ca488c58","name":"Business Daily: Startups, Business Development, etc","slug":"business-startup-development-and-more","tags":["BUSINESS","STARTUP","DEVELOPMENT"],"creatorId":"10c138087717","responseTimeFuzzy":"within a week","description":"This is a collections for articles about business including startups, business developments, etc.","shortDescription":"This is a collections for articles about business including…","image":{"imageId":"1*HvAgF5xlgcwRWk3ZQaiPjw.jpeg","filter":"","backgroundSize":"contain","originalWidth":1920,"originalHeight":1080,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":1343,"followerCount":1250,"activeAt":1399091246551},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"REJECTED","posterId":"10c138087717"},{"collectionId":"d06a68099b04","collection":{"id":"d06a68099b04","name":"Programming Stories","slug":"programming-stories","tags":["PROGRAMMING","TOP","STORIES"],"creatorId":"991fea1d7bb0","responseTimeFuzzy":"within a few days","description":"Top Stories about Programming","shortDescription":"Top Stories about Programming","image":{"imageId":"1*h7P3WOf-Do9zPfhOZ7bslA.jpeg","filter":"","backgroundSize":"contain","originalWidth":3022,"originalHeight":2012,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":62,"followerCount":457,"activeAt":1399070233138},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"991fea1d7bb0"},{"collectionId":"e0a8b7f6625c","collection":{"id":"e0a8b7f6625c","name":"Medium, Long","slug":"medium-long","tags":[],"creatorId":"837c088b1844","responseTimeFuzzy":"after a few months","description":"In-depth reporting, long-form essays, and other meaty reads","shortDescription":"In-depth reporting, long-form essays, and other meaty reads","image":{"imageId":"0*2DMpxDzcwgs_5osm.jpeg","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":248,"followerCount":4645,"activeAt":1398863720074},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"837c088b1844"},{"collectionId":"e358ae9bba4a","collection":{"id":"e358ae9bba4a","name":"Editor’s Picks","slug":"editors-picks","tags":["CURATED","STORIES","MEDIUM"],"creatorId":"504c7870fdb6","responseTimeFuzzy":"after a few months","description":"Stories we think more people should notice. Edited by Medium staff. (At this time, we do not review unsolicited submissions.)","shortDescription":"Stories we think more people should notice.","image":{"imageId":"1*3rvDqTClQaUVmFANOUgMmw.jpeg","filter":"","backgroundSize":"contain","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":3846,"followerCount":576197,"activeAt":1399089887953},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"837c088b1844"},{"collectionId":"f215653b181e","collection":{"id":"f215653b181e","name":"Obsessions with Pop Culture","slug":"obsessions-with-pop-culture","tags":[],"creatorId":"70aafe8ac35a","responseTimeFuzzy":"within a few weeks","description":"A nostalgic look at movies, TV series and music","shortDescription":"A nostalgic look at movies, TV series and music","image":{"imageId":"1*-oIXhOpLtc5Gtc9UDZnZaQ.jpeg","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":17,"followerCount":5,"activeAt":1399072693091},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"status":"APPROVED","posterId":"70aafe8ac35a"}],"publishedInCount":17,"usersBySocialRecommends":[],"notesBySocialRecommends":[]},"coverless":false,"type":"Post","_isPopulated":true},"collaborators":[{"user":{"userId":"ea3e87d12f62","name":"Quinn Norton","username":"quinnnorton","createdAt":1376757402237,"lastPostCreatedAt":1398735629572,"imageId":"0*MJ3Loz9W6JMCNI9Z.jpeg","backgroundImageId":"0*pfPRf1EaX9Tcv7af.jpeg","bio":"A journalist of Hackers, Bodies, Technologies and Internets. ‘’Useless in terms of… tactical details’’ -Stratfor","virtuals":{"bioHTML":"A journalist of Hackers, Bodies, Technologies and Internets. ‘’Useless in terms of… tactical details’’ -Stratfor"},"twitterScreenName":"quinnnorton","type":"User"},"state":"visible","_isPopulated":true},{"user":{"userId":"837c088b1844","name":"Kate Lee","username":"katelaurielee","createdAt":1350567697149,"lastPostCreatedAt":1398379865207,"imageId":"0*ikNeB8m2j-lfS7AX.jpg","backgroundImageId":"0*VqIlclK9spbpEB2R.jpeg","bio":"Senior editor at @medium","virtuals":{"bioHTML":"Senior editor at \x3ca href=\"http://twitter.com/medium\" target=\"_blank\" title=\"Twitter profile for @medium\"\x3e@medium\x3c/a\x3e"},"twitterScreenName":"katelaurielee","type":"User"},"state":"visible","_isPopulated":true},{"user":{"userId":"55bab67389ff","name":"Andy Baio","username":"waxpancake","createdAt":1344999157970,"lastPostCreatedAt":1397781173598,"imageId":"0*pU2Ys3kROdmefB0C.jpeg","backgroundImageId":"","bio":"I make web stuff. @waxy, @xoxo, @playfic, @supercutorg, Kind of Bloop, Upcoming.org. Helped build @kickstarter. P.S. I love you.","virtuals":{"bioHTML":"I make web stuff. \x3ca href=\"http://twitter.com/waxy\" target=\"_blank\" title=\"Twitter profile for @waxy\"\x3e@waxy\x3c/a\x3e, \x3ca href=\"http://twitter.com/xoxo\" target=\"_blank\" title=\"Twitter profile for @xoxo\"\x3e@xoxo\x3c/a\x3e, \x3ca href=\"http://twitter.com/playfic\" target=\"_blank\" title=\"Twitter profile for @playfic\"\x3e@playfic\x3c/a\x3e, \x3ca href=\"http://twitter.com/supercutorg\" target=\"_blank\" title=\"Twitter profile for @supercutorg\"\x3e@supercutorg\x3c/a\x3e, Kind of Bloop, Upcoming.org. Helped build \x3ca href=\"http://twitter.com/kickstarter\" target=\"_blank\" title=\"Twitter profile for @kickstarter\"\x3e@kickstarter\x3c/a\x3e. P.S. I love you."},"twitterScreenName":"waxpancake","type":"User"},"state":"visible","_isPopulated":true},{"user":{"userId":"d3db58adb93a","name":"Robin Sloan","username":"robinsloan","createdAt":1344386284555,"lastPostCreatedAt":1397240961495,"imageId":"0*ylm6OiBVPJ-vrN0o.jpeg","backgroundImageId":"0*hgYGZIrjIfnev6Ls.jpeg","bio":"Wrote one novel, working on another","virtuals":{"bioHTML":"Wrote one novel, working on another"},"twitterScreenName":"robinsloan","type":"User"},"state":"visible","_isPopulated":true},{"user":{"userId":"a5b491a8b18c","name":"Zeynep Tufekci","username":"zeynep","createdAt":1345398360440,"lastPostCreatedAt":1398701124364,"imageId":"0*1jMMi9hdjhk4S-49.jpg","backgroundImageId":"0*U3EAQSrjmpVSCeui.jpeg","bio":"Thinking about our tools, ourselves. Assistant prof at UNC iSchool. Princeton CITP fellow, Harvard Berkman faculty associate, Sociology. ","virtuals":{"bioHTML":"Thinking about our tools, ourselves. Assistant prof at UNC iSchool. Princeton CITP fellow, Harvard Berkman faculty associate, Sociology. "},"twitterScreenName":"zeynep","type":"User"},"state":"visible","_isPopulated":true},{"user":{"userId":"ce5e55092c08","name":"danah boyd","username":"zephoria","createdAt":1345038662390,"lastPostCreatedAt":1398781354620,"imageId":"0*jCwjRlVcC8o-gK-3.jpeg","backgroundImageId":"","bio":"social media scholar, youth researcher & advocate | Microsoft Research, NYU Media Culture & Communication, Harvard Berkman Center | zephoria@zephoria.org","virtuals":{"bioHTML":"social media scholar, youth researcher & advocate | Microsoft Research, NYU Media Culture & Communication, Harvard Berkman Center | \x3ca rel=\"nofollow\" target=\"_blank\" href=\"mailto:zephoria@zephoria.org\"\x3ezephoria@zephoria.org\x3c/a\x3e"},"twitterScreenName":"zephoria","type":"User"},"state":"visible","_isPopulated":true}],"contextCollection":{"id":"81c7d351c056","name":"The Message","slug":"message","tags":[],"creatorId":"efbf32ca8675","responseTimeFuzzy":"within a day","description":"A Pandaemonium Revolver Collection by @anildash @craigmod @fimoculous @ftrain @jomc @page88 @pomeranian99 @quinnnorton @robinsloan @waxpancake @zephoria @zeynep","shortDescription":"A Pandaemonium Revolver Collection by @anildash @craigmod…","image":{"imageId":"1*A4gr9zR7s1_L2khTRq94fA.jpeg","filter":"","backgroundSize":"contain","originalWidth":1869,"originalHeight":1073,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":12,"followerCount":893,"activeAt":1399004570058},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"user":{"userId":"efbf32ca8675","name":"Evan Hansen","username":"evanatmedium","createdAt":1345011056292,"lastPostCreatedAt":1397758227872,"imageId":"0*ZVqQHI_zsLuOyakP.jpeg","backgroundImageId":"","bio":"Wait, what!?","virtuals":{"bioHTML":"Wait, what!?"},"twitterScreenName":"evanatmedium","type":"User"},"type":"Collection","_isPopulated":true},"mode":null,"references":{"User":{"168dab556633":{"userId":"168dab556633","name":"Paul Ford","username":"ftrain","createdAt":1344389161873,"lastPostCreatedAt":1398887302483,"imageId":"0*5MUGve9BqcUb2vLq.png","backgroundImageId":"0*fQ2va1gJ_GmlwXEM.png","bio":"(1974– ) Writer, editor, programmer. Working on a book about web pages for FSG. Contact ford@ftrain.com if you spot a typo.","virtuals":{"bioHTML":"(1974– ) Writer, editor, programmer. Working on a book about web pages for FSG. Contact \x3ca rel=\"nofollow\" target=\"_blank\" href=\"mailto:ford@ftrain.com\"\x3eford@ftrain.com\x3c/a\x3e if you spot a typo."},"twitterScreenName":"ftrain","social":{"userId":"lo_883bd103b2a6","targetUserId":"168dab556633","type":"Social"},"type":"User"},"efbf32ca8675":{"userId":"efbf32ca8675","name":"Evan Hansen","username":"evanatmedium","createdAt":1345011056292,"lastPostCreatedAt":1397758227872,"imageId":"0*ZVqQHI_zsLuOyakP.jpeg","backgroundImageId":"","bio":"Wait, what!?","virtuals":{"bioHTML":"Wait, what!?"},"twitterScreenName":"evanatmedium","type":"User"}},"Collection":{"2f5d932216f0":{"id":"2f5d932216f0","name":"Interaction Design","slug":"interaction-design","tags":[],"creatorId":"4e2138440b04","responseTimeFuzzy":"within a couple of days","description":"Posts about interaction design, creative technology, and all it's correlated fields and practices","shortDescription":"Posts about interaction design, creative technology, and…","image":{"imageId":"0*H9n-df7f5paZcNRB.jpeg","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":32,"followerCount":113,"activeAt":1399033015515},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"330fd71d33d1":{"id":"330fd71d33d1","name":"Change the world with lines of code","slug":"changing-the-world-with-lines-of-code","tags":[],"creatorId":"845e49dcc8d1","responseTimeFuzzy":"","description":"A series of posts on how we are empowered to change the world with technology.","shortDescription":"A series of posts on how we are empowered to change the…","image":{"imageId":"0*SaWGzUJgyzPI5Mkb.jpeg","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":19,"followerCount":103,"activeAt":1398872444602},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"3b8217daefce":{"id":"3b8217daefce","name":"New Media: Art & Science","slug":"new-media-art-science","tags":["NEW MEDIA","DIGITAL MEDIA","THEORY"],"creatorId":"623fc1470dee","responseTimeFuzzy":"within a couple of weeks","description":"Articles that examine the bricolage of art and science that we call “new media.” Theory, criticism, and analysis of the nascent digital paradigm and its “human” creators and consumers.","shortDescription":"Articles that examine the bricolage of art and science that…","image":{"imageId":"1*ZWdfgMAO5VYvU4JNBoKLJA.jpeg","filter":"","backgroundSize":"contain","originalWidth":2560,"originalHeight":1600,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":16,"followerCount":21,"activeAt":1399064790255},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"50f448cb602b":{"id":"50f448cb602b","name":"What I’m Reading on Medium","slug":"what-im-reading-on-medium","tags":[],"creatorId":"a75df5e8a16c","responseTimeFuzzy":"after a few months","description":"I don’t think this is how I’m supposed to use collections.","shortDescription":"I don’t think this is how I’m supposed to use collections.","image":{"imageId":"0*A1HXTX9ENo-NC7So.png","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":147,"followerCount":261,"activeAt":1398882989101},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"7804d7b91ee8":{"id":"7804d7b91ee8","name":"Technology, Invention, App, and More","slug":"technology-invention-and-more","tags":["TECHNOLOGY","INVENTION","GOOGLE"],"creatorId":"10c138087717","responseTimeFuzzy":"within a month","description":"Technology trends and New Invention? Follow this collection to update the latest trend!","shortDescription":"Technology trends and New Invention?","image":{"imageId":"1*wveKpIfQ5atiMtY9oX2X3w.jpeg","filter":"","backgroundSize":"contain","originalWidth":1600,"originalHeight":1000,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":512,"followerCount":249,"activeAt":1399091094757},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"81c7d351c056":{"id":"81c7d351c056","name":"The Message","slug":"message","tags":[],"creatorId":"efbf32ca8675","responseTimeFuzzy":"within a day","description":"A Pandaemonium Revolver Collection by @anildash @craigmod @fimoculous @ftrain @jomc @page88 @pomeranian99 @quinnnorton @robinsloan @waxpancake @zephoria @zeynep","shortDescription":"A Pandaemonium Revolver Collection by @anildash @craigmod…","image":{"imageId":"1*A4gr9zR7s1_L2khTRq94fA.jpeg","filter":"","backgroundSize":"contain","originalWidth":1869,"originalHeight":1073,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":12,"followerCount":893,"activeAt":1399004570058},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"82c3baec1d33":{"id":"82c3baec1d33","name":"Art of Product Design","slug":"art-of-product-design","tags":["PRODUCT DESIGN","PRODUCTS"],"creatorId":"1a1057a7c395","responseTimeFuzzy":"within a month","description":"A collection of the best that Medium has to offer on the art of product design","shortDescription":"A collection of the best that Medium has to offer on the…","image":{"imageId":"1*hWS5zlyzgNgma3Ds4zMCew.jpeg","filter":"","backgroundSize":"contain","originalWidth":1280,"originalHeight":853,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":131,"followerCount":1776,"activeAt":1399102803232},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"83e5f9f68250":{"id":"83e5f9f68250","name":"Contemporary Design Discourse","slug":"contemporary-design-discourse","tags":["DESIGN,","DESIGN RESEARCH","DESIGN, TECH"],"creatorId":"bfe5ba8a4cad","responseTimeFuzzy":"","description":"A mash-up of contemporary scholarship ranging graphic design, product design, technology, design thinking, design research, design innovation, ","shortDescription":"A mash-up of contemporary scholarship ranging graphic…","image":{"imageId":"1*--NYXGxVkX_SESm0rQTvUw.jpeg","filter":"","backgroundSize":"contain","originalWidth":201,"originalHeight":251,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":1,"followerCount":1,"activeAt":1399050230775},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"87df9093a629":{"id":"87df9093a629","name":"Ford’s Sensorium","slug":"fords-sensorium","tags":[],"creatorId":"168dab556633","responseTimeFuzzy":"","description":"A collection of sensations (to see what sticks)","shortDescription":"A collection of sensations (to see what sticks)","image":{"imageId":"0*xoq3Jb_L14HhM9_w.png","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":11,"followerCount":47,"activeAt":1398863641154},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"88f00580e7e5":{"id":"88f00580e7e5","name":"Technology Related","slug":"technology-related","tags":[],"creatorId":"8157a996cd72","responseTimeFuzzy":"","description":"Everything related to Technology and Science","shortDescription":"Everything related to Technology and Science","image":{"imageId":"0*sctlXFM9cFnQNrkE.jpeg","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":5,"followerCount":0,"activeAt":1398965045154},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"92a6087d961e":{"id":"92a6087d961e","name":"Chicken Rice","slug":"chicken-rice","tags":["UX","DESIGN THINKING","DESIGN,"],"creatorId":"f5f565d60b62","responseTimeFuzzy":"within a few weeks","description":"Design and Life","shortDescription":"Design and Life","image":{"imageId":"1*0pILngn81ekiTzuETtmQng.jpeg","filter":"","backgroundSize":"contain","originalWidth":3088,"originalHeight":2056,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":54,"followerCount":2,"activeAt":1399051493276},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"9ef0bc905be6":{"id":"9ef0bc905be6","name":"Software Engineering","slug":"software-engineering","tags":[],"creatorId":"b63fc3f8a943","responseTimeFuzzy":"within a couple of weeks","description":"Languages, tools, experiences and other things related to programming","shortDescription":"Languages, tools, experiences and other things related to…","image":{"imageId":"0*tV1FC2A4aj-BIcm2.jpeg","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":19,"followerCount":9,"activeAt":1398912133614},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"b33420323228":{"id":"b33420323228","name":"Liminal Encyclopedia","slug":"notebook-and-liminal-encyclopedia","tags":[],"creatorId":"168dab556633","responseTimeFuzzy":"","description":"A notebook of observations, for when I am between projects in the day and need to clear my mind.Paragraphs start with “When” or “Sometimes.” Pieces take the form W-SS-WWW-SS-W. All pieces written in 10 or 20 minutes.","shortDescription":"A notebook of observations, for when I am between projects…","image":{"imageId":"0*Gm_Kv8v3KYDjrvv7.jpeg","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":5,"followerCount":68,"activeAt":1398863638497},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"bdd4ca488c58":{"id":"bdd4ca488c58","name":"Business Daily: Startups, Business Development, etc","slug":"business-startup-development-and-more","tags":["BUSINESS","STARTUP","DEVELOPMENT"],"creatorId":"10c138087717","responseTimeFuzzy":"within a week","description":"This is a collections for articles about business including startups, business developments, etc.","shortDescription":"This is a collections for articles about business including…","image":{"imageId":"1*HvAgF5xlgcwRWk3ZQaiPjw.jpeg","filter":"","backgroundSize":"contain","originalWidth":1920,"originalHeight":1080,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":1343,"followerCount":1250,"activeAt":1399091246551},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"d06a68099b04":{"id":"d06a68099b04","name":"Programming Stories","slug":"programming-stories","tags":["PROGRAMMING","TOP","STORIES"],"creatorId":"991fea1d7bb0","responseTimeFuzzy":"within a few days","description":"Top Stories about Programming","shortDescription":"Top Stories about Programming","image":{"imageId":"1*h7P3WOf-Do9zPfhOZ7bslA.jpeg","filter":"","backgroundSize":"contain","originalWidth":3022,"originalHeight":2012,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":62,"followerCount":457,"activeAt":1399070233138},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"e0a8b7f6625c":{"id":"e0a8b7f6625c","name":"Medium, Long","slug":"medium-long","tags":[],"creatorId":"837c088b1844","responseTimeFuzzy":"after a few months","description":"In-depth reporting, long-form essays, and other meaty reads","shortDescription":"In-depth reporting, long-form essays, and other meaty reads","image":{"imageId":"0*2DMpxDzcwgs_5osm.jpeg","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":248,"followerCount":4645,"activeAt":1398863720074},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"e358ae9bba4a":{"id":"e358ae9bba4a","name":"Editor’s Picks","slug":"editors-picks","tags":["CURATED","STORIES","MEDIUM"],"creatorId":"504c7870fdb6","responseTimeFuzzy":"after a few months","description":"Stories we think more people should notice. Edited by Medium staff. (At this time, we do not review unsolicited submissions.)","shortDescription":"Stories we think more people should notice.","image":{"imageId":"1*3rvDqTClQaUVmFANOUgMmw.jpeg","filter":"","backgroundSize":"contain","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":3846,"followerCount":576197,"activeAt":1399089887953},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"},"f215653b181e":{"id":"f215653b181e","name":"Obsessions with Pop Culture","slug":"obsessions-with-pop-culture","tags":[],"creatorId":"70aafe8ac35a","responseTimeFuzzy":"within a few weeks","description":"A nostalgic look at movies, TV series and music","shortDescription":"A nostalgic look at movies, TV series and music","image":{"imageId":"1*-oIXhOpLtc5Gtc9UDZnZaQ.jpeg","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":17,"followerCount":5,"activeAt":1399072693091},"virtuals":{"canPost":false,"canAdminister":false,"isSubscribed":false},"type":"Collection"}},"Social":{"168dab556633":{"userId":"lo_883bd103b2a6","targetUserId":"168dab556633","type":"Social"}},"MediaResource":{"322d821f0c7d139a80279ffab42d30d7":{"mediaResourceId":"322d821f0c7d139a80279ffab42d30d7","mediaResourceType":"MediaResourceExternalLink","href":"http://player.vimeo.com/video/81847258","domain":"player.vimeo.com","title":"Happy Holidays","description":"Credits Agency: Victors & Spoils Music: Trans-Siberian Orchestra Original Content: globaldemocracy.com","iframeWidth":1280,"iframeHeight":720,"iframeSrc":"https://cdn.embedly.com/widgets/media.html?src=%2F%2Fplayer.vimeo.com%2Fvideo%2F81847258&url=http%3A%2F%2Fplayer.vimeo.com%2Fvideo%2F81847258&image=http%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F458531944_1280.jpg&key=d04bfffea46d4aeda930ec88cc64b87c&type=text%2Fhtml&schema=vimeo","thumbnailUrl":"https://i.embed.ly/1/image?url=http%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F458531944_1280.jpg&key=4fce0568f2ce49e8b54624ef71a8a5bd","thumbnailWidth":1280,"thumbnailHeight":720,"display":1,"type":"MediaResource"},"a4f2df3c9e2be2272045fa79eedcb3a8":{"mediaResourceId":"a4f2df3c9e2be2272045fa79eedcb3a8","mediaResourceType":"MediaResourceExternalLink","href":"https://www.youtube.com/watch?v=BxYzjjs6d1s","domain":"www.youtube.com","title":"PacMan Original Theme","description":"Uploaded by TheCantinaBand on 2011-01-20.","iframeWidth":640,"iframeHeight":480,"iframeSrc":"https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FBxYzjjs6d1s%3Ffeature%3Doembed&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DBxYzjjs6d1s&image=http%3A%2F%2Fi1.ytimg.com%2Fvi%2FBxYzjjs6d1s%2Fhqdefault.jpg&key=d04bfffea46d4aeda930ec88cc64b87c&type=text%2Fhtml&schema=youtube","thumbnailUrl":"http://i1.ytimg.com/vi/BxYzjjs6d1s/hqdefault.jpg","thumbnailWidth":480,"thumbnailHeight":360,"display":2,"type":"MediaResource"},"26d8ede03d0c3de78f934e19d11ed6b6":{"mediaResourceId":"26d8ede03d0c3de78f934e19d11ed6b6","mediaResourceType":"MediaResourceExternalLink","href":"http://pdos.csail.mit.edu/6.828/2004/readings/ritchie74unix.pdf","domain":"pdos.csail.mit.edu","title":"","description":"","iframeWidth":600,"iframeHeight":780,"iframeSrc":"https://docs.google.com/viewer?url=http://pdos.csail.mit.edu/6.828/2004/readings/ritchie74unix.pdf&embedded=true","thumbnailUrl":"","thumbnailWidth":0,"thumbnailHeight":0,"display":1,"type":"MediaResource"}}}},"embedSupportUrl":"//medium.com/p/3eaed64aed8a/","facebookKey":"542599432471018","helpUrl":"https://medium.com/help-center/66f4ca0ede55","homeImageId":"1*4ncz3hLxmL8E_bUh-0z62w.jpeg","howToPostUrl":"//medium.com/about/5ab1de76e764","isAuthenticated":false,"isCurrentUserVerified":false,"currentUserHasUnverifiedEmail":false,"jobsUrl":"//medium.com/jobs","termsUrl":"//medium.com/policy/9db0094a1e0f","language":null,"miroUrl":"https://d262ilb51hltx0.cloudfront.net","moduleUrls":{"base":"//dnqgz544uhbo8.cloudfront.net/_/fp/js/main-base.bundle.gg7KYIaz1Sjyp00IygoxXw.js","notes":"//dnqgz544uhbo8.cloudfront.net/_/fp/js/main-notes.bundle.-PSyk6M3jJmSOAjxuN0k5A.js","notes-mobile":"//dnqgz544uhbo8.cloudfront.net/_/fp/js/main-notes-mobile.bundle.sRVLpaiewikRIdaMpRF3ow.js","posters":"//dnqgz544uhbo8.cloudfront.net/_/fp/js/main-posters.bundle.bkvgTiAP0qxwOgiQ5ZM_qA.js","common-async":"//dnqgz544uhbo8.cloudfront.net/_/fp/js/main-common-async.bundle.ePFEp3yY4SvP-2cPQujgkg.js","stats":"//dnqgz544uhbo8.cloudfront.net/_/fp/js/main-stats.bundle.qldL1DlSsdDFTfhWVmmPlA.js","misc-screens":"//dnqgz544uhbo8.cloudfront.net/_/fp/js/main-misc-screens.bundle.CM2Fy2CCrvYNZP8HB81aVw.js"},"policyUrl":"//medium.com/policy","postColumnWidth":700,"privacyUrl":"//medium.com/policy/f03bf92035c9","productName":"Medium","supportsEdit":false,"useragent":{"browser":"other","family":"","os":"","version":0,"supportsDesktopEdit":false,"supportsMobileEdit":false,"supportsInteract":false,"supportsView":true,"isMobile":false,"isTablet":false,"isNative":false,"supportsFileAPI":false,"supportsFullImageSections":false,"isTier1":false},"variants":{"allow_outgoing_email":true,"policy_collection_slug":"policy","can_vote":true,"can_update_settings":true,"can_update_collection_settings":true,"can_export_data":true,"enable_notes":true,"can_view_prl_homepage":true,"enable_collaboration":true,"allow_test_auth":"disallow","enable_image_layout":true,"show_promotional_homepage":true,"enable_authorship":true,"enable_followups_in_editor":true,"can_share_to_facebook":true,"can_connect_facebook":true,"filter_other_languages":true,"use_experimental_css":true,"use_prl_for_post_to_post_navigation":true,"enable_post_to_post_navigation":true,"can_see_post_welcome_footer":true,"has_prl_provider_collection_latest":true,"can_resume_from_last_read_location":true,"can_report_bad_posts":true,"enable_social_posts":true,"enable_gosocial_queries":true,"enable_collection_post_aggregation_from_score":true,"enable_see_subscribed_collections":true,"revision_history":true,"enable_embeds":true,"enable_embed_ui":true,"can_see_connections":true,"enable_recommend_notes":true,"logged_out_footer":"landscape","max_upload_size_mb":10,"use_full_width_images":true,"can_follow_users":true,"send_fewer_social_emails":true},"toolbarAnimationImg":"//dnqgz544uhbo8.cloudfront.net/_/fp/img/toolbar-educational-animation.o-jfWHx_kxpuaHno0HGsLA.gif","welcomeUrl":"https://medium.com/about/9e53ca408c48","onboardingLandscapeFooterImage":"//dnqgz544uhbo8.cloudfront.net/_/fp/img/logged-out-footer/landscape-bg.W4fnHJbJjHt0fgxh7ssrvQ.jpg","mediumTwitterScreenName":"medium"}
// ]]></script></body></html>
!EOF!-705b87339971
exit 0
[-- Attachment #3: Type: text/plain, Size: 219 bytes --]
--
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
Use Ekiga or an ordinary phone call.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#17404: Scrolling is painfully slow
2014-05-05 6:59 bug#17404: Scrolling is painfully slow Richard Stallman
@ 2014-05-05 8:43 ` Eli Zaretskii
2014-05-06 11:42 ` Richard Stallman
0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2014-05-05 8:43 UTC (permalink / raw)
To: rms; +Cc: 17404
> Date: Mon, 05 May 2014 02:59:28 -0400
> From: Richard Stallman <rms@gnu.org>
>
> [19295] 2014-05-01 17:15:29.522 INFO: Updated to revision 117039 of branch bzr+ssh://rms@bzr.savannah.gnu.org/emacs/trunk
>
> If you visit the file below in Rmail and type C-s GNU Emacs,
> then C-n takes around 15 seconds.
It takes less than 0.5 sec here. My machine is faster than yours, but
I doubt that it's 30 times faster.
That file has 2 very long lines, one 42K characters long, the other
80K characters long, and Emacs display engine is known to be very slow
with such long lines.
If you have older Emacs 24.x installations somewhere, can you try the
same with those? I don't think something's changed significantly in
this area since Emacs 24.1, where bidirectional display slowed such
long lines some more.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#17404: Scrolling is painfully slow
2014-05-05 8:43 ` Eli Zaretskii
@ 2014-05-06 11:42 ` Richard Stallman
2014-05-06 12:47 ` Eli Zaretskii
0 siblings, 1 reply; 7+ messages in thread
From: Richard Stallman @ 2014-05-06 11:42 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 17404
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
If you have older Emacs 24.x installations somewhere, can you try the
same with those? I don't think something's changed significantly in
this area since Emacs 24.1, where bidirectional display slowed such
long lines some more.
I should explain that I configured Emacs to visit that file in Rmail mode.
Try it that way.
I tried visiting it in 24.3.50.1 from May 1 2013.
Scrolling the file in Rmail mode is much faster in that version
than in the current version. So is C-n.
With find-file-literally it is almost instantaneous
in both 24.3.50.1 and the current version.
--
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
Use Ekiga or an ordinary phone call.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#17404: Scrolling is painfully slow
2014-05-06 11:42 ` Richard Stallman
@ 2014-05-06 12:47 ` Eli Zaretskii
2014-05-06 13:21 ` Eli Zaretskii
2014-05-07 14:02 ` Richard Stallman
0 siblings, 2 replies; 7+ messages in thread
From: Eli Zaretskii @ 2014-05-06 12:47 UTC (permalink / raw)
To: rms; +Cc: 17404
> Date: Tue, 06 May 2014 07:42:47 -0400
> From: Richard Stallman <rms@gnu.org>
> CC: 17404@debbugs.gnu.org
>
> I should explain that I configured Emacs to visit that file in Rmail mode.
> Try it that way.
I did. I used "C-u M-x rmail RET foo2.mail RET" in "emacs -Q". Does
that reproduce the problem on your system?
What about "emacs -nw" -- do you see the same slowdown there? Or is
the problem limited to the GUI sessions?
> I tried visiting it in 24.3.50.1 from May 1 2013.
Thanks, I'll try to see which change(s) could be responsible, but a
year is a lot in Emacs development, so if you could reduce the range,
it would help.
> Scrolling the file in Rmail mode is much faster in that version
> than in the current version. So is C-n.
How much more faster? Can you estimate the slowdown quantitatively?
> With find-file-literally it is almost instantaneous
> in both 24.3.50.1 and the current version.
find-file-literally disables bidirectional display, so it will always
result in faster redisplay.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#17404: Scrolling is painfully slow
2014-05-06 12:47 ` Eli Zaretskii
@ 2014-05-06 13:21 ` Eli Zaretskii
2014-05-07 14:02 ` Richard Stallman
1 sibling, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2014-05-06 13:21 UTC (permalink / raw)
To: rms; +Cc: 17404
> Date: Tue, 06 May 2014 15:47:25 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: 17404@debbugs.gnu.org
>
> > Date: Tue, 06 May 2014 07:42:47 -0400
> > From: Richard Stallman <rms@gnu.org>
> > CC: 17404@debbugs.gnu.org
> >
> > I should explain that I configured Emacs to visit that file in Rmail mode.
> > Try it that way.
>
> I did. I used "C-u M-x rmail RET foo2.mail RET" in "emacs -Q". Does
> that reproduce the problem on your system?
>
> What about "emacs -nw" -- do you see the same slowdown there? Or is
> the problem limited to the GUI sessions?
Also, could you please try profiling Emacs and reporting the results?
Like this:
M-x load-file RET simple.el RET
C-u M-x rmail RET foo2.mail RET
C-s GNU Emacs
C-f
M-x profiler-start RET RET
Now press and hold C-n for 5 seconds, then release C-n and type
M-x profiler-report RET
In the buffer with the profile, please type "C-u RET" on every line
that has a "+" to its left, to completely expand the profile. Then
please post the result.
Here's my profile:
- command-execute 159 100%
- let 159 100%
- if 159 100%
- let 159 100%
- cond 159 100%
- prog1 159 100%
- call-interactively 159 100%
- next-line 150 94%
- if 150 94%
- if 150 94%
- condition-case 150 94%
- line-move 150 94%
- if 150 94%
- if 150 94%
- if 150 94%
- prog1 150 94%
- line-move-visual 103 64%
- let 103 64%
- or 99 62%
- and 99 62%
- or 99 62%
- and 99 62%
>= 99 62%
- if 4 2%
let 4 2%
let 47 29%
- list 9 5%
- read-extended-command 9 5%
- let 9 5%
- unwind-protect 9 5%
- progn 9 5%
- completing-read 9 5%
- completing-read-default 9 5%
read-from-minibuffer 9 5%
- ... 0 0%
Automatic GC 0 0%
This seems to indicate that line-move and line-move-visual take most
of the time. If you get a similar result, then please try replacing
these 2 functions with their code from May 2013, and see if that makes
the slowdown go away.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#17404: Scrolling is painfully slow
2014-05-06 12:47 ` Eli Zaretskii
2014-05-06 13:21 ` Eli Zaretskii
@ 2014-05-07 14:02 ` Richard Stallman
2014-05-07 15:24 ` Eli Zaretskii
1 sibling, 1 reply; 7+ messages in thread
From: Richard Stallman @ 2014-05-07 14:02 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 17404
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
I did. I used "C-u M-x rmail RET foo2.mail RET" in "emacs -Q". Does
that reproduce the problem on your system?
Yes.
What about "emacs -nw" -- do you see the same slowdown there? Or is
the problem limited to the GUI sessions?
I am always using it in a terminal. It didn't occur
to me that that made a difference to the scrolling.
> Scrolling the file in Rmail mode is much faster in that version
> than in the current version. So is C-n.
How much more faster? Can you estimate the slowdown quantitatively?
I tried it again now in several versions, and it is much faster now
than it was before. I don't understand why the problem happened and
then disappeared, but it has. For now, please forget it.
--
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
Use Ekiga or an ordinary phone call.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#17404: Scrolling is painfully slow
2014-05-07 14:02 ` Richard Stallman
@ 2014-05-07 15:24 ` Eli Zaretskii
0 siblings, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2014-05-07 15:24 UTC (permalink / raw)
To: rms; +Cc: 17404
> Date: Wed, 07 May 2014 10:02:38 -0400
> From: Richard Stallman <rms@gnu.org>
> CC: 17404@debbugs.gnu.org
>
> What about "emacs -nw" -- do you see the same slowdown there? Or is
> the problem limited to the GUI sessions?
>
> I am always using it in a terminal. It didn't occur
> to me that that made a difference to the scrolling.
It makes a huge difference. If this happens on a TTY, I have no idea
what could have caused it.
> I tried it again now in several versions, and it is much faster now
> than it was before. I don't understand why the problem happened and
> then disappeared, but it has. For now, please forget it.
OK, thanks. Let's keep this bug open for a while, in case the problem
comes back. If it does, please use the profiler to produce the
profile, because I'm totally clueless now.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-05-07 15:24 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-05 6:59 bug#17404: Scrolling is painfully slow Richard Stallman
2014-05-05 8:43 ` Eli Zaretskii
2014-05-06 11:42 ` Richard Stallman
2014-05-06 12:47 ` Eli Zaretskii
2014-05-06 13:21 ` Eli Zaretskii
2014-05-07 14:02 ` Richard Stallman
2014-05-07 15:24 ` Eli Zaretskii
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).