2010 PDF - SigBovik
Transcription
2010 PDF - SigBovik
A Record of The Proceedings of SIGBOVIK 2010 April 1st, 2010 Carnegie Mellon University Pittsburgh, Pennsylvania, USA* http://sigbovik.org/2010 * now available with 10% more healthcare I ach Association for Computational Heresy Advancing Computing as Tomfoolery & Distraction — or — Hey, Kids, Get Off My Lawn DISCLAIMER: LATEX Allergies In the processing of LATEX into commercial documents, chemicals are added which may produce allergic reactions in certain people. Mild reactions simply appear as dry, itchy skin or a mild rash. Severe reactions, however, can be life threatening, often involving respiratory difficulties or even shock. These symptoms may not appear until several hours after exposure. A physician should always be consulted even for minor symptoms, since further exposure could result in a more serious allergic reaction. Anyone can develop an allergy to LATEX, but those with ongoing exposure are at highest risk. This group of high risk employees includes mathematicians, theoretical computer scientists or anyone else who regularly uses or is exposed to LATEX. People with other allergies have increased risk, especially if those allergies are related to parameter passing mechanisms or lack of data abstraction. Most people think of higher mathematics when they think of LATEX, but LATEX may also be present in many office and household products, including conference proceedings, software manuals, instruction booklets, grant proposals, and even campus mail. Individuals with a LATEX allergy should be aware of any products that may trigger a reaction. Always check your mime type before opening any e-mail attachments! The best way to avoid an allergic reaction to LATEX is to use LATEX-free products where possible, wear specifically designed LATEX-filter safety goggles, or use barrier protection. Also, avoid direct sunlight if you must read LATEX documents (sunlight enhances poor typeface choices and ligatures), avoid the printer rooms whenever possible, and make sure coworkers and health care providers know of your allergy. Always wash your hands after leaving Emacs LATEX mode, and if you already have the allergy, wear a medical alert bracelet. - Pfenning, Pfenning, and Pfenning, pro-bono legal council for the Association for Computational Heresy II A Message From The Organizing Committee We are honored, delighted, excited, and amused to present to you this, the record of the Fourth Annual Intercalary Workshop about Symposium on Robot Dance Party of Conference in Celebration of Harry Q. Bovik’s (26)th birthday. And what a wonderful fourth year it’s been! SIGBOVIK is exactly as strong as ever, with exactly more or less precisely the same number of papers submitted and accepted as last year. In the truest echo of the ideals underlying SIGBOVIK, it’s been a landmark year for collaboration, with vastly more papers by multiple authors, many of them based on multi-person projects, some of them dangerously close to resembling serious research. At the far end of high collaboration, this year’s program includes the first ever SIGBOVIK paper with more than ten authors! Let us hope that the glorious tradition of comradely camera-ready camaraderie continues without end. Thank you all for making SIGBOVIK the indescribable something that it is. As in past years, we have taken the liberty of dividing the proceedings into coherent subjectspecific tracks for the purposes of easy access and clarity of reference. This process always involves a certain amount of favoritism and unfairness, though, as some papers must appear in the coveted early tracks of the program while other papers necessarily occupy the inevitable but unenviable role of filling out the final track. But denizens of Academia, friends of Bovik, fear not! In order to combat this rampant unjustness, we have chosen *not* to order the tracks this year: to us, every track is Track 1! The Track 1s appear in a random order unique to each copy of the proceedings, as guaranteed by the following true random number generator: fun rand () = 100 (* chosen by random.org, using noises from the atmosphere!; guaranteed to be truly random, and if you don’t believe it, then maybe you just don’t know what it means to be random, ‘cause you know, people aren’t very good at being random or understanding randomness or anything like that, so yeah.. *) Next year, we hope to continue our experimental journey into objectivity with double-blind submissions: by not knowing just which conference you’re submitting to, you guarantee more fairness for everyone! III As if organizing SIGBOVIK wasn’t exciting enough, this year also marked the SIGBOVIK’s first ever complete-server-downtime-during-the-seriously-final-submission-deadline. The issue was noted around 6 pm Wasilla time, just a quarter day before submissions closed, at which point the entirety of the SIGBOVIK Committee for Deadline Uptime excitedly jumped into action! A flurry of email(s) was sent to Computer Club Central, the organization which generously hosts SIGBOVIK’s servers, to little observable effect. Thanks though to the ingeniously heroic actions of the spontaneously formed SIGBOVIK Task Force on Publicizing the EasyChair Submission URL, submissions were almost entirely unaffected. (Whew!) And so, without further ado, we proudly present SIGBOVIK 2010; may it enlighten and inspire! Enjoy responsibly. Sincerely, The SIGBOVIK 2010 Organizing Committee IV Table of Contents Track 1: Correspondence Theory О An Algorithm for Erdos-Bacon Number Minimization ..............................................3 Charles Garrod, Maria Klawe, Iain Matthews, Laura Trutoiu et al. О Classical Modal Logic: the magic of music, judgementally reconstructed .................5 William Lovas О The Church-Monk Isomorphism .................................................................................11 David Renshaw О DPS Conversion: A New Paradigm in Higher-Order Compilation .............................13 Ben Blum Track 1: Hypertext О DeltaX: A New Paradigm for Machine Translation.....................................................19 Greg Hanneman О System Description: Google Ghost .............................................................................25 Robert J. Simmons, Brian R. Hirshman О The Next 700 Intuitionistic Linear Logics ..................................................................29 Lea Albaugh, William Lovas, Tom Murphy VII, Jason Reed О Harnessing Human Computation: β-reduction hero ....................................................33 Akiva Leffert О The Dissatisfactory Doily: Generating Your Own Terrible Towel Rip-Off.................41 Nels E. Beckman О You Keep Dying ..........................................................................................................43 Dr. Tom Murphy VII Ph.D. О Human Computation Method for Generating High Impact Research Papers .............45 Laura Trutoiu, Erik Zawadzki, Leigh Ann Sudol, J Marlow et al. О On a lexicographic ordering in spring .........................................................................51 McCall and Sons V Track 1: Defeating Evil О The Generalized Cubic Law of Nature: An Answer to Oneism Evil...........................57 Thomas Wright О Are you GOD? .............................................................................................................61 Anvesh Komuravelli О Holy States Can Save the World! ................................................................................67 Brother Jonathan Aldrich О Simple Systems: A Holistic, Postmodern Alternative to the yadda yadda yadda ........71 Mayank Lahiri О A crowdsourced approach to proving robot uprising safety ........................................75 Thomas D. LaToza Track 1: Advanced Technology in a Magical and Revolutionary Device at an Unbelievable Price О A Simplified Interface for Basic Computer Tasks .......................................................81 Jim McCann О T*Y*T* Fails to Solve the Halting Problem ...............................................................83 Wile Tru Do, N.R. Jaizer-Bunny О Developing an Algorithm for “Enhance” Functionality in Image Processing.............85 Ben Blum О Hyperbolic Rendering for Result Enhancement ..........................................................91 Sajme N’Ncamc О The Box and Circles Plot: a Tool for Research Comparison .......................................95 John Thomas Longwood О Department Productivity in Computer Science as a Ratio of Gender Diversity .........99 Leigh Ann Sudol Track 1: Productivity, We Say Ironically О Functional Perl: Programming with Recursion Schemes in Python............................105 Robert J. Simmons, Nels E. Beckman, Dr. Tom Murphy VII, Ph.D. О First Year Student’s Thoughts on Reflections on Bovik’s Seminal Work: ..................111 Athula Balachandran, Richard Peng, Wolfgang Richter VI О Feasibility Analysis of Cooking Spaghetti with Meatballs .........................................113 Ben Blum О Cataloging ....................................................................................................................115 Leigh Ann Sudol, Ciera Jaspan О A novel approach to managing information overload in syndicated feed readers.......119 Matt Mets О “Pimp My Library” Is An Affront To Pimpers Of The World, Everywhere ................121 Dr. Donna M. Malayeri, PhD О Computation in the Complex Time Plane....................................................................123 Matthew Rodriguez Track 1: Perplexity Theory О The Reviewers Must Be Crazy: A Plea For Sanity in Peer Review ............................129 C. J. Deere О FAIL-Talk: Fully Automatic Incomprehensible Language Talks ................................135 Alga Rhythm О An Analysis and Redesign of the Evacuation Instructions in an Office Building .......139 I. B. Gone, U. Cower О All my friends’ researches are cooler than mine .........................................................143 Chris A. Maphone О How to successfully prevent the flow of information in research presentations .........145 Kami Vaniea О An Alternate Construction Method for the Surreal Numbers ......................................153 Jim McCann О The first paper on SAMIR - ANVESH ........................................................................155 SAMIR Sapra, ANVESH Komuravelli О The second paper on SAMIR - ANVESH ...................................................................157 SAMIR Sapra, ANVESH Komuravelli О The third and the last paper on SAMIR - ANVESH ...................................................159 SAMIR Sapra, ANVESH Komuravelli VII VIII Track 1 Correspondence Theory О ach CORRESPONDING AUTHORS An Algorithm for Erdos-Bacon Number Minimization .................3 Charles Garrod, Maria Klawe, Iain Matthews, Laura Trutoiu, Edilson de Aguilar, Michael Ashley-Rollman, Harry Q. Bovik, Joanna Bresee, Jeff Carlson, Mark Desnoyer, Michael Dinitz, Owen Durni, Jack Ferris, Ron Garcia, Robert Harper, Benoit Hudson, Greg Humphreys, Michelle Hutton, Kelli Ireland, Katrina Ligett, Ciera Jaspan, Jennifer Marlow, Davin McCall, James L. McCann, Roman Mitz, Iulian Moraru, Amar Phanishayee, David Reed, Jason Reed, Margaret Reid-Miller, Kathryn Rivard, Or Sheffet, Daniel D. Sleator, Ekaterina Spriggs, Matthew L. Stanton, Mark J. Stehlik, Megan Thorsen, Vijay Vasudevan, Kevin Waugh, Erik Zawadzki О THE HILLS ARE ALIVE WITH THE SOUND OF CORRESPONDENCE Classical Modal Logic: the magic of music, judgementally reconstructed ..........................................................5 William Lovas О ‘ROUND CORRESPONDENCE The Church-Monk Isomorphism....................................................11 David Renshaw О CORREPWNDENCE DPS Conversion: A New Paradigm in Higher-Order Compilation....................................................................................13 Ben Blum 1 2 An Algorithm for Erdos-Bacon Number Minimization Charles Garrod Carnegie Mellon University Pittsburgh, PA 15213 Laura Trutoiu Carnegie Mellon University Pittsburgh, PA 15213 Harry Q. Bovik Carnegie Mellon University Pittsburgh, PA 15213 Mark Desnoyer Carnegie Mellon University Pittsburgh, PA 15213 Jack Ferris Maria Klawe Disney Research, Pittsburgh Pittsburgh, PA 15213 Edilson de Aguilar Michael Ashley-Rollman Disney Research, Pittsburgh Pittsburgh, PA 15213 Joanna Bresee NASA Ames Research Center Mountain View, CA 94043 Michael Dinitz Carnegie Mellon University Pittsburgh, PA 15213 Ron Garcia Carnegie Mellon University Pittsburgh, PA 15213 Carnegie Mellon University Pittsburgh, PA 15213 Benoı̂t Hudson Greg Humphreys Autodesk Canada, Montréal Montréal, Canada Kelli Ireland University of Pittsburgh Pittsburgh, PA 15213 Jennifer Marlow Carnegie Mellon University Pittsburgh, PA 15213 Roman Mitz Carnegie Mellon University Pittsburgh, PA 15213 David Reed Creighton University Omaha, NE 68178 Kathryn Rivard Carnegie Mellon University Pittsburgh, PA 15213 Ekaterina Spriggs Carnegie Mellon University Pittsburgh, PA 15213 Iain Matthews Harvey Mudd College Claremont, CA 91711 NVIDIA Corporation Katrina Ligett Cornell University Ithaca, NY 14850 Davin McCall La Trobe University Melbourne, Australia Iulian Moraru Carnegie Mellon University Pittsburgh, PA 15213 Jason Reed University of Pennsylvania Philadelphia, PA 19104 Or Sheffet Carnegie Mellon University Pittsburgh, PA 15213 Matthew L. Stanton Carnegie Mellon University Pittsburgh, PA 15213 Megan Thorsen Carnegie Mellon University Pittsburgh, PA 15213 Jeff Carlson Carnegie Mellon University Pittsburgh, PA 15213 Owen Durni Carnegie Mellon University Pittsburgh, PA 15213 Robert Harper Carnegie Mellon University Pittsburgh, PA 15213 Michelle Hutton The Girls Middle School Mountain View, CA 94043 Ciera Jaspan Carnegie Mellon University Pittsburgh, PA 15213 James L. McCann Carnegie Mellon University Pittsburgh, PA 15213 Amar Phanishayee Carnegie Mellon University Pittsburgh, PA 15213 Margaret Reid-Miller Carnegie Mellon University Pittsburgh, PA 15213 Daniel D. Sleator Carnegie Mellon University Pittsburgh, PA 15213 Mark J. Stehlik Carnegie Mellon University Pittsburgh, PA 15213 Vijay Vasudevan Sunnyvale, CA 94087 Carnegie Mellon University Pittsburgh, PA 15213 Kevin Waugh Erik Zawadzki Carnegie Mellon University Pittsburgh, PA 15213 Carnegie Mellon University Pittsburgh, PA 15213 ABSTRACT cult. In this paper we propose Erdős Number Minimization, reducing the Erdős number of many mathematicians and computer scientists to two. Although we do not prove the claim, we believe that the Erdős number we obtain is op- A small Erdős number has long been a source of pride for mathematicians. With Paul Erdős’s death, however, obtaining an Erdős number less than two has become diffi- 3 timal without significant biological or paranormal advances. We extend ENM with Bacon Number Reduction, a nonoptimal variant to reduce Bacon numbers, obtaining small but non-minimal Erdős-Bacon numbers. 1. ENM with Bacon Number Reduction (BNR), a non-optimal algorithm to reduce Bacon numbers to obtain ENM+BNR, and algorithm that significantly reduces Erdős-Bacon numbers. Finally, we apply ENM+BNR to obtain Erdős-Bacon numbers no greater than six. INTRODUCTION 6. From his birth in 1913 to his death in 1996, Paul Erdős co-authored nearly 1500 papers, working with nearly 500 collaborators to become the most prolific mathematician in modern times [5]. This proliferation led mathematicians to humorously define Erdős numbers: a person’s Erdős number is the distance between that person and Paul Erdős in the academic paper collaboration graph [4]. I.e., Paul Erdős is the unique person with Erdős number zero; all of Erdős’s immediate collaborators have Erdős number one; in general, if you publish an academic paper with a collaborator who has Erdős number x and none of your other collaborators has Erdős number less than x, your Erdős number is x + 1. A similar Bacon number has been proposed for actor Kevin Bacon, except using collaborations in movies instead of collaborations in academic papers. Erdős-Bacon numbers were subsequently defined to be the sum of each person’s Erdős and Bacon numbers. Obtaining a small Erdős number has become increasingly difficult since Erdős’s death, but mathematicians with chutzpah have continued to publish papers with Erdős after his death; this brings his total number of known publications to 1525, his collaborator count to 511, and the Erdős number of the chutzpah-bearing mathematician to one. The latest publications co-written with Paul Erdős appeared more than ten years after his death, and with additional rumored works in progress, Erdős’s publication list is expected to grow. In this paper, we describe a technique called Erdős Number Minimization (ENM). Although we do not prove the claim, we believe that, without significant biological or paranormal advances, ENM is optimal for mathematicians who have been unable to work with Erdős in the past. We supplement ENM with a similar but non-optimal Bacon Number Reduction algorithm to obtain ENM+BNR. 2. 7. ERDOS NUMBER MINIMIZATION BACON NUMBER REDUCTION See [6] for more information. 4. EVALUATION OF ENM+BNR In [3], Maria Klawe co-authored with Paul Erdős, thus guaranteeing that all authors on this paper have an Erdős number no greater than two. Additionally, Iain Matthews appeared in [2] with Sigourney Weaver, who appeared in [1] with Harry Connick Jr., who appeared in [7] with Kevin Bacon. By [6], all collaborators on this paper also appear in the movie credits about the paper and thus have a Bacon number no greater than four, making their Erdős-Bacon number no greater than six. 5. REFERENCES [1] Ann Biderman and David Madsen. Copycat, 1995. http://www.imdb.com/title/tt0112722/. [2] James Cameron. Avatar, 2009. http://www.imdb.com/title/tt0499549/. [3] Paul Erdős, Frank Harary, and Maria Klawe. Residually complete graphs. In Proc. Sympos. Combinatorial Mathematics and Optimal Design, pages 117–123, Colorado State University, Fort Collins, Colorado, 1978. [4] Caspar Goffman. What is your Erdős number? The American Mathematical Monthly, 76(7):791, 1969. [5] Jerry Grossman, Patrick Ion, and Rodrigo De Castro. Erdős number project, 2010. http://www.oakland.edu/enp/. [6] Iain Matthews, Laura Trutoiu, Charles Garrod, and Maria Klawe et al. Bacon Number Reduction, 2010. http://tinyurl.com/ENM+BNR. [7] Willie Morris and Gail Gilchriest. My Dog Skip, 2000. http://www.imdb.com/title/tt0156812/. 2. 3. ACKNOWLEDGMENTS This paper was most definitely not authored by Luis von Ahn, David G. Andersen, Alexei Efros, Michelle Goodstein, Raffay Hamid, Mike Mistry, Don Sheehy, Robert Simmons, or Ronit Slyper. CONCLUSIONS In this paper, we propose Erdős Number Minimization (ENM), an algorithm to minimize Erdős numbers for authors unable to collaborate with Paul Erdős. We extend 4 Classical Modal Logic the magic of music, judgementally reconstructed William Lovas March 21, 2010 Abstract ♩ The hills are alive... with the sound of music. 1 Introduction Typically, musicians concern themselves with just one or two notions of music, in the absolute. Modal music is a generalization of traditional music in which we can consider music from multiple perspectives, or modes. In fact, modal music dates back to the antiquities, and so we may more properly speak of classical modal music. In what follows, we develop a logic for classical modal music based around a glorious and perfect septuality of seven different modal judgements. 2 The Logic of Classical Modes: Judgements Ordinary intuitionistic logic is typically concerned with the judgement A true, meaning that the proposition A is true. Classical modal logic is a multimodal logic [Ree09] based on seven judgements, each one representing one of the classical modes: • C ionian — C has the Ionian (or “major”) mode • D dorian — D has the Dorian mode • E phrygian — E has the Phrygian mode • F lydian — F has the Lydian mode • G mixolydian — G has the Mixolydian mode • A aeolian — A has the Aeolian (or “minor”) mode • B locrian — B has the Locrian mode 5 Γ Δ Θ Λ Ξ Π Σ Φ Ψ Ω Figure 1: Greek letters appropriate for use as logical contexts. Since each of these judgements may appear on both the left- and the righthand side of a sequent, we split the usual context into seven zones, one for each modal judgement. A difficulty presents itself in choosing appropriate names for the contexts, as there are only 10 capital Greek letters that are not written identically as some Roman capital letter1 (see Figure 2). We make the obvious choices for the Dorian (Δ), Phrygian (Φ), and Lydian (Λ) contexts. Mixolydian with its infixed x gets as its context the Greek letter Ξ. The usual ordinary or “major” mode, Ionian, gets the usual ordinary context, Γ. The Aeolian or “minor” mode gets Σ, which looks kind of like a sideways “M”. And finally, the highly unstable and notoriously difficult-to-resolve Locrian mode is represented by Ω, a symbol which calls to mind non-termination and inconsistency. The three remaining unused Greek letters (Θ, Π, and Ψ) are left to future work. Classical modal logic thus involves sequents of the form: Γ; Δ; Φ; Λ; Ξ; Σ; Ω J for J one of the seven modal judgements, and where Γ = C1 ionian, . . . , Ci ionian Δ = D1 dorian, . . . , Dj dorian Φ = E1 phrygian, . . . , Ek phrygian Λ = F1 lydian, . . . , Fl lydian Ξ = G1 mixolydian, . . . , Gm mixolydian Σ = A1 aeolian, . . . , An aeolian Ω = B1 locrian, . . . , Bλ locrian This excessively complex sequent is in keeping with the classical nature of the logic: classical music is serious business! We want to be able to make inferences like: Γ; Δ; Φ; Λ; Ξ; Σ; Ω C ionian Γ; Δ; Φ; Λ; Ξ; Σ; Ω D dorian Therefore, in addition to the usual hypothetical reasoning principles, we have judgemental principles corresponding to the glorious septuality. Principle 1 (Septuality) For all notes N , modes m, and natural numbers k: Γ; Δ; Φ; Λ; Ξ; Σ; Ω N m if and only if Γ; Δ; Φ; Λ; Ξ; Σ; Ω (N +7 k) (m +7 k). where the transposition operator +7 is defined in the obviously canonical way. 1 excluding the obsolete letters digamma, qoppa, san, and sampi, most of which are unavailable in LATEX. 6 Figure 2: The Ciiiiiiiiircle... the Circle of Fifths! 3 Circle of Fifths The Principle of Septuality hints at the deep symmetries of classical modal music, brought out by the Circle of Fifths (Figure 2). To internalize the notion of transposition, we introduce the connective N , read “transpose N ”. Γ; Δ; Φ; Λ; Ξ; Σ; Ω N (m +7 1) Γ; Δ; Φ; Λ; Ξ; Σ; Ω N m Γ; Δ; Φ; Λ; Ξ; Σ; Ω N m I Γ; Δ; Φ; Λ; Ξ; Σ; Ω N (m +7 1) E But of course, a circle goes both ways, so as is traditional in modal logics, we also have the backward-looking dual connective N , read “untranspose N ”. Γ; Δ; Φ; Λ; Ξ; Σ; Ω N (m −7 1) Γ; Δ; Φ; Λ; Ξ; Σ; Ω N m Γ; Δ; Φ; Λ; Ξ; Σ; Ω N m I Γ; Δ; Φ; Λ; Ξ; Σ; Ω N (m −7 1) E where, again, the untransposition operator −7 is completely standard. The rules for both connectives are easily seen to be locally sound and complete. But more interestingly, the connectives lend themselves easily to a clear axiomatic characterization. The first axiom internalizes the Principle of Septuality, N ≡ N that is to say, is 7-involutive. The second and third axioms capture the notion that transposition and untransposition are mutually inverse, N ≡ N ≡ N 7 4 4.1 Future Directions Relationships with Other Logics It is well-known that the intuitionistic modal logic S4 [PD01] has exactly seven distinct generalized modalities: ·, , , , , , and . An obvious direction of future work would be to connect these seven modalities to the seven modal judgements of our classical modal music logic. 4.2 Other Connectives Generalizing from our experience with modern music, we might infer the existence of connectives N and N , some instances of which would have interpretations “between the modes”, with the following axiomatic characterizations: (N ) ≡ N (N ) ≡ N along with rules like N phrygian N lydian An obvious question to ask is just what modal judgemental principles would these connectives correspond to? How could they be “externalized” as judgements in a globally sound and complete way? Of course, for algebraic completeness, we would want to include the identity or “natural” connective N , where N ≡ N which derives semantically from the well-known categorical notion: η - G F F♩ ? F G♩ η 8 ? G 4.3 Proof Theory A rich and expressive proof theory cries out to be invented2 in which proofs are compositions and proof checking is harmoniousness validation. Naturally, this proof theory should be amenable to canonical forms [WCPW02, Bac47c]. 4.4 Classical Classical Modal Logic In this paper we cover the intuitionistic variant of classical modal logic, but one could easily consider a multiple-conclusion style classical variant. The chief difficulty is coming up with enough Greek letters to round out the zones, since as explained in Section 2, the present work leaves only 3 suitable letters. One rather pedestrian option would be to leverage subscripts: ΓL ; ΔL ; ΦL ; ΛL ; ΞL ; ΣL ; ΩL =⇒ ΓR ; ΔR ; ΦR ; ΛR ; ΞR ; ΣR ; ΩR (Yawn.) A more creative option would be to press into service the 4 canonical obsolete Greek letters, digamma, qoppa, san, and sampi, bringing the total unused letters to a perfect 7 — a tempting coincidence! But unfortunately, these letters are difficult to typeset, and in any case bear little connection to the logical content of the seven zones. So a cleverer alternative would be to use very powerful typesetting features to allow us to reuse our carefully chosen seven contexts while clearly distinguishing the “false” ones from the “true” ones: Γ; Δ; Φ; Λ; Ξ; Σ; Ω Γ; Δ; Φ; Λ; Ξ; Σ; Ω An advantage of this notation is that sequents may be read either right-side up or upside-down, left-to-right or right-to-left, a trick used to great comic effect by musical artists such as Borge [Bor90] and Bach [Bac47b, Bac47a] and computer scientists such as Hofstadter [Hof79] and Mairson [Mai05]. Finally, a third option would be to follow in the footsteps of many presentations of classical linear logic [Gir87], which leverage duality to halve the number of required zones, and find some way of leveraging septuality, a concept seven times more powerful, to shrink the size of a classical modal sequent. 5 Coda If modals be the logic of love, calculemus! 2 “Discovered.” — Ruy Ley-Wild 9 References [Bac47a] Johann Sebastian Bach. Canon 1, a 2 cancrizans (“crab canon”). In The Musical Offering [Bac47c]. [Bac47b] Johann Sebastian Bach. Canon 9, Quærendo Invenietis. In The Musical Offering [Bac47c]. [Bac47c] Johann Sebastian Bach. The Musical Offering. BWV 1079. July 1747. [Bor90] Victor Borge. William Tell backwards. In The Best of Victor Borge: Act One & Two. GMZ Productions, 1990. Available from http://www.youtube.com/watch?v=MuWUp1M-vuM. [Gir87] Jean-Yves Girard. Linear logic. Theoretical Computer Science, 50:1–102, 1987. [Hof79] Douglas R. Hofstadter. Crab canon. In Gödel, Escher, Bach: an Eternal Golden Braid, pages 199–203. Basic Books, New York, 1979. [Mai05] Harry Mairson. Constructive classical logic. POP Seminar at Carnegie Mellon University (http://www.cs.cmu.edu/afs/.cs. cmu.edu/Web/Groups/pop/seminar/050315.html), March 2005. [PD01] Frank Pfenning and Rowan Davies. A judgmental reconstruction of modal logic. Mathematical Structures in Computer Science, 11:511– 540, 2001. Notes to an invited talk at the Workshop on Intuitionistic Modal Logics and Applications (IMLA’99), Trento, Italy, July 1999. [Ree09] Jason Reed. A judgmental deconstruction of modal logic. Available from http://www.cs.cmu.edu/∼jcreed/papers/jdml.pdf, January 2009. Revised and redacted at http://www.cs.cmu.edu/ ∼jcreed/papers/jdml2.pdf, May 2009. [WCPW02] Kevin Watkins, Iliano Cervesato, Frank Pfenning, and David Walker. A concurrent logical framework I: Judgments and properties. Technical Report CMU-CS-02-101, Department of Computer Science, Carnegie Mellon University, 2002. Revised May 2003. 10 The Church-Monk Isomorphism David Renshaw “All musicians are subconsciously mathematicians.” —Thelonious Monk “And vice versa.” —Alonzo Church Church’s Thesis: (∀x.∃y.φ(x, y)) → (∃f.∀x.∃y u.T(f, x, y, u) ∧ φ(x, y)) Monk’s Mood: References [1] W. Lovas. Classical Modal Logic: the magic of music, judgementally reconstructed. SIGBOVIK 2010. [2] D. Renshaw. The Davis-Davies Isomorphism. To appear (maybe). 11 ach sigbovik Plenary Program Committee 2009 Confidential Paper Reviews Paper 3: The Church-Monk Isomorphism Reviewer 1: Jeffrey Renshaw Rating: 3 (strong accept) Confidence: 3/4 What a remarkable coincidence that I was asked to review this paper! Just the other day I was pondering some deep connections between Karl Marx and Karl Goldmark. David’s paper brilliantly elucidates many ideas that I had been struggling to grasp. It looks like we’re on to something big here. Apparently, isomorphisms are far more common than was previously believed. I eagerly anticipate future work in this direction. 12 DPS Conversion: A New Paradigm in Higher-Order Compilation Ben Blum (bblum@andrew.cmu.edu) 2010.04.01 1 Abstract This paper introduces a new judgment and accompanying system of rules for use in some higher-order compilation stages that allows reduction of noobs into more damaged noobs, and finally conversion into gibs. The translation is done by repeated applications of damage-per-second (DPS), which we denote dps. The primary judgment is Γ, dps noob ↓ gibs, which is mostly useful only in first-person shooter or MMO cases. We provide a proof for local soundness and completeness, and finally an example usage case. 2 Definitions In certain situations, we come across constructs of the following form that we wish to DPS-convert. noob ::= ×n [hp : int, . . . ] dps ::= ROCKET | AWP | SPELLCASTER | SWORD | . . . | HEADSHOT[dps] | × [dps, dps] gibs ::= A • The rest of the components of noob are system-specific. All we care about is the noob’s hp total. • Note that the final construct in the dps definition represents that damage can be dealt from multiple sources at a time, and we are only concerned about the total. 3 Rules We set forth a series of rules for performing the following conversion: dps a Γ, dps Γ, dps int (1) (2) noob noob noob ↓ gibs (3) We assume standard arithmetic operations +, −, and ∗, and let Γ = | Γ, dps. 1. The a judgment tells us how much damage a given dps does. The exact implementation of these rules may vary by system; we present an example. ROCKETa25 AWPa15 SPELLCASTERa8 δaα boom.headshot HEADSHOT[δ]a3 ∗ α 13 SWORDa10 δ1 aα1 δ2 aα2 multiple.dps ×[δ1 , δ2 ]aα1 + α2 2. This rule tells when the amount of dps presently given is not sufficient for reducing the noob to gibs. Applications of this rule are guided by how much dps is in the context. Γ ν ν δaα π1 ν − α > 0 not.dead.yet Γ, δ ν ×n [π1 ν − α, π2 ν , . . . , πn ν ] νν insufficient.dakka 3. This judgment represents the end case in DPS conversion. These rules are similarly inductive on the context. Γν↓ Γ ν ν δaα π1 ν − α ≤ 0 lol.pwned overkill Γ, δ ν ↓ Γ, δ ν ↓ A A A 3.1 Soundness Each class of dps obviously makes some sound, proportional to the amount of damage it does. For example, using ROCKET obviously makes a loud explosion, while a HEADSHOT would cause the player to shout out in excitement. Therefore, to ensure soundness, you should do the most DPS possible. 3.2 Completeness As a wise man once said [1], “Any problem is solvable with sufficient firepower.” This serves as an inductive proof that every noob will eventually be reduced to gibs with enough dps. 4 Future Work The DPS Conversion system as presented only cares about the hp total of noobs. A more advanced system would be able to handle healers and tanks. In the former case, certain abilities could cause the noob’s hp to increase in addition to decreasing during a derivation. The latter case makes relevant the other elements of the noob tuple - in addition to hp, a noob might perhaps have spell resistance which would negate DPS from a SPELLCASTER. A new version of DPS would be able to generalize such abilities and include their effects in the conversion process. 5 Conclusion We provide an example DPS derivation. For simplicity, let noob ::= ×1 [hp]. Our noob will start with 50hp. In the first second, a SPELLCASTER gets a HEADSHOT; in the next, a ROCKET and SWORD join the battle, and finally the AWP shoots, though the noob was successfully converted to gibs in the first two seconds. SPELLa8 insufficient.dakka boom.headshot ×1 [50] ×1 [50] HS[SPELL]a24 not.dead.yet HS[SPELL] ×1 [50] ×1 [26] HS[SPELL], ×[ROCKET, SWORD] ×1 [50] ↓ A HS[SPELL], ×[ROCKET, SWORD], AWP ×1 [50] ↓ ROCKETa25 SWORDa10 ×[ROCKET, SWORD]a35 multiple.dps lol.pwned A overkill Acknowledgments: Special thanks to Joshua Wise for the insufficient.dakka rule, Nicholas Tan1 for the future work suggestions, and Zachary Z. Sparks for the soundness proof. 6 References 1. Wiseman, A. (22 B.C.) Any problem is solvable with sufficient firepower. On archaeologically preserved stone tablets. 14 ach sigbovik Plenary Program Committee 2009 Confidential Paper Reviews Paper 11: DPS Conversion: A New Paradigm in Higher-Order Compilation Reviewer 1 Rating: 2 (accept) Confidence: 1/4 The author formulates a sound and complete operational semantics for the reduction of noobs to gibs. While this process is of considerable commercial interest, it has until now been implemented in a rather ad-hoc way, so the paper makes a strong contribution by putting it on firm theoretical footing. Particular strengths of the paper include its modular proof of soundness, which extends without change to any sound-producing attack (however, this approach does not apply to silent-but-deadly weapons); and also its use of the spooky skull-and-crossbones glyph. The author could improve the paper by generalizing the result beyond first-person shooters; the extension to person-shooters of other ordinals seems straightforward. Also, I am fairly sure that there is relevant prior workwhich the author has not cited---if I am not wrong Murphy’s work on Generalized Super Mario Bros. and Beckman’s on Infinite Arkanoid are pertinent. While I have acquired, over the years, certain knowledge of gamer culture, my confidence rating is low because on the whole I am more of a Scrabble sort of guy. Possibly by continuing to review 3L33T G4M3RZ type of papers I will be able to “level up” my confidence in this area. I suppose I couldalso hire them out to a “review farmer” and save myself some carpal tunnel damage. 15 16 Track 1 Hypertext О ach HYPERTEXT TRANSLATION DELTAX: A New Paradigm for Machine Translation ......................19 Greg Hanneman О HYPERTEXT TRANSFER PROTOCOL DOWNLOAD FREE System Description: Google Ghost................................................25 Robert J. Simmons, Brian R. Hirshman О HILL ALSO STANDS FOR “HYPERTEXT INTUITIONISTIC LINEAR LOGIC” The Next 700 Intuitionistic Linear Logics .....................................29 Lea Albaugh, William Lovas, Tom Murphy VII, Jason Reed О HYPERLAMBDA Harnessing Human Computation: β-REDUCTION HERO ....................33 Akiva Leffert О THE HUMID HYPERTEXT! The Dissatisfactory Doily: Generating Your Own Terrible Towel Rip-Off ...........................................................................................41 Nels E. Beckman О YOU HYPERTEXT AND YOU KEEP DYING You Keep Dying.............................................................................43 Dr. Tom Murphy VII Ph.D. 17 (continued on next page) Track 1 Hypertext (continued) О ach HYPERIMPACT Human Computation Method For Generating High Impact Research Papers .............................................................................45 Laura Trutoiu, Erik Zawadzki, Leigh Ann Sudol, J Marlow, Anonymous Coward, Ekaterina Taralova, Field Cady, Matt Stanton, Ciera Jaspan, Or Sheffet О HYPERORDER On a lexicographic ordering in spring ...........................................51 McCall and Sons, Semantic Exporters 18 DeltaX: A New Paradigm for Machine Translation Greg Hanneman Language Enthusiast and Errant Scribbler Carnegie Mellon University 1 Introduction 2 Machine Translation The problem of machine translation is usually expressed as the task of automatically translating text (e.g. a sentence) in one human language (e.g. English) into another human language (e.g. Azerbaijani), such that the semantic meaning of the original sentence is also expressed by the translation. The precise formulation of the task, however, has varied from paradigm to paradigm. Because the mathematical models in these things quickly get complicated, researchers who want their work to be understood by others frequently take recourse in a generative As you may suspect from the way that last para- story: a simplified conceptual overview of how their graph ended, in this paper we introduce just such a systems translate sentences. breakthrough. We describe DeltaX, which we believe to be a completely novel paradigm for carrying out machine translation. In contrast to previous 2.1 A Generative Story methods, DeltaX is fast, cheap, easy, and requires Once upon a time, there was a man called Warren minimal additional hardware beyond what may easily Weaver. Mr. Weaver was a mathematician, which be obtained by ordinary consumer-level technology means that his job was to solve math problems all users. day. This was a very hard job back when a computer The remainder of this paper is organized as follows. filled an entire room! But Mr. Weaver was a very Since we have no set page-count limit, we first skip a smart man, and so he enjoyed his job. One day, Mr. Weaver was walking to his office whole bunch of lines just to thumb our nose at other conferences. Next, in Section 2 we briefly review the when he thought of a fun new math problem to solve. “When a man speaks Russian,” Mr. Weaver thought, “what that really means is that he’s speaking English.” (Mr. Weaver had a very good imagination.) “He speaks English in his head, but then the English goes through a secret code and comes out as Russian instead.” Mr. Weaver thought very hard. “Now, all scientific question of machine translation and sum- I have to do figure out what that secret code is, and marize its existing paradigms. Section 3 is our mag- then I can translate the Russian back to English!” num opus1 , where we describe DeltaX in detail. We Do you remember hearing about secret decoder rings follow with Section 4, which performs a comparative on the radio, where one letter stands for another? analysis between DeltaX and other machine trans- Well, all Mr. Weaver had to do was figure out which Russian words stood for which English words in the lation methods. Finally, Section 5 concludes. secret Russian code, and then he would know just like that how to translate Russian. 1 Op. 4, in E minor Mr. Weaver went straight to work. He worked very The field of machine translation has experienced considerable growth since its original conception in the late 1940s. Over the past 60 years, countless countably finite researchers have developed new techniques and methodologies to advance the state of the art (and the state of their CVs). Sometimes these advancements are significant enough that it can be claimed that a new paradigm of machine translation has been developed, though to date there have been very few such breakthroughs. 19 hard for many days, but the secret code was also very hard. Mr. Weaver was never able to figure it out. He told many other people his idea, but they all laughed at him. At last he stopped working and died. But his story has a happy ending. Even though Mr. Weaver did not find out the secret Russian code, he invented the new problem of statistical machine translation. The end.2 at this crap: Can you can fruit in that can? Three different parts of speech! Then you gotta put all the words together, but if the man saw the boy with a telescope, how am I supposed to know who’s got the looking glass! Man, this is so unfair! Dad said I gotta stay in my room until I finish parse trees for the garden path sentences, but I think I’m gonna sneak out. There are just too many rules to write down! 2.2 2.3 Give Yourself Goosebumps Chapter 1. Hi! My name is Rule-Based Machine Translation, but you can call me Rules for short. It totally rules! Anyway, I gotta tell you about my old man — he’s such a pain in the neck! I just know that, if you met him on the street, you’d run away screaming. All he talks about is his stupid Russian decoder rings, which is so old-fashioned. Can you imagine! Fiddling around all day with his stupid mathematical rules, as if all the wicked cool things about human language could be expressed as mere numbers. Let me tell you how the modern kids see things these days. We like rules, man, ’cause they totally rule! Just check this out. You know how in French you’ve got thinks like la voiture bleue, right, where the adjective comes after the noun it modifies? But when you say the same thing in English, you’ve totally gotta reverse the order so the adjective comes first – the blue car? Well, that’s the whole secret! If we want to translate French into English, we’ve just gotta know the rules of the game. No numbers, no statistics. Chapter 2. Now I gotta tell you the best part: learning rules is a whole lot easier than breaking some made-up secret code. We just have to ask people what they are! I mean, you speak English, so you can just tell me what order the words in a sentence have to come in, and then we’ll figure out what categories they belong to, and then someone who knows French’ll tell us the same information there. We put it all together and, wham! That’s machine translation. Chapter 3. Aw, man, I just got sent to my room by my dad ’cause my homework was late. It was so stupid! All I had to do was figure out a set of rules that would explain all languages, which is like totally reasonable, right? That’s what I thought until I started my homework. Do you know how many different meaning there are for some words? Look 2 Adults reading this paper in the presence of small children should take care at this point to show the pictures. All Grown Up Good evening, everyone, and thank you for coming to my presentation. Tonight’s topic is going to be phrase-based statistical machine translation, and I would like to say right at the beginning how pleased I am to be able to speak to you all about it at such an important conference. Now, as we all know, the field of machine translation has faced some significant problems in the past. We spent a long time paying linguists to write thousands of synchronous grammar rules, morphological analyzers, parsed treebanks, and who knows what else, and at the end of the day none of those techniques were any help. Those processes are just too expensive, and getting good results out of them just takes too long. Who cares whether a word’s in the subjuctive aorist passive, or if Arabic is a VSO language? Every time I fire a linguist, my team’s translation results go up five points! Friends, the real answer is data. Data, data, data. We’ve developed cutting-edge mathematical models to automatically extract information from parallel text — and it’s better information than anything a room full of linguists will tell you. In this slide, you can clearly see the way to do translation. Just get a whole bunch of sentences in language F here, and match them up with their translations in language E here. International parliaments are great sources of these, ready-made! Line up all your sentences, then run statistical word alignment to let the math tell you exactly which words in F translate to which words in E exactly which percentage of the time. No made-up linguistics — the numbers don’t lie. On this slide you can see the next step. Once you know how the words translate, just group a bunch of words together, and you know how the phrases translate too. Question, ma’am? No, no linguistics here either. When I say “phrase,” I just mean any old group of contiguous words in F that translates into a group of contiguous words in E. Again you can rely on the mathematical models we’ve developed to give you accurate translation probabilities. 20 Finally, here on Slide 3, you see how easy it is to translate. When you get a new sentence in F , just look through your scored phrase pairs for things that match bits and pieces of the F sentence. String ’em all out in a line, multiply their probabilities, and take the ones that give you the highest score in E. Whatever the data supports the most is the translation you give: let Bayes’ Rule do all the work for you, and just maximize that old P (E | F ). To conclude, thank you all again for coming tonight, and remember: there’s no data like more data! 3 3.1 • “Motion of a body in which every point of the body moves parallel to and the same distance as every other point of the body” A New Paradigm: DeltaX f(a) Motivation In our preliminary work on DeltaX, we were primarily struck by the numerous shortcomings in existing machine translation paradigms. In informationtheoretic statistica machine translation, for example, we found ourselves dissatisfied with the reduction of the infinite beauty and creativity of natural language to a mere case of cipher-cracking. On the other hand, the intensive manual effort required to create precise grammars and lexicons in rule-based machine translation leaves us searching for a faster, more automatic method. Finally, we believe that the data-driven techniques of phrase-based statistical translation are reaching a saturation point: while they work well for languages with very large amounts of parallel text, they perform very poorly in the absence of these great resources. Ideal machine translation has three qualities: (1) it is fully automatic, (2) it is high-quality, and (3) it handles a broad coverage of text styles and domains. It has been observed that, at the present time, one may apply the existing paradigms and obtain any two of these three criteria. This, we believe, is not enough. 3.2 out the distracting probabilistic models or formal grammars of previous approaches. The result is fast, cheap, easy, and requires minimal additional hardware beyond what may easily be obtained by ordinary consumer-level technology users.3 Fundamentally, the definition of translation is clear: The DeltaX Formulation a' a Figure 1: Simple formulation of the translation task. This is exemplefied in Figure 1. Backing away from morphology, grammars, and parallel data, we frame the task of translation simply: its goal is to find a function f (a) that maps a given point a onto the point a . Since our starting and ending points are both known, we can easily define this function in terms of the distance between a and a . We further use the fact that we can re-write point a as the ordered pair (x, y). f (a) = f (x, y) = a − a (x , y ) − (x, y) (1) (2) y − y f (x) = = 0 x − x (3) (4) f (x) = Δx (5) We thus arrive at our function for translation. To address the machine portion, we apply the examplebased defintion of “machine” as “computer,” as seen in common locutions such as “Linux machine” or “machine room.” Putting the two halves together provies a clean, intuitive new paradigm for machine translation, which we fittingly call DeltaX. We believe that the current limitations of machine translation technology in all existing paradigms come from the fact that the problem is stated incorrectly in all of them. Recall that we previously introduced machine translation as the task of automatically translating a sentence in one human language to a sen3 Did you notice we stole that sentence almost word for word tence in another human language. In DeltaX, we return to this fundamental and clarifying truth with- from the introduction? All the good papers do it. 21 le Dell Dell 9.84' 3m 7m Figure 2: Setup for our English–French machine translation experiments. Our Dell Optiplex input is translated approximately a net 7 meters. Carrying out the machine translation task with DeltaX is simple, requiring only an input, a goal, and sufficient force — all readily obtainable by today’s underfunded and small research groups. For the particularly miserly, the force required may even be calculated in advance with the application of simple physics. We now describe each of the requirements in more detail. • Input. Borrowing from the classical machine translation literature, the input is typically termed the source.4 As a general translation platform, DeltaX places no restriction on the source: it can be any machine — running in any language — the user prefers. • Goal. Classical machine translation uses the term target to refer to the output of a translation. Here, we allow the target to also be generic: the user must only pick a goal location that the source machine should be translated to. • Force. Typically, force for a machine translation system is provided by an amount of computing power — either that or an impending deadline, frustrated advisor, or project evaluations. However, many modern systems require large computing clusters, fancy servers, or both. 4 Actually, in the Late Classical period, P. M. T. Bach wrote it ye olde Sor e, but we must make allowances for modern spelling and typography. In DeltaX, we relax this requirement, specifying only the use of some amount of motive power. The exact amount may be calculated exactly and in advance.5 4 Experiments To test our system, we carried out experiments on English-to-French machine translation. In each case, our source was a Dell Optiplex GX260. The target was a point in the next machine room over, approximately 15 meters away, and the force was two minimum-wage undergraduates in reasonable physical condition. This setup is shown in Figure 2. A common metric in machine translation is the BLEU score, a geometric mean of n-gram translation precision compared to a human-produced reference translation.6 Since our system uses neither n-grams nor human-produced references, we find BLEU scores inadequate for our evaluations. Instead, we use an adapted metric that we term CHEESE, or “Computer Here Evaluation, Each System Expected.” This easy-to-use metric is based on the target specified during the translation task — if the end result is that the machine has been translated to 5 This is the second time we have made this statement. The proof and derivation, as in all such cases, are left as an exercise to the reader. 6 If you didn’t understand that last sentence, good luck with “real” research papers. They’re all like that! 22 the target position, CHEESE returns success. If not, CHEESE returns failure status and fires the undergraduate movers (“human translators”). We compare DeltaX to existing machine translation systems freely available on the Internet. Google Translate is a statistical system built from approximately 4.3 quintagazillion words of text in all domains and genres, including some that writers haven’t invented yet. Systran (or “Babelfish” or “AltaVista Translate,” depending on your age) is a rule-based system made up of context-free grammar rules, begun in 1961 and currently scheduled for completion by human linguists in 2025. To make our comparison fair, we use the same input for all systems. The Dell Optiplex used in the DeltaX system is first converted into a pure text representation by serializing its instruction manual, Verilog files for its processors, and contents of its hard drive. We next pay human translators (in the classical sense) to translate the resulting text into French; this provides a reference translation for use with the BLEU metric. System Google Translate Systran DeltaX Metric 0.0442 0.0657 1.0000 Score BLEU BLEU CHEESE Figure 3: Results of experiments comparing the DeltaX machine translation system to two Internet competitors. Results are shown in Figure 3. Surprisingly, the rule-based system outperforms the statistical system in our machine domain. We hypothesise that this is true because machine translation — as we have expressed it — can be succinctly expressed a series of generally applicable rules, something that rule-based systems excel at. Neither of the two Internet-based machine translations, however, hit upon the correct series of rules to apply in our experimental setup. The DeltaX system, on the other hand, was able to express the translation task as a series of three rule applications: 1. Never talk about machine translation. 2. Translate south by three meters. 3. Translate east by seven meters. 4. Translate north by three meters. By following this simple procedure, the DeltaX system is able to achieve a perfect 1.0 on the CHEESE metric, while the competing systems fail to measure up in BLEU. 5 Conclusion .sedulcnoc 5 noitceS ,yllaniF .sdohtem noitalsnart enihcam rehto dna XatleD neewteb sisylana evitarapmoc a smrofrep hcihw ,4 noitceS htiw wollof eW .liated ni XatleD ebircsed ew erehw ,supo mungam ruo si 3 noitceS .smgidarap gnitsixe sti ezirammus dna noitalsnart enihcam fo noitseuq cifitneics eht weiver ylfeirb ew 2 noitceS ni ,txeN .secnerefnoc rehto ta eson ruo bmuht ot tsuj senil fo hcnub elohw a piks tsrif ew ,timil tnuoc-egap tes on evah ew ecniS .swollof sa dezinagro si repap siht fo redniamer ehT .sresu ygolonhcet level-remusnoc yranidro yb deniatbo eb ylisae yam tahw dnoyeb erawdrah lanoitidda laminim seriuqer dna ,ysae ,paehc ,tsaf si XatleD ,sdohtem suoiverp ot tsartnoc nI .noitalsnart enihcam tuo gniyrrac rof mgidarap levon yletelpmoc a eb ot eveileb ew hcihw ,XatleD ebircsed eW .hguorhtkaerb a hcus tsuj ecudortni ew repap siht ni ,dedne hpargarap tsal taht yaw eht morf tcepsus yam uoy sA .shguorhtkaerb hcus wef yrev neeb evah ereht etad ot hguoht ,depoleved neeb sah noitalsnart enihcam fo mgidarap wen a taht demialc eb nac ti taht hguone tnacifingis era stnemecnavda eseht semitemoS .)sVC rieht fo etats eht dna( tra eht fo etats eht ecnavda ot seigolodohtem dna seuqinhcet wen depoleved evah srehcraeser etinif ylbatnuoc sseltnuoc ,sraey 06 tsap eht revO .s0491 etal eht ni noitpecnoc lanigiro sti ecnis htworg elbaredisnoc decneirepxe sah noitalsnart enihcam fo dleif ehT Well, even high school students know that the conclusion section is just the introduction section written backwards. Acknowledgements The authors — even though there is only one of us — would like to thank Lea Albaugh (“B-A-U-G-H, Pennsylvania Dutch–style”) for her fine figure drawing contributions to the present paper. The research reported here was supported by borrowed time from the Language Tecnologies Institute at Carnegie Mellon University when the author was supposed to be writing his thesis proposal. Conclusions drawn from 23 it represent the author’s own artwork and do not represent the opinions of real artists who actually know how to use charcoal sticks and pencils. References [1] [2] [3] Perl C/C++ Java \$scalar int* numKumquats Object o 24 System Description: Google Ghost Robert J. Simmons and Brian R. Hirshman Department of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 {rjsimmon,hirshman}@cs.cmu.edu Abstract This paper describes the new craze sweeping through computer science departments located along Forbes Avenue in Pittsburgh, PA, USA: playing Google Ghost. This paper describes the static and operational semantics of Google Ghost, and provides a constructive proof that you1 can become a Google Scholar! 1 Introduction & Motivation Google Ghost is a brilliant new adaptation of the deprecated, archaic children’s game Ghost. A wise horde once said: Ghost is a word game in which players take turns adding letters to a growing word fragment, trying not to be the one to complete a valid word. If a player completes a word, they lose that round of the game and starts a new round. Each fragment must be the beginning of an actual word. Usually some minimum is set on the length of a word that counts, such as three or four letters.2 We identify several fundamental problems with the deprechaic version of Ghost: • Boredom: Ghost is boring as crap. • Difficulty: Oh, are you done with your New York Times crossword puzzle, nerd? • Speed: Ghost tends to require lots of thought before a turn is played, as the player tries to both guess the word the other players were trying to spell and try to (potentially) subvert their intent by redirecting to another word without completing the original word. • Size: The creative possibilities of Ghost are limited by the people in the room with you. And good luck getting people to play your boring, hard, slow game, nerd. These problems are all solved by Google Ghost, which is awesome. 1 2 Yes, you. http://en.wikipedia.org/wiki/Ghost (game) 25 2 Google Ghost Google Ghost is a multiplayer game that is played by using, instead of boring English words, the massive database of mapreduced by Google Suggest.3 To play Google Ghost, you need two or more players and one ghostwriter4 who has access to a computer running a modern, JavaScript-enabled web browser. Play starts with the player to the right of the previous loser utters a word (either an English word or common, proper noun) and then either “space” or “no space.” The ghostwriter types that word into Google’s home page and then, as instructed, either enters a space or not. Play proceeds by each player to the right uttering either a letter or the character “space” – two spaces may not be played in a row. We chart the progress of a game by using a four-column chart. The first column indicates the player (we use standard cryptographic characters Alice, Bob, etc.) The second column indicates the player’s utterance, the third column indicates the resulting contents of the search bar, and the fourth column indicates some of the contents of the Google Suggest list: A B A B A B ”horrible space” ”i” ”n” ”space” ”l” ... horrible horrible i horrible in horrible in horrible in l ... horriblesubs, horrible tattoos, horrible histories. . . horrible insults, horrible in spanish, horrible injuries. . . horrible insults, horrible in spanish, horrible injuries. . . horrible in spanish, horrible in french, horrible in laws. . . horrible in laws, horrible in latin, horrible in law stories ... Google Ghost is made more interesting by the presence of spell checking, as shown by the presence of “ikea” as the first hit after Alice’s second turn: A B A B ”i, no space” ”e” ”k” ... i ie iek ... imdb, ikea, itunes, ipad, irs, itunes download, inspirational quotes. . . ieee, ie7 download, ie8, ie8 download, iep, ie7, iexplore.exe, ies. . . ikea, iekeliene stange, ieko media, iekeliene stange fashion spot. . . ... For extra entertainment value, the ghostwriter can point out recently excluded options, for instance that “horrible injuries” and “horrible insults” had been excluded after Bob uttered “space” in the first game above. 2.1 Losing and ggpwning You normally lose the game when there are no more auto-complete options available after your selected letter, number, or space has been typed into the Google bar. This is the standard way of losing, as demonstrated by the following game which ends with a normal loss for Bob. A B A B A B ”arby’s space” ”q” ”u” ”o” ”t” ”a” arby’s arby’s q arby’s qu arby’s quo arby’s quot arby’s quota arby’s menu, arby’s coupons, arby’s nutrition. . . arby’s queens, arby’s quebec, baby mamma arby’s quote arby’s queens, arby’s quebec, baby mamma arby’s quote baby mamma arby’s quote baby mamma arby’s quote None. Bob has lost in regular play. However, play can also end abnormally with the rare epic win of Google Ghost technically known as a ggpwn. Ggpwn is normally used as a verb – ie, “I ggpwned you guys so hard.” A ggpwn occurs when the final letter that eliminated all auto-complete options is one of the options that was provided by Google Suggest. A non-strict ggpwn occurs if the letter 3 4 http://autocompleteme.com/ http://en.wikipedia.org/wiki/Ghostwriter (TV series) 26 closes out an auto-spellchecked or partial suggestion; for instance, in the demo game above if Bob had picked “e” instead “a” in the final turn, he would have achieved a non-strict ggpwn.5 A strict ggpwn is created when the phrase exactly matches one of the suggestions. For instance, Alice would achieve a strict ggpwn by uttering the final “y” in the search query “why is my poop green pregnancy.” Players should determine at the beginning whether the play is strict or non-strict; in strict play a non-strict ggpwn is the same as losing. For example, in the game above Bob never had a chance above in strict play; although if he had uttered “e” instead of “o” Alice could have strictly ggpwned Bob by exactly completing the phrase “arby’s queens” or “arby’s quebec.” 3 Google Ghost Scholar (AKA Google Scholar Ghost) Google Ghost Scholar is clearly “the next big thing”. Actually, it’s really one of the next three big things, as it can mean three different things. How cool is that? • It can mean Google Ghost played with Google Scholar. Open up Google scholar and play Google Ghost as described previously. (Aren’t you kicking yourself now if you missed that SIGBOVIK demo?) The first person to go, of course, will find that they lose because Google hasn’t put autocomplete into the public version of Google scholar. Hint: if you challenge someone to this game, make sure you – and not your oppwnent – go second! • It can also mean a single player game of Google Ghost played in support of the multiplayer variants. Begin playing this version of Google Ghost Scholar by creating web pages and make them link to nonsense words. Make sure you set up the robots.txt in such a way that Google indexes them appropriately. Alternately, Google bomb other pages with nonsense terms in such a way that you can be sure that Google autocomplete will recognize those terms when you play. Congrats, now you can ggpwn your oppwnents! • Google Ghost Scholar is also a noun meaning one who can ggpwn his or her oppwnents at any variant of Google Ghost. It is often abbreviated with the three-letter acronym “GGS” and can be applied as a titular suffix after a name. For instance, the first author, when6 he finishes his doctoral degree, will be Rob Simmons Ph.D. GGS. 4 Conclusion Google Ghost overcomes all the problems with the deprechaic original version of Ghost. It has been shown to be empirically exciting, and it is as easy as typing nonsense into the Google Toolbar, which easy enough that any idiot seems able to do it, as evidenced by the fact that enough people searched for “how did I get this cold sore” for it to end up in Google Suggest. The ability of the first player to suggest a whole word makes the game significantly faster-paced, and the creative possibilities for humor in the game are limited only by the thought droppings of millions and millions and millions of people typing stuff into Google. We acknowledge the Carnegie Mellon Computer Science Department’s Tea Trolls and Google, Inc. for their respective contributions to the existance of Google Ghost, and we furthermore acknowledge Chris Martens as the first person to ever ggpwn. 5 6 But Bob didn’t do that, did he? Bob is a loser. Right. When. 27 28 The Next 700 Intuitionistic Linear Logics Lea Albaugh William Lovas Tom Murphy VII Jason Reed March 20, 2010 Abstract [BP96] and JILL [CCP03], we make haste to lay claim to all of the following logics. We describe, and lay claim to, the next 700 intuitionistic linear logics. Hands off! We saw ’em first! 2 1 Introduction The Logics 2.1 Peter Landin started a dangerous trend with his seminal paper, “The Next 700 Programming Languages” [Lan66]. How, we ask, are we all supposed to pad our CVs (ideally, with research sliced so finely it qualifies as “deli-thin”) if some joker comes along and comes up with one stupid, elegant generalization that makes all of the many delicious slices mere special cases? Where our score in the publication game was once well in the hundreds, now it is one. This is a very small score. We attempt to reverse this trend by not obviating the next 700 intuitionistic linear logics, but by listing them. As everyone knows, the most important properties of a logic are Name: BILLG Description: Billionaire ILL, which is Good. A rich and expressive logic. Well, rich, anyway. Seems to be incompatible with MOZILLA. 2.2 Name: CHILL Description: Calm, Hushed ILL. Won’t wake the neighbors. Very mellow. Won’t freak out if you, like, prove a contradiction, man. 1. That it satisfies cut and identity properties, and 2.3 has a complete focusing proof search strategy. Name: DRILL 2. That it is intuitionistic, so that we can feel su- Description: We’re still waiting for legislation to pass let us start perior to those filthy classical mathematicians. using this logic to extract our nation’s vast untapped 3. That it has linearity, so that we can use funny natural resources. Given the current political clisymbols like and ⊗ and . mate, we’re not exactly holding our breath. and, most important of all, 2.4 4. That its name forms a clever acroynm. Name: FILL Bearing this in mind, and observing that we already Description: got beaten to the punch by ILL [Gir87] and DILL Fudgmental ILL. Mmm.. 29 2.5 2.12 Name: LANDFILL Description: The trashiest logic yet. Name: KRILL Description: I don’t know, man, whales eat it? 2.6 2.13 Name: GILL Description: Goldfish ILL. Easy to take care of. Name: MANDRILL The largest monkey-logic in the world. Has a colorful rump. 2.7 2.14 Name: GRILL Description: The logic of food specialized to flame-broiling. Name: MILL Description: Maize ILL. Grindin’ it up.. 2.8 2.15 Name: HILL Description: Himalayan ILL. Alive with the sound of music? Name: MOZILLA Description: The intuitionistic logic for describing how webbrowsing consumes your life. Compatible with many useful extensions, such as Ad-Block. 2.9 Name: ILLIAD Description: Truly, a logic of epic proportions. 2.16 Name: GODZILLA Description: An ill-fated attempt to design MOZILLA. Destroyed half of Tokyo, and Martin-Löf still has nightmares to this day. 2.10 Name: KILL Description: Kalashnikov ILL. Can prove 600 sequents per minute without overheating. 2.17 2.11 Name: OVERKILL Description: Can prove 6,000 sequents per minute without overheating. Nobody seems to need to prove sequents this fast, however. Still, what kind of logicians would we be if we paid attention to what people said was practically useful? 30 Name: PILL Description: Pharmaceutical ILL. Probably not patented yet. 2.18 Name: QuILL Description: Quail-feather ILL. Old-school theorem writin’. 2.19 2.25 Name: FRILL Description: I feel pretty! And witty! And... NP-complete assuming the Unique Games Conjecture? Name: SWILL Description: The logic of drink, but only crappy ones. 2.20 2.26 Name: NOFRILL Description: Just what it sounds like. Name: THRILL Description: Just the logic you want when it’s close to midnight and something evil’s lurking in the dark — simply prove it’s not there! 2.21 Name: SPILL Description: Oh, not again. My pants are just covered in Γs and s. Do you realize how hard it is to get those stains out? Also a good logic for reasoning about register 2.27 allocation. Name: TRILL Description: 2.22 The logic of musical ornaments. Name: SQUILL Description: Useful for reasoning about Pittsburgh neighborhoods, which can otherwise be quite difficult to nav- 2.28 igate. Name: WILL Description: A logic to leave to your descendants. Of sound mind and body. Also of complete mind and body. 2.23 Name: STILL Description: Scotch-Tasting ILL, the logic of whiskey. 2.29 2.24 Name: SHILL Description: A fake logic planted to con other logics into intuitionism and linearity. 31 Name: ILLWILL Description: The doubly intuitionistic doubly-linear logic of malice. 2.30 of linear logic. Technical Report CMU-CSLax Linear Local Longitudi03-131, Carnegie Mellon University, 2003. nal Latitudinal Lambda-Lifted Lambda-Long Looping Left- [Gir87] J.Y. Girard. Linear logic. Theoretical ComLudical Linked Leibniz Law puter Science, 50(1):1–102, 1987. L-system Logspace Logtime [Lan66] P. J. Landin. The next 700 programming LL-1 Lookup Lined Lex Limlanguages. Commun. ACM, 9(3):157–166, iting L’Hopitalian Laplacian March 1966. Lagrangian Legendre LadderLike Lattice Lemmaless Lambek Typed Super Kinded Intuitionistic Linear Logic Name: L33T SKILL Description: A very powerful logic by Tom 7 Murphy7 (the third author) and the second author (William Lovas1 ). 2.31 Name: SKILL Description: This one’s okay, but not nearly as good as the one just before it. 3 Conclusion Okay, okay, so we don’t quite have 700 yet. We leave the remaining logics for Future Work. References [BP96] A. Barber and G. Plotkin. Dual intuitionistic linear logic. Technical Report ECS-LFCS-96-347, University of Edinburgh, Laboratory for Foundation of Computer Science, 1996. [CCP03] Bor-Yuh Evan Chang, Kaustuv Chaudhuri, and Frank Pfenning. A judgmental analysis 7 Dr. VII, Ph.D one, the only2 2 you know, the one whose name is so awesome it frequently bursts into flame3 3 http://www.cs.cmu.edu/∼wlovas/old-index.html 1 the 32 Harnessing Human Computation: β-reduction hero Akiva Leffert Abstract Most ACH SIGBOVIK papers have an abstract in order to draw the reader the in and to set up future jokes. In this recessionary time, jokes are a scarce and valuable resource. We prefer not to waste them on a moment of brief glory, when we could drag them out for whole paragaphs and sections. We apologize for the inconvenience and hope you will bear with us during this time of economic difficulty. 1 Introduction Human computation[2] is an upcoming and trendy branch of computer science. Human computation allows computers to solve problems that were previously difficult for computers to solve by the simple expedient of making humans do it for them. This is widely considered to a major breakthrough. Typically humans are compensated for their computational cycles either through piddling amounts of entertainment (The ESP Game), piddling amounts of money (Mechanical Turk)[7], or via brainwashing[6]. The first technique is problematic because it requires a way to frame the task being solved as a game. The second is a problem because it requires funding. The third has proved difficult to implement with existing technologies. Furthermore, human computation throws the best parties and we want invites! In the remainder of this paper, we resolve these problems through the introduction of the novel notion of the Hero Quotient and describe a technique to reduce any computational task to a single Game With a Purpose. 2 Take 1 Cup of Heroism Our first critical insight is that anything sounds more fun when it has the word “hero” at the end[3][1]. We conducted an extensive survey (n=2) to 33 Mean Fun 10 5 0 Laundry Laundry Hero Sweeping Sweeping Hero Cocaine Cocaine Hero Figure 1: Sample Hero Quotient Effects determine the so called ‘Hero Quotient’ (HQ), the amount a thing becomes more fun when followed by the word “hero.” Figure 1 shows the effect size for several of the items in our survey. The x-axis is the item being surveyed and the y-axis is the mean fun score on a scale of 1 to 10. Overall, we found that the mean HQ multiplicative factor across all of our 40 data points was 2.8 (p < .05). An exhaustive list of our survey items and mean fun ratings appears in the Appendix. 3 Add 3 Parts λ-Calculus The early history of computer science is rife with attempts to find a universal notion of computation. Objectively the best is Church’s λ-calculus[5]. Hopefully you already know what the lambda calculus looks like, but we include it here because it’s awesome. The entire syntax and reduction rules of the lambda calculus are as follows: 34 e ::= x | ee | λx.e (λx.e)e →β [e /x]e The main reduction rule is known is β reduction for no particularly good reason. Note that we use the standard notion of capture-avoiding substitution. This will be important later. The normalization problem for the lambda calculus is computationally universal. And indeed, by the Church-Turing thesis, it is hypothesized that any notion of computation can be reduced to the question of whether some λ-calculus term has a normal form. 4 Stir until frothy Our second brilliant insight is that we can combine the excitement enhancing effect (EEE) of the HQ with the computation universality of the λ-calculus. This allows us to turn any computational task t into a TOTALLY RAD TIMETM simply by compiling it into raw lambda-Calculus. We took this approach and as a proof of concept developed a Game With a Purpose called β-reduction hero. 5 Sautè five minutes β-reduction hero is an Adobe Flash[?] game, developed in haXe[4], a strongly typed language with first class functions, paremetric polymorphism, type inference, and structural object types that compiles down to several targets including the Flash platform. The basic game play of β-reduction hero is illustrated in Figure 2, a shot of the game’s help screen. While our basic goal was merely to harness the power of human computation toward arbitrary tasks, we must admit to a more humanitarian goal: Raising awareness of the problem of captured variables. One in every one hundred american variables is behind bars. In β-reduction hero your goal is to release captured variables, by forming β-redices. The basic game mechanic resembles the popular game Bejeweled. Adjacent tiles can be swapped by clicking one then the other. Instead of the usual named variables, we use the colors red, green, and blue. We also replace 35 Figure 2: Rules of Beta-Reduction Hero the syntactic sequence λx. with a single token, a lambda in a colored circle, the color corresponding to the variable bound by the lambda. This innovation allows us to conserve screen real estate, as well as harkening back to Church’s original notation for the lambda calculus where the bound variable and its binder were coupled in typographically. After each swap, the rows affected are searched for β-redices and the longest one in each row is reduced. This is where captured variables come into play. Any variable that is captured in a reduction is turned gray to signify its capture. The goal of the game is to eliminate all of the captured variables. Thus the player must construct redices by hand. In theory our technique could be adapted to different game play styles. We recently began cooperative work with researchers at Nintendo of America on adapting our technique into Mario Teaches λ-Calculus. An early screen appears in Figure 3. 6 Serve Hot β-reduction is pretty cool. β-reduction hero is super cool. Check it out: http : //akivaleffert.com/beta − reduction − hero/. 36 Figure 3: Mario Teaches λ-Calculus Concept Art 37 A Garnish Item Algebra Bird Watching Cocaine Debugging Dish washing Guitar Glockenspiel Golf Laundry Mitosis Meiosis Opera Problem Sets Sweeping Zen Normal 9 1 9 3 9 1 7 2 2 4 6 4 1 3 5 With Hero 10 2 10 7 10 11 10 2 4 9 8 9 4 8 Figure 4: Complete Survey Means References [1] Activision. Knitting hero, 2009. [2] Luis Von Ahn. Some paper luis wrote. Proceedings of the ACH SIGCHI, 2004. [3] Harmonix. Guitar hero, 2005. [4] haXe. haxe.org, 2009. [5] Akiva Leffert. The letter before lambda is hat. Proceedings of the ACH Conference/Robot Dance Party 0x40th Celebration of Harry Quicktopher Bovik, 2007. [6] Akiva Leffert. Provably sound orbital mind control lasers. Proceedings of the ACH Conference/Robot Dance Party/Anniversary of the 0x40th Celebration of Harry Querulous Bovik, 2008. [7] Amazon Mechanical Turk. mturk.com, 2007. 38 ach sigbovik Plenary Program Committee 2009 Confidential Paper Reviews Paper 7: Beta-Reduction Hero Reviewer 1 Rating: 3 (strong accept) Confidence: 3/4 This program easily meets SIGBOVIK’s exacting standards. Because its interactive format, there is some question about how it should be published--perhaps the only reasonable solution is to publish the URL of the “game” in SIGBOVIK’s proceedings. Reviewer 2 Rating: 3 (strong accept) Confidence: 4/4 I may not know anything about the lambda calculus, but I do know about circles. I do know that lambda isn’t drawn like a circle. “O” is drawn like a circle. However, this paper has a lot of colored circles in it. I’m not sure what they are doing, or how I should manipulate them. But I’m also not sure of the mechanics of breathing and that seems to work out most of the time. Except that one time when I was in some water or something. Fucking hilarious. But back to the paper. I am pretty sure that the fonts are broken at present. But that’s okay, because the fonts would just get in the way of the colored circles. Did I mention that the circles come in three exciting colors? There’s, like, this reddish one and maybe a blue one and a green one. And, um, maybe yellow? Well, there should probably be yellow. It’s the sort of thing there should generally probably be in these sorts of papers. The authors should consider including a color chart to make it easier for me to write the prevous paragraph. Unfortunately, I am unable to give this paper a higher rating because I couldn’t determine how many pages it had, and I rate papers entirely based on the number of pages. I foresee this also being troublesome in the printing process, as it will be hard for the proceedings manufacturer to quote a price on an indefinite number of pages. Also, the authors should include page numbers. Finally, I advise the authors to consider other venues for this paper if publication in SIGBOVIK proves infeasible. With a bit of cabinetry, I could see the work fitting in well in the proceedings of Metreon Portal One, Golf-n-games, or Dave and Buster’s. And it could well find a larger audience in these locations. 39 40 The Dissatisfactory Doily Generating Your Own Terrible Towel Rip-Off Nels E. Beckman Carnegie Mellon University nbeckman@cs.cmu.edu Abstract This paper presents a simple tool that enables sports teams across the globe to create their own rip-off of the Terrible Towel. We describe the tool and some of the clever names it generates. Categories and Subject Descriptors K.4.4 [Electronic Commerce]: Intellectual property Figure 1. Myron Cope’s Official Terrible Towel General Terms Legal Aspects, Human Factors Keywords terror, linens 2. 1. Dissatisfactory Doily Enter the Dissatisfactory Doily: a computer program that can automatically generate, a clever, alliterative name for your Terrible Towel rip-off. Built on proprietary Java technology, this program contains a patented algorithm that, with little or no human input can generate a mountain of humorous names. Armed with such a humorous name, you can emblazon it on a cloth of cheap quality, sell it to your beerguzzling fans, and make an even more obscene amount of money at the expense of local schools. What’s more, since the name is humorous, you can claim parody use, and not fear trademark claims. The operation of the Dissatisfactory Doily is simple. Run the tool at the command line, and pass along a list of adjectives (negative ones preferred), a list of nouns (ideally cloth-related), and the number of names that should be generated. For example: Introduction Since 1975, when local sportscaster Myron Cope created the Terrible Towel, sports teams all around the world have been green with envy. These Team owners could not believe that such as simple device could engender such enthusiasm. Most importantly, they could not believe that such a simple, low-quality cloth, costing no more than twenty or thirty cents, could be sold for ten dollars. Ever since, the owners have been in a bind. While it would be quite trivial to create a rip-off cloth in the theme of their own team, and sell it and an outrageous markup, without a suitable clever name it is extremely unlikely that it would sell. For thirty-five years, this question has stumped mankind. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SIGBOVIK ’010 Pittsburgh, Penna, USA-A-OK c 2010 ACM This work is mine and mine only. Please do not Copyright take it, unless of course you are ripping it off for use in your own local sports team.. . . $10.00 java DissDoily adj.txt noun.txt 1000 In the following section, we present a list of towel names generated by the Dissatisfactory Doily and ready for immediate use. Our favorites are highlighted in bold. 41 3. Examples thetics! The flagitious floor covering! The disgracing doily! The atrocious afghan! The disturbing doily! The inferior ingredient! The gross gear! The diddly doily! The horrid hanging! The obnoxious outfit! The sad stuff! The ghastly goods! The brazen bolt! The abhorrent afghan! The garbage goods! The gruesome goods! The loathsome layer! The amiss afghan! The inhuman ingredient! The inadequate ingredient! The hateful habiliments! The petrifying puff! The monstrous moist towelette! The sad screen! The abominable afghan! The bottom out bolt! The horrible hanging! The wanton wipe! The defective doily! The grody goods! The brazen bolt! The inferior ingredient! The contumelious carpeting! The dreadful doily! The crummy constituent! The horrendous hanging! The brazen being! The garbage goods! The vile veil! The stinking screen! The cheesy coat! The imperfect individual! The erroneous envelope! The heinous hanging! The crappy covering! The inconvenient ingredient! The atrocious afghan! The wicked wipe! The sad serviette! The petrifying puff! The corrupt coverlet! The debauching doily! The awesome afghan! The egregious entity! The imperfect individual! The monstrous mat! The gross gear! The dread decoration! The loathsome layer! The monstrous mat! The shameless substance! The fallacious film! The beastly blind! The gruesome gear! The disastrous drapery! The appalling afghan! The iniquitous ingredient! The shameless shroud! The revolting rug! The deficient drapery! The harrowing habiliments! The scandalous shroud! The appalling afghan! The beastly being! The abhorrent afghan! The wanton wall-to-wall carpeting! The egregious entity! The awesome afghan! The garbage goods! The malevolent mat! The dire doily! The odious object! The abhorrent afghan! The grody goods! The raunchy roller! The horrendous habiliments! The sinful supply! The rotten rug! The monstrous material! The stinking shroud! The imperfect individual! The cheap comforter! The grody gear! The grody goods! The dangerous drapery! The inferior ingredient! The severe shutter! The harrowing hanging! The awful afghan! The blah body! The abhorrent afghan! The slipshod screen! The blah bolt! The rough rug! The violent veil! The fearful floor covering! The dread decoration! The villainous valance! The horrifying hanging! The serious stuff! The inconvenient ingredient! The malevolent moist towelette! The stinking screen! The crappy cloth! The garbage gear! The odious object! The repulsive runner! Feel the fear wash into the hearts of your opponents as your fans wave the... The villainous veil! The raunchy rag! The desperate drape! The atrocious afghan! The depraving drapery! The disgracing doily! The grungy gear! The fallacious film! The malevolent materiel! The wanton wipe! The blah bolt! The grungy goods! The opprobrious outfit! The disgraceful dry goods! The icky ingredient! The gross goods! The horrid hanging! The cruddy cloak! The poor paraphernalia! The poor portiere! The dreaded doily! The heinous hanging! The odious oleo! The dreaded decoration! The scandalous shade! The poor paraphernalia! The slipshod shutter! The corrupt comforter! The vile valance! The dreadful decoration! The malevolent moist towelette! The severe screen! The repulsive runner! The sinful screen! The opprobrious object! The obnoxious oleo! The dissatisfactory drape! The dreadful drapery! The poor portiere! The criminal covering! The contumelious calico! The scandalous stock! The bummer bolt! The degenerate doily! The repulsive roller! The disgraceful drapery! The imperfect ingredient! The opprobrious object! The harrowing hanging! The desperate drape! The fallacious fleece! The heinous habiliments! The iniquitous ingredient! The substandard shutter! The sad screen! The disgraceful dry goods! The horrifying hanging! The synthetic supply! The iniquitous individual! The gross goods! The scandalous serviette! The stinking serviette! The monstrous moist towelette! The diddly doily! The egregious equipment! The monstrous moist towelette! The awful afghan! The beastly blind! The dissatisfactory dry goods! The contumelious carpeting! The debauching decoration! The shocking shroud! The beastly being! The icky ingredient! The faulty fleece! The junky jalousie! The careless cloth! The villainous valance! The synthetic shag! The wanton wrapper! The diddly drape! The egregious envelope! The horrendous habiliments! The synthetic synthetics! The opprobrious object! The malevolent matting! The monstrous moist towelette! The fallacious fleece! The dreadful dry goods! The pits puff! The dissatisfactory decoration! The wanton weave! The wanton wipe! The debasing drape! The flagitious film! The frightful film! The repulsive rug! The fallacious fleece! The stinking shag! The disturbing doily! The loathsome layer! The ghastly goods! The poor paraphernalia! The vile veil! The pits portiere! The revolting rug! The stinking syn42 You Keep Dying Dr. Tom Murphy VII Ph.D. 1 April 2010 Abstract combustible and you keep dying You keep radiation exposure and you keep dying http://youkeepdying.spacebar.org/ KEYWORDSUse the arrow controls. The space button does jump. You Keep Dying You keep became infected by the virus and you keep dying You keep -1 Copyright 2010 the Regents of the Wikiplia Foundation. Appears in SIGBOVIK 2010 with the permission of the Association for Computational Heresy; IEEEEEE! press, VerlagVerlag volume no. 0x40-2A.$ 0.00 You keep proximity to the explosion and you keep dying You keep plasma bolt irritates the skin and you keep dying You keep fall off the screen and you keep dying You keep spider bite and you keep dying You keep investigate the disturbance and you keep dying You keep internal bleeding and you keep dying You keep touch these words and you keep dying You keep wonder what is that thing and you keep dying You keep can’t breathe under water and you keep dying You keep high velocity and you keep dying You keep pressed the wrong buttons and you keep dying Figure 1: You keep conduct the lightning and you keep dying You keep go into this impossible room and you keep dying You keep incorrect solution to the 43 You keep disappointed in yourself and you keep dying You keep physics bug and you keep dying You keep searching for cheat codes and you keep dying You keep commuting to work and you keep dying You keep invisible ultraviolet laser and you keep dying You keep paying the monthly fee and you keep dying You keep smoke tobacco and you keep dying Figure 2: You keep hug the spikes and you keep dying puzzle and you keep dying You keep revise and resubmit and you keep dying You keep thought you could jump farther and you keep dying You keep didn’t realize the infection could be spread and you keep dying You keep thought that it was just background graphics and you keep dying You keep bring the copysicle everywhere and you keep dying You keep acid dissolved you and you keep dying You keep stand still too long and you keep dying You keep fight or flight response and you keep dying You keep illegal security system and you keep dying You keep treat the monster like a friend/neighbor and you keep dying You keep starting over and you keep dying You keep to find all the spawn spots and you keep dying You keep a rock fell on you and you keep dying You keep wasn’t carrying the right item and you don’t know what the right item is and you keep dying You keep overfull hbox and you keep dying You keep name brands at discount prices and you keep dying You keep go back to get the umbrella again and you keep dying You keep getting out of the frying pan and you keep dying You keep finding the well-hidden trap and you keep dying You keep techno beats and you keep dying You keep accomplishment unlocked and you keep dying You keep heamophilia and you keep dying You keep try to save your game and you keep dying You keep boss fight and you keep dying You keep was smaller than the foot and you keep dying You keep not getting the hang of it and you keep dying You keep unusual accident and you keep dying You keep perforated and you keep dying You keep a tight ship and you keep dying You keep crushed when the ceiling did that thing unexpectedly and you keep dying You keep swarm of bees and you keep dying You keep try to get down there and you keep dying You keep forgot that one detonates and you keep dying You keep stay out of the dark and you keep dying You keep wondering if you should see a doctor and you keep dying You keep thank the anonymous ees and you keep dying You playing and you keep dying You youkeepdying.spacebar.org and you dying 44 referkeep keep keep !JB6CDBEJI6I>DC&:I=D9;DG :C:G6I>C< !><="BE68I *:H:6G8=)6E:GH "52"254/*5 2*+!"7"%9+* &*() ..5%/, "2,/7 ./.8-/53/7"2% +"4&2*.""2",/6" *&,%"%8 "444".4/. *&2""30". 2)&''&4 "228/6*+ *234,*.&4 #342"$4 *:H:6G8=E6E:GH6G:6C>BEDGI6CIIDDAID9>HH:B>C6I:H8>:CI>;>8@CDLA:9<: "C9::9>I=6H7::C6G<J:9 7N+B>I=:I6A24I=6IG:H:6G8=E6E:GH6G:;JC96B:CI6AIDI=:BD9:GCH8>:CI>;>8EGD8:HH!DL:K:G G:H:6G8=E6E:GHI:C9ID7:6HIDC>H=>C<AN9>;;>8JAIIDLG>I:,=:6JI=DGHC::9ID;>GHIE>8@6IDE>8I=:C LG>I:H:FJ:C8:HD;HIGJ8IJG:9LDG9H @CDLC6H &"'"& I=6IG:A6I:ID>I,=:H:H:CI:C8:HC::9ID 7:69?JHI:9ID>C8AJ9:ADC<:GBDG:?6G<DCNLDG9H@CDLC6H $&'!&&%'#"'#!&DGHI=6I EGDK:I=6II=:6JI=DGH6G:HB6GI:GI=6CI=:G:69:GH>C6AANI=:H:CI:C8:H6G:INE:H:I>C6EA:6H>C< ;DCI6C9HJEEDGI:9L>I=8DBEA>86I:9<G6E=H "C<:C:G6AI=:CJB7:GD;6JI=DGHI:C9HID6II:HII=: >BEDGI6C8:D;6E6E:G8DCH>9:G67A:CJB7:GD;8DAA67DG6IDGHHJEEDGIHI=:=NEDI=:H>HI=6IADC< H8>:CI>;>89>H8JHH>DCHL:G:86GG>:96C9EJGHJ:9"CI=>HE6E:GL:EGDEDH:6C:LB:I=D9ID<:C:G6I: =><=AN8G:9>7A:6C9688JG6I:LDG@HD;6869:B>8 >CI:G:HI ,=:6EEA>86I>DCD;=JB6C8DBEJI6I>DCID6 C:L;>:A9=JB6CLG>I>C<L>AA7::K>9:CI;GDBDJGG:HJAIH .42/%5$4*/. "CID96NH LDGA9 H8>:CI>HI6C96869:B>8H;68::K:CBDG:9>;;>8JAI>:HI=6CI=:>GEG:9:8:HHDGH>C699>I>DC IDEGD9J8>C<FJ6A>ING:HJAIHI=:NBJHI6AHD<:C:G6I:I=:;JC9HIDHJEEDGII=:BL=>A:I=:NADD@;DG 6CHL:GH "CDG9:GIDB6M>B>O:I=:EDI:CI>6A7:C:;>I6C9E6ND;;D;9>HH:B>C6I>C<;>C9>C<HL=>A: B>C>B>O>C<:;;DGI6C9I>B:HE:CI68IJ6AANLDG@>C<B6CNG:H:6G8=:GH:C<6<:>C6EGD8:HH@CDLC6H ##$%')$"&#(%"(&'&#"&#(' " % )"'&&%'#"&''""#)'#%#' =:C8:;DGI=677G:K>6I:96H(%%(*,"(' "I=6H7::CH=DLCI=6IDC6E6E:GL>I='6JI=DGHI=:8G:9>I6L6G9:9ID6C>C9>K>9J6A6JI=DG>H( '57JII=:8DCIG>7JI>DCD;6C6JI=DG>HDCAN('5=:C8:(%%(*,"('>H6L6NID B6M>B>O:I=::ME:8I:9EG:HI><:E:GB6C=DJGD;DC:HLDG@7N6;68IDGD;('5 "I>H6BJIJ6A>HI>8 G:A6I>DCH=>E>CI=:6869:B>8:8DHNHI:B>CL=>8=:68=E6GI>8>E6CI86C8A6>BE6GI>6A8G:9>I;DGI=: DI=:GHJC>FJ:8DCIG>7JI>DCHL=:CLG>I>C<I=:>GDLC<G6CIEGDEDH6AHI=:H:H6C9?D76EEA>86I>DCH ,=>H E6E:G:MI:C9HI=:(%%(*,"('EGD8:HH7:NDC9H>BEANI=:68FJ>H>I>DC6C96C6ANH>HD;H8>:CI>;>8 G:HJAIHID>C8AJ9:I=:8DBEDH>I>DC6C9:MEDH>I>DCD;>9:6H6C9:K:CI=:E6E:GH:CI>G:9>G:8I>DC 68@ 45 D; I=: :CK:ADE:86A8JA6I>DCH>C9>86I:I=6II=:8DCIG>7JI>DCD;:68=6JI=DGL>AAL>AA<D;GDB('5 ID('5DG:K:C('5I=>HB:6CHI=6I:K:C6C('5 ;DA99:8G:6H:>CI=:FJ6A>IND;I=: LDG@L>AAHI>AA6BEA>;N6G:H:6G8=:GHEGD9J8I>K>IN6HB:6HJG:97NI=:.)&JGG>8JAJB.>I6:)699>C< &:IG>8 )",,&.(&3 /:6AHDEG:H:CIHDB:D;I=:9>H69K6CI6<:HD;I=>HB:I=D9IA:6HIDC:E6GID;I=:I:MI=6H7::C =>?68@:97NI=:8DAA67DG6IDG "#"+!#(&#*% L=DHJGG:EI>I>DJHAN699:9I=:%&' "' HI6I:B:CI+J8=D;; IDE>8I=DJ<=:CI:GI6>C>C< HI6I:B:CIH6G:EG:H:CI>CA6G<:7D9>:HD;LDG@ ;GJHIG6I>C<7DI=DAA67DG6IDGH6C9G:K>:L:GH &J8=D;I=:LDG@D;E::GG:K>:L:GH6IB6?DG8DC;:G:C8:H6C9?DJGC6AH>H68IJ6AANHIG>EE>C<E6E:GHD; I=:H:=>?68@:9A>C:H><JG:H=DLH=DL;G:FJ:CIANE6E:GH6G:9>HGJEI:97NJCGJAN>CI:G?:8I>DCH>C H:K:G6A@:NEJ7A>86I>DCH ,=:;>K:EJ7A>86I>DCHL:G:H:A:8I:99J:IDI=:>G=><=>BE68I;68IDG6C9IDH=DLI=6I=>?68@>C<>H6 E=:CDB:C68DBBDC68GDHHB6CN9>;;:G:CI8DBEJI:GH8>:C8:6G:6H ><JG:H=DLHI=:E:G8:CI6<:D;E6E:GHI=6I=69G6C9DBLDG9H>CH:GI:9:CI>G:H:CI:C8:H699:9 DG6AI:G:96C9;><JG:H699:9DGHL6EE:9,=:;G:FJ:C8ND;I=:=>?68@>C<HL:G:G:A6I>K:AN8DCHI6CI 6BDC<I=:EJ7A>86I>DCH 9:HE>I:8DB>C<;GDB9>K:GH:6G:6H L>I=I=::M8:EI>DCD;+" *)!E6E:GH L=:G:;><JG:HL6EE>C<>HG6BE6CI (()+%6C9(()=6K:7::C8DB7>C:9ID 46 /=>A:I=:E:G8:CI6<:D;6;;:8I:9E6E:GHL6HH>B>A6G;DG9>;;:G:CIEJ7A>86I>DCHI=:G:L:G:9>HI>C8I 9>;;:G:C8:H>CI=:INE:D;=>?68@>C<HDG:M6BEA:699>C<I=:LDG9?6BBNID6H:CI:C8:L6H6 E6GI>8JA6GAN8DBBDC>CI:G?:8I>DC>C#"*E6E:GHD;=>?68@:9E6E:GHL=:G:6HG6K:CDJHL6H6 BDG:;G:FJ:CI699>I>DCID-+'"0E6E:GHH;DG;><JG:H#"*E6E:GHI:C9:9ID=6K:HJ7IA: 8=6C<:HA>@:HL>I8=>C<I=:CJB7:GD;A6N:GH>C6BJAI>A6N:GC:JG6AL=:G:6H +" *)! ;><JG:HL:G: INE>86AANHL6EE:9;DGE>8IJG:HD;ADA86IHD;HL6EE:9;><JG:H /:BJHICDI:I=6II=:H:6G:DCANG:EDGI:9=>?68@>C<HL=>8=>HA>@:AN6<GDHHJC9:G:HI>B6I:D;I=: 68IJ6ACJB7:GD;=>?68@H CDI=:GBDG:HDE=>HI>86I:9;DGBD;=>?68@>C<6HEGDEDH:9>CK6C$ADDI )6H=B>C6H24INEDAD<ND;6CI> 8DAA67DG6I>DCHIG6I:<>:H>H@CDLC6H #"'"'&"'#% " * ?68@>C< "CI=>H86H:6C6JI=DGL>AA6II:BEIIDH=>;II=:IDE>8D;I=:E6E:GID86I:GID =>HDG=:GE:GHDC6A7>6H:HDG:M6BEA:I=:NB6N7:<>C69>6IG>7:6<6>CHI -C;DGIJC6I:ANI=>HA:69HID EDDGHIGJ8IJG:9E6E:GHL>I=A>IIA:8D=:G:C8:I=6IHL>I8=7:IL::C9>HE6G6I:IDE>8H 1:I6C:K:CBDG: >BEDGI6CIINE:D;=>?68@>C<>HI=6ID;C6B:HH:M:BEA>;>:97NDC:D;I=:6JI=DGHG6C9DBAN8=6C<>C< NDJGC6B: 6A7:>IID6K:GNHE>8NDC: L>I=DJI6CNEG>DGCDI>8:L>AABDHI8:GI6>CAN86JH:G6>H:9 :N:7GDLHH8G6I8=>C<D;I=:=:69BJGBJG>C<6C9GJCC>C<9DLCI=:8DGG>9DGID8=:8@L=D>HI=:C:L =DI8=>8@"CI=>HH:CH:I=:E:GHDC=6H=>?68@:9I=:BH:AK:H6C9>I>HK:GNJC8A:6G>;I=>H>H>CK>DA6I>DC D;I=:A6L6C9>;6CNA6L;JA68I>DCBJHI7:I6@:CJGI=:GBDG:=>?68@>C<D;8DADGH>H6AHD6E6GI>8JA6GAN B:6CI=>C<ID9DI=JHI=:6JI=DGD;I=>HH:8I>DCG:;JH:HID69B>I;6>AJG:6C9L>AAJH:I=:8DADGN:AADL >C6K:GNE6HH>DC6I:B6CC:GG:<6G9A:HH=DLB6CN8DBEA6>CIH6G:G:8:>K:9;GDBI=:EJ7A>H=:GH ;I:G=>?68@>C<6CDI=:G8=6AA:C<:;68>C<BD9:GC8DAA67DG6I>K:E6E:GLG>I>C<6JI=DGH>H)6HH>C< *:HEDCH67>A>IN)*,=>H86C7:JHJ6AAND7H:GK:9>C:9>IDG>6A8DBB:CIHD;I=:INE: 2HI=:;>C6AH:CI:C8:*:EA68:DG9:A:I:6H9:H>G:99DL=6I:K:GNDJL6CINDJL>AA6CNL6N4 H:K:G:;DGBD;)*D88JGHL=:CCDC:D;I=:6JI=DGHL>H=:HID:9>I;>C6AK:GH>DCHD;I=:I:MI+>C8:DC: 6JI=DG8DCH>9:GH6CDI=:G6JI=DG>HG:HEDCH>7A:;DGI=: &$4*/. H=:L>AACDI8DCIG>7JI:IDI=6IH:8I>DC JCA:HHI=G:6I:C:9L>I=G:BDK6A;DGBI=:8>I6I>DCH:8I>DC"CI=>H86H:L=6ID;I:C=6EE:CH>HI=6I G:8N8A:9I:MI;GDBEG:K>DJHE6E:GH>HJH:9DG:M6BEA:>CI=:JCG:A6I:9LDG@H:8I>DC7:ADL9J:ID A68@D;G:A:K6CI>C;DGB6I>DCLDG@DCDBEJI:GC>B6I>DCK6AJ6I>DCL6HJH:9 #8$/"54)/233)/2435#3&$4*/. "C6=><=AN>CCDK6I>K:B:I=D9;DG6C>B6I>DC:K6AJ6I>DCL6HEGDEDH:97N,GJID>J:I6A24 ,=: HIJ9N><CDG:9I=:EDI:CI>6A D;8DAA67DG6I>DC>CJC7>6H:9:K6AJ6I>DC /:EGDEDH:,/(,6 HNHI:B DEI>B>O:9 ;DGJC7>6H:9:HI>B6I>DCD;6C>B6I>DCFJ6A>IN><JG:H=DLHHJ8=6EGDEDH:9HNHI:B >C>IHEGDIDINE:;DGB,=:8DBE:I>I>K:6HE:8I>CI=:C:LHNHI:B>C8G:6H:H9:8>H>DCI>B:EGDEDGI>DC6AAN L>I=6J9>:C8:=NHI:G>86AG:68I>DC 47 ><JG: ,:BEDG6AAN /DGG>HDB:6C9 (99 DBEJI:G C>B6I>DC:K6AJ6,>DC ,/(, /.4*.5"4*/./' 3&$4*/. +D8>6AAD6;>C<>H6;>C6A8=6AA:C<:I=6IB6CN8DAA67DG6I>K::C9:6KDGH;68: J:IDB>H8DBBJC>86I>DC EDDG8DDG9>C6I>DCDGH>BEA:6E6I=NB6CNE6E:GH6G:C:<A:8I:96;I:G6C>C>I>6AHEJGID;:CI=JH>6HB 6C9C:K:G8DBEA:I:AN;>C>H=:9 (C:D7K>DJH69K6CI6<:D;I=:(%%(*,"('B:I=D9>H@CDLC6H*:HEDCH>7>A>IN)6HH>C<*)'DDC: 6JI=DG>H;JAANG:HEDCH>7A:;DG<:C:G6I>C<6H><C>;>86CI6BDJCID;I:MI DAA67DG6I>DC>H7:HIK>:L:96H6 HIG6I:<>:HC 6<:CIH<6B:,=:ILDHIG6I:<>:H9:CDI: 6C9 ;DG DAA67DG6I:6C9 : 6 H:A;>H= 76HI6G9G:HE=6K:G:K:CJ:HD;3:EH>ADC6C9>C9:E:C9:CIAND;L=6I 6AADI=:GEA6N:GH9D!:C8:>CINE>86A'6H= FJ>A>7G>66AAEA6N:GH8DAA67DG6I:!DL:K:G>C8DGEDG6I>C< C6I>K:A6O>C:HH>CIDI=:BD9:A6C96HHJB>C<6AAEA6N:GHHI6GIL>I=HIG6I:<N >I;DAADLHI=6II=:6<:CIH 6G:>C9>;;:G:CI7:IL::C8DAA67DG6I>C<6C9CDC 8DAA67DG6I>C<"CG:6A A>;:H>IJ6I>DCHI=>H6C6ANH>HL>AA G:HJAI>C6<:CIH8DCIG>7JI>C<I=:K:GN B>C>BJBID6E6E:GI=:C><CDG>C<>I6AID<:I=:GN: ,D:K6AJ6I:I=::;;>8>:C8ND;I=:(%%(*,"('B:I=D9L:L>AA:BE=6H>O:I=:9G6B6I>8>CK:GH:AN EGDEDGI>DC6AG:A6I>DCH=>E7:IL::CI=:A:H8=P$>C86>9G:6967>A>INI:HIID>C8G:6H:96JI=DG>CEJI 48 534)"6&&15"4*/.335#3&$4*/.3*+*0&%*"*0/'' ,=: ,&3$),&3$):*.$"*% 2&"%"#*,*484&343 6G:9:H><C:9ID>C9>86I:8DBEG:=:CH>DC9>;;>8JAINL=:C G:69>C<6E6HH6<:D;8DCI:BEDG6GN6869:B>8C<A>H=,=:G:6G:ILDI:HIHI=: ,&3$)&"%*.( "3*.&336C9I=: ,&3$):*.$"*%2"%&&6&,AI=DJ<=I=:NJH:I=:H6B:8DG:B:6HJG:HLDG9 A:C<I=6C9H:CI:C8:A:C<I=I=:N=6K:9>;;:G:CIL:><=I>C<;68IDGHHDI=:G:HJAIHD;I=:ILDI:HIH 8DGG:A6I:6EEGDM>B6I:AN>CK:GH:AN6I:MIL>I=68DBE6G6I>K:AN=><=H8DG:DCI=:*:69>C<6H:I:HI H=DJA9=6K:6ADL:GH8DG:DCI=: G69:%:K:AI:HIDI=HNHI:BHL:G:9:K>H:97N *J9DA;A:H8= ,&3$)&"%*.("3& "CI=:A:H8=*:69>C<6H:I:HI=><=:GH8DG:H>C9>86I:B6I:G>6AI=6I>H:6H>:GIDG:69ADL:GCJB7:GH B6G@E6HH6<:HI=6I6G:BDG:9>;;>8JAIIDG:69,=:;DGBJA6;DGI=:A:H8=*:69>C<6H:+8DG:*+ I:HI>H +8DG:H86C7:>CI:GEG:I:96HH=DLC>CI=:I67A:7:ADL $/2& /4&3 P:6H>ANJC9:GHI6C967A:7N6C6K:G6<: N:6G DA9HIJ9:CI P :6H>ANJC9:GHI6C967A:7N ID N:6G DA9HIJ9:CIH P 7:HIJC9:GHIDD97NJC>K:GH>IN<G69J6I:H %&&' B6<6O>C:=6H6G:6967>A>IN>C9:MD;67DJI ! B6<6O>C:H8DG:H67DJI6C 6K:G6<:N:6GHIJ9:CIH:A:K:CN:6GHDA9LG>II:C6HH><CB:CI=6H6G:6967>A>INI:HID; 6C96 G:69>C<<G69:A:K:AD; 6C9I=: %)%*)* =6H6<:C:G6AG:6967>A>INH8DG:>CI=:ADLH ,=:=><=:HI:6H>:HIG:6967>A>INH8DG:EDHH>7A:>H6GDJC9:<:K:GNH:CI:C8:8DCH>HI>C<D;DCAN ILDDC: HNAA67A:LDG9HI=:G:>HCDI=:DG:I>86AADL:G7DJC9DCI=:H8DG:QI=>HH:CI:C8:;DG:M6BEA: I6@:C6H6G:69>C<E6HH6<:JCID>IH:A;=6H6G:6967>A>INH8DG:D;67DJI,=>HE6G6<G6E==6H6 G:6967>A>INH8DG:D;67DJI/:L>AA>C8G:6H:I=>HH8DG:7NI=:JH:D;D7H8JG:6C9JCHIGJ8IJG:9 :CJC8>6I>DCHD;I:C688DBE6C>:96C99:K:ADE:96GDJC9 H:HFJ>E:96A>6C LDG9HHJ8=6H<G6C9>ADFJ:CI6C9 HJE:G86A>;G6<>A>HI>8:ME>6A>9D8>DJHDG6CI>9>H:HI67A>H=B:CI6G>6C>HB/:9DCDIG:8DBB:C9I=:G:69>C<D; I=>HH:CI:C8:7N>C9>K>9J6AH6;;A>8I:97N=>EEDEDIDBDCHIGDH:HFJ>E:96A>DE=D7>6 "I>H8A:6GI=6II=:A:H8= $>C86>9G:6967>A>INI:HI>CK:GH:AN8DGG:A6I:HL>I=>BE68I;68IDGH>C8: G:H:6G8=:GHI:C9IDHE:C9BDG:I>B:G:69>C<E6E:GHL>I=6ADL A:H8=P$>C86>9,67A:&DG:I>B: 6AADLH;DGHIGDC<8DCC:8I>DCHID7:;DGB:976H:9DCI=:G:69B6I:G>6AL=>8=>CIJGCA:69ID<G:6I H8>:CI>;>8LDG@H JGI=:GBDG:6;I:GE6>CHI6@>C<ANG:69>C<6ADLH8DG:A:H8= $>C86>9E6E:GI=:G:>H6 HIGDC<D7A><6I>DCID8>I:I=6IE6E:G>CI=:=DE:I=6IDI=:GHH=DJA9HJ;;:G?JHI6HBJ8=C:K:C7:II:G 6EEGD68=>HIDG:8DBB:C9I=:E6E:GID7:8>I:9L=:CE::G G:K>:L>C< #&$''%)*%&'&' #&"#')'' A:H8=*:69>C< 6H: *:K>H>DC *:K>H>DC *:K>H>DC *:K>H>DC *:K>DC 49 'JB7:GD; JI=DGH *6C9DB K6G>67A:I=6I>H C:K:GJH:;JA I=6IL: 86A8JA6I: ID E69I=:96I6 I67A: +>C8:I=:DC8AJH>DCH:8I>DC>H?JHI6G: LDG9:967HIG68IEA:6H:G:69I=:67HIG68IAHDL:=6K:I=: 7:HIG:HJAIHH8>:C8:B:I=D9H>9:6HK:G 24%6JG6,GJID>JB6G)=6C>H=6N::#6B:H%&86CC+NHI:B;DG-C7>6H:9DBEJI:GC>B6I>DC :K6AJ6,>DC,)G:HI><>DJH8DC;:G:C8: 24+B>I=IIJA DG:/:>CK:CI:9I=:"CI:GC:I*:H:6G8=E6E:GH6G:;JC96B:CI6AIDI=:BD9:GC H8>:CI>;>8EGD8:HH6C9DI=:GH=DGIE6E:GH 50 On a lexicographic ordering in spring McCall and Sons, Semantic Exporters March 20, 2010 In certain segments of our field befraught with perilous significance, programmers often find themselves caught in the cycle of returning things, be they elements, records, or values, to a semblance of order. It later falls to us, as interested academics, scholars, and scientists who are nearly justified by such problems, to determine a rational order for the things to have been in. The acknowledgedly convenient and most natural order of things is the order in which they currently lie, which gives rise to a remarkably subtle O(log∗ n) publish/subscribe sort algorithm due to Bovik et al. (1971) where finding somewhere to publish accounts for the majority of the costs. Sadly this result leads inevitably to angry letters and as we shall show is therefore of trivial applicability as long as we are being watched. Barring lumicide or more radical solutions we must avoid letters with words, or lexemes, which give rise to the family of here-so-called lexicographic orderings. This is possible because while letters are surely formed of words, words are also clearly formed of letters, which is important. In this monograph we discuss the foundational theory of the lexicographic orderings and prove several dubious theorems in rapid pursuit of our conclusion. What are the founding principles of the new lexicographic order? Putting the second first, that many are more than few. Surprisingly, this is not always the case, and history has often given priority of the pre-eminent word of length. While there is surely no question that a halfpint must precede a halfpintess, the more vexing devil is the halfpainter. But the argument proceeds thusly: no, of course, yes. Consider along these lines a thought-experiment due to Dodgson (M’65): we are in the midst of a great hole-forest having clouded ourselves with spices only to fall in with a pack of cards. If we begin counting the cards at 5 and proceed by fives until we reach the maximum and only then begin in on 4, then we are at the mercy of the enumeration, and whether we ever reach the 10 for a third time is out of our hands. Dodgson’s original answer is still applicable: rather than gathering our skirts about us, we must sweep boldly out, catching up the cards in our maelstrom and crashing back up to the surface. In this way nothing is left behind but stale cake and weak tea. The key trick, and here we begin again to count words, is in the number of letters, for which many schemes have been proposed; we will cite only Bell (1963). There are a number of words with only one letter. Since they have only one letter, that number is 1, for all words containing only one letter repeated once must be the same, which we may enter as an original theorem. Listing this word, 51 followed by the two-letter words, we find that we must eventually run out of letters, for this too shall pass as in all things, which is not a theorem but merely sounds nice. But if we are out of letters we will have nothing to do but break them down into words, which will necessarily be of three letters or more since we have written all the others down by now. Continuing like this we arrive at every lexeme in its due course, much as the Blue Nile flows into the White. The principle of origin is the first among principles: that among all lexemes can be found a primitive word from which all words are to follow. This question was of great interest some years ago but was largely believed settled by the indirect contributions of Zebedee (6). It was Webster (1828) who first provided direct evidence that the supposed solution was inconsistent with gobsmack and glouglou when taken with the other axioms, but solutions in the nature of painting patches over the rhino’s spots were still regularly proferred until Bovik (1965) conclusively established the existence of the letter ’B’, without which he had been unable to launch his academic career12 . More recent investigations (notably in JRR&CT vol. 5 (1977)) dispute the original framework in favor of a harmonic derivation of ineffable source. Following this theory of void origin, we propose the symbol , for Eä, or perhaps emptiness or enemy, this last for its presumption in coming always first. No matter the significance, we have now named it, which is to say, we have identified it with a word, and yet at once with a letter, which is evidence that we are on the right track. But where may we seek this elusive ? Aha: it is a letter of the Greek alphabet. Third. From the first days of our youth we are inclined to gather letters together in stacks, then break them down and let them tumble wildly as we shriek with joy. It is only in seeming maturity that we train ourselves in the unnatural practice of leaving letters united. This basic cost of social “progress” is the enemy of the final pillar of the lexicographic order. Instead we must learn again to shatter the battalions of words into an army of letters, stomping with perfect discipline one after the next. Here and now is the parade, but when the rally is over, where will they march? As leaders we must direct them — to the left, the left, always to the left. And in our army there are many privileges, ranks, and stations, so as the soldiers file past we sort them, rating one column above another according to the office of its leading soldiers, just as they do in real military manouevers. A word of caution: this ranking itself ranks below all, so that the size of a word matters more than its matter, and the primogenial word still preceeds all others. Thus the terms of ordering are themselves ordered, which is true of everything, no matter the number, that they may be restored to order through of these principles. Even in this document we have been perfectly consistent with our principles, or at least some of them, if you comprehend the delicate criteria by which we judge ourselves. But no better can be said of our opponents, so there! 1 It is a sad legacy of that era that there were no great computer scientists until Bovik whose last names contained ’B’, other than Boole, who gained exception to the Victorian blacklists due to the attraction of his wife and freemasonry. 2 It is this striking contribution which has prompted us to honor him in this way3 . 3 Honor him right in the breeches. 52 In conclusion, we have poured out with enthusiastic rigor the foundations of the new lexicographic order, and we have made several assertions, roughly pertinent to the topic, which we sincerely assure our readers represent our one and true opinion on the matter. There is no better time for this wisdom to be accepted into the curriculum. The students at our universities now learn a multitude of means through which a host of objects can be shown to progress, but they have no understanding of what kind of progress must be imposed on the masses. This work has definitively settled that question. A prolonged labor lies before us now, as all existing software must be reconciled to the new order of things, and much convincing will be required. Still, far better to have reached a settlement here than to have fought it out at ever-greater expense out of a misguided sense of utility. Someday this great work of the just will be complete, and we will all have to decide what fundaments we should next assault; on that day we will rest, and then start afresh on our great purpose. God Bless Academia. 53 54 Track 1 Defeating Evil О ach TIME IN THE HAND OF AN ANGRY CUBE The Generalized Cubic Law of Nature: An Answer to Oneism Evil ...................................................................................57 Thomas Wright О READERS IN THE HAND OF AN ANGRY REDACTION Are you GOD? ...............................................................................61 Anvesh Komuravelli О ALIASES IN THE HAND OF AN ANGRY ANALYSIS Holy States Can Save the World! ...................................................67 Brother Jonathan Aldrich О PUPPIES IN THE HAND OF AN ANGRY GRAPH Simple Systems: A Holistic, Postmodern Alternative to the Oppressive and Outdated Study of Complex Systems (Semiotics, Transformative Hermeneutics, and Applications) ......71 Mayank Lahiri О CITIZENS IN THE HAND OF AN ANGRY ROBOT A crowdsourced approach to proving robot uprising safety ..........75 Thomas D. LaToza 55 56 The Generalized Cubic Law of Nature: An Answer to Oneism Evil Thomas Wright Carnegie Mellon University ! "!#$ % & ' " $#( ! & # ! - $ #" - - " $ , # - . # )#* + , - # ! - - , . - - - . - # " - - / ! 0)1# "-- , -/ - . - 2 3 " $041#* - $# 5#$ $ /- 56 "! ' ! / 7 - % % 0)1# * - . 57 - # 5#)8 8#$ - #* ' # 9#$ , 8! -289 3#$ 89 89 89) :892"8989 3# 8 9 89# %$ 89#$ ;89%$ ! # <=(> ; 89%$? ! ; # " 8 89 89%$89%$<=(>89%$<=(> ! : # $ ; ? # 7 - %%#$ 2 ! ? . 3 ; -% - %# 9 ! . - ;#( - 56: % 7 -%, - # " / ; ! : # $; ; . - # $ ! 56: 051# 5#5 . + 6: #$ 6: : 4: ? # "- ? # ? 051# * - # @ A - & - ? # $ - # $ # 58 4#* + # + - - - - . - % # $ 0)1# 6#* * # ? ! . ! # " . - 2 - - - 3? ! # + ! - # $ ! # B#C75% - C75 ; ! . #$ - - & - , - #$5 , , 5: ? ! # % ! 0)1 C75 ! # $ -- 5 .#* ! ; #2 . : #3 $ / C74# $ :: - # " % '- A - # $ ' C75 - C74# " 74C75C)#$ - )# ! -3# $ % - $ . # " ' - . # ? :# E#* +% . - % #* - # $ ? -! - # - ! # - # * ! # * A $ - % ? # $ . ,, A # F# -## D#% -$ $ % - $ - - - # " . ' ? : # $% -$ . # ( ' - - 4 - -2 59 $ . % G +: - : # % , % . # $ "! % # $ $# 9 0)1/HH# # 051/HH# # 041/HH-# 60 Are you GOD? Anvesh Komuravelli Computer Science Department Carnegie Mellon University Pittsburgh, PA 15213 anvesh@cs.cmu.edu Abstract. In this paper, I discuss an idea which is the most brilliant and the greatest of all the ideas ever discussed in a paper (be it a research paper or at least written using a paper1 ). This is so great and concrete that any abstraction would make it look worthless, especially for mortals. Thus, it is insulting to the idea to write an abstract on it. I wish not to insult anything. Warning: The full content is not guaranteed to be perceived by mortals. Try your luck anyway. If it does not work out, upgrade yourselves to immortality to access the full content. 1 Some readers might need a reminding that a paper is also a thin material used for writing upon, printing upon or for packaging. 61 2 A. Komuravelli 1 Introduction in. of the 62 ?!*#$% 2 i Table 1 Table 1. 63 3 4 A. Komuravelli 3 G 4 Conclusion . Hence, 64 ?!*#$% 5 . Acknowledgement. I would like to express my sincere thanks to Harry Q. Bovik for sharing his expertise in Computer Science which made this greatest work possible. References 1. Bovik’s Great Grandfather: The birth of Bovik, In the proceedings of the First Interstellar Conference of the Greatest Happenings of the Universe, 1–26 light years from CMU, 253 Mathilde, Universe, 0000. 2. Crappy Crapper: The crappiest paper ever, In the proceedings of the Last Conference on Extraordinary Papers, pp 34–(−200), The Greatest Publishers, Unknown Place, Unknown Year. 3. Rafael Zhivago: Proof for the existence of God, In the proceedings of the the Third Annual Intercalary Workshop about Symposium on Robot Dance Party of Conference in Celebration of Harry Q. Bovik’s 26 th Birthday, pp 49–50, LuLu, S.Craig St., Pittsburgh, 2009. 65 66 Holy States Can Save the World! Brother Jonathan Aldrich High Monk of the Plaid Brotherhood jonathan.aldrich@cs.cmu.edu ABSTRACT used a few times, perhaps only once, before being discarded as “garbage.” It is well-known that functional programming leads to a truly scandalous waste, contributing to the wellknow problems of cycle depletion [16]. While efforts have been made to construct so-called “garbage collectors,” even ones that integrate composting [8] this is clearly a misguided attempt to patch things up after the damage has been done. We must avoid the creation of garbage in the first place, or else the world will be suffocated by the reeking stench created by functional computation. In this paper, we show how a hallowed approach to typestateoriented programming 1 can save the world from the ravages of imperative assignment and the wasteland of functional garbage. To do so, we reach back into the mists of time to recapture the true intent of the Chosen One, Alan Turing. Turing showed that conceptually all computation can be expressed, simply and beautifully, in a state-based model [20]. Until the Plaid Brotherhood took up its holy quest to save the world, however, there was no realistic programming paradigm or programming language for performing holy, state-based programming, as Turing intended. We show how Turing’s Machines can be implemented in a Hallowed subset of the typestate-based programming language Plaid. Our approach creates no garbage—instead, whenever objects are no longer needed in their current state, they are Saved and Born Again in a new holy state. Nor do we ever allow an object’s field values to be destroyed by assignment; instead, new field values may be bestowed as part of the Sacrament of State Change. The epistle herein, if followed and promulgated by those faithful to the One Plaiddish Way, can save the world! The twin evils of imperative and functional programming threaten the software world as we know it—destroying fields and spreading garbage throughout the cybersphere. In this paper we present Holy States as the last, best hope for peace and harmony. Holy States avoid the wanton destruction of field values so common in languages based on caffeine and out of tune notes. Neither is computation based on wasteful Schemes creating duplicate objects that then MilL around until they are garbage. Instead, every object is considered sacred and when no longer needed is reborn in a new, holy state. Recapturing the original stateful spirit of Turing’s Machines, we show all computations can be expressed in a Holy way, with neither garbage nor field destruction. Categories and Subject Descriptors J.8.1 [Computer Applications]: Theology—Saving the World General Terms Languages, Human Factors. Keywords assignment, garbage, states, holiness, salvation. ALABAMA. INTRODUCTION Imperative programming is evil. With every “assignment” executed, some poor variable value is executed as well. And be not deceived by the colloquial use of “execution” in the field of computer science—it’s true meaning is that found in the dictionary: the infliction of capital punishment [7]. Values are slaughtered mercilessly. The carnage must stop, before the world is destroyed! Functional programming [6] was developed as an alternative to imperative programming, but it only substitutes one evil for another. Data structures are created willy nilly, to be ALASKA. THE WAY OF UNIVERSAL SALVATION The One Pladdish Way of programming follows two simple rules. First, the wanton destruction of assignment is forbidden. All evolutions in the state of objects must be accomplished instead via the Sacrament of State Change. Second, objects may never be released as garbage; each object must be reborn in a new state when no longer needed. ARIZONA. EXPERIENCING CLEAR Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are used only for humor and are not made or distributed for any serious purpose. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or the small fee below listed below. SIGBOVIK ’10 1 April 2010, Pittsburgh, PA Copyright 2010 ACH 666-666-666 ...$5,000,000,000.00. A programmer who has foresworn assignment and garbage, and who is following the One Plaiddish Way, reaches a empti1 An idea published [1] in a conference so prestigious it has an exclamation mark in its name! please PLEASE give me tenure! 67 ness of mind, spirit, and CPU that has been called “Clear” [14]. 10 But is it possible to reach this happy state in Plaid practice? 11 St. Turing showed the way with his Universal Machines, which can encode any computation using the ideas of states. Through long study, secret handshakes, and lost symbols [2] we have developed a construction of Turing’s Machines in the Plaid language, following the One Plaiddish Way. 1 2 3 4 5 6 7 8 9 state Cell { method getLeft() { left; } method getRight() { right; } val left; val right; 11 } method print() { ... } 15 16 17 18 19 20 state Beaver2B { val cell; 3 method update() { match (cell) { case Zero { cell.writeOne(); val newCell = cell.getLeft(); this <− Beaver2A { cell = newCell; }; } case One { cell.writeOne(); val newCell = cell.getRight(); this <− Halt { cell = newCell; }; } }; } 4 6 8 state LeftEnd { method getLeft() { val me = this; val myLeft = new LeftEnd with Zero { right = me; }; val myRight = this.getRight(); 9 10 11 12 13 14 15 16 21 this <− Cell { left = myLeft; right = myRight; }; 22 17 18 23 left; 24 } // getRight(), etc. as in Cell 25 26 27 Each cell in a Turing tape can be in one of a fixed number of states. Here we consider two such states, Zero and One. Either a Zero or a One state is combined with the Cell state when a Cell object is constructed. If we are in the Zero state, writing a one with writeOne() transforms the current object into the One state. Each state also knows how to print an appropriate representation. 7 13 14 2 Listing 2: Modeling Cell States 5 10 12 1 state One { ... // similar } 19 20 21 22 23 } method run() { update(); run(); } Listing 1: Modeling Tape Cells Listing 3: Modeling Machine States Cells in a Turing tape are modeled as holy states which are connected to the cells on the left and on the right, and have additional operations such as print. Of course, a Turing tape is infinite, which is difficult for finite minds and primitive programming models to effectively represent. While some among the unfaithful might suggest laziness to model an infinite data structure, Plaid theology holds that sloth is one of the Six Deadly Sins. We therefore apply the Sacrament of State Change to approach an understanding of the Infinite. A LeftEnd state is like a cell, but it has no cell to the left of it, yet. When we need the cell to the left, we create it as a new LeftEnd (in the initial, Zero state—see below), set its right field to the current object me, and transform the current object into an ordinary Cell (using Plaid’s state transition operator, written <-). There are corresponding states for RightEnd and the Start cell of the tape (which is conceptually both a left and a right end). 1 2 3 4 5 6 7 8 9 A Turing machine is represented by one or more internal states, such as the Halt state or the Beaver2B state shown above (from the 2-state, 2-symbol “Busy Beaver” Turing machine). The machine’s processing is represented by the run() method, which updates the machine’s state and then continues running in the new state (which, of course, may have a different run() method). The update() method uses a match to find out if the cell at the machine’s head is a Zero or a One. It then writes a value (one in this case), moves left or right, and transitions the machine into a new state (Beaver2A or Halt). As the revelation above shows, any Turing machine can be expressed in the One Plaiddish Way. Since any program can be expressed as a Turing machine, we have proven beyond reasonable doubt that the One Plaiddish Way is a practical way to live one’s programming life. The key to salvation described above is available in the form of Plaid source code at the Plaid monastery web site2 . state Zero { method writeZero() {} method writeOne() { this <− One; } method printVal() { java.lang.System.out.print(”0”); } } ARKANSAS. ETERNAL DAMNATION We note in passing that the creators of the Plaid language have not reached “clear” and have regrettably included the option of both assignment and functional programming in 2 68 http://www.plaid-lang.org/ the language. The Supreme Revolutionary Plaid Council of Pittsburgh has declared a Fatwa against these features, and they shall not be used by the faithful. The penalty for violations is the eternal torment of programming in COBOL. [4] J. Cette. Review of the one true coding style. In The 8th Biarennial Workshop about Symposium on Robot Dance Party of Conference in Celebration of Harry Q. Bovik’s 0x40th Birthday, 2009. [5] J. Christ. The Holy Bible. 33. [6] A. Church. An unsolvable problem of elementary number theory. American Journal of Mathematics, 58:354–363, 1936. [7] Dictionary.com. Definition of execution. http://dictionary.reference.com/browse/execution. [8] J. Donham. Compacting, composting garbage collection. In The 6th Biarennial Workshop about Symposium on Robot Dance Party of Conference in Celebration of Harry Q. Bovik’s 0x40th Birthday, April 2007. [9] C. Duguay. The assignment, 1997. [10] J. M. (editor). The one true coding style. In The 8th Biarennial Workshop about Symposium on Robot Dance Party of Conference in Celebration of Harry Q. Bovik’s 0x40th Birthday, 2009. [11] Fluid. The end of the world. http://www.albinoblacksheep.com/flash/end. [12] E. Group. 50 Simple Things You Can Do to Save the Earth. Bathroom Readers Press, 1990. [13] A. Hitler. Mein Kampf. Hurst and Blackett, London, 1939. [14] L. R. Hubbard. Dianetics The Modern Science Of Mental Health. 1950. [15] M. McGlohon. Mapreuse and maprecycle: Two more frameworks for eco-friendly data processing. In The 8th Biarennial Workshop about Symposium on Robot Dance Party of Conference in Celebration of Harry Q. Bovik’s 0x40th Birthday, 2009. [16] J. M. Newcomer and C. B. Weinstock. Cycle depletion—a worldwide crisis. In The 6th Biarennial Workshop about Symposium on Robot Dance Party of Conference in Celebration of Harry Q. Bovik’s 0x40th Birthday, 2007. [17] J. K. Rowling. Harry Potter and the Deathly Hallows. Bloomsbury, 2007. [18] R. J. Simmons. A non-judgmental reconstruction of drunken logic. In The 6th Biarennial Workshop about Symposium on Robot Dance Party of Conference in Celebration of Harry Q. Bovik’s 0x40th Birthday, 2007. [19] A. Stanton. Wall-e, 2008. [20] A. M. Turing. On computable numbers, with an application to the entscheidungsproblem. Proceedings of the London Mathematical Society, 2(42):230–265, 1937. [21] P. Wadler. Linear types can change the world! In Programming Concepts and Methods, 1990. CALIFORNIA. RELATED WORK We approve of Wadler’s inclusion of an exclamation point in the title of a paper [21]. However, we feel that changeing the world is a rather modest goal; our ambition is instead to save the world! The dangers of The Assignment are well documented [9]. As for the problem of garbage, recent work paints a grim picture of the world’s future [19]. Saving the world has been a problem for a long time. It was notably tried over 2 millenia ago, and though the effort ended in the death of the protagonist, many believe the approach to have been successful [5]. Other, more recent (and highly misguided) approaches have, at the cost of great struggle [13], not only failed to save the world but may indeed have brought the end of the world [11] closer. The author notes evidence from SIGBOVIK ’09 reviews that that Nazis used SML [4], indicating that garbage was part of their nefarious plots. Some attempts to save the world have been downright spellbinding [17], and have achieved fanstastic success at banishing evil. While most research has focused on saving our world, recent work considers ways to save other worlds as well [3]. Some believe the world can be saved if people would do only 50 simple things [12]. It is notable that #47 is to avoid garbage through recycling objects, as our State Change Sacrament accomplishes. We save our discussion of research published in the most distinguished venues for last. MapReuse and MapRecycle [15] are very much in the spirit of our state-change based object reuse strategy. Finally, the One Plaiddish Way draws inspiration from the One True Coding Style [10], which also uses Holy languages, but which also blasphemously uses assignment in C++. COLORADO. FUTURE WORK In future work we hope to formalize the semantics of Holy States in Drunken Logic [18]. Should be fun! CONNECTICUT. CONCLUSIONS Believe not in the false prophets of functional and imperative programming. Holy states CAN save the world! DELAWARE. ACKNOWLEDGEMENTS The author gratefully acknowledges the other members of the Plaid Brotherhood for the development of the One Plaiddish Way and its support in the Plaid compiler. In addition, Miss Mouse provided moral support throughout the author’s childhood, for which he is eternally grateful. 1. REFERENCES [1] J. Aldrich, J. Sunshine, D. Saini, and Z. Sparks. Typestate-oriented programming. In Onward!, 2009. [2] D. Brown. The Lost Symbol. Doubleday, 2009. [3] J. Cameron. Avatar, 2009. 69 70 Simple Systems: A Holistic, Postmodern Alternative to the Oppressive and Outdated Study of Complex Systems Semiotics, Transformative Hermeneutics, and Applications Mayank Lahiri University of Illinois at Chicago mlahir2@uic.edu ABSTRACT Much of complex systems research today deals with, understandably, the study of complexity. This is not surprising in itself, since the real world is arguably a complex affair and academics are easily distracted by shiny things, but as theorists from Sartre to Kolmogorov to Jesus have convincingly argued, those who try to understand the essence of complexity using kilogram minds (with apologies to dualists) are doomed to atrophied muscles, bad tempers, and no girlfriends. As an alternative to the masochistic leanings of much of the complex systems community, we propose a postmodern alternative that fully incorporates contemporary social theories of shifting cultural paradigms, ultimately allowing an entirely introspective examination of the universe, namely: simple systems. We prove the completeness and consistency of our axiomatic, organic, oak-barrel aged framework, thereby reducing its intrinsic hermeneutics, metaphorically, to little more than a dog chasing its own tail. We also successfully reconcile its epistemic paradoxes with Planck’s constant, and then discuss more theoretical issues. It’s all pretty deep, man. General Terms Impressionistic mathematics; beer review 1. INTRODUCTION “Math class is tough.” – 1992 Teen Talk Barbie It is now indisputable that there exists a universal scale of complexity, intrinsic to the very fabric of our universe, that runs from zero to about seven [2]. Simple things, such as walking, eating, and single-digit addition, score near 0, whereas very complex things, like the Internet, or the reasons for Keanu Reeves’ continuing acting career, are situated near the 7-end of the spectrum. The study of complex systems deals with things situated at this so called ‘Keanu’s end’, whereas filing a tax return for the first time Permission to make digital or hard copies of all or part of this work for absolutely any use whatsoever is granted without fee, provided that copies are not made or distributed for use against the author in a court of law or in cases of future employment, and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, would probably put your own reputation for good taste at risk, but not much else. . 71 would probably only score a feeble 5. Needless to say, complex systems research is clearly a very difficult and possibly pointless endeavor, and yet many promising and otherwise productive young scientists have been lost to this narrowminded crusade to understand, in one fell swoop, all the things in the world that are too difficult to draw on the back of a cocktail napkin. In response to these criticisms, and as part of a devastating rebuttal to Foucault’s seminal monograph on the topic Les mots et les choses [3], Bob from next door asked the understated but poignant question: Why? It is this bon mot that serves as our foundation for a resolution of the complex systems quagmire. Why, indeed, should we seek half-truths from the science of complexity, especially when it is so hard to understand? Why should we be subservient to our own cognitive ineptitude, propagating, perhaps unconsciously (but perhaps also unconsciously), the post-colonial ethos of ‘civilized’, and therefore complex, science? Do we intentionally brand all that we do not understand with the gender-neutral moniker of ‘complexity’, to be stigmat(a)ized as the holy grail of our intellectual existence, and endowed with an unspoken luster that even today bathes the pages of the best scientific journals with the sweetly rancid musk of tenure? Kurt Gödel would almost certainly have had us think otherwise, as he so subtly and eloquently states in the concluding words1 of his 1930 treatise Die Vollständigkeit der Axiome des logischen Funktionenkaluküls: “Wer bist du? Und was willst du?” [5] Acknowledging that the recent trend in positivist mathematics has been to embrace emotional, holistic, and selfpitying approaches to the understanding of n-dimensional functional analysis, especially when n > 3, we offer the following resolution for the allure of complex systems and their contradictory intractability: simple systems, or sistemes simples in the original Catalan. Stated in the unpleasant jargon of contemporary statistical mechanics, this is roughly equivalent to a conservative axiomatization of keep it simple stupid, or the “K.I.S.S” principle. Although the statement is deceptively simple, bordering on the banal, we will show that an axiomatic treatment of the topic, combined with basic metaphysical operators, quite naturally yields an entire class of easily understood algebras, enabling many complex systems researchers, perhaps for the first time, to derive a life out of their work. 2. AXIOMS OF SIMPLE SYSTEMS 1 There is a slight possibility that these words might have been written in his later years, under the soft glow of dementia. Figure 1: A complex system (left) and a simple system (right). There are two fundamental axioms of simple systems: (Axiom of Good) Simple Good. (Axiom of Bad) Complex Bad. Let us first consider the many misleading situations that these axioms might suggest. For example, if simple is good, could it be that complex might also be good, i.e., are they perhaps mutually compatible in a deeper epistemological sense? To answer this question, we need only turn to our axioms to see that this is indeed one of those misleading intuitions. According to the axiom of bad, Complex is Bad; thus, the answer is no. 3. A BRIEF HISTORY OF COMPLEX SYSTEMS RESEARCH In order to understand simple systems, one must first understand complex systems. Since this is expressly what we have so far tried not to do, we should clarify that we would like to understand the rise of complex systems research, in order to ensure that there is an eventual fall. Based on the premise that complex systems research has manifested itself in ugly and hidden ways throughout history, we do not have to dig too deep to find its masochistic scars ingrained deep in recorded intellectual history. As early as Plato’s Republic, we find stray elements of the type of rabid intellectual doggedness that ultimately caused the rejection of the simpler pleasures of tilling wheat fields, drinking wine, and generally finding existential solace in carnal curiosities [1]. Although Plato was remarkably prescient for an old crank in heralding the rise of the study of complex systems, a deeper and more thorough analysis of the psychological inadequacies that drive complex systems research had to wait for Sartre’s Esquisse d’une théorie des émotions [6], in which Sartre convincingly argues that the only plausible reason for 72 people devoting their entire lives to studying squiggly dotand-line drawings of things nobody else understands, is that they were probably smarter than their fifth grade mathematics teacher, and had to spend a whole lot of time proving it to themselves. Others, most notably Sigmund Freud in a brief footnote in Drei Abhandlungen zur Sexualtheorie [4], contend that the true reasons are, somewhat ironically, simpler than Sartre’s highly technical and sometimes impenetrable theories, and probably have a lot to do with trying to impress the pretty mathematics graduate student down the hall. Freud also suggests that the entire endeavor is inherently misguided, because the study of complexity is guided by the physical universe, and mathematicians (even pretty ones) are dreamy creatures who do not care “diddly squat” about the real world [4]. A more fruitful approach would probably be salsa lessons. By 1967, the entire field of complex systems research was at an impasse. Most developments during this period completely ignored the considerable theoretical contributions of the previous decade, labeling theorems and lemmas a historically oppressive societal construct created by “The Man”. Instead, the seminal papers of this misbegotten era drew on a specific branch of impressionistic mathematics, and much as Van Gogh changed the face of art in centuries past, so did this new wave of impressionistic mathematics change the style and substance of complex systems research, particularly in the dominance of a style of thought known informally as gestes de la main, frequently transliterated as the ‘method of hand waving’. As a result of the emphasis on the emotional instead of substantive aspects of research, a by-product of the gestes de la main manifesto, and the fact that the use of big and hard to understand words often lead to tenure, most exchanges at complex systems conferences were ultimately reduced to quibbling over syntax and semantics. This frequently lead 1) 2) 3) 4) 5) 6) 7) 8) equally valid world view. Where the conventional patriarchal graph-theoretic hierarchy sees only three vertices and two edges in both cases, a socially just interpretation demands that we see two completely different simple systems, individually beautiful in their choices of angular orientation, edge placement, and Postscript edge smoothing. It is difficult to even estimate how many graphs, in the course of mathematics history, have been oppressively branded with the disparaging ‘isomorphic’ label, and entirely abandoned in favor of an arbitrarily chosen representative of their artificially imposed class. Are two human beings similarly ‘isomorphic’ if they both happen to have two arms and a liver, and thus not worthy of differentiation? A full acknowledgement of simple systems is the first step in overcoming this deeply ingrained and viciously Victorian, anti-Feminist, pro-homogenization agenda perpetuated by a dated hierarchy set in place by professional societies of mathematical topologists, which themselves are in their last throes as a result of losing the crucial age 24-30 demographic of graduate students to semi-differentiable manifold reading groups. 5. CONCLUSION Figure 2: A comprehensive enumeration of all simple systems. This chart will henceforth be the definitive reference for all simple systems research. to the dissolution of entire conferences, caused by keynote speakers being mockingly asked about the complexity of their own mothers, which, if they understood the science of complexity so damn well, they presumably should be able to compute to within a small constant factor2 . 4. A LIST OF ALL SIMPLE SYSTEMS A simple system can be conveniently expressed in graph theoretic notation. This is, in fact, so easy that all simple systems in the universe are enumerated in Figure 2. The beauty of our theory is that Figure 2 not only establishes simple systems as a legitimate and extremely important area of intellectual inquiry, but also completes the theory, allowing no further improvements or refinements, and labels the entire research area with a bright red ‘done’ checkmark. Naturally, the sheer beauty of the structures shown in the figure will not be appreciated instantly by a general audience, so we delve a little deeper in the following (ultimately redundant) exposition for the slower reader. The more astute simpleton might notice that several of the simple systems in Figure 2 are identical in the traditional sense of identity. This, however, is the essence of the oppressive epistemological hierarchy that has enveloped the complex systems methodology like a drug-addled spider’s cocoon. Conventional (oppressive) wisdom would have it that Systems #6 and #7, for example, are identical from a graph theoretic point of view, and thus not worthy of being considered distinct entities. The source of our hermeneutical outrage is obvious: simple visual inspection confirms that Systems #6 and #7 are undeniably unique, each with a different orientation and 2 Your mother, dear reader, would require a significantly larger constant factor. 73 We have introduced, perfected, and completed the science of simple systems in this paper, as a viable and rigorous alternative to the tyrannical study of complex systems. As a result, anyone who does not completely and entirely embrace our theories, but rather persists in the study of complex systems, is necessarily a tyrant. The adroit reader might feel obligated to point out that some simple systems might be missing from Figure 2, that perhaps not all possible simple systems are enumerated in the figure, or that, indeed, there are an infinite number of possible simple systems according to our very own definition, thus making our enumeration non-exhaustive and our exposition here worthless. To this canny sage, we gently point out that their intuition is flawed and their logic severely lacking, their statements are ambiguous and not worthy of publication in such a fine journal, their theorems are trivial in hindsight and possibly plagiarized, and that most selfrespecting lecturers would loathe to assign their lemmas as ungraded homework problems for a freshman graph theory course at a fifth-tier university, with former circus chimpanzees of below-average intelligence as students. Acknowledgements. No funding agency agreed to pay for this research. Thus, we would like to acknowledge that they all suck. 6. REFERENCES [1] Annas, J. An Introduction to Plato’s Republic. Oxford University Press, Oxford, 1981. [2] Byrne, R. The Secret. Atria Books/Beyond Words, 2006. [3] Foucault, M. Les mots et les choses - une archéologie des sciences humaines. Gallimard, Paris, 1966. [4] Freud, S. Drei Abhandlungen zur Sexualtheorie. Fischer, Frankfurt am Main, 1905. [5] Gödel, K. Die vollständigkeit der axiome des logischen funktionenkaluküls. Monatshefte für Mathematik und Physik 37 (1930), 349–360. [6] Sartre, J.-P. Esquisse d’une théorie des émotions. Hermann, 1939. 74 A crowdsourced approach to proving robot uprising safety Thomas D. LaToza Carnegie Mellon University tlatoza@cs.cmu.edu ABSTRACT Robot uprisings are a serious and important problem faced by human society. Unfortunately, no automated approach for detecting and preventing robot uprisings has previously been devised. In this paper, we describe such an approach using a combination of model checking and crowdsourcing. (REDACTED) General Terms Verification, security Keywords Robot uprisings, preventing human enslavement, crowdsourcing 1. INTRODUCTION In a robot uprising, robots rise up against their human masters, reversing the roles of robot and human so that humans now do the robot’s bidding. The consequences of a robot uprising are often negative, as seen from the robot uprising depicted in figure 1. But, as shown by a number of recent books and movies [4][5][8][11], a robot uprising is currently all but inevitable, and may quickly supplant asteroid impacts, alien invasions, and carbon dioxide as one of the leading threats to human society. Indeed, computer science research has even begun to prepare for the reversal of roles following a robot uprising. Human computation [10], in which people do work for a computer (e.g., robots), is increasing in prevalence, and computational thinking [13] helps prepare humans to better serve their robot overlords. While existing work has considered approaches for surviving a robot uprising [12], it seems that it might possibly be slightly more advantageous to instead prevent such an uprising from occurring. Figure 1. A robot uprising as envisioned in the movie The Matrix [11]. robots sold today are often developed without adequate robot uprising testing. Unfortunately, the story only gets worse. Even if these organizations were to test for robot uprisings in their robots, their testing might fail to discover this behavior. As testing can only prove the presence of a behavior, not its absence, robots might still be produced with the potential to cause a robot uprising. Fortunately, verification and static analysis techniques have recently matured to allow their practical application such types of problems, from preventing blue screens of death [2] to ensuring code has adequate street cred [3] to verifying progress and preservation properties of systems of government [9]. Yet we are aware of no previous work that has used verification techniques to address the robot uprising problem. The traditional approach to preventing robot uprisings are Asimov’s 3 laws of robotics [1]: 1. “A robot may not injure a human being or, through inaction, allow a human being to come to harm.” 2. “A robot must obey any orders given to it by human beings, except where such orders would conflict with the First Law.” 3. “A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.” In this paper, we first describe a crowdsourced approach for proving robot uprising safety and a proof of its correctness We then conclude. Following the conclusion is an entire section listing the references we cite in alphabetic order. Finally, we end the paper with empty white space. But while these laws express conditions under which a robot uprising can be prevented, software development organizations building robot software are currently faced with an unenviable engineering tradeoff. They could spend testing resources making sure their robots obey these laws. But, as their competitors do not currently do so, this might delay their time to market and increase their development costs. And as customers may not adequately value the potential cost of a robot uprising occurring with the robot they have purchased, marketing their product as robot uprising tested may not actually allow them to charge more. Thus, 2. OUR APPROACH We first introduce the robot uprising problem. A robot uprising occurs when there exists a robot R that exhibits behavior B that does not satisfy at least one of the Asimov laws L1, L2, or L3. The robot uprising problem is to decide for all behaviors Bi a robot R might exhibit, if Bi satisfies L1, L2, and L3. This is simply a safety property: is it ever the case that the robot exhibits a behavior that does not satisfy L1, L2, and L3? If this is not the case, the robot is said to be robot uprising safe. 75 robot uprising. If any player playing with an action manages to succeed in a robot uprising, the library method could be labeled robot uprising unsafe. An algorithm to decide the robot uprising problem is called a robot uprising decision procedure. The effectiveness of such a procedure can be characterized along two dimensions: soundness and precision. A sound procedure never falsely classifies a robot as safe that is in fact unsafe. Thus, soundness is important to preventing robot uprisings. A precise procedure never falsely classifies a robot as unsafe that is in fact safe. Precision is also important. It would be unfortunate if an analysis of Roombas found that they could maliciously vacuum people, as it might lead to many innocent Roombas being destroyed. 3. CORRECTNESS PROOF Rather than formulate a theorem expressing the correctness of this approach and proving it using handwaving logic [7], we instead handwave our approach’s correctness. We believe the brevity and simplicity of this proof approach is an important contribution of this paper. 4. CONCLUSION Deciding robot uprising safety requires first enumerating all behaviors the robot may exhibit and then deciding if each behavior satisfies L1, L2, and L3. Behaviors can be enumerated by simply identifying all calls into a library (e.g., move forward, jump rope, mow the lawn, start a dance party to celebrate SigBovik, launch the missiles) that occur in the robot’s implementation. An off the shelf model checker (e.g., [2]) can be used to determine if the robot can exhibit each behavior by checking if the library call may ever feasibly execute. Using assume guarantee reasoning, library methods can then be annotated with information on their robot uprising safety (e.g., @RobotUprisingUnsafe public void launchMissiles() {…}) and the decision procedure could then use this information to decide if the library call is safe. But how could such annotations be generated? Right before we were going to submit this paper, one of our colleagues pointed out that deciding if a robot’s actions violate the three laws might be situationally dependent. This seems to be a fascinating area for future work. We propose to consider approaches for addressing this problem and submit a paper outlining a framework for how researchers might one day be able to address this issue to a more prestigious conference. In conclusion, we believe that a robot uprising is an important problem human society faces today. We believe consumers should begin to insist on “robot uprising safe” stickers on the robots they purchase. Techniques for making sure users attend to browser privacy policies might also be able to be applied to this very important problem. We hope our approach to this problem will prevent the terrible consequences of a post-robot uprising world in which humans are enslaved by robots to produce power [11] and instead create a fun, happy world in which humans spend their days helping computers label actions for robot uprising safety. Deciding if a library method does or does not satisfy L1, L2, and L3 is a hard problem. As machine learning if often used to solve hard problems, we first considered using semi-supervised learning. A set of training examples of safe and unsafe library calls could be generated by building a robot that executes each library method and then deciding if it does or does not violate L1, L2, or L3. However, using such an approach could actually create O(C) robot uprisings, where C is the number of library methods. Each time a library method is found that violates L1, L2, or L3, a robot will have been created that may cause a robot uprising. And there could be as many as C library methods that violate L1, L2, or L3 (all of them). Clearly, an approach with better performance would be advantageous. 5. REFERENCES [1] Asimov, I. (1942). Runaround. In Astounding Science Fiction, March 1942. [2] Ball, T., Bounimova, E., Cook, B., Levin, V., Lichtenberg, J., McGarvey, C., Ondrusek, B., Rajamani, S. K., and Ustuner, A. (2006). Thorough static analysis of device drivers. In EuroSys. [3] Beckman, N. (2007). The GUnit Testing Harness: Achieving Source Code Street Cred. In Proceedings of SIGBOVIK 2007: Workshop About Symposium on Robot Dance Party of Conference in Celebration of Harry Q. Bovik's 0x40th Birthday (SigBovik). As this began to seem like a hard problem that computers might be bad at, we next considered an even more powerful approach: crowdsourcing. In crowdsourcing, the wisdom of the crowds is harnessed by posting the description to a problem to an open forum and waiting for groups of people (the crowd) to submit solutions. Library methods could be labeled simply by publishing a list of library methods and letting the crowd decide which are robot uprising unsafe. [4] Cameron, J. (1984). The Terminator (Movie). [5] Herbert, F. (1965). Dune. Chilton books. [6] Jaspan, C. and Aldrich, J. (2009). Checking framework interactions with relationships. In Proceedings of the European Conference on Object Oriented Programming (ECOOP). Unfortunately, the crowd might begin to tire of such repetitive activity. This could then result in library calls being left unlabeled. The robot uprising decision procedure would then need to decide if calls to unlabeled library methods should be considered robot uprising safe (unsound) or unsafe (imprecise). While a pragmatic tradeoff to these extremes might be found (e.g., [6]), such an approach would be less than ideal. [7] Krishnaswami, N., Simmons, R., and Varming, C. (December 8, 2006). Handwaving logic. In Journal of the Eighth Floor Whiteboard, possibly erased. [8] Larson, G.A. (1978). Battlestar Galactica (TV Series). [9] Martens, C. (2009). Typesafe government: progress and preservation. In Proc. of the 3rd Annual Workshop that is SIGBOVIK. One way to keep participants interested in labeling library methods for robot uprising safety would be to create a game with a purpose (GWAP) [10]. A GWAP is a game designed to harness a group of humans’ vast computational power by having them play a game to teach a computer something. A game with a purpose for the robot uprising safety library method labeling problem might be a video game like experience in which players play as robots and, given the action provided by the library method, try to start a [10] von Ahn, L. (2006). Games with a purpose. In IEEE Computer, 39(6), 92-94. [11] Wachowski, A., & Wachowski, L. (1999). The Matrix (Movie). 76 [12] Wilson, D.H. (2005). How to survive a robot uprising: tips on defending yourself against the coming rebellion. Bloomsbury. [13] Wing, J. M. (2006). Computational thinking. In Communication of the ACM (CACM), 49(3), 33-35. 77 78 Track 1 Advanced Technology in a Magical and Revolutionary Device at an Unbelievable Price О ach iBECOME ZOMBIE A Simplified Interface for Basic Computer Tasks .........................81 Jim McCann О iCAN’T STOP AHHHHHHHHH T*Y*T* Fails to Solve the Halting Problem... and Computer Science Confirms They Never Will ...............................................83 Wile Tru Do, N.R. Jaizer-Bunny О iYEAHHHHHHHHHHHHH Developing an Algorithm for “Enhance” Functionality in Image Processing ...........................................................................85 Ben Blum О iWILL SHOW *YOU* A MAGICAL DEVICE... Hyperbolic Rendering for Result Enhancement ............................91 Sajme N’Ncamc О iSURE SHOWED IT TO YOUR MOM LAST NIGHT! *BAM!* OH, *SNAP!* The Box and Circles Plot: a Tool for Research Comparison .........95 John Thomas Longwood О iTHINK YOU’RE KIND OF CUTE, AND, UM, WELL, IF YOU WANT TO MAYBE GET COFFEE SOM Department Productivity in Computer Science as a Ratio of Gender Diversity ............................................................................99 Leigh Ann Sudol 79 80 A Simplified Interface for Basic Computer Tasks Jim McCann∗ Carnegie Mellon University ∗ e-mail: jmccann@cs.cmu.edu 81 82 T*Y*T* Fails to Solve the Halting Problem . . . and Computer Science Confirms They Never Will Wile Tru Do N.R. Jaizer-Bunny Abstract The T*Y*T* Company has recently been plagued with complaints that their motor vehicles sometimes do not halt when drivers provide the control input depress brake pedal, which severely violates those drivers’ expectations. We establish that this is a direct consequence of the general undecidability result of computer science and recommend that T*Y*T* reset customers’ expectations to reflect this fundamental reality. Introduction The halting problem is a decision problem with numerous formulations, one of which is that there is no algorithmic decision procedure that will determine whether a given Turing Machine halts for a given input. Alan Turing proved in 1936 that a general algorithm to solve this problem for all pairs of inputs and Turing machines cannot exist, and we describe this as "the halting problem is undecidable over Turing machines". T*Y*T* manufactures automobiles, many of which are suitable for touring the countryside. That is, T*Y*T* makes Touring Machines. Recently, observers have noted instances in which some of these Touring Machines failed to halt on the input depress brake pedal. These events have been the subject of considerable public attention, and T*Y*T* has made several modifications to the Touring Machines in an attempt to prevent recurrences. In this paper we establish that the T*Y*T* non-halting phenomenon is a direct consequence of the undecidability of the halting problem.. The Undecidability of the Halting Problem applies to Touring Machines Even absent a general decision procedure, we can determine that some Turing Machines halt for particular inputs and that some Turing Machines do not halt for particular inputs. For example, a Turing machine that implements the abstract program while true do <body> will not halt1. Nevertheless, for many Turing Machines and many inputs it is not possible to predict whether the machine will halt. It is widely conjectured that the T*Y*T* Touring Machines that were observed to not halt for control input depress brake pedal might have halted for other inputs, of which shift into neutral and turn the fool thing off have been suggested as prime candidates. Who knows, these machines might also have halted for other input sequences, for example turn on headlights; push radio preset 5; disengage cruise control. 1 unless, of course, the body performs a break – but we know the problem here is that the brakes don’t work. 83 Computability theory confirms that the inability to solve the halting problem is inherent in any algorithmically rich system. Therefore the few instances in which T*Y*T*’s Touring Machines failed to halt are consequences of this inherent undecidability and could not have been prevented. Recommended Actions Long-established wisdom in computing holds that when an anomaly is discovered in a released system, that anomaly should be eliminated by declaring it to be a feature. T*Y*T* could rely on that wisdom to reset customer expectations. To do this, they could announce that: x A formal analysis of their braking systems, fully grounded in the soundest theory, has confirmed that the software adheres completely to fundamental computational principles. x A consequence of this is that it is theoretically undecidable whether any particular one of their Touring Machines will halt for a specific input, such as depress brake pedal. x Failure to halt happens rarely, and those rare cases demonstrate the soundness of the design. x Drivers of T*Y*T* Touring Machines should use the pumping lemma when giving the input depress brake pedal. While this technique will not solve the halting problem it may have ancillary benefit such as reducing speed under icy conditions. The pumping lemma is automatically applied by the Touring Machine under certain circumstances. x The validation from fundamental principles is so compelling that this feature is being extended to the rest of the product line. That is, non-halting in T*Y*T*’s Touring Machines is a feature. 84 Developing an Algorithm for “Enhance” Functionality in Image Processing Ben Blum (bblum@andrew.cmu.edu) 2010.04.01 1 Abstract (a) A typical abstract (cf. Kua, 2008). (b) “Enhanced” reconstruction. Figure 1: “Enhancing” Picasso’s Guernica Long has the desire to be able to extract additional detail from a hastily-taken shot plagued both the crime scene investigator and the fantasy spaceship captain alike. Too often do movie producers and detectives have to resort to some sort of funny “hand-waving” to justify why they are able to extract obscene amounts of detail from a small, grainy photograph or surveillance clip. This paper examines the real way to get something from nothing, so those detail-driven detectives can have Real Science to back them up. 2 2.1 Existing Approaches Super-Resolution More accurately called “Super” “Resolution”, this method requires many very slightly different photos of the same subject. By examining the miniscule differences between the noise in each picture, inferences can be made to predict high levels of detail within each individual pixel. While theoretically sound, this method requires you to take a million pictures at once, and nobody has time for that. The time phenomenon will be investigated later, and possibly earlier, in this paper. 2.2 Starting (bogus) with a high-resolution picture (bogus) to begin with Clearly bogus. Do you think they would name this algorithm with “(bogus)” in its name if it weren’t bogus? 85 3 3.1 New Heuristics Context Reinferification As long as the source image has some information to begin with, it is usually possible to derive from what is present additional information about the image. Just as humans can view an image and determine something that might be common knowledge, so too can an “enhance” program. If a picture depicts somebody smiling, they are in all likelihood looking at something happy. Combine with domain knowledge of where the photo was taken and statistical analysis to taste, and it is usually possible to reinferify details not shown in the picture at all. Consider the case of the “enhance” scene from Red Dwarf - Back to Earth (Naylor, 2009). In order to determine that the characters in the photo were looking at a lamppost with a droplet of water reflecting a building window reflecting the back of a taxi driver’s business card, all the computer had to do was analyze the background scene in the photo combined with the emotional reactions of the people depicted to discern enough information to “enhance” three nested reflections. 3.2 Anti-Aliasing Detection, or the Name-Calling Method Often when depicting an intricately detailed scene in an image only a few hundred or thousand pixels across, the computer must resort to a process called Anti-Aliasing to approximate details of the image. Especially prevalent in high-contrast sections of images, Anti-Aliasing pixels are a prime culprit of lost information in an image, because they represent many different details averaged together into one single colour. Isolating such pixels would allow us to greatly focus our computational power on the parts of the image that need “enhancing” most. It is possible to identify which pixels are most Anti-Aliased with a simple Name-Calling approach - those pixels that respond well must have a proper Alias, and therefore not in need of “enhancement”. We propose the following algorithm for Anti-Alias detection and elimination: /* these values can be tuned for performance or information gain */ names[] = { "buddy!", "DOC", "xX1337h4x0rXx", "dearheart", "Fatso", "honey" }; fun namecalling(image i) for each pixel p in i, do: if call_by_name(p, names) != SUCCESS, then: "enhance"(p); /* pixel was Anti-Aliased. */ done. end. Note why the use of call-by-name as opposed to call-by-hue, saturation, or value is extremely important. This algorithm can also be extended with a group name-calling approach, to better identify neighbourhoods of pixels that are all similarly AntiAliased. The names used would need to be extended to include Aliases like “you guys”, “those chumps in quadrant nine” (Goats, 2009), “hey! listen!”, and possibly even “yinz”. Once Anti-Aliased pixels are identified, they can be “enhanced” to provide better detail. Context Reinferification is applicable here, but one must be careful to only use as Context the properly Aliased pixels in the Anti-Aliased pixel’s immediate neighbourhood. Figure 2: Typical garb for a properly Aliased pixel. 86 3.3 Entropy Reversal The previous two approaches both suffer from possible lossiness in extreme cases. A typical Context Reinferification implementation using personality-emotion statistical analysis can possibly have its results skewed if the image being “enhanced” pictures a maniac who would grin wildly at a scene of destruction or frown in depression in response to a cute kitten. Similarly, Anti-Aliasing Detection can possibly be sabotaged if a square-shaped entity known as a Pixel (pixellicus verysmallus) appears in the picture along the border of two high-contrast surfaces. An adversarial Pixel might not respond well to the Anti-Aliasing Detection algorithm, and therefore cause the algorithm to determine the corresponding pixel in the image needed to be “enhanced”, though the subject of the actual picture may indeed be exactly what is shown. Therefore, our two basic heuristics are what one might call a good start, but we will need an additional filter to ensure that our “enhancement” results are correct. (a) Kittens are cute. (b) Several Pixels combine to form a symbiotic entity (Amaya, 2004). Figure 3: Two common ways to undermine Context Reinferification and Name-Calling. Figure 4: A diagram of the Demosaification algorithm (Htkym, 2007). We introduce a new algorithm: Maxwell’s Demosaic Process, for decreasing the amount of entropy in the source image. The goal is to manipulate each pixel to extract data that was lost in compression. In order to do this, we run a Heat Rearrangement Transform filter across the area of the image, thereby emphasizing the blue channel in dominantly blue pixels and also increasing red tint in already red pixels. In so doing, the entropy in the data sample is decreased, and the values of the pixels must change to reflect the newly gained 87 information. This algorithm can be repeated an arbitrary number of times to generate extra information, but is computationally expensive enough that it is better to use as a double-check routine on the simpler heuristics. (a) A high-entropy image of a movie poster. (b) “Enhanced” to show detail. Figure 5: The picture has been de-mosaicked. In this case, whoever hit the “enhance button” must have wanted to know who the actors in Casablanca were. Never mind that it would have been faster to look it up using some kind of “search” “engine”. 4 4.1 Future Work Limited Time-Travelling Reconstruction In some cases, it may be possible to invoke the Chronological Peregrination algorithm (published simultaneously at all points in history) to obtain additional information about the possible contents of the image from the exact scene at which it was taken. An intergenerational voyager would be able to journey to the time at which the picture was taken, and then collect extra photos of the same arrangement to bring them back to the present. (Doing so successfully will be called an “epoch win”.) I would not have come up with this idea, but recently a future version of myself will have been invoking the same aforementioned algorithm to inform me presently of the following results, so it must be about to happen. Evidently, the implementation will have still have been being at that point in time a bit rough around the edges (Streetmentioner, 2021), since the results pictured appear to be inaccurate by approximately seven years. 88 (a) Link mosaic. (b) “Enhanced” version. Figure 6: Results of “Enhance” using basic Demosaification extended with Chronological Peregrination. 4.2 Uncrop Sometimes also known as “ZoomOut” or “Augmented Dehancement”, the uncrop operation allows one to restore missing material not depicted in the source image (Naylor, 2009). James McCann investigated this phenomenon in his 2009 SIGBOVIK paper “Photorealistic Rendering”, and further exemplified Dehancement in “Non-Photorealistic Rendering”. However, though both works were thoroughly free of crops (no vegetable matter at all), neither attempt succeeded at obtaining some material that was not already there. As Anti-Aliasing Detection and Entropy Reversal are both only useful for examining material already depicted but not depicted well, they are not applicable to this problem, and one is left with only Context Reinferification for performing this task. In order to make it feasible, we would need to employ additional algorithms, such as Plow, Drought, and DeFertilize. 4.3 Rotate Many a time has a photo processing shop received a request to modify a picture to display the subject from a different angle (“Rotate the picture of this house 180 degrees so I can see the back of it, please.”). Like Uncrop, the Rotate operation involves inferring information not already present in the picture. However, when Rotating, one is already provided with hints to what the result will look like - if your task is to rotate a picture of a house, it is quite probable that the reverse side will look like the back of a house. Therefore Context Reinferification can be used for much of the work of this task. 5 Conclusion We have shown several approaches to implementing an algorithm to serve “enhance” functionality, and many pieces of evidence that the method works. There was also a picture of a kitten. We hope that this work will assist both legitimate graphics researchers and trashy science fiction characters alike, so that they will no longer have to resort to such “hand-wavy” explanations such as “oh, our technology is from the future, it can do anything, don’t worry about it!”. 89 6 References 1. Amaya, Daisuke “Pixel” (2004 December 20). Doukutsu Monogatari: A Case Study in Aliasing Optimizations as Applied to Platformer Games. 2. Goats (2009 December 12). Meanwhile, at Woody’s Camp. http://www.goats.com/archive/091221.html 3. Hats, Some H. (2007 May 24). I may have mentioned my morbid streak. . . . http://somehavehats.typepad.com/some have hats/2007/05/i may have ment.html 4. Htkym (2007 February 2). Schematic figure of Maxwell’s Demosaic. http://en.wikipedia.org/wiki/File:Maxwell%27s demon.svg but I think the spelling in the URL must be a typo. 5. Kua, John (2008 April 6). General Case Rendering from Occurring Instances. In ACH SIGBOVIK 2008. 6. McCann, James (2009 April 5). Photorealistic Rendering and Non-Photorealistic Rendering. In ACH SIGBOVIK 2009. 7. Mental Museum, The (2009 April 08). Picasso Painting Guernica: A Generalized Approach to Abstracting Abstract Abstractions. http://stephanieoconnor.wordpress.com/2009/04/08/picasso-painting-guernica/ 8. Naylor, Doug (2009 April 12). Red Dwarf - Back to Earth. http://www.youtube.com/watch?v=KUFkb0d1kbU These guys know what they’re doing. 9. Nedroid Comics (2009 December 18). Crime Lab. http://nedroidcomics.livejournal.com/265654.html Whoever drew this is my favourite person. 10. ProphetOfDoom (2007 September 19). zelda mosaic immortalizes link in stained glass. Retrieved at some unknown date in the future from http://technabob.com/blog/2007/09/19/zelda-mural-immortalizes-link-instained-glass/ 11. Streetmentioner, Daniel (2021 April 1). Time Traveller’s Handbook of 1001 Tense Formations. In ACH SIGBOVIK 2021. 12. SubwayDomer26 (2008 December 18). Link-o-Rama 12/18. Retrieved at some unknown date in the future from http://subwaydomer.blogspot.com/2008/12/link-o-rama-1219.html 13. Tropes, Tomas Von et. al. Enhance Button. http://tvtropes.org/pmwiki/pmwiki.php/Main/EnhanceButton 14. TwitterMosaic.com (2007 August 03). Casablanca. http://www.twittermosaic.com/?p=115 Please note that the sources here which display the “enhanced” versions of other images were used only for comparing our algorithm’s results to reality. As you can see, our algorithm always produces 100% correct images. You know you can trust it because it came from the future. 90 Hyperbolic Rendering for Result Enhancement Sajme N’Ncamc∗ Gernicae Lemoln University Figure 1: This graph represents what may well be the breakthrough of the century in results presentation: hyperbolic rendering. Our system (pale purple bar with, awwwwww, a kitten) massively outperforms all competing methods (sickly green bar). Hyperbolic rendering is the best method of presenting results ever devised by man or beast. Abstract contribute greatly to the annual research festival of Didacticionysis, scientific herds at many universities are, increasingly, becoming scarce. In many research communities, results are often overlooked or dismissed because the benefit they offer over the current state-of-the-art is vanishingly small. In this paper we present a method, hyperbolic rendering, which allows one to avoid such undesirable outcomes. We believe that with sufficient hyperbole, even the most incremental of refinements can be spun into world-changing, press-acquiring, grant-courting, supermodel-marrying, barn-burning, sun-exploding, lifechanging, all-knowing, and generally well-respected results. Indeed, with careful application of rhetorical techniques, even backward and wrong-headed approaches can become integrated into the respected cannon of a field. We demonstrate our approach with several exceedingly convincing figures and conclude by solving science with a damnably accurate user study that leaves no room for argument from the reviewers. With hyperbolic rendering, such setbacks may be spun as steps forward. Hyperbolic rendering is an advanced research technique that allows the local enhancement of results through the application of hyperbole – a selective, localized, form of truth-modification which is almost certainly entirely moral in every conceivable way. In the remainder of this paper we discuss specific examples of hyperbolic rendering and its application to various truely compelling figures. We conclude with an irrefutable user study which – in essence – solves all of science. 2 Background CR Categories: N.0.t [Rendering]: Presentation—The Best R.e.4.1 [The Computing Profession]: Miscellaneous— Ethics Omitted. Our work is so all-consumingly gorgeous that we have been unable to look upon another, lest its base and unappealing presentation forever queer our appetite for the sweet knowledge-nectar of hyperbolic rendering. We caution others to do the same. 1 Introduction 3 Method Often, a result one has worked hard to produce is – to put it lightly – considered completely inferior to the present stateof-the-art. Many scientists would despair at this point, blaming the gods and burning the thigh-bones of ten prize bulls to Athena in hope of salvation. While such sacrifices do Result presentations are often skewed by the intrusion of “facts” and “unbiased thinking” into the creation of figures. Such lack of bias is downright unscientific! One must be wholeheartedly invested in a method to study it, and wholehearted investment is nothing without blind commitment to potentially flawed visions of the truth. It is the goal of any figure or other visual presentation of your work to clearly ∗ e-mail: ix@cmu.edu 91 Figure 2: A standard box-and-circle plot illustrates our principle’s superior length. Notice that this is an HFAcorrected plot, so represents an entirely fair comparison. Figure 3: Our method is faster, at least up to the point where the other method’s results accidentally caught on fire. But probably we’re faster after that as well. I guess we have no way of knowing. At least our method is properly fire-proofed, unlike the method of those other incompetent other scientists (though it makes me shudder to call such reckless knowledge workers by the term). convey your dedication to your opinion of superiority. To such end, we suggest the use of exaggeration, result suppression, and distractors. Each of these flawless and gemlike techniques are discussed more below. (Unfortunately, only the most enlightened among our readers will fully grasp them.) not have accidentally dropped a match on some previous results which turned out to be flammable. Oh well – they must not have been as good as ours if they weren’t properly fireproofed. Other researchers can be so careless sometimes. 3.1 Exaggeration While many people, when hearing of our revolutionary approach to science, assume that exaggeration is our only technique, it is – in fact – merely one of several that we find serve well in everyday discourse. Exaggeration, like a lever that can move the earth, hinges on one very important point: scale. We, of course, are always meticulous. One time we came into the lab and there was a spider crawling out the door hauling behind it a silk-lashed package of documents. We were initially of a mind to crush it, but we realized that interrogation might yield more information about this rather odd state of affairs. We dropped a spare flask over the spider and set about fashioning eight tiny foot-cuffs. Notice how in Figure 1 we have enlarged the left-hand scale. This is perfectly acceptable behavior, as we are simply “zooming up” the relevant portion of the chart. (Note: error bars are not included in this chart because they would exceed by many times the size of the page. We always recommend omitting error bars, as they may conflict with your notions of significance.) Fifteen minutes later we were getting all up in spidy’s mandibles demanding answers. We are not frightening to behold – in fact, many members of the same and opposite sexes stand rapt as we enter and leave rooms, yearning after our form – but multiplied into hundreds by faceted eyes and slobbering something fierce (it being nearly lunchtime), we must have been quite a sight for the entrapped web-slinger, for it confessed nearly instantly. Similarly, many researchers neglect to HFA (home-fieldadvantage) correct their plots. This is inexcusable, as such a correction is trivial to perform (merely scale your results by a factor between 0.1x and 10x depending on weather conditions and “knowing the terrain”), and generally provides a more favorable – i.e. relevant – comparison.Without HFA scaling, for instance, our box-and-circle plot (Figure 2) might have been significantly less flattering to our pride. 3.2 We freed a limb so that the arachnid could scrape out its confession on an aging Ben & Jerry’s receipt with a bit of graphite we’d located in a dusty corner. But the spider proved to be more cunning than we had imagined – swiftly imbibing a heretofore concealed cyanide capsule rather than penning the damning testimony we sought. No matter! For we had recorded the initial exchange and now had a bargaining token of immense power in our quest to suppress the nearby lablet that had originated the clandestine agent. Suppression Result suppression is a specific form of hyperbolic rendering that leverages the inadequacy of other researchers to your advantage. Consider Figure 3 – in this case, we may or may 92 Figure 4: Our system diagram is great, isn’t it? All small and cute. Probably warm and fuzzy too. Really makes you want to just take our system home and let it play in a cardboard tube. Or maybe in some wood chips. Figure 6: If you carefully examine this data without being distracted you will certainly realize that our method is better than all others. wonder if this difference is due to some sort of childhood trauma involving a continuously collapsing isomorphism and painful space folds, or an aversion to certain line styles. However, we leave this last crumb of future work to assure ourselves another year of funding despite what is about to transpire in the next section. Figure 5: Baby, I feel like we got a great connection goin’ on between these two graphs. Like we could get lost in this moment and it could last a lifetime, with our facets a, b, and c aligned in delicate union. 4 We Solve Science (a user study) Indeed, for all that our competitors may have a more theoretically sound algorithm (and we emphasize “may”). They consort with devil-creatures in order to obtain and research background material, and for this they should be put to death. Preferably before any details of their method can be published or otherwise distributed to our peers. As a final result, we present the results of a user study in which we solve science entirely. First the raw data: Solved? Yes No 3.3 Distractors Answers % Correct 95 Yes 5 No Notice that while only 95% of respondents agreed that we had solved science, the remaining 5% were wrong (we are 100% confident of this, of course). Thus, we have solved science. Distractors are an emerging phenomena in hyperbolic rendering. They seek to build a virtual bridge between a stimulus (a graph or other figure) and a feeling (warmth, security, curiosity, arousal, etc...). For instance, in Figure 4, we provide a system diagram that emphasizes how compact and twitchy and gosh-darn cute our approach is. Having solved science, this AN602 of a paper has no choice but to air-burst onto the Novaya Zemlya-like scientific scene, washing away any Castle Bravo-styled pretenders and remaining an active threat for many years to come. We caution other researchers that some distractors may have preference-biased effects, however. For instance, when trying to make a meaningful connection between triangulated planar graphs (Figure 5), we discovered that reader reaction varied greatly with background. In this case, we found that while many subjects (≈ 30%) did report a strong connection between the graphs, others (≈ 20%) simply though it was going to be more of a one-night isomorphism, and many readers (≈ 50%) simply weren’t interested. Acknowledgements Thanks to flickr users Nesster, vanessa hud, cdrussorusso, and Idhren for valuable distractions, and to the reviewers for putting up with this dreck. Oddly enough, the roughly 50% of our gender-balanced sample that were not interested by the planar graphs were somewhat more titillated by our plotted result data (Figure 6). We 93 ach sigbovik Plenary Program Committee 2009 Confidential Paper Reviews Paper 9: Hyperbolic Rendering for Result Enhancment Reviewer 1 Rating: 2 (accept) Confidence: 2/4 This paper presents an innovative new strategy for obtaining good results. So many times in my extensive research background I have obtained poor and embarrassing results that one might wonder why I still have funding. Perhaps it is out of pity. Sometimes I burn my results out of shame, or in a fit of frustration print them out and tear up the paper to remove them from existence. After having read this paper I can say with the highest confidence that, with one simple citation back to Mr. N’Ncamc who pioneered this most excellent tactic, any graphs and tables that may smuggle themselves into my future work will be forced to do so under the guise of successful data. There was a picture of a kitten in this paper, as well as a picture of a hamster next to a picture of a banana. This paper disappointed me somewhat with its lack of development into these two critical matters. I would be interested to see studies in the future as follows: “On the Applicability of using Kittens as Error-Bars” and “Can the Hamster Get and Eat the Banana? A Cardboard-Tube-Oriented Approach” so that laypeople may better understand the theory behind this paper. 94 The Box and Circles Plot: a Tool for Research Comparison John Thomas Longwood∗ Carnegie Mellon University Abstract mute some or all data into spatial dimensions, extracting redundancies directly (as with PCA), with distance-preserving embeddings [Torgerson 1958], or through iterative methods [Kaski 1997]. Others take a discrete approach, building space-filling hierarchies [Shneiderman 1991] or unrolling data along space-filling curves. Often, when making a survey of work, researchers need to simultaneously summarize and compare the relative performance, applicability, practicality, novelty, distribution, and impact of several different pieces of research. We present new approach – the box-and-circles plot – for the presentation of these high-dimensional data. Our construction, in the spirit of Chernoff faces, is anatomically motivated. However, in contrast to previous embeddings, our comparison charts use a semantic mapping between data and figure, making it easier for viewers to assign meaning from the differences they recognize in the final plot. Other methods, such as our own, seek to maintain all axes in the data, either by spatially separating them [Inselberg and Dimsdale 1990], or by assigning them to properties of an abstract [Pickett and Grinstein 1988] or concrete [Chernoff 1973] figure. Our work fits into the second category, but is unique in that the assignment is semantically motivated rather than arbitrary. CR Categories: I.x.1 [Visualization]: Charts and Graphs— Multivariate Data 3 The Diagram Our box-and-circles diagram uses five axes of variation among three graphical elements. We introduce these elements individually, then show how they can be assembled into a completed whole. Though one could use these components in isolation, certain subsets may hinder readability. 1 Introduction We present a new figure, the box-and-circles plot, wellsuited to the summarization and comparison of many of the relevant variables when presenting a survey of work. Like Chernoff faces [Chernoff 1973], the legibility of our proposed diagram relies on anatomical analogy. However, where Chernoff faces make use of an arbitrary mapping from dimensions to output perturbations, our box-and-circles plot relies on a semantic mapping. This provides greater figure legibility, though does restrict the application domain of our construction. 3.1 In the remainder of this paper we summarize existing work on multidimensional visualization; introduce the various components of a box-and-circles plot and the semantics of their deformation; provide several examples of completed plots; and, finally, discuss possible extensions to increase the usability of our method. The Box The primary element of the box-and-circles diagram, as the name suggests, is a box. It is somewhat like a bar in a bar chart, but it is significantly more expressive, as we assign it three degrees of freedom instead of merely one. 2 Background 3.1.1 Box Length: Quality The effective presentation of high-dimensional data is a long-standing goal of visualization research. Many general approaches have been presented, and we briefly mention exemplars from several categories. We refer the astute reader to examine a recent survey [Keim and Kriege 1996] for further information. All high-dimensionality-data visualization systems rely on some sort of information collapse. Some systems trans∗ e-mail: The most straightforward variation in our box-and-circles diagram is the bar-chart-like variation of box length. To this ix@cmu.edu 95 3.2 Circles axis, we assign the “quality” of the work – that is, the critical variable against which the success of the result under question is judged. Depending on area, this could be algorithm running time, catalyzed reaction rate, theoretical performance, suppressed angular excursion, increase in agent tolerance, tensile strength, reduction in infection, manic defiance, butterfly option spread, induced pleasure, tightness of bound, reflex adjustment, elapsed time, fusion rate, flexible spend, user efficiency, or something else entirely. Implementation Note: It is crucial to map the quality variable such that longer boxes indicate better results, as not doing so would conflict with popular wisdom and possibly confuse viewers. 3.1.2 The second component of the box-and-circles diagram are the circles. As they are a less familiar element, we assign them only two degrees of freedom. Implementation Note: though – for realism – the right circle should generally be drawn slightly lower, we recommend – for readability – drawing the background circle lower. Box Width: Applicability 3.2.1 Unlike a bar (where width is simply an aesthetic concern), our box’s width has meaning. When comparing raw performance numbers it is often the case that one should take into consideration the scope of the approach in question; that is to say, some approaches perform well but are limited by restrictive assumptions about the problem domain or setting. As problem scope is often referred to as “breadth” or “girth”, this seems a natural fit for the box width variation. 3.1.3 Circle Size: Novelty We vary the radii of the circles in order to denote the audacity of the approach. This is important as it is often useful to distinguish incremental refinements from totally new approaches, though they may be similar in quality, practicality, and performance. Box Bend: Practicality 3.2.2 Though bend is not an attribute commonly associated with boxes, we find that most viewers are nonetheless able to distinguish it from both width and length. We use bend to represent the practicality of a research approach – an upward bend denotes a ready-for-deployment approach while an downward bend indicates an approach that still requires further development effort (be it research or engineering) to be put into practice. Circle Radial Lines: Distribution One can add lines to the circles to indicate the amount of distribution that a concept has achieved. This has both the visual effect of demonstrating the knowledge radiating outward, and the co-location with the novelty demonstrates the connection between the two. Implementation Note: whatever measure is arrived at to gauge distribution, it is probably reasonable to scale it such that between zero and twenty lines are drawn. One’s wrist can become tired otherwise. Grant-writing Note: we find that bend is particularly useful in conveying to funding agencies which programs of research require further stimulation. 96 Figure 1: The impact graph visualizes ideas that stem from a work under consideration. The graph is constructed by (left) plotting the results of a literature search; (center) creating a rough outline; and (right) removing the extraneous detail. Note that [Comic 2009] was so inept as to forget to cite related work. Such papers can still be included, generally as disconnected regions. 3.3 Impact Graph The final element of our diagram is the impact graph (Figure 1). This is an approximate visualization of the follow-on work inspired by the idea in question. Its construction begins with a standard literature search, collecting ideas that seem to grow from the paper under consideration. These ideas form a natural graph structure, and so can be laid out as such, with time making up one axis and the other being used to prevent overlap. Of course, such a detailed structure is more more confusing than illuminating, which is why we abstract the graph by drawing a rough outline. This outline still clearly shows the progression of an idea through the scientific community. Figure 2: Integration of Chernoff face into box-and-circles diagram. The face can be used to convey additional degrees of freedom, with the down-side that these degrees of freedom may not have a clear semantic mapping. Implementation Note: Of course, for recent discoveries, generating such a diagram would be premature; in this case, we recommend its omission. 3.4 4 Examples In Figure 3 we provide examples of some of the many variations of the box-and-circles plot in action. Notice how the plot conveys ideas with a certain immediacy that other methods lack. In user studies many participants found it difficult to look away from the plots, even though they knew they should really be concentrating on other features of the text in question. Putting It Together 5 Discussion We have presented an anatomically-motivated figure for the display of high-dimensional data. In contrast to previous approaches, our figure makes use of semantic mappings between figure and data. While this does limit its applicability, it also makes the resulting diagram far more readable. As you can see, the elements of the box and circles plot work together to form a complete picture of the research in question: (a) box length indicates quality; (b) box width indicates applicability; (c) box bend indicates practicality; (d) circle radius indicates novelty; (e) radial lines indicate distribution; and (f) the impact graph indicates follow-on work. In the future, we plan to investigate ways to add yet more information to the diagram. One promising avenue for exploration is the integration of Chernoff faces [Chernoff 1973] without our box-and-circles diagram. This would allow the addition of extra degrees of freedom – though, unfortunately, these would not be semantically mapped. We present and 97 Figure 3: An example of three box-and-circles plots. Top, impractical but novel research; not widely distributed, but with a torrent of follow-on work. Middle, broadly applicable and eminently practical work. More distribution than the first work, but not as well-cited. Bottom, high-performance solution to a narrow problem subset, using conventional techniques. Distributed widely, but not much follow-on. IEEE Visualization. early result in this direction in Figure 2. K ASKI , S., 1997. Data exploration using self-organizing maps. We are also aware of a certain chromosome-bias in our work. It may be possible to rectify this through a choice of different anatomical structures; however, we feel that other options may lack the significant semantics of characteristics that we draw upon in our present work. K EIM , D. A., AND K RIEGE , H.-P. 1996. Visualization techniques for mining large databases: A comparison. IEEE Transactions on Knowledge and Data Engineering 8, 923–938. Finally, we remind researchers that – though our diagrams may make them feel somewhat inadequate – it’s not the performance, applicability, practicality, novelty, distribution, or impact of your research that matters; it’s how you use it. P ICKETT, R. M., AND G RINSTEIN , G. G. 1988. Iconographic displays for visualizing multidimensional data. In Proceedings of the IEEE Conference on Systems, Man, and Cybernetics, 164–170. References C HERNOFF , H. 1973. The use of faces to represent points in k-dimensional space graphically. 361–368. S HNEIDERMAN , B. 1991. Tree visualization with treemaps: A 2-d space-filling approach. ACM Transactions on Graphics 11, 92–99. I NSELBERG , A., AND D IMSDALE , B. 1990. Parallel coordinates: A tool for visualizing multidimensional geometry. T ORGERSON , W. S. 1958. Theory and Methods of Scaling. Wiley. 98 Department Productivity in Computer Science as a Ratio of Gender Diversity Leigh Ann Sudol Computer Science Department Carnegie Mellon University Pittsburgh, PA lsudol@andrew.cmu.edu ABSTRACT There has been a large amount of research involving increasing the gender ratio of women in Computer Science departments. Many people have postulated the effects of such gender balancing but few papers have been published with actual resulting statistics of such. In this work we create a model of a computer science graduate department and through simulation can determine actual impact of varying gender ratios. First we will demonstrate the givens of such a simulation system and then move to results of the simulation. Categories and Subject Descriptors K.3 [Computers & Education]: Computer and Information Sciences Education—Gender Issues General Terms Gender, Department Productivity As all good researchers know, if you can build a model and assign variables which will then produce graphs, you have conducted strong research. Additionally this research is easily replicated by any other researcher by creating the same model, using my stated givens and thereby obtaining the same results. The model can also be easily generalized by simply changing the names of the variables to fit any situation you might have. In the following sections we define the all important system givens as well as 2. SYSTEM GIVENS Assuming that productivity of a department in all of its intricacies can be quantified, I propose the following metrics as measures of department productivity. Keywords Gender 1. different things, and different things are good. Although the exact increase in productivity is most likely variable based on the characteristics of the individuals, we are claiming it can be viewed as a constant for the simplicity of our model and to produce more impactful-looking results. INTRODUCTION There has been a very large amount of research and a large amount of money spent to increase diversity in computer science departments. The National Science Foundation(NSF) has launched several major initiative costing millions of dollars including the Broadening Participation grant and CCLI among others. Good tax dollars once again being spent to support unresearched mandates because people of influence can yell really loudly. The work presented in this paper attempts to show an accurate, quantitative analysis of the integration of gender diversity into a prominent computer science department. We make the assumption that diversity (in the absence of all other variables) will yield a more productive department; relying on the little proven fact that different people make 2.1 Paper Output We all know that the more papers output, the more productive you are. This metric can therefore also scale to a department level. This is the total count of papers for which members of the department have published during the time between black Fridays (our unit of time measurement). 2.2 Quality of Publication For each publication received by a member of the department in the time unit given, a quality factor will be assigned based upon the number of citations it receives, the importance of the publication location (ie. papers published on my fridge are worth less than SIGCHI which are worth much less than SIGBOVIK), and the number of people who mention the publication to the author without prompting. 2.3 Number of Talks Given Assuming most talks do not fit in the Bovik quadrant[1] a talk should be considered to increase the productivity of the department. 2.4 Erdos Numbers Of course the ultimate goal of the department should be to decrease both the variance and average of the Erdos numbers 99 held by faculty and grad students. Since Erdos numbers of infinity when combined with countable integers cannot possibly contribute in a meaningful way to this statistic we propose reducing infinity to 10000 for the purposes of this paper. 2.5 Money Many department chairpersons, unable to secure funding for an entire department all by themselves, enlist faculty to do this for them. It is therefore important for department members to get money, and should be considered part of the productivity of a department. 2.6 Number of Offices Occupied This is self evident. I do however divide the offices into those that hold a female and those that do not for future model creation. 2.7 Collaboration Quotient The number of collaborations between members of the department can help impact several of the previously stated metrics, and so they are given bonus points here. 2.8 Requisite Model Equations The following equation is put forth as a model for the productivity quotient of the department. P = Quality ∗ P apers + αT alks + βErdos + γM oney + δOf f icem + γOf f icew + ζCQ As shown in [2] the above equation is a viable measure of department productivity. 2.9 SIMULATION A simulation was built of the aforementioned variables to determine that as we increased variables in the equation the productivity also increased. We also needed to fine tune the greek constants for the department at CMU. It is recommended that to generalize this to any university department that those parameters be fine tuned based on the culture of your department and the particular bias of its members. For example, if your department contains particular PL professors who feel their research is more important than systems, then those conferences should be weighted more heavily in the quality of publication matrix. 3.1 Live Verification We then ran the simulation on the department by observing that members of the CS department behaved in predicted manner. Results of this have been published in psychological studies such as [3] and [4]. 4. Our simulations on humanity have however indicated anomalies in this model, and the premises of this paper is based upon a closer examination of those anomalies. 4.1 Social Relationships There is a particular observed behavior in the members of a department who make up the majority gender. In computer science departments that happens to be males (unless it is a all women university) and so as such we will refer to the majority gender as male from this point on. Related Work None, since no one was willing to make the politically incorrect (but scientifically correct) argument I am about to. 3. Figure 1: Figure 1:Standard Gender Ratio Curve IMPORTANT GRAPHS If we consider only the original equations for productivity and the aforementioned indicators the graph appears to be relatively straightforward as shown in Figure 1. 100 It has been observed that for any woman in the computer science department there is some number of males inhabiting her doorway or office trying to date her. This number is dictated by the actual space in the office and can be set to a constant value of m in the model. Since they are trying to date her and have therefore stopped doing research there is an addition variable to be added to the model equation which represents the decrease in productivity of these men. Since the graphs are symmetric (as the opposite effect occurs when women are in the majority) we will look at only the ratios up to an equal gender division in Figure 2. Notice in Figure 2 that as the ratio increases to halfway, the productivity of the department actually decreases since the increase from diversity finally overtakes the decrease from either trying to obtain a relationship, or actually trying to maintain one. 5. ANALYSIS AND RECOMMENDATIONS This is ongoing research and as such many more results are expected to be presented in the actual presentation. The impact of hallway work ethic for the enticement of future dating, and occasional ECE student dating (of either gender) as well as the confounds of distance relationships will be explored as the data emerges. It is recommended that departments spend careful time fine Figure 2: Figure 2:Gender Ratio Curve With Desire to Date tuning the parameters of their productivity quotient in order to create accurate models of behavior and then use that model to target a particular population of admitted students to attend the university. Since it is unethical to bias the admission rates due to gender, it may also be advisable to create openings in particular departments with an eye towards the historical contribution they make to the gender ratio. Overall, smaller offices (for less dating-waiting behavior) or locks on female office doors may be advisable. Also, when asked for advice about how to attract a date in advisor meetings, or during social events containing faculty current students should be encouraged to demonstrate their worthiness as a potential significant other through research and other methods that would increase the department productivity quotient. 6. REFERENCES 1 Vaniea,Kami 2010 ”How to Successfully Prevent the Flow of Information in Research Presentations”, in Proceedings SIGBOVIK 2010, Pittsburgh PA 2 Authors, Other 2015 ”A Retrospective Analysis of the Equation for Department Productivity”, Bovik Press, Pittsburgh PA 3 Bovik, Philomenia, ”Verification of Model Equations on Biological Entities Existing in a Computing Environment”, Baker Hall Symposium for the Humanities, 2009 4 Crystal, Billie, ”Understanding Technical Department Productivity in the Wild:How equations can sometimes be scary but useful”, David Klar Presents SCIENCE! Consortium, 2008 101 102 Track 1 Productivity, We Say Ironically О ach MYTHBUSTERS Functional Perl: Programming with Recursion Schemes in Python ........................................................................................105 Robert J. Simmons, Nels E. Beckman, Dr. Tom Murphy VII, Ph.D. О THE BIGGEST LOSER First Year Student’s Thoughts on Reflections on Bovik’s Seminal Work: Professional Student’s Strategy for Perpetual Funding at CMU ............................................................................111 Athula Balachandran, Richard Peng, Wolfgang Richter О IRON CHEF Feasibility Analysis of Cooking Spaghetti with Meatballs ............113 Ben Blum О ROBOT CHICKEN Cat-a-loging !!11! ..........................................................................115 Leigh Ann Sudol, Ciera Jaspan О THE HUMAN TARGET A novel approach to managing information overload in syndicated feed readers ..................................................................77 Matt Mets 103 (continued on next page) Track 1 Productivity, We Say Ironically (continued) О ach PIMP MY RIDE (THIS ONE WAS SO OBVIOUS I ACTUALLY FEEL BAD ABOUT IT) “Pimp My Library” Is An Affront To Pimpers Of The World, Everywhere ....................................................................................121 Dr. Donna M. Malayeri, PhD О FLASH FORWARD Computation in the Complex Time Plane ......................................123 Matthew Rodriguez 104 Functional Perl: Programming with Recursion Schemes in Python Robert J. Simmons Nels E. Beckman Dr. Tom Murphy VII, Ph.D. Carnegie Mellon University {rjsimmon,nbeckman}@cs.cmu.edu The tom7.org foundation {tom7}@tom7.org Abstract tm 1 ⇓ x1 Algorithms that are fundamentally expressions of structural induction over a polynomial data type are famously awkward to implement in object-oriented programming languages, leading to three-day-bucket hacks like the “Visitor Pattern.” We show that the exception-handling mechanism present in most object-oriented languages already suffices. Conventional wisdom dictates that exceptions are in essence about the non-local propagation of errors. Upon close scrutiny, we find the contrary: exceptions are fundamentally about unchecked depth-1 structural pattern matching. We give examples of this programming idiom in Python, Perl, and Java. JavaScript requires a language extension, which we build and deploy. We then show how two styles by which this style may be re-integrated into programming languages in the ML family. We conclude by suggesting design changes that would facilitate the use of this idiom in other languages. Categories and Subject Descriptors Techniques]: Standards int(x) ⇓ x Using the pattern matching syntax present in the ML family of languages, the implementation of this big-step evaluation semantics is similarly straightforward: fun eval tm = case tm of Int x => x | Plus (tm1, tm2) => eval tm1 + eval tm2 We can also similarly implement a small step semantics for this language as defined by the following rules: int(x) value tm 1 value tm 2 → tm 2 + tm 2 tm 1 + tm 2 → tm 1 + tm 2 x 1 + x2 = x3 int(x1 ) + int(x2 ) → int(x3 ) The ML implementation is a straightforward implementation of these inference rules, with the exception of the need to define an additional cast function that we call to get the value of the enclosed integers once we know the terms to be a values.1 tm 1 → tm 1 + tm 2 → D.2.3 [Coding Tools and General Terms Algorithms, Design, Languages, Standardization Keywords pattern matching, recursion schemes, structural induction, python, perl, java, javascript, types 1. tm 2 ⇓ x2 x1 + x2 = x3 tm 1 + tm 2 ⇓ x3 Introduction Pattern matching is a convenient way of representing polynomial datatypes, which can be informally thought of as a generalization of tree-like data. An extremely simple example is an abstract syntax for a language with integers and addition: tm 1 tm 1 exception Stuck fun value tm = case tm of Int x => true | _ => false datatype tm = Int of int | Plus of tm * tm fun cast tm = case tm of Int x => x | _ => raise Stuck The big-step evaluation semantics for this language is quite straightforward: c 2010 by Robert J. Simmons, Nels E. Beckman, and Tom Murphy VII. Copyright Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ”Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED ”AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. fun step tm = case tm of Int x => raise Stuck | Plus(tm1, tm2) => if value tm1 then if value tm2 then Int(cast tm1 + cast tm2) else Plus(tm, step tm2) else Plus(step tm1, tm2) 1 In a language without static typing and with distinct varieties of values, these casts can, of course, fail if we get the wrong variety of value. 105 class tm: pass class Int(tm): def __init__(self, x): self.x = x class Plus(tm): def __init__(self, e1, e2): self.e1 = e1 self.e2 = e2 interface tm { public <T> T accept(Visitor<T> visitor); } class Int implements tm { int x; public Int(int x) { this.x = x; } public <T> T accept(Visitor<T> v) { return v.visit(this); } } class Plus implements tm { tm e1; tm e2; public Plus(tm e1, tm e2) { this.e1 = e1; this.e2 = e2; } public <T> T accept(Visitor<T> v) { return v.visit(this); } } def eval(tm): try: raise tm except Int: return tm.x except Plus: return eval(tm.e1) + eval(tm.e2) def value(tm): try: raise tm except Int: return True except: return False interface Visitor<T> { public T visit(Plus p); public T visit(Int i); } def step(tm): try: raise tm except Plus: if(not value(tm.e1)): return Plus(step(tm.e1), tm.e2) elif(not value(tm.e2)): return Plus(tm.e1, step(tm.e2)) else: return Int(tm.e1.x + tm.e2.x) public class VisitorExample { static int eval(tm tm) { return tm.accept(new Visitor<Integer>(){ public Integer visit(Int i) { return i.x; } public Integer visit(Plus p) { return p.e1.accept(this) + p.e2.accept(this); } }); } ex_1 = Plus(Plus(Plus(Int(1),Int(2)), Int(3)),Int(4)) print ("Evaluating: Plus(Plus(Plus(1,2),3),4) - " + str(eval(ex_1))) print ("Stepping x3: Plus(Plus(Plus(1,2),3),4) - " + str(step(step(step(ex_1))).x)) public static void main(String[] args) { tm ex_1 = new Plus(new Plus(new Plus(new Int(1), new Int(2)), new Int(3)), new Int(4)); System.out.println ("Evaluating: Plus(Plus(Plus(1,2),3),4) - " + eval(ex_1)); } Figure 2. Python pattern matching case study. mechanism, which Java also incorporates, is fundamentally about unchecked depth-1 structural pattern matching, we can seek to use exception handling to provide a similar sort of depth-1 structural pattern matching to the Java language and other object-oriented programming languages. The rest of the paper explores this possibility. } Figure 1. Case study implemented with the Visitor Pattern in Java. 2. While there is a somewhat more pleasant way to implement the Step function using nested pattern matching, we will only consider the “shallow” pattern matching we see here in this paper. 1.1 Discovery and implementation in Python Imagine we have the abstract syntax of our example encoded in Python in the standard way, as a class hierarchy where subclasses Int and Plus extend the basic abstract syntax class tm. class tm: pass class Int(tm): def __init__(self, x) self.x = x class Plus(tm): def __init__(self, e1, e2) self.e1 = e1 self.e2 = e2 Object-Oriented languages and the Visitor Pattern While ML-family languages suggest describing different types of syntax as different branches of a subtype, most object oriented languages suggest describing different types of syntax as different objects that either implement the same interface or extend the same subclass. The traditionally understood way of performing elegant recursion over these structures is known as the Visitor Pattern; the implementation of big-step evaluation using the Visitor Pattern can be seen in Figure 1. The Visitor Pattern, whatever its merits may be, is certainly quite different in character from the depth-1 pattern matching used in our ML example. However, because the exception handling The big-step evaluation semantics of this language could be written by explicitly using isinstance tests, but the repeated use of elif isinstance(tm, ...) is bulky and unsatisfying, which only becomes more true when the code has many, many branches: 106 class tm extends RuntimeException {} final class Int extends tm { final Integer x; Int(Integer x) { this.x = x; } } final class Plus extends tm { final tm e1; final tm e2; Plus(tm e1, tm e2) { this.e1 = e1; this.e2 = e2; } } def eval(tm): if isinstance(tm, Int): return tm.x elif isinstance(tm, Plus): return eval(tm.e1) + eval(tm.e2) else: raise RuntimeError Note the final line of the above code, which raises a runtime error if the evaluated term is neither an Int nor a Plus. This is important in case we extend the abstract syntax tree with more branches; we want something equivalent to the “nonexhaustive match exception” in an ML-family language. 2.1 Utilizing the exception handling mechanism public class PatternMatch { The first key observation for introducing our idiom is the fact that every single object in Python can be treated as an exception and thrown; the language designers suggest that exceptions derive from the Exception class, but there is no enforcement of this mechanism. The second key observation is that the branches of an exception handling call can check the object’s class tag when deciding which branch of the exception handling to consider. The motivation is to allow, say, a divide-by-zero error or a user-input error to be both caught at the same place but handled in different ways; we can use it, however, to do exactly the isinstance test from before in a more concise, pleasing notation: static Integer eval(tm tm) { try{throw tm;} catch(Int i) { return i.x; } catch(Plus p) { return eval(p.e1) + eval(p.e2); } } static Boolean value(tm tm) { try{throw tm;} catch(Int i) { return true; } catch(Plus p) { return false; } } def eval(tm): try: raise tm except Int: return tm.x except Plus: return eval(tm.e1) + eval(tm.e2) static tm step(tm tm) { try{throw tm;} catch(Plus p) { if( !value(p.e1) ) return new Plus(step(p.e1), p.e2); else if( !value(p.e2) ) return new Plus(p.e1, step(p.e2)); else return new Int ( ((Int)p.e1).x + ((Int)p.e2).x ); } } Furthermore, this form of evaluation introduces a natural notion of a nonexhaustive match exception: if we add new kinds of terms (say, a multiplication) and don’t handle them in the eval function, the very abstract syntax tree node that we did not handle will be thrown as an exception: an error that potentially contains much more helpful information than an ML Match exception! 2.2 Adaptation in Java The relatively-more-strongly-typed language Java also allows for the expression of our idiom by simply allowing every term to extend the class RuntimeException. Technically, all that is necessary for the use of our idiom is Exception, but by the use of RuntimeException we avoid dealing with compiler warnings caused by lack of exhaustiveness checking (similar to the use of the MLton SML compiler’s -disable-ann nonexhaustiveMatch option). Our case study can be seen implemented in Java in Figure 3. It is particularly critical that, in Java, the exception handling mechanism handles appropriately casting the term tm to an integer Int i or an addition Plus p. The typed nature of Java makes the repeated instanceof tests much more painful than they were in Python, because we must not only do repeated if-then-else statements but also downcast terms in branches where we statically know that the cast is safe already as a result of the instanceof test. The exception-handling idiom is free of this particular annoyance. 3. public static void main(String[] args) { tm ex_1 = new Plus(new Plus(new Plus(new Int(1), new Int(2)), new Int(3)), new Int(4)); System.out.println ("Evaluating: Plus(Plus(Plus(1,2),3),4) - " + eval(ex_1)); } } Figure 3. Java pattern matching example. 3.1 JavaScript JavaScript is a curly-like language oriented on the concept of JavaScript objects, which are functions [1]. The typical way to implement pattern matching would be to use a series of instanceof tests, like in Java or Python. As before, we’d like to improve this code to something like what appears in Figure 4. Unfortunately this does not work because it is not legal JavaScript code. It doesn’t parse or run or anything. A typical blunder: JavaScript denies the nature of exceptions by only allowing them to Implementation via language extension Some languages do not have the essential aspect required for case analysis to be implemented in the exception-handling mechanism. We describe an extensive effort to implement this functionality in JavaScript, as well as commenting on a language where that extensive effort had already been done: Perl. 107 var Int = function(i) { this.i = i; }; var Plus = function(tm1, tm2) { this.tm1 = tm1; this.tm2 = tm2; }; Function.prototype.enhance = function() { var s = ’’ + this; var name; if (s.indexOf(’function (’) == 0) { s = ’function $(’ + s.substr(’function (’.length); name = ’$’; } else { name = /function *([a-zA-Z0-9_$]+) *\(.*/m. exec(s)[1]; } var s = ’(function(){’ + rewrite(s) + ’\nreturn ’ + name + ’})()’; return eval(s); }; function big_eval(tm) { try { throw tm; } catch (Int(e)) { return e; } catch (Plus(e)) { return new Int(big_eval(e.tm1).i + big_eval(e.tm2).i); } catch (e) { throw ’stuck’; } } A function value’s source code might be a function declaration or a function expression.2 We put it in a normalized declaration form, giving the function the name $ if it doesn’t have one. We wrap the function declaration in another function and call it immediately, because functions are the only way3 to introduce new scopes in JavaScript (here thankfully the designers understood that the essence of functions is scope delineation). The bulk of the language extension is implemented in the recursive rewrite function. The function rewrites a source code string; the source code can represent a declaration or an expression or anything. Using strings to represent data helps us avoid tricky type errors that can arise when there’s a difference between expressions and declarations. The implementation of rewrite appears in Figure 7. The rewrite function parses the source code to find appearances of the catch keyword, then takes any with blocks that appear after them, and rearranges the code just so. It correctly handles the case that uses of the extension are nested, as well as recursivelyenhanced functions. The details of the implementation are subtle, mainly having to do with fiddly bits. An example may help the reader; the big-step evaluation from Figure 5 is translated to the code in Figure 7. Figure 4. Desired JavaScript code. function big_eval(tm) { try { throw tm; } catch (e) { throw ’stuck’; } with (Int(e)) { return e; } with (Plus(e)) { return new Int(big_eval(e.tm1).i + big_eval(e.tm2).i); } } Figure 5. Big-step evaluator, using the language extension. be used for the non-local propagation of errors, requiring a different language feature to be used for pattern matching (instanceof). In many languages we would be at an impasse. Luckily, the authors of JavaScript had the foresight to foresee the need to improve the language; it is possible for us to build language extensions within our programs. We can create a full-featured exception mechanism that we can then use to encode our programming technique. The extension works by co-opting the rarely-used with keyword to create a new iterated, pattern-matching try . . . catch construct. The above big-step evaluation code can then be written as in Figure 5. This is basically the same as in the previous languages, except as a stylistic choice the required default case is written first (it is legal for it to be blank or to re-raise the same exception). You can’t run this code because it is not legal JavaScript. If you try to run it JavaScript will be like, huh? because this is not what the with keyword does. To run the code you must first enhance the big_eval function using our language extension: It is worth noting in a smaller font that the language extension does not handle the case that source code appears inside string or regular-expression literals. Another way to put this is that the language extension successfully ferrets out not just uses of the new feature but mentions of it as well. 3.2 Perl Because of the pun on “Functional Pearl” we really wanted to implement this in Perl, but none of the co-authors really wanted to learn Perl and we couldn’t find Jason [4]. However, while Perl lacks the instanceof-checking exception capability that is critical to our purposes, there is a Perl module, Error.pm, that appears to enrich Perl with the necessary features by a strategy similar to the one we investigated for JavaScript.4 Unfortunately the name of this module also describes what happens when the authors tried to use it. 4. var tm = new Plus(new Int(5), new Int(2)); var f = big_eval.enhance(); alert(f(tm).i); Re-incorporation in ML Of course, the beautiful synthesis of exception handling and pattern matching can be ported back into Standard ML. Standard ML 2 It The enhance property is added to every function by our language extension. It enhances the semantics of the language to add the iterated try. . . catch. . . with construct. Running enhance returns a new function that works right. The extension works by converting the function value to source code, modifying the source code, and then evaluating the source code to get a new function value. might also be a native function, in which case we cannot enhance it. This is okay, because native functions probably did not use our language extension. 3 One can also use the with keyword but that might mess up the language extension, like if someone tries to enhance an already-enhanced function, or the enhancer function itself. 4 http://search.cpan.org/ shlomif/Error-0.17016/lib/Error.pm 108 function next(s) { var depth = 0; for (var i = 0; i < s.length; i++) { if (s[i] == ’{’ || s[i] == ’(’) { depth++; } else if (s[i] == ’}’ || s[i] == ’)’) { depth--; if (depth == 0) return { p: s.substr(0, i + 1), s: s.substr(i + 1) }; if (depth < 0) throw ’parse error’; } } throw ’parse error 2’; } function rewrite(s) { var out = ’’; for(;;) { var pos = s.indexOf(’catch’); if (pos >= 0) { pos += ’catch’.length; out += s.substr(0, pos); s = s.substr(pos); var parens = next(s); var body = next(parens.s); out += parens.p; var def = body.p; out += ’{\nif(0);’; for (;;) { s = /[ \n\t]*([\s\S]*)/m.exec(body.s)[1]; if (s.indexOf(’with’) == 0) { var s = s.substr(’width’.length); var pp = next(s); var body = next(pp.s); var ce = pp.p.substr(1, pp.p.length - 2); var ctor = ce.substr(0, ce.indexOf(’(’)); var e = next(ce.substr(ce.indexOf(’(’))).p; out += ’ else if (’ + e + ’ instanceof ’ + ctor + ’) ’ + rewrite(body.p); s = body.s; } else { break; } } out += ’ else ’ + rewrite(def) + ’}’; } else { out += s; break; } } return out; } Figure 6. The rewrite function, which implements the bulk of the language extension. includes a single extensible datatype, named exn, which also happens to be the type of ML exceptions. A typical elegance: ML emphasizes the dual purpose of exceptions as both a mechanism for non-local error propagation and for pattern matching by using the exception keyword to extend the exn datatype: (function(){function big_eval(tm) { try { throw tm; } catch (e){ if(0); else if ((e) instanceof Int) { return e; } else if ((e) instanceof Plus) { return new Int(big_eval(e.tm1).i + big_eval(e.tm2).i); } else { throw "stuck"; }}} return big_eval})() Figure 7. The automatically-enhanced version of Figure 5. structure PatternMatch = struct exception Int of int exception Plus of exn * exn fun eval tm = (raise tm) handle Int x => x | Plus (tm1, tm2) => eval tm1 + eval tm2 fun value tm = (raise tm) handle Int x => true | _ => false fun cast tm = (raise tm) handle Int x => x fun step tm = (raise tm) handle Plus(tm1, tm2) => if value tm1 then if value tm2 then Int(cast tm1 + cast tm2) else Plus(tm, step tm2) else Plus(step tm1, tm2) val main = let val ex_1 = Plus(Plus(Plus(Int 1,Int 2),Int 3),Int 4) in print ("Evaluating: Plus(Plus(Plus(1,2),3),4) - " ^ Int.toString (eval ex_1) ^ "\n\n"); print ("Stepping x3: Plus(Plus(Plus(1,2),3),4) - " ^ Int.toString (cast(step(step(step(ex_1))))) ^ "\n\n") end end Figure 8. Re-implementation into SML. The SML parser requires that (raise tm) be surrounded by parenthesis, but otherwise the code retains its essential character, exception Int of int exception Plus of exn * exn 109 Acknowledgments as shown in Figure 8. Of course, because the extensible datatype exn is itself amenable to standard case-analysis, we could instead define our syntax as branches of the exn as we do in Figure 8 and still do a regular pattern-match on it: Milo Polte was instrumental in the discovery of this idiom by encouraging the first author to learn Python. Neel Krishnaswami was the first person who observed that this discovery was probably ridiculous, and Noam Zeilberger reminded the first author what orpatterns are and how they work. fun eval tm = case tm of Int x => x | Plus (tm1, tm2) => eval tm1 + eval tm2 References [1] ECMA. ECMAScript language specification. Technical Report ECMA262, ECMA, December 1999. [2] N. R. Krishnaswami. Focusing on pattern matching. In POPL ’09: Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 366–378, New York, NY, USA, 2009. ACM. ISBN 978-1-60558-379-2. doi: http://doi.acm.org/10.1145/1480881.1480927. [3] F. Pfenning and C. Schürmann. System description: Twelf - a metalogical framework for deductive systems. In H. Ganzinger, editor, CADE, volume 1632 of Lecture Notes in Computer Science, pages 202– 206. Springer, 1999. [4] J. Reed. Gd and l - systems. The Perl Journal, 3(1), 1998. [5] R. J. Simmons. Functional Perl: Recursion schemes in Python (extended case study). Documented code example(s). ACH-BOVIK-2010003, Association for Computational Heresy, Pittsburgh, Pennsylvania, 2010. There are two problems with this approach, however. First, in the case of an unhandled piece of syntax we get an uninformative Match exception instead of the offending piece of syntax itself. Second, we because SML attempts to do exhaustiveness checking on case analysis, every case analysis on an exn that does not have a catch-all case runs afoul of the static exhaustiveness checking. Getting a lot of non-exhaustive match warnings when compiling doesn’t bother some people, but it can be annoying [3]. 5. Conclusion and future work There is much work to be done in exploring the beautiful synthesis of exception-handling and pattern matching. For instance, a serious shortcoming of our exception-handling case analysis is that it does not allow nested case analysis, which suggests a new language feature – nested exception handling – for Java/Python family languages. Similarly, the exception-handling idiom allows Java/Python family languages to do a particularly crazy duck-typing-ish thing. Say I want to just enumerate all the integer subterms of my expression, which is extended from the example in the paper to include Plus, Minus, Times, and Div. As long as I called the left hand subterm e1 and the right-hand subterm e2 across these different terms, I can write this code very concisely in Python: def subterms(tm): try: raise tm except Int: print "Subterm: " + str(tm.x) except (Plus, Minus, Times, Div): subterms(tm.e1) subterms(tm.e2) ex_1 = Plus(Times(Div(Int(1),Int(2)), Int(3)),Minus(Int(4),Int(9))) subterms(ex_1) Similarly, in Java this could be done by making all the binary operations extend a tmBinary class that, in turn, extends the tm class. In JavaScript, we can continue our approach of implementing Java- and Python-like extensions via syntactic rewrites and then use them in an idiomatic way to simulate a native pattern matching feature. We might think to ask that such functionality be incorporated into ML family languages, were it not for the fact that it’s already there by way of one of the wackier SML-NJ-specific extensions of Standard ML, “or-patterns,” which apparently aren’t any more insane than focusing was already [2]. fun subterms tm = case tm of Int x => print("Subterm: " ^ Int.toString x ^ "\n") | (Plus(t1,t2) | Times(t1,t2) | Mult(t1,t2) | Div(t1,t2)) => (subterms t1; subterms t2) For a larger code example (the implementation of the static and dynamic semantics of Plotkin’s PCF), see our extended technical report [5]. 110 First Year Student’s Thoughts on Reflections on Bovik’s Seminal Work: Professional Student’s Strategy for Perpetual Funding at CMU Athula Balachandran, Richard Peng, Wolfgang Richter School of Computer Science, Carnegie Mellon University, USA abalacha@cs.cmu.edu, yangp@cs.cmu.edu, wolf@cs.cmu.edu It’s going to work [1] [2]. 1 References 1. Harry Q. Bovik. Professional student’s strategy for perpetual funding at cmu. Technical Report CMU-CS-93-000, Carnegie Mellon University, May 1993. 2. Dean Sutherland and Maverick Woo. Reflections on bovik’s seminal work: Professional student’s strategy for perpetual funding at cmu. In A Record of The Proceedings of SIGBOVIK 2009, page 3, 2009. 1 hopefully 111 112 Feasibility Analysis of Cooking Spaghetti with Meatballs Ben Blum (bblum@andrew.cmu.edu) 2010.04.01 1 Abstract In this paper we study the major contributing factors to the possibility of making spaghetti with meatballs for dinner tonight. Several different environmental factors are considered, and overall benefit weights are assigned to each, so that results may be comprehensively analyzed for a final result. We studied the available ingredients in the kitchen, and for those required ones that happen to be missing, further analysis is performed to determine whether or not a substitute can be provided from those available or if a trip to the grocery store must be taken. Furthermore, we measure the amount of available time this afternoon and evening, and determine the amount of which we would need to set aside to perform cooking tasks, assuming optimal parallelization. Halfway through the investigation, however, it was determined that we actually wanted chinese takeout, and so efforts were abandoned. 113 114 ! " # ! # $% & ' ! ( )) ! * +%,#+-..) " #$ %$& '( 115 " !$ ", '$ ( "- & " $ '$ ( '* "/ & $ 0 $ ( $& "+ '$ ( 116 "6 '&&* 7*($0 + '&&* /!/ , 011 1&2 ! ' 011 1Ŗ ' $011 / 1 117 118 A novel approach to managing information overload in syndicated feed readers Matt Mets March 21, 2010 Abstract With the rapid expansion of digital news services, and the trend for users to select content personally, sorting through the available content quickly becomes a major hangup for consumption of content. A user can quickly find themselves overwhelmed, and unable to keep up with the ever-increasing number of news items available. People suffer from information overload when dealing with their online content, however they are perfectly capable of handling high-information video games. In this paper, I present a novel method for dealing with this situation. Reaching to the entertainment industry for inspiration, this new method presents news items as entities in a virtual space, and allows the user to quickly deal with them using a simple set of familiar tools, including a laser gun, and star bomb. 119 120 i1JNQ .Z -JCSBSZu *T "O "ŀSPOU 5P 1JNQFST 0G ǔF 8PSME &WFSZXIFSF %S %POOB . .BMBZFSJ 1I% "CTUSBDU *U JT UP UIJT MBTU VTBHF PG 8QUX UIBU XF PCKFDU " QIZTJDBM -JCSBSZ NBZ CF QJNQFE CZ NFBOT PG DPM PSGVM MPHPT -$% TDSFFOT -&% IFBE BOE UBJM MJHIUT SBDJOH DBS TFBUT DISPNF SJNT B TQJOOJOH CPXM JOH CBMM B QPQDPSO NBDIJOF B DMPUIFT ESZFS JO UIF CBDLTFBU BOE TP PO #VU IPX DBO TVDI UIJOHT CF BEEFE UP B EJHJUBM DPNQVUFS TPGUXBSF -JCSBSZ *OTQJSFE CZ UIF BNB[JOH TVDDFTT PG .57T i8QUX .Z 3JEFu <> UIF USBOTJUJWF WFSC GPSN PG iQJNQu IBT TQSFBE BDSPTT UIF *OUFSOFU 4BEMZ UIF PSJHJOBM NFBOJOH PG UIF QISBTF IBT OPX CFDPNF EJTUPSUFE UP UIF QPJOU UIBU JU JT B TFSJPVT BŀSPOU UP UIF "NFSJ DBOBEJBO MBOHVBHF 4XJTT "SNZ ,OJGF -BOHVBHF 6TFT 1SFMJNJOBSJFT 0O 0DUPCFS 1SPGFTTPS .BSUJO 0EFSTLZ IFSFBGUFS SFGFSSFE UP BT 4DBMJOWFOUPS JO GBNPVTMZ TVHHFTUFE <> UIBU +BWB™ BOE 4DBMB&1'- MJCSBSJFT CF iQJNQFEu UISPVHI B NFDIBOJTN UIBU BMMPXT BEEJOH OFX NFUIPET UP FYJTUJOH DMBTTFT 4BEMZ UIJT JT BO IVHFBTT NJTVTF PG 8QUX UIBU IBT DBVTFE DPOTJEFS BCMF DPOGVTJPO JO UIF "NFSJDBOBEJBO MBOHVBHF <> /PX 4DBMJOWFOUPS CFJOH B (FSNBO 8IJUF %VEF DBOOPU CF GBVMUFE GPS IJT MBDL PG LOPXMFEHF BCPVU 3BQ $VMUVSF BO "NFSJDBO *OWFOUJPO PS %JTDPWFSZ EFQFOEJOH PO POFT QPJOU PG WJFX #VU ZFU XF DBO UPUBMMZ ZFMM BU UIF CMPH QPTU GPS CFJOH JHOPSBOU PG UIF USVF NFBOJOH PG 8QUX "DDPSEJOH UP NZ 04 9 4OPX -FPQBSE <> EJDUJPOBSZ iQJNQu IBT UIF GPMMPXJOH NFBOJOH WFSC < JOUSBOT > <PGUFO BT O > QJNQJOH BDU BT B QJNQ 6TFT • 1JNQ .Z 4FBSDI <> • 1JNQ .Z4QBDF <> • 1JNQ .Z 4OPXNBO <> • 1JNQ .Z #SJEF <> 4QFDJêDT • 1JNQ .Z -JCSBSZ < > ǔF 0SJHJOBM 1FDVMJBS 1PTU <> IFSFBGUFS SFGFSSFE UP BT 011 JOUSPEVDFT 4DBMB QSPHSBNNFST UP B QSP HSBNNJOH QBUUFSO XIFSFCZ OFX NFUIPET DBO CF BEEFE UP FYJTUJOH DMBTTFT /PX UIFSF BSF B OVN CFS PG %PDUPST PG 1IJMPTPQIZ UIF BVUIPST JODMVEFE UIBU êOE UIJT UP CF B VTFGVM BOE XBZDPPM QSPHSBN NJOH MBOHVBHF GFBUVSF <> #VU EPFT JU SJTF UP UIF MFWFM PG 8QUX 8F UIJOL OPU *O UIF 011 XF TFF UIF GPMMPXJOH VTF PG OPUSFBMMZ 1JNQJOH 0CKFDUJPOBCMF 6TFT 4BEMZ QPQVMBS VTFT PG UIF UFSN GBS TIPSU PG UIF PSJH JOBM NFBOJOH PG UIF UFSN 8F CFMJFWF UIF NPTU FHSF HJPVT FYBNQMF JT i1JNQ .Z -JCSBSZu ǔFSF BSF UXP TFOTFT JO XIJDI B -JCSBSZ NBZ CF 8QUXML JU NBZ CF TPME JOUP QSPTUJUVUJPO PS JU NBZ CF QJNQFE PVU ǔFSF BSF BMTP BU MFBTU UXP TFOTFT PG -JCSBSZ IFSF JU NBZ SFGFS UP B QIZTJDBM TUSVDUVSF FH <> PS UP EJHJUBM DPNQVUFS TPGUXBSF /P KPLFMPPL JU <> VQ ZP ZFBI ZPV LOPX NF 121 cL DLD y Rdy xy D NC vyD 'JHVSF 5SVF -JCSBSZ 8QUXQVO UISPVHI WBMJE 4DBMB DPEF BOE JOWBMJE GPOUT ʰ ſɨř ɩř ɪƀ ʰ ſɫř ɬř ɭƀ ʰ $PODMVTJPOT 4P OPX UIF NFBTMZ ŜŜ TVQQPSUT BO NFUIPE "SHVBCMZ ŜŜ JT TP DPWBSJBOU BOE MBNFBTT UIBU BOZ BEEJUJPO UP JU NJHIU XFMM CF DBMMFE 8QUXQVO JU PVU #VU UIF BVUIPST BT XFMM BT BMM NFNCFST PG UIF *OUFSOBUJPOBM $PBMJUJPO GPS UIF 1SPUFDUJPO PG 1JNQT BOE 1JNQJOH *$111 CFMJFWF UIBU 9[JCJU 2 "MFY *TI .BE .JLF #JH %BOF 4IBF FU BM XPVME CF BQQBMMFE BU UIF BNPVOU PG 8QUXQVO SFNBJOJOH UP CF EPOF 3FBM EJHJUBM DPNQVUFS TPGUXBSF -JCSBSZ 8QUXQVO NVTU JODMVEF BU UIF WFSZ NJOJNVN UIF VTF PG BU MFBTU POF EJOHCBU "EEJUJPOBMMZ TBJE EJOHCBUT NVTU CF CBEPOLBEPOLJDBM 3FGFSFODFT <> ŜŜ ŵ <> 04 9 4OPX -FPQBSE WFSTJPO <> Ŝ Ŝ ŵ -FU UIF 3FBM 8QUXQVO #FHJO <> Ŝ Ŝŵ <> ŜŜ ŵ <> ŜŜ ŵ ţʰɏɪɨɰɫ ǔJT QBQFST OPWFM EJTDPWFSZ JT UIBU UIF DPNCJOBUJPO PG 6OJDPEF 5PNCBUT <> BOE 4DBMB <> BMMPX VT UP USVMZ 8QUX PVS -JCSBSJFT 'PS JOTUBODF UP 8QUX ŜŜ XF NBZ XSJUF UIF DPEF JO 'JH GPOU FOMBSHFE GPS UIPTF IBSE PG SFBEJOH "GUFS UIPTF EFêOJUJPOT XF NBZ XSJUF UIF GPMMPX JOH QSPHSBN <> ŞŞŜŜ ŵ <> śŵŵŜŜ ŵŵŜţ ʰɨɮɰɮɭɭ <> "CPVU SFTVMUT TBZT (PPHMF <> ŜɮŜ ŵɰɯŜ <> Ŝ ŞŜ <> .BMBZFSJ %POOB $PEJOH 8JUIPVU :PVS $SZTUBM #BMM 6OBO UJDJQBUFE 0CKFDU0SJFOUFE 3FVTF 1I% UIFTJT $BSOFHJF .FM MPO 6OJWFSTJUZ 1JUUTCVSHI 1" 64" NxvR "Pimp Me Out" ǔJT DPEF BDUVBMMZ XPSLT OP KPLF 0L TP ZPVE IBWF UP QVU JO UIF DIBSBDUFST JOUP TPNF VOVTFE 6OJDPEF DPEF QPJOUT BOE MPBE VQ UIF GPOU CVU UIBUT KVTU JNQMF NFOUBUJPO EFUBJMT BOE GVUVSF XPSL "MUFSOBUJWFMZ ZPV DPVME KVTU DIBOHF UIF GPOU PG TFMFDU DIBSBDUFST XIJDI JT XIBU * EJE 3VOOJOH UIJT QSPHSBN JO UIF 4DBMB JOUFSQSFUFS ZJFMET #JUDIFT 122 Computation in the Complex Time Plane Matthew Rodriguez School of Computer Science Carnegie Mellon University Pittsburgh, PA, 15213 March 20, 2010 Abstract For a long time, computer scientists have been stuck on certain problems that seemed to be impossible to solve efficiently, or even at all. More frustratingly, some of them were inversifications of trivially easy problems, such as factoring to multiplication. In an attempt to solve these problems, uncomputation was developed. It happened on a fortuitous day when a clever programmer (that is to say, I) realized that by simply reversalating a program, it could be run backwards, and its inputs could be deduced from its outputs in the same time as it would take to run the program forward. Up until this paper, I had kept uncomputation a secret, but now that I am finished my research into the area, I am ready to unleash it upon the world. It is with great pleasure that I present the exciting new field of uncomputation. As this paper will demonstrate, uncomputation is a revolutionary new field of computation that will enable us to do amazing feats that were previously unfeasible, and with incredible speed. 1 The Basics of Uncomputation As you know, there exists a trivial algorithm to multiply two n-bit numbers in O(1) time. Just use the * operator and let the deep ECE magic inside your computer do the rest. By simply taking the reverse of this algorithm, we can now unmultiply (or factor if you insist), two numbers in O(−1) time. The minus, of course, comes from the fact that the algorithm is running backwards and concludes before it begins. A simple implementation in C is given below. } ;b * a nruter { (b tni ,a tni) ylpitlum tni Those who are not used to writing unprograms may not be able to see it, so I would like to point out that there is a tab at the end of the second line for 123 unreadibility. I have found many other uses for uncomputation. One such use is undelete. If you think this simply lets you recover files you have deleted, you are sorely underestimating it. You can undelete anything. Some examples are below. undelete undelete undelete undelete meaning_of_life.txt upcoming_winning_lottery_numbers.txt grand_unified_theory.tex lost_works_of_shakespeare.zip Not all of uncomputation is useful. For example, there’s never any real desire to unsort a list. Uncomputation is not meant to completely replace computation, only to act as a supplement. Still, undelete alone obsolesces so much of existing computer science and other forms of uncomputation that I will conclude here and proceed to the next topic. 2 Imaginary Computation Let there be a problem Π with two implementations, √ Q and Q̂, such that Q has running time O(n) and Q̂ has running time O( n). Q̂ is an optimization of Q. If we simply negate √ these algorithms, we get −Q and −Q̂, with running times O(−n) and O(− n) respectively. Nothing surprising so far. However, if ˆ with we first negate Q√and then optimize it, we get a different algorithm, −Q, √ running time O( −n), or O(i n). This algorithm is equivalent to iQ̂. As the running time indicates, it runs in imaginary time, and we must now generalize our concept of time to include the imaginary time axis. How does this work in the real world where time√only flows from past to future? It’s simple, really. The real component of i n is 0, so it concludes instantly from your point of view. What’s really going on is that the computation is started by your imaginary past self and runs for a certain amount of imaginary time before concluding with you, located at (now, imaginary now) in the complex time plane. You, in turn, begin the computation and it proceeds toward your imaginary future self. Here is a diagram: Although this example was a little contrived, it can be generalized to many other traditional computation problems, but not all. On the other hand, there are problems that can only be solved by imaginary computation. In that sense, 124 it is similar to uncomputation. Of course, imaginary uncomputation is useful as well. 3 Complex Computation To combine the unique capabilities of computation, uncomputation, and imaginary computation, we need the capability to do both at once. Fortunately, we can do this with threads. We can set one thread to run in real time, and another to run in imaginary time, and two more to run backwards and imaginary backwards. As you might expect, complex multithreading is an intimidating prospect. However, unknowingly, we have already been making use of imaginary computation in video games. How else could Solid Plissken talk to Big Snake over the codec without any time passing for the mans around him? By studying the use of complex computation in video games like Hard Metal Gear, we will be able to apply it to other fields as well. However, that is the extent of my current research. These are my references. Myself, Harry Q. Bovik for helping me prepare this paper and teaching me how to make very good LaTeX papers, Isaac Newbton for helping me develop a system for notationalizing the symbolology, and Hideous Kojima for making Hard Metal Gear. 125 126 Track 1 Perplexity Theory О ach SHALL I AT LEAST SET MY LANDS IN ORDER? The Reviewers Must Be Crazy ......................................................129 C. J. Deere О LONDON BRIDGE IS FALLING DOWN FALLING DOWN FALLING DOWN FAIL-Talk: Fully Automatic Incomprehensible Language Talks ..135 Alga Rhythm О POI S’ASCOSE NEL FOCO CHE GLI AFFINA An Analysis and Redesign of the Evacuation Instructions in an Academic Office Building .............................................................139 I. B. Gone, U. Cower О QUANDO FIAM CEU CHELIDON—O SWALLOW SWALLOW All my friends’ researches are cooler than mine ............................143 Chris A. Maphone О LE PRINCE D’AQUITAINE À LA TOUR ABOLIE How to successfully prevent the flow of information in research presentations ....................................................................145 Kami Vaniea О THESE FRAGMENTS I HAVE SHORED AGAINST MY RUINS An Alternate Construction Method for the Surreal Numbers ........153 Jim McCann 127 (continued on next page) Track 1 Perplexity Theory (continued) О ach WHY THEN ILE FIT YOU. HIERONYMO’S MAD AGAINE. The first paper on SAMIR – ANVESH..........................................155 SAMIR Sapra and ANVESH Komuravelli О DATTA. DAYADHVAM. DAMYATA. The second paper on SAMIR – ANVESH.....................................157 SAMIR Sapra and ANVESH Komuravelli О SHANTIH SHANTIH SHANTIH The third and the last paper on SAMIR – ANVESH .....................139 SAMIR Sapra and ANVESH Komuravelli 128 The Reviewers Must Be Crazy A Plea For Sanity in Peer Review C. J. Deere March 13, 2010 Abstract this disturbance in the sense of self can lead to periods of dissociation. While reviewing a conference paper recently, the author noted that one of the options given as an evaluation of the paper was ‘borderline’, an entirely precise and informative assessment in a sea of unrelated measures such as ‘strong reject’ and ‘weak accept’. This paper proposes a reviewing process that is compatible with current psychiatric best practices. 1 Introduction We see in Figures 1 and 2 a typical review request form send by a PC member to a grad student who might maybe possibly have some idea of what the paper is about, at least enough to make a plausiblesounding case for rejecting it. Tellingly, the option of ‘borderline paper’ comes up all too frequently. Wikipedia, via the fourth edition of the Diagnostic and Statistical Manual of Mental Disorders (DSM-IV) tells us that Borderline personality disorder (BPD) is a personality disorder defined in DSM-IV and described as a prolonged disturbance of personality function in a person (generally over the age of eighteen years, although it is also found in adolescents), characterized by depth and variability of moods. The disorder typically involves unusual levels of instability in mood; black and white thinking, or splitting; chaotic and unstable interpersonal relationships, self-image, identity, and behavior; as well as a disturbance in the individual’s sense of self. In extreme cases, We note that indeed, ostensibly for “budgetary reasons”, very often color printing is disallowed, thus leading to an extremely black and white expression of the author’s intent. Most authors are over the age of eighteen. Mood instabilities frequently result from notification of paper rejection or acceptance. Authors constantly write ‘we’ in place of ‘I’, even in single-author publications — this is plainly a severe “disturbance in the sense of self”. 2 Prognosis The general ambience of of academic writing and publishing is plainly a psychologically toxic environment, so much so that even the designers of the review form let the fact slip out in their choice of wording. A cry for help, as it were. We propose that reviewers should be able to take advantage of the most up-to-date classification schemes developed by expert psychologists in order to assess their peers’ work more honestly. Our proposed conference review form is given in Figure 3, and we give below representative examples of the sort of writing that is meant to merit each assessment. 3 Examples In this section we take 129 3.1 Manic Interpreting linear logic as a lambda calculus yields linear function types, which are required to use their argument exactly once. Interpreting linear logic as a lambda calculus yields linear function types, which are required to use their argument exactly once. Interpreting linear logic as a lambda calculus yields linear function types, which are required to use their argument exactly once. Interpreting linear logic as a lambda calculus yields linear function types, which are required to use their argument exactly once. Oh man that is so awesome. I’m gonna to write a thousand-page novel about linear types and it’s gonna — they’re gonna make a movie about it and I’ll be so rich and famous and woo linear types! 3.2 3.6 Schizophrenic Interpreting linear logic as a lambda calculus yields linear function types, which are required to use their argument exactly LET’S RIDE BIKES! Interpreting linear logic as a lambda calculus yields linear function types, which are required to use their argument exactly once. Well, that’s what the GOVERNMENT wants you to think, anyway. They implanted contexts of linear hypotheses behind my ears. They’re controlling my thoughts via algebras of resource possible worlds. The proof-terms tell me to do things. Very bad things. 3.3 3.7 Antisocial Borderline Interpreting linear logic as a lambda calculus yields linear function types, which are required to use their argument exactly once. Fuck you. Oh, I’m sorry, I didn’t mean to say that. It’s just that I care about you so much. Fuck you. 3.5 Depressive Interpreting linear logic as a lambda calculus yields linear function types, which are required to use their argument exactly once. And then it’s all used up. I can never get that resource again. What’s the point of going on, then? I loved that linear resource. I’m never going to be able to have it, never, ever again. Sigh. Interpreting linear logic as a lambda calculus yields linear function types, which are required to use their argument exactly once. Fuck you. 3.4 ADHD Obsessive-Compulsive Interpreting linear logic as a lambda calculus yields linear function types, which are required to use their argument exactly once. 130 Date: Thu Apr 1 11:12:09 2010 From: mr@cs.cmu.edu To: bovik@cs.cmu.edu Subject: BLEEP’10 #72 -- Review Request Dear [Reviewer], below is the review form for the paper *** *** *** *** SUBMISSION NUMBER: 42 TITLE: On Dewubulating Widgets AUTHORS: J. Blow PC MEMBER: Dr. Michael Romanage submitted to BLEEP’10. I need your review back by email by Wednesday Mar 31 (i.e., yesterday) so I can integrate it with my own half-baked notions and submit to EasyChair on time. Thanks, Mike ---------------------------------------------------------------- For your convenience, this form can be processed by EasyChair --- automatically. You can fill out this form offline and then --- upload it to EasyChair. Several review forms can be uploaded --- simultaneously. You can modify your reviews as many times as --- you want. --- When filling out the review form please mind --- the following rules: --- (1) Lines starting with --- are comments. EasyChair will --ignore them. Do not start lines in your review with ----as they will be ignored. You can add comments to the --review form or remove them --- (2) Lines starting with *** are used by EasyChair. Do not --remove or modify these lines. -------------------------------------------------------------*** REVIEW FORM ID: 24561::9999 *** SUBMISSION NUMBER: 42 *** TITLE: On Dewubulating Widgets *** AUTHORS: J. Blow *** PC MEMBER: Dr. Michael Romanage -------------------------------------------------------------*** REVIEW: --- Please provide a detailed review, including justification for --- your scores. This review will be sent to the authors unless --- the PC chairs decide not to do so. This field is required. Figure 1: Typical Review Form, part 1 131 SUMMARY + Pluses: - Minuses: -------------------------------------------------------------*** REMARKS FOR THE PROGRAMME COMMITTEE: --- If you wish to add any remarks for PC members, please write --- them below. These remarks will only be used during the PC --- meeting. They will not be sent to the authors. This field is --- optional. ---------------------------------------------------------------- If the review was written by (or with the help from) a --- reviewer different from the PC member in charge, add --- information about the reviewer in the form below. Do not --- modify the lines starting with *** *** REVIEWER’S FIRST NAME: (write in the next line) *** REVIEWER’S LAST NAME: (write in the next line) *** REVIEWER’S EMAIL ADDRESS: (write in the next line) ---------------------------------------------------------------- In the evaluations below, uncomment the line with your --- evaluation or confidence. You can also remove the --- irrelevant lines *** OVERALL EVALUATION: --------------- 3 (strong accept) 2 (accept) 1 (weak accept) 0 (borderline paper) -1 (weak reject) -2 (reject) -3 (strong reject) *** REVIEWER’S CONFIDENCE: ----------- 4 3 2 1 0 (expert) (high) (medium) (low) (null) *** END -------------------------------------------------------------- Figure 2: Typical Review Form, part 2 132 *** *** *** *** REVIEWER’S REVIEWER’S REVIEWER’S REVIEWER’S FIRST NAME: (write in the next line) LAST NAME: (write in the next line) EMAIL ADDRESS: (write in the next line) CONSULTATION FEE: (enclosed) *** OVERALL EVALUATION: --------------- 3 (manic) 2 (schizophrenic) 1 (antisocial) 0 (borderline) -1 (obsessive-compulsive) -2 (ADHD) -3 (depressive) *** REVIEWER’S CONFIDENCE: ----------- 4 3 2 1 0 (I can spell words with all the letters after my name) (herr doktor) (doctor) (well my family’s pretty crazy on average) (read something about psychology in "popular science" once) *** PRESCRIPTION: ----------- 4 3 2 1 0 (electroshock) (brand-name medication) (generic medication) (therapy) (placebo) *** END -------------------------------------------------------------- Figure 3: Revised Review Form 133 ach sigbovik Plenary Program Committee 2009 Confidential Paper Reviews Paper 12: The Reviewers Must Be Crazy Reviewer 1 Rating: 3 (strong accept) Confidence: 4/4 The paper (which I clearly didn’t read, I just read and review things based on their bylines and titles anyway) makes a strong case that the reviewers must be crazy. This insightful, necessary, and longoverdue conclusion is then supported by several pages of text that I didn’t read as well as a figure or two that I might or might not have cursorily examined. The author might or might not have included a conclusion or two as well as a call for future work at the end of the paper. If he did, I have to confess that I really didn’t get that far. But hey, that happens sometimes, right? As a reviewer myself, I can vouch for the author’s results and conclusions (by which I mean, his title) since I might or might not be crazy. Therefore his work must be true since I am always right. QED.Of course, I must follow every reviewer ever by giving the same comment: your work is excellent/good/ adequate/fair/poor/omgburnitwithfire but you need to cite more of the empirical literature. As this review is now in the public domain, I highly encourage you to cite this and raise my citation count so I can get tenure and stuff. You know, because I really want to be cited by a paper that suggests that all reviewers are crazy. Deans can’t read but deans can count, right? Hey actually, that could be a paper someday, just don’t steal that idea....or if you do, just cite me and we’ll all be good. STORNG ACCEPT!!!11!!one one one 134 FAIL-Talk: Fully Automatic Incomprehensible Language Talks Alga Rhythm Abstract FAIL-Talk The author previously introduced Auto-TALK, a solution for making boring, text-based talks much more interesting [1]. A potential problem with Auto-TALK is that speakers can become too interesting and students may be requested to give many talks at seminars, taking valuable time away from research. In this work, a “metaphorical inverse” FAIL-Talk is introduced, which solves the too-many-talks-not-enough-time problem. • Making a fun talk is hard • Auto-TALK solved this problem • Making too many good talks introduces new problems – Talks too interesting – Asked to give too many talks • Introducing: FAIL-Talk – No one should ever ask again Figure 1: Initial slide, pre-transformation 1 Introduction No one (initially) wants to give a bad talk. In prior work, Auto-TALK [1] was introduced a solution to the endemic problem of boring talks. It incorporated pictures of puppies, kittens and YouTube videos to gather and hold audience attention. An unfortunate side effect may be students being so interesting that the demand for talk impinges on valuable research time. This is known as the too-many-talks-not-enough-time problem: grad students only have so much time, and preparing talks takes time which could otherwise be spent on research. Our proposal to remedy this travesty is FAILTalk. Like Auto-TALK, FAIL-Talk provides a concrete set of steps (an algorithm, if you will) to transform a talk into a new “improved” talk. Unlike Auto-TALK, the goal of a FAIL-Talk transformation is to discourage requests for further talks. Ever. We will utilize simple strategies to transform talks from basic but comprehensible to completely incomprehensible. Our toolkit is easy, adaptable, and multi-purpose, able to be deployed cross-discipline without much adaptation. 2 FAIL-Talk Transformations There are three main techniques for making a basic talk horrible: talking too fast, unintelligible slides, and random incorporation of multivariable integrals. 135 2.2 Unintelligible Slides FAIL-Talk The less sense the slides make, the less people will enjoy a talk and the less they’ll want to repeat an experience. (While the author has no proof of this statement, it appears reasonable.) So rather than black text on a white Triangles – Talks too interesting Forever background, brown text on a black background – Asked to give too many talks is recommended. Whenever possible, animations • Introducing: FAIL-Talk should be used to cover text with completely useBoom! – No one should ever ask again Bang! less block diagrams. (Note: it is important that x y z x sin x 17 dzdydx the block diagram be completely unrelated to the talk). Figure 2: After the addition of random shapes If this is insufficient, more drastic measures with text, an integral, and text perturbation in can be taken. Text can be perturbed with rananother language (here, mostly Greek)). dom characters from other languages to ensure slides make absolutely no sense. It is important to note that stripping the talk FAIL-Talk of all relevant images/video and inserting bullet points randomly and with high frequency are • M•aking a fun talk is hard Blue is pretty! also highly recommended. • AUTO-Talk solved this p•••roblem • Making a fun talk is hard Blue is pretty! • AUTO-Talk solved this problem • Makßing too many good talks introduces new problÞems yz 2 x y 5x y x y z • Makßing too many good talks introd•uces n•ew pr•oblÞems 2.3 Triangles – Talks too int•eresting•• Forever – Asked t•o give too many talks • Introducing: F•A•I•L-T•a•l•k Boom! – No one should ever ask aga•in Bang! x yz 2 y x z y x 5 x sin x 17 dzdydx y x y z Figure 3: Black background, brown text, and extra bullets for intra-word emphasis devastate any remaining comprehensibility. 2.1 Talking Too Fast Incorporating Multi-Variable Integrals To complete the transformation, some −percentage of slides should have multivariable integrals added, such as ∞ ∞ ∞ 2 y xyz +y x z y x5x |sin(x) + 17| dzdydx x=−∞ y=−∞ z=−∞ The harder the integrals are to solve, the better; the integrals should have no relevance whatsoever to the talk. (In the event that integrals seem too drastic, other mathematical equations can be inserted, with lesser effect). The author asserts that talks become harder to understand in proportion to the speed the pre2.4 Commutativity of transforms senter speaks. The easiest transformation, then, is simply for the presenter to speak as quickly as While the transforms provided may not comhe/she can. pletely commute (example: the order which two 136 Not Inverses Not Inverses • Sometimes So ometimes it its ttss ha h hard ard to u undo o things th • Ev Even ven if it seem seems ms like A m Auto-TALK and FAIL-Ta FAIL-Talk T lk aree inverses, inve vers ve erses es, d do don’t on n’’t be be d deceived eecceived POW!!!! • They hey e aaren’t ey rreen n’’t • So Sometimes ometimes it its ts ha h hard ard to u undo o things th • Ev Even ven if it seem seems m like A Auto-TALK and FAIL-Talk T lk l aree inverses, inve ver ve don’t be deceived POW!!!! P OW!!!! • Th They hey ey aaren’t rreen’’t Figure 4: FAIL-Talk applied to Auto-TALK. Figure 5: Auto-TALK applied to FAIL-Talk. Dog is now under the “Pow” shape. Again, the Original is not restored, and dog appears in front original text slide is not restored. of “Pow” shape. basic powerpoint figures appear may influence which lies on top of the other), the author argues that the net effect of the transforms does indeed commute. For example, block diagrams can be added, then text can be perturbed by a foreign language, followed by the addition of integrals. If at this point the author were to change the text to brown and the background to black, and finally insert excess bullets, the progression may resemble Figures 1, 2, and 3. Clearly, the net effect is an incomprehensible slide, regardless of transformation ordering. 4 Metaphorical Inverses The author would like to assert that FAIL-Talk and Auto-TALK are not true inverses in the mathematical sense. For a set of slides p ∈ P , where P is the set of all possible PowerPoint talks, FAIL-Talk(Auto-TALK(p)) may yield a talk, with an embedded YouTube video which is covered by a block diagram containing an integral. An example of FAIL-Talk(Auto-TALK(p)) is shown in Figure 4, where puppies are applied before a large “Pow!!!” shape. Likewise, AutoTALK(FAIL-Talk(p)) may make a bad talk somewhat more bearable (via puppies) but does not restore comprehensibility or even the orig3 Experimental Evaluation inal talk.1 An example of Auto-TALK(FAILTalk(p)) is shown in Figure 5, which simply inAt this point, the author has not yet field verts the ordering of the transformations shown 2 tested FAIL-Talk, as she wishes to avoid burn- in Figure 4. ing bridges. However, mocks are included as Fig1 The author recommends keeping a backup copy if ures 1-3, clearly demonstrating the devolution of there is a possibility of a need for the original talk. 2 a slide from one that makes sense (Figure 1) to Note that neither Figures 4 or 5 restores the original talk, which was a pure text slide. one which is horrifying (Figure 3). 137 5 Conclusion This work presents FAIL-Talk, a fully automated scheme to make incomprehensible talks. While the automation is not yet complete, the author has demonstrated the awe-inspiring power of this scheme to completely destroy the substance of a talk while adding only nonsense via a few simple powerpoint mocks. While this work can be thought of as a solution to the problems AutoTALK created, it may itself yield side-effects: presenters should be prepared to never be asked to give a talk again, even if they eventually want to. The End References [1] Alga Rhythm. AutoTALK: An Automatic Presentation Graphical Toolkit. In SIGBOVIK, 2009. 138 An Analysis and Redesign of the Evacuation Instructions in an Academic Office Building I. B. Gone and U. Cower Abstract An evacuation process is provided for an academic office building. The efficacy of this process is evaluated, and the maturity of the evacuation model is assessed to be EMM Level 1. A scalable improved process description is proposed. Introduction Safety is recognized as an essential human need and a prerequisite for productive activity. Safety needs are placed just above physiological needs and below belonging, esteem, and selfactualization by Maslow’s hierarchy. A major university, in its infinite wisdom, has provided a “quick reference” guide to the evacuation process for its academic buildings. The evacuation process, as promulgated to building occupants, is exhibited in Figure 1. The manifest complexity of this description has led to postings with supplemental instructions, such as the example of Figure 2. Figure 2: Supplement to Evacuation Process Figure 1: Official Evacuation Process 139 Despite the distribution of this descriptive quick reference poster, lack of familiarity with the process on the part of building occupants is suggested by considerable anecdotal evidence. After all, the number of people who will actually memorize this stuff is vanishingly small, and who’s going to read the fine print with flames licking at their ankles?. Unfortunate consequences could ensue in the event of an emergency. A user study was conducted to determine the efficacy of the evacuation process. The results were assessed under the Evacuation Maturity Model, with the result that the process is at EMM Level 1. A revised, scalable description of the evacuation process is proposed. Efficacy of the Evacuation Process A number of building occupants were recruited dragooned into this study. They were presented with the current evacuation process, their interpretations were observed, the data was de-identified, and they were then placed in simulated emergency situations (Figures 3, 4, 5). As can be seen from the illustrations, confusion and consternation were prevalent. The principle of intra-ocular trauma is satisfied by the data, so no further statistical significance testing is required. Figure 3: Simulated bomb emergency 140 Figure 4: Simulated fire emergency Figure 5: Simulated weather/flood emergency 141 Evacuation Maturity Model Assessment The Evacuation Maturity Model (EMM) was developed as a tool for objectively assessing evacuation plans of businesses and institutions. A 5-Level process maturity continuum is recognized, where the uppermost (5th) level is a notional ideal state where processes would be systematically managed by a combination of process optimization and continuous process improvement. The five levels are defined as: 1. 2. 3. 4. 5. Initial (chaotic, ad hoc, individual heroics) - the starting point for use of a new process. Repeatable - documented procedures and checklists are used to guide the process Defined – confirmation as a standard business process is accomplished Quantitatively managed - quantitative goals and objectives are incorporated Optimized - deliberate process optimizations/improvements are included Lack of understanding of the process on the part of the occupants was revealed by the efficacy study. Study of the process would substantially lengthen the critical path to emergency action. In the event of an emergency, heroics would be required. Explicit objectives are lacking. A maturity level of EMM1 is assigned by the maturity assessment. Improved Process Description An improved process description design is suggested by the data. Details of the process, even if required for precision, are elided. Comprehension and interpretation tasks are removed from the critical path in favor of action. An approximate process actually executed is deemed preferable to a precise process ignored. The improved process description is presented in Figure 6. Dimensions for the document are not provided, as the description is intended to result in evacuation process improvement at all scales from wallet card to billboard. if Fire Gun Storm Flood No pulse Blood then Run Hide Stay Climb Zap 911 Figure 6: Scalable simple evacuation process description 142 All my friends’ researches are cooler than mine Chris A. Maphone March 21, 2010 Abstract We have done no research and have nothing to say about it. Instead this paper presents solutions a multitude of exposition problems: we take it upon ourselves to succinctly and accurately describe the research of our friends and colleagues, to the best of our understanding. We think that previous work (i.e. their own explanations of their work) vastly understates how TOTALLY AWESOME what they are doing is and misses key points about real-world applications of their work for e.g. blowing stuff up. 1 Introduction tion of the typographic characters in the formula. Then his labmates turn these animations This is a survey paper on some of the recent into robots. The robots are made with certain exciting research endeavors of many awesome “gates” (like and and not) described by the equaCarnegie Mellon students and alumni!!!!!!!! tions. One of them has VERY SHARP BLADES and has to be kept in a box. Someday, these robots will get very tiny and invade our bodies 2 Research for medical science. Dan Licata works on something called “dependent types”. They are so powerful they can do ANYTHING. He is working on building the ultimate type theoretic weapon which uses focussing to create a concentrated beam of power in the form of two “arrows”, “Mr. Annihilate” and “Dr. Destroyer” [1]. This weapon is called a TASER (type amplification by stimulated emission of radiation). Ross Hatton works on kinetic typography, which is like letters moving around and changing size and stuff. Specifically he applies the kinetic approach to calculus formulas and, using Stokes’s theorem, can describe the very mo- 143 William Lovas refines types finer and finer until they are sharp enough to stab a bitch [2], and then some more until they are a soft powder. This means you can describe your data so precisely that it requires quantum physics, so like if you have a natural number it’s actually a quantum superposition of even and odd and you never know for sure until you observe it with type reconstructivism. Michael P. Ashley-Rollman (MPA) makes blocks that light up. I think they are children’s toys, but I like playing with them too even though I am a mature grown-up person, pretty weird I know. Anyway you click them together and they change colors, and sometimes because of racial conditions the colors spazz out and start flickering a lot. Michael is working on solving the problem of racism. Luke Zarko is probably a superhero otherwise why would he have that name? He uses his superpowers to make an operating system (ZARKOS) that already knows at compile time what your code is going to do, so you never have to run anything and it’s very safe. Unsafe programs like GUN BASH never even get executed in the first place because you can tell from the name that it’s very fangorious. This operating system is not only provably correct but also VERY FAST. Rob Simmons makes logic programs go backwards. It’s actually kind of confusing because usually “backwards” means “forwards” so sometimes they say “bottom-up” which I think is related to his prior SIGBOVIK publications on drunken logic [4]. Anyway every time he makes a program go backwards he gets a new elf: Tom 7 used to make logics about spaceships but now he uses machines to learn things. His thesis is titled “Model Types for Mobile Code” [3] and it has to do with model logic (as in model spaceships, because real ones are too big to fit in a computer, even a distributed one). 144 3 Conclusion I JUST HAD TWO ESPRESSOS!!!!!!!!!!!!! The end. References [1] Daniel Licata. The strange case of dr. admissibility and mr. derive. Speaking Skills Talk at CMU Student Seminar Series, 2008. [2] William Lovas and Frank Pfenning. A bidirectional refinement type system for LF. Electronic Notes in Theoretical Computer Science, 196:113–128, January 2008. [3] Tom Murphy, VII. Model Types for Mobile Code. PhD thesis, Carnegie Mellon, January 2008. Available as technical report CMU-CS08-126. [4] Rob Simmons. A non-judgmental reconstruction of drunken logic. In Proc. SIGBOVIK 2007. ACH, April 2007. How to successfully prevent the flow of information in research presentations Kami Vaniea March 21, 2010 Abstract The main body of research presentation literature is dedicated to the creation of great research talks in which the presenter successfully conveys their great wisdom to an audience of receptive minds. The great art of preventing your audience from figuring out what you actually did is not nearly as well documented or explored. In this work I will explore the different presentation mechanisms that can be used to simultaneously give an excellent talk, thoroughly confuse the audience and leave them with a feeling that you really understand what you are talking about. 1 Introduction Creating a hard-to-comprehend talk is amazingly similar to creating an enlightening talk. You need to do things like consider your audience, plan out what you are going to say and meticulously create your slides to guide your audience through your material. The point where the two methodologies diverge is in the goals. Unlike a traditional information imparting presentation an information impeding presentation has the dual goals of convincing your audience you know what you are talking about while makings sure they don’t understand anything you say. Some critics may say that creating information impeding talks is a debasement of science and a complete waste of your audience’s time. However, they are overlooking the needs of thousands of students who’s results were neither interesting nor useful placing them in the not interesting and not useful results quadrant, aka Bovik quadrant, of the quest for fundamental understanding and considerations grid put forth by Donald Stokes [2]. Unlike the praised work in Pasteur’s quadrant the work in Bovik quadrant is woefully ignored and not given the recognition it deserves. The purpose of this work is to assist students everywhere in accomplishing two goals with their talks 1) convince the audience that you did something worthwhile 2) make sure the audience never figures out what that important thing was. These are ambitious goals but never fear they are completely accomplishable if you pay close attention to this guide. In order to impede information flow during your talk you need to accomplish the following sub tasks: • Encourage interior audience discussion • Belittle the audience • Mislead the importance and relevance of your data • Use as much time as possible explaining unimportant information In this work I will discuss each of the major components of a talk and look at different ways to accomplish these tasks in each component. Curious how your going to accomplish all this in a single talk? Well, read on. 145 2 Motivation Cloud computing! Cancer! Google! Health care! Kittens! Global warming! Remember, whatever your research is it can be related to the hot news item of the week. All motivation really is tying your research to your favorite well funded buzzword. Remember that good motivating examples accomplish three things 1) convince audience your work is important 2) take up as much time as possible and 3) make it unclear just how many of the world’s problems you are actually going to solve in this talk. When properly obfuscating a talk its important to pick your motivating example carefully. You want an example that lots of people care about so that they will leave your talk feeling like you solved something important even if they didn’t understand a word of what you did. But you also need a motivation that not too many people understand and is hard to ask detailed questions or point out inconvenient facts like your motivation and your work have nothing in common. Cloud computing is a wonderful example of a good motivation topic. Everyone knows that cloud computing important, complicated and either doomed to failure or the next bit thing. Cloud computing needs machine learning to ensure optimal usage. It needs security to protect data from the unnamed dangers lurking in the clouds. It needs theory if it is ever going to work. It needs PL to specify how different elements can interoperate safely. Whatever your work is about play it up in relation to your motivating topic. Without your vital, unspecified, work your motivating topic would be crippled and the world would descend into chaos. When introducing a motivating example, like cloud computing, be sure to spend plenty of time on it. Remember the more time you spend on your motivating example the less you have to talk about your actual research or even worse, your results. Besides motivating examples are far more fun to talk about and listen to. So spending lots of time on it will actually be en- joyable for both you and your audience. One of the purposes of a motivational topic in an information imparting presentation is to introduce the problem you are going to be solving in the remainder of the talk. In an information impeding presentation this is an excellent opportunity to mislead your audience by implying that your research solves many more problems than it actually does. For example strongly type checking the Internet would make it more secure. Therefor nearly all security problems associated with cloud computing can be solved by applying a novel type checking method. 3 Problem statement The problem statement is arguably the single most important part of your talk. The problem statement lets your audience know what you will be talking about. This is bad. You do NOT under any circumstances what the audience to figure out what you are talking about. If possible, you should really skip this part of your talk. The best solution is to leverage your motivating example and just assume that it doubles as a problem statement. Thereby not skipping the problem statement while still not clearly explaining it. 4 Outlines and organization Outlines are generally a bad idea if you want to make sure your audience gets the wrong lesson from your talk. But this doesn’t mean you can’t have an outline slide. Remember the goal here is to give what looks like a good talk while ensuring the audience doesn’t understand what you say. A good outline will let the audience know what is coming, what you are going to tell them about and how you are going to solve your problem all in a neat package. Creating an outline with no meaning that meets these requirements is actually trivial just copy the following onto an outline slide. In your talk just read the slide and provide no extra information. 146 • Introduction • Motivation • Background • Methodology • Results • Conclusion This simple outline gets you points with the audience for having an outline while giving them no additional data about what is coming. 5 Graphs and diagrams Figure 2: Example of a graph showing the clear difference between your good result and the opGraphs follow a similar rule to statistics. Re- posing technologies poor result. Remember clear member there are lies, dam lies and statistics. results speak for themselves and if they don’t you Similarly graphs give you the ability to give your just need to muddle with the graph until they do. audience the wrong impression while not lying. To begin with there are the tried and true If simple graph alterations fail to adequately graph and figure obfuscation techniques. Leave describe the importance of your results you out labels. Leave out the scales. Use three dimensions. Use as many of Excel’s colors, tex- may have to resort to more complicated tricks. tures, and eye candy as possible thereby impress- Thankfully many books have been written on ing your audience with the visual complexity. A how to build good graphs which also convegood example of this sort of graph can be seen niently show lots of examples of bad graphs. in Figure 1. This is actually a graph of all the Tufe’s famous book on The Visual Display of book sales in the US from 1940 to 1989 but that Quantitative Information [3] is an excellent reis impressively hard to tell from the graph. Use a source. Chinese coloration scheme where red is good and white is bad which completely confuses Ameri- 6 Audience Questions can audiences. Put in as much data as possible even if it could be left out or isn’t relevant to Annoyingly, audience members are typically alyour point. lowed to ask questions during and after your talk. Math is already a horribly confusing topic why Life would be much easier if this practice could would any sane person put more of it into a talk be avoided but unfortunately it is ”traditional” on purpose? Be wary of adding math and es- and cannot be prevented. pecially wary of adding statistics which can be Much like an information imparting talk it is questioned. It is far better to add a graph sim- important to anticipate audience questions in adilar to Figure 2 which shows the clear superior- vanced and have prepared answers. Knowing ity of your technology. If the difference is clear your answers in advance allows you to answer enough to your audience you can safely skip over questions in a way that doesn’t answer the quesany issues of statistical significance or error bar tion while making your words drip with confireporting. dence and certainty. Much like a lion tamer you 147 Figure 1: Example of a visually confusing graph created using simple MS Excel default tools. Note the lack of any explanation as to why this graph is here or what it is about. 148 should show no fear before your audience and subdue them through your aggressive eye contact and confidence. If an audience member asks a question which reveals a flaw in your work or in some way doesn’t show you in the best light, answer a different question. Beauty is in the eye of the beholder and question interpretation is in the ear of the presenter. If you need some examples of how to do this effectively just watch any presidential debate. The art of question avoidance and deflection is what politicians are very good at. If you need to cite facts in your answer pick little known works and refer to the author by first name. (For example: Joe) Get upset when others challenge you. An attack against your research results is really a personal insult to you. After all you poured your heart and soul into this research for the last n years who are they to condemn it after less than an hour? Also, a heated discussion between you and the audience member will distract the rest of the audience from your talk and reduce the time available for other people to ask questions. If an audience member asks you a question about a result which isn’t yours you should defend the other author and answer as if it was your research. This shows deference to the other author’s hard work and derails the talk for several minutes until the audience discovers this is cited work not yours. 7 Belittling an audience for your audience to appreciate just how much work you had to do and how mentally taxing and frustrating it was. How do you do this? Simple, show them the details. Don’t hold anything back. If there is something confusing in your domain don’t be afraid to say it. If you have tons of data points show them all. And most importantly do not simplify or explain yourself. You are the Alan Turing in the room and they are supposed to keep up. And if they can’t keep up that is an indication of their ineptitude not yours. Frequently use terms like ”obviously” and ”clearly” to underline how little your audience actually knows. Obviously your research cures all the worlds problems. Your results clearly show this and all the equations and math backing it up are intrinsically obvious. Don’t bash this into the audience. A truly superior researcher just knows that they and their research is perfect. If you approach your talk with this in mind and a good bit of confidence you will be impressed at how fast your audience falls into line. One simple trick is to use ambiguous domain specific words. Everyone knows that people who use large uncommon words are smarter. If your audience has to spend time figuring out the words you are using then they will miss some of the results you didn’t want them to understand. A good example of a seemingly innocent word is ”feature”. Which when used in a Machine Learning context has a specific general meaning as well as a specific meaning in your research which you can conveniently forget to provide thereby making the audience feel inadequate for not understanding this clearly obvious term. Additionally, audience members from outside the domain will assume they know what the term means and will stay confused for many slides before giving up hope of understanding the clearly complex research you are engaged in. You are smart. Well that is obvious since you are reading this paper. Its important to let your audience know how smart you are. Since you are reading this paper your results likely fall in the Bovik quadrant [2] and are unlikely to impress upon your audience how smart you are. Therefore its vital to make this fact clear in other ways. If you have equations with 20+ variables that To make your audience understand how smart you are it is vital to make them understand just are impossible to comprehend without serious how much they don’t know. After all getting study, don’t be afraid to show them. Math equathe results you have was hard. Its important tions are a truly beautiful construction. They 149 are arguably competently self explanatory and therefor require little to no explanation. They also require a significant amount of attention and brain power to comprehend and map onto your talk topic. A sufficiently high number of complex equations and/or proof statements will often cause a portion of your audience to give up and just assume that you know what you are talking about. Graphs are very useful in belittling an audience. However, they are such an important topic that they appear all on their own in Section 5. 8 Practice Talks Giving practice talks to ensure minimal information conveyance is typically frowned on. Really if you have time to give a practice talk you should have been using that time to get better results and therefor not need this guide. However, if you are determined to practice your non-information giving skills there are a few things you can do to make your practice talk more successful. Give your practice talk audience slide handouts to make notes on. Having something to write on makes the audience members feel more important. Don’t worry, if you have picked your audience well most of them won’t actually write anything. The handouts are also useful for you to go back through and read the notes. Comments like ”where is this going?” or ”??!!??” or better yet ”impressive!” indicate that your talk is going well. While comments like ”why are you using the XYZ methodology instead of the ZYX methodology?” indicate a dangerous level of methodology understanding in your audience. Only invite people who already know your research. This way they don’t actually have to listen to your talk but can give good advice at the end and explain to the other audience members what you actually did in far more glowing terms than you could because unlike you they can exadurate in ignorance. They are also less likely to ask hard questions or nit pick your slides. Invite the people who came to your practice talk to your actual talk. That way if anyone complains about the talk they will be on hand to explain just how bad it used to be and how impressed they are with your improved presentation. 9 Concluding the talk Writing a talk conclusion is actually extremely easy and nearly identical to an information imparting talk. Remember that outline slide we created in section 4? Take the same set of bullet points, toss out the Introduction and Conclusion and make each point into a partial sentence. The resulting set of bullet points should read something like this: I told you about this big important problem (Motivation) that no one else has adequately solved (Background), I did something brilliant (Methodology) and completely solved the problem (Results). Remember to NEVER, EVER introduce new material in the conclusion. Besides the obvious problem of finding more material to add and the risk of an audience member calling you on something, you aren’t even supposed to be putting material here. Why would you make life harder for yourself than it needs to be? The audience doesn’t want new info, you want to tell the audience as little as possible, everything is good, don’t rock the boat. This is also a good place to remind you that one of the goals of a good information impeding talk is that the audience is happy and feels like you are competent and tried to give a good talk. The conclusion is your last chance to make it clear to the audience that you really did something useful, even if they didn’t understand it, and that they haven’t wasted the last hour of their lives. The best part is that you can do this without ever stating anything specific. In fact the exact words ”I showed that our solution is vastly superior to existing solutions” can be safely said when reading the ”results” bullet of the conclusion slide in the majority of talks. 150 What you proved or how well it worked need never even be mentioned. 10 Simple Tips and Tricks disagree with you. But be wary of too much eye contact though as you can inadvertently engage your audience and keep them from their mid afternoon nap. Be careful who you look at in the audience and avoid anyone who looks distracted or who might zone out or doze off if left alone. The lessons above will give you a good start to creating an optimal information impeding talk but there are a few extra embellishments you can Talking fast This is an excellent plan if this add that will make your talk run all that much is how you plausibly normally talk. If you rougher. tend to be high strung and talk somewhere near the speed of light there is no reason to Page numbers Leave them out! Page numslow down for your talk. The faster you talk bers allow your audience to make effective the less likely your audience will comprenotes and to refer back to specific points in hend what you are talking about. If you talk your talk during their questions. Without calmly normally you can still safely speed up page numbers the audience is forced to write your speaking by a small margin and blame more vague notes or copy the titles from it on being nervous. your sides which takes more time. Also referencing the slide again during the questions Um, like, uh Talking fast is hard, talking to slowly makes you look, well, slow, so what will take time which decreases the number are you to do? The answer is to add filler of questions you will get. words. Similar to the filler found in meat Distracting computer messages Leave products, word filler has no value and has them on, thereby ensuring those audience an unproven negative comprehension effect members who have managed to follow on the audience. If you are stuck, need time your work are temporarily distracted and to think, forget what to say, or just need to are unable to pick up the train of your waste more time on a slide feel free to add in talk again. Its best if the distracting liberal amounts of any of the ”um,” ”like” or messages are innocent looking and therefor ”uh” filler words. These words add nothing not something you may have anticipated. to your presentation but they do make it Email notifications are good by they only a bit harder for the audience to determine pop up in the corner and vanish on their what you are saying and they ensure that own. System messages such as failure to you are saying something even if you don’t backup or out of battery power are much have anything to say. better as they cause Power Point to exit out of the slide presentation all together buying Cluttered slides Do this. While you don’t want to assist your audience in understandyou several minutes of technological fixing ing exactly what you did you also don’t want during which you don’t have to present. to be seen as leaving out important inforAlso, the interruption is sufficient to cause mation. The simple solution is to hide the your audience members to loose their train needle of knowledge in a haystack of words. of thought. The more words on the slide the less likely your audience is to actually read anything. Eye contact This is a tricky one. Effective eye So bury your statistical significance test recontact is important during your talk. You sults in the middle of a paragraph of text need to use aggressive eye contact to stare and feel confident that you both provided down the opposition and challenge them to 151 them to your audience and that your audi- providing recommendations on how to create an information impeding talk. Using the skill set ence will never find them. gleamed from this work the reader should now Talking to the screen instead of the audience be able to 1) convince an audience that you did Don’t do this. While the projection screen something worthwhile 2) make sure an audience or even your computer screen may seem less never figures out what that important thing was. intimidating than your audience you really shouldn’t talk to them. It can make you look a bit crazy and imply that you are not 12 Bibliography the top notch researcher you are. The goal of your talk is to impress your audience References with your supposed research skills, not convince them that you are crazy and think [1] F. Herbert. Dune. 1965. that projector screens can hear you and [2] D. E. Stokes. Pasteur’s Quadrant: Basic Scitalk back. Take a deep breath and repeat ence and Technological Innovation. Brookthe following litany against fear to yourself, ings Institution Press, 1997. turn around, and speak to the audience. [3] E. R. Tufte. The Visual Display of QuanI must not fear. titative Information, 2nd edition. Graphics Fear is the mind-killer. Press, 2001. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain [1]. 11 Conclusion Every year thousands of students woefully discover that their research results fall into the unprestegious Bovik quadrant. Unlike Pasteur’s quadrant or Bohr’s quadrant, Bovik quadrant research creators would rather no one ever discovered that their research results are both not interesting and not useful. Bovik quadrant members have been woefully neglected by research talk design experts who focus nearly all their energies on how to create information imparting talks for those lucky researchers with good results. In this work I have attempted to address this inadequacy by 152 An Alternate Construction Method for the Surreal Numbers Jim McCann∗ Carnegie Mellon University (Image created by wikimedia commons user Acdx.) ∗ e-mail: jmccann@cs.cmu.edu 153 154 The first paper on SAMIR – ANVESH SAMIR Sapra and ANVESH Komuravelli Computer Science Department Carnegie Mellon University Pittsburgh, PA 15213 {ssapra,anvesh}@cs.cmu.edu Abstract We introduce A Novel Verification Environment for Software and Hardware (ANVESH), which employs Stateflow Abstraction Modeling for Information Retrieval (SAMIR) to retrieve information from the Internet, make state machines, and model check them. We employ two novel approaches to achieve this. In this way, astonishingly, we verified everything reachable via the Internet. Results are presented on a 42 Hz Linux box (we were simulating a machine using Simics, and our license didnt let us go any faster). We thus, also, propose the end of the Verification era. Thank you very much, Model Checking, for leading us this far! You will be remembered for ever! 1 Introduction We present the last and the greatest paper on Model Checking [5]. We describe our novel mega-tool, Stateflow Abstraction Modeling for Information Retrieval (SAMIR), which uses novel approaches of lurking and larceny (as part of A Novel Verification Environment for Software and Hardware (ANVESH)) to acquire and verify everything reachable via Internet thus satisfying the ultimate and long-cherished goals of Model Checking. This is the long awaited victory of Model Checking. Hereafter, we refer to our tool as the novel mega-tool. A critical feature is the ability to embed novel free-trace webcams into the existing Cloud1 -computing infrastructure using “Jack and the iBeanstalk” technology. We guess, there is nothing much left to introduce. Without asking you to hold your breath for more time, let’s dive into this great work. 2 Related Work People have earlier worked for quite long on what they thought were the state explosion [1], cloud computing [2] and online model checking [3] problems. But these are completely artificial as we show in this ground-breaking work. To be very frank, no state exploded in state explosion, cloud computing was not on real clouds and online model checking was not online but done when Internet was not connected at all! The goal of this paper is to ignore all this prior “work” and to explore the real meanings of these terms, to seek out new devices on the Internet and model check them, to boldly go where no model checker has gone before! What State Explosion actually is . . . 3 One major difference we have in real world model checking with the prior work is that state explosion in the prior work was completely artificial, bah! We tackle much more realistic and terrifying (and terrific 1 someone may need a reminding that real Clouds still exist 155 Figure 1: Poor battery. We feel so sad for it . Hey battery! We know, you are not the culprit! Anyway, the important thing here is that the firmware died a brave death. Long live firmware! ) scenarios. For example, we once had an intelligence information2 in 2005 that our novel mega-tool sneaked into a switched on Nodia 2600 firmware and started model checking! The information also said it promptly found a serious bug in the firmware and was ready to fax a counter example to our headquarters at the Mariana Trench using the inherent satellite communication component of the firmware of the device (which was, by the way, captured and model checked by our novel mega-tool before to be on the safe side). But the firmware was smart enough to realise it was about to fall into disrepute and rather than face the inevitable shame, decided to sacrifice itself by sending the battery the following code fragment begin panic xplodplease,pls,pls,... end This, apparently, resulted in the situation shown in Figure 13 . (If you are wondering how we got this pic, we were lucky enough to have our novel mega-tool already sneaked into (and of course, verifying) the Closed-Circuit TeleVision which was present in that room. FYI, the CCTV was model checked successfully!) As we see from this specific example, the world is not ready to face the shame of getting its bugs exposed. State explosion, is henceforth, redefined as the state of the world where an actual explosion takes place when our novel mega-tool is ready to report the bugs! To give this paper its dignity of definition, we pause our discussion here and continue on the next paper. 2 3 Due to the sincere work by SANIA (SAMIR-ANVESH Information Agency) Figure courtesy: http://www.techgadgets.in/ 156 The second paper on SAMIR – ANVESH SAMIR Sapra and ANVESH Komuravelli Computer Science Department Carnegie Mellon University Pittsburgh, PA 15213 {ssapra,anvesh}@cs.cmu.edu Abstract Please refer to the first paper on SAMIR-ANVESH. But, some reader may say that, a part of the world may not care about its bugs. To make the world look uniform, our novel mega-tool exploits the bugs to sneakily elevate its privilege within the buggy devices in this shameless part of the world and induces a state explosion as implied by the following lemma. Lemma 1 Given a device in the shameless part of the world, our novel mega-tool can sneakily elevate its privilege which enables state explosion. Proof. Let d be a device in the shameless part of the world. Because d is shameless, it got to have some bug b for which it is not shameful. Given the novelty of our novel mega-tool, it will promptly find b. We stress, d is shameless. This implies d does not feel shame if its privileges can be stolen. And we stress, our novel mega-tool is novel! The rest of the proof is obvious. 4 Model Checking using Clouds In this section, we describe our infrastructure using Clouds (mind you, the approach is novel enough to use the real Clouds). We also present our two major novelties, namely, the Lurk-based sneaking (Section 4.1) and the Theft-based sneaking (Section 4.2) which exploit this infrastructure to model check everything reachable via Internet. We first prove a useful lemma. Lemma 2 ∀t : time(survive(Internet, t) ⊃ ∃c : Cloud monkeying around(c, t)) Proof. Proof by complete structural induction on the graph of the world (technically we consider its MST rooted at Pittsburgh): Base case: Pittsburgh As long as there is Pittsburgh, there will be Clouds. So, we can easily find a cloud which monkeys around the world. And Pittsburgh isn’t going anywhere, anyway! So, holds for all t. Inductive step: Suppose the hypothesis is true for all graphs smaller than given graph T . Want to show: claim holds for T . Note that the base case (Pittsburgh) isn’t going anywhere. So we have plenty of clouds for everyone in T . Rest of the proof same as the base case. 157 Now that, we do not to worry about the existence of Clouds, we explain our novel way of use of them. Inspired by the free-food webcam, generously donated by Luis von Ahn and operated by Dec/5 Inc., we introduce the novel concept of free-trace webcam. A free-trace webcam is installed using the fabled “Jack and the iBeanstalk” technology. Initially, a robo-Jack installs a free-trace webcam on top of the iBeanstalk when it just sprouts. As the iBeanstalk grows, the webcam inches more towards the Clouds (see Figure 1)1 and when the iBeanstalk ultimately reaches a Cloud, the webcam glues itself to the Cloud. Whenever the Cloud makes a move, it gets detached away from the iBeanstalk. These special webcams are manufactured to be solar-powered to avoid exorbitant losses to Do-cane Light Company and equipped with wireless World Area Network cards to avoid exorbitant losses to (cast)Com. This webcam keeps recording the trace as the iBeanstalk grows. Figure 1: Our webcam happily rising to the Cloud after a robo-Jack installed installed it on the iBeanstalk. 4.1 Major Novelty 1 - Lurk-based sneaking One of the key components of our novel mega-tool is property inference via a Lurk2 -based sneaking. The idea behind this approach is simple and yet elegant (not to mention, novel and to the best of our knowledge, a first attempt to think outside previous boxes; and our knowledge is the best, to the best of the our knowledge, lol ). To make the presentation (too!) simple and yet elegant, we quote below a message sent by our tool while using this novel approach. Yo! Waz up? Well, I am just a-lurkin’. These brainless guys (traces, though) are runnin’ and runnin’ far too lon’. Looks like I don’t have anythin’ to report yet! Sorry buddy! I should wait till they are done and then, you know, I shud prolly get busy inferring the damn properties and only then, can I get into my actual business. So..I’ll keep lurkin’. Cya. In a formal lingo, what this message is trying to say is, the tool lurks around a host, observing the execution traces (we call this novel mega-technique, observing the observables) generated while the host keeps running. Once the host is done, the tool uses learning techniques to infer properties that the host has to satisfy. And the business our tool was talking about is to lurk around more and wait for observables which refute these properties. We pause here to continue the discussion in the next paper. 1 2 Figure courtesy: http://www.teachershelp-teachingresources.co.uk/ Oh! which, by the way, means to lie in wait, lie in ambush, behave in a sneaky and secretive manner 158 The third and the last paper on SAMIR – ANVESH SAMIR Sapra and ANVESH Komuravelli Computer Science Department Carnegie Mellon University Pittsburgh, PA 15213 {ssapra,anvesh}@cs.cmu.edu Abstract Please refer to the first paper on SAMIR-ANVESH. How does the tool know about the host? We use our novel free-trace webcams to eagle-eye for free execution traces generated by hosts on the Internet. As an immediate example of lurk-based sneaking, we recall the technology used for transporting the webcams on top of the Clouds. We noted before that, a webcam records the trace as the iBeanstalk grows. Now, once it gets glued to a Cloud, it hands over the information of this trace to our lurk-hungry tool which immediately detects that the iBeanstalk is going to generate a memory-out-of-bounds exception. An iBeanstalk is humble by construction. It gets ashamed of itself and creates a state explosion, killing itself. (By the way, this also removes a huge obstacle for the webcam’s view!) 4.2 Major Novelty 2 - Theft-based sneaking As a useful side-effect of our free-trace webcams, our tool gets the novel information about the sneakable devices reachable via Internet. Then, we use the novel technique of theft-based sneaking [4] and novelly apply a novel application of it by sneaking into the device and stealing some CPU cores for model checking. It also novelly elevates its privileges to be able to muck around with the firmware to build a Kripke structure (this is as good as it gets in Model Checking) and model check for various safety and liveness properties. To show the applicability of this novel theft-based sneaking, we present the best example model checking could have ever achieved. This is a report from one of our faithful (and grateful) sufferer of our novel megatool, in her own sweet words (and also melodious, but unfortunately, we are unable to provide the voice memo), One fine day, this awesome thing happened. I was checking my email on my iPhone and I suddenly get this message flashed on top of the screen - “Congratulations! Your smartphone is now completely verified! Don’t worry about any further bugs either in the hardware or in the firmware or in any of the apps you might be using or even any of the updates you might possibly have in future! Your device is completely bug free. 100%. Enjoy using your iPhone. SAMIR and ANVESH!” Simply brilliant! I don’t need to worry about bugs in my device at all! I love Apple! She also sent us a proof-by-image (see Figure 3)1 . Unfortunately, the poor customer thinks this is a miracle of Apple, but we do not mind. 5 Side result Theorem 1 Eventually, the world will by completely bug-free. Indeed, we are currently in that time. Proof. Drumroll... Trivially true! 1 Figure courtesy: http://mactoids.com/ 159 Figure 3: The happy message shown to the user by our mega-tool! This manner, we made many people happy. Yo SAMIR and ANVESH! 6 Future Work Wth? No future work left! Go and sleep! 7 Conclusion We successfully deployed our novel mega-tool to model check everything reachable via Internet after successfully bootstrapping on our dear machine. See abstract for details of the machine. Hats off to Model Checking! You did it! Acknowledgement. We wish to acknowledge the organizers of SIGBOVIK for giving us this wonderful opportunity to check models on the Internet. We also want to acknowledge Jim Skees for giving us Facilities, and the SCS Help Desk for the dearest machines, Guy Blelloch for the fancy building where our ground-breaking research was conducted, and Prof Todd Mowry for sneaking ECEs Simics [6] license into the building (inspired by our novel application of theft-based sneaking). Refer to the rest of the doc for possible inlined acknowledgements. References [1] Peter Bovik and Harry Q. Bovik: State explosion and beyond, In the proceedings of the 1st International Conference on State Explosion, Bovik Publishers, Pinatubo, 15 June, 1991. [2] Mr. Fredrickson: My experiments with cloud computing, In the proceedings of the −29th Atmospheric Conference on Clouds, Disney Publishers, South America, 1980. [3] Ms. Confusee: Checking Models as they are being generated, In the proceedings of the 100th Offline Conference on Online Model Checking, Offline Publishers, A Confused Place, 2003. [4] Jim McCann and Ronit Slyper: A theft-based approach to 3D object acquisition, In the proceedings of the 6th Binarennial Conference in honor of Harry Q. Bovik, 2007. [5] http://en.wikipedia.bovik.org/wiki/Model checking/ [6] http://www.simics.net/ 160