├── README.md ├── todo.md └── done.md /README.md: -------------------------------------------------------------------------------- 1 | # ptolemy 2 | 3 | My reading list. Mostly papers and books, in no particular order. 4 | I am forgetful, so I need this. This reading history starts on the 5 | brink of 2017, so any interesting things I have encountered before that 6 | point in my life will not be included. Read my [retrospective](https://blog.veitheller.de/Reading,_The_First_Year.html) 7 | on reading in 2017. 8 | 9 | Some of the papers and books do not have links included, because they 10 | might be protected by paywalls or other DRM, because it seems we have to 11 | pay for progress. You might find these papers online anyway, 12 | [SciHub](https://sci-hub.tw) is a great resource; it might be illegal in your 13 | country to use this site, though. 14 | 15 | Named after Ptolemy I Soter, who built the Library of Alexandria. 16 | 17 | Look at my—frightfully long—[to do list](/todo.md), the [list of things I’ve 18 | already read](/done.md), or [suggest something](https://github.com/hellerve/ptolemy/issues/new)! 19 | -------------------------------------------------------------------------------- /todo.md: -------------------------------------------------------------------------------- 1 | # To Do 2 | 3 | ## Computer Science 4 | 5 | ### Papers 6 | 7 | * [Abstracting Definitional Interpreters](https://github.com/write-you-a-scheme-v2/scheme/blob/master/sources/AbstractDefinitionalInterpreters.pdf) by **David Darais et al.** (2016?) 8 | * [Scalable Garbage Collection via Remembered Set Summarization and Refinement](http://www.cesura17.net/~will/Professional/Research/Papers/Klock/klock11-diss.pdf) by **Felix S. Klock II** (2011) 9 | * *Lambda, the ultimate label or a simple optimizing compiler for Scheme* by **William Clinger and Thomas Hansen** (1994) 10 | * *Linear combinations of radioactive decay models for generational garbage collection* by **William Clinger and Fabio Rojas** (2006) 11 | * [Correct and Efficient Work-Stealing for Weak Memory Models](http://www.di.ens.fr/~zappa/readings/ppopp13.pdf) by **Nhat Minh Le et al.** (2013) 12 | * [Automatic Error Elimination by Horizontal Code Transfer across Multiple Applications](http://people.csail.mit.edu/stelios/papers/codephage_pldi15.pdf) by **Stelios Sidiroglou-Douskos et al.** (2015) 13 | * [An optimistic approach to lock-free FIFO queues](http://people.csail.mit.edu/edya/publications/OptimisticFIFOQueue-journal.pdf) by **Edya Ladan-Mozes and Nir Shavit** (2004) 14 | * [A Practical Minimal Perfect Hashing Method](http://homepages.dcc.ufmg.br/~nivio/papers/wea05.pdf) by **Fabiano Botelho et al.** 15 | * [Scalable Synchronous Queues](http://www.cs.rochester.edu/u/scott/papers/2009_Scherer_CACM_SSQ.pdf) by **William Scherer III et al.** (2009) 16 | * [Nonblocking Concurrent Data Structures with Condition Synchronization](https://web.archive.org/web/20110206165336/http://www.cs.rice.edu/~wns1/papers/2004-DISC-DDS.pdf) by **William Scherer III et al.** (2004) 17 | * [Algebra of Parameterised Graph](https://www.staff.ncl.ac.uk/andrey.mokhov/algebra.pdf) by **Andrey Mokhov and Victor Khomeko** (2014) 18 | * [A Fast Procedure for Computing the Distance Between Complex Objects in Thee-Dimensional Space](https://graphics.stanford.edu/courses/cs448b-00-winter/papers/gilbert.pdf) by **Elmer Gilbert et al.** (1988) 19 | * [Scalable Garbage Collection with Guaranteed MMU](http://www.cesura17.net/~will/Professional/Research/Papers/gfremsets.pdf) by **William Clienger and Felix Klock II** (2009) 20 | * [What You Always Wanted to Know About Datalog (And Never Dared to Ask)](http://www.csd.uoc.gr/%7Ehy562/1112_spring/instr_material/WhatYouAlwaysWantedtoKnowAboutDatalog_AndNeverDaredtoAsk.pdf) by **Stefano Ceri et al.** (1989) 21 | * [Scheduling Parallel Programs by Work Stealing with Private Deques](http://www.chargueraud.org/research/2013/ppopp/full.pdf) by **Umur Acar** (2013) 22 | * [A Correspondence Between ALGOL 60 and Church’s Lambda-Notation: Part I](http://fi.ort.edu.uy/innovaportal/file/20124/1/22-landin_correspondence-between-algol-60-and-churchs-lambda-notation.pdf) by **P. Landin** (1965) 23 | * [Harnessing the Multicores: Nested Data Parallelism in Haskell](http://wiki.epfl.ch/edicpublic/documents/Candidacy%20exam/papers-ndph.pdf) by **Simon Peyton Jones et al.** (2008) 24 | * [Older-first garbage collection in practice](http://www.ccs.neu.edu/home/lth/thesis/index.html) by **Lars Hansen** (2000) 25 | * [A Unified Theory of Garbage Collection](http://www.cs.virginia.edu/~cs415/reading/bacon-garbage.pdf) by **David Bacon et al.** (2004) 26 | * [Branch Flow Model: Relaxations and Convexification—Part I](http://smart.caltech.edu/papers/relaxconvex2parts.pdf) by **Masoud Farivar and Steven Low** (2013) 27 | * [The Art of the Interpreter or, the Modularity Complex (Parts Zero, One, and Two)](http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-453.pdf) by **Guy Steele and Gerald Sussman** (1978) 28 | * [Design of LISP-based Processors, or SCHEME: A Dielectric LISP, or Finite Memories Considered Harmful, or LAMBDA: The Ultimate Opcode](http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-514.pdf) by **Guy Steele and Gerald Sussman** (1979) 29 | * [An Open Framework for the Reproducible Study of the Iterated Prisoner’s Dilemma](http://openresearchsoftware.metajnl.com/articles/10.5334/jors.125/) by **Vincent Knight et al.** (2016) 30 | * [Learning to Infer Graphics Programs from Hand-Drawn Images](https://arxiv.org/pdf/1707.09627.pdf) by **Kevin Ellis et al.** (2017) 31 | * [Beating Floating Point at its Own Game: Posit Arithmetic](http://www.johngustafson.net/pdfs/BeatingFloatingPoint.pdf) by **John L. Gustafson & Isaac Yonemoto** (2017) 32 | * [SHILL: A Secure Shell Scripting Language](http://shill.seas.harvard.edu/shill-osdi-2014.pdf) by **Scott Moore et al.** (2014) 33 | * [Herbarium Racketensis: A Stroll through the Woods (Functional Pearl)](http://users.eecs.northwestern.edu/~stamourv/papers/herbarium-racketensis.pdf) by **Vincent St-Amour** (2017) 34 | * [Analyzing human random generation behavior: A review of methods used and a computer program for describing performance](https://link.springer.com/content/pdf/10.3758%2FBF03209475.pdf) by **John N. Tawse & Derek Neil** (1998) 35 | * [Tackling the Awkward Squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/mark.pdf) by **Simon Peyton-Jones** (2010) 36 | * [Urbit: A Solid-State Interpreter](http://media.urbit.org/whitepaper.pdf) by **Curtis Yarvin et al.** (2016) 37 | * [RustBelt: Securing the Foundations of the Rust Programming Language](https://people.mpi-sws.org/~dreyer/papers/rustbelt/paper.pdf) by **Ralf Jung et al.** (2018) 38 | * [As We May Think](https://www.theatlantic.com/magazine/archive/1945/07/as-we-may-think/303881/) by **Vannevar Bush** (1945) 39 | * [Linear Haskell: practical linearity in a higher-order polymorphic language](https://arxiv.org/abs/1710.09756) by **Jean-Philippe Bernardy et al.** (2017) 40 | * [The Power of Two Random Choices: A Survey of Techniques and Results](https://www.eecs.harvard.edu/~michaelm/postscripts/handbook2001.pdf) by **Michael Mitzenmacher et al.** (2001) 41 | * [Why Is Random Testing Effective for Partition Tolerance Bugs?](https://people.mpi-sws.org/~fniksic/popl2018/paper.pdf) by **Rupak Majumdar & Filip Niksic** (2018) 42 | * [Programming and Proving with Distributed Protocols](https://homes.cs.washington.edu/~jrw12/disel.pdf) by **Ilya Sergey et al.** (2018) 43 | * [JaVerT: JavaScript Verification Toolchain](https://www.doc.ic.ac.uk/~jfaustin/javert.pdf) by **José Fragoso Santos et al.** (2018) 44 | * [A Static Verification Framework for Message Passing in Go using Behavioural Types](http://mrg.doc.ic.ac.uk/publications/a-static-verification-framework-for-message-passing-in-go-using-behavioural-types/draft.pdf) by **Julien Lange et al.** (2018) 45 | * [`cons` should not evaluate its arguments](ftp://www.cs.indiana.edu/pub/techreports/TR44.pdf) by **D. P. Friedman & D. S. Wise** (1976) 46 | * [A Theory of the Learnable](https://people.mpi-inf.mpg.de/~mehlhorn/SeminarEvolvability/ValiantLearnable.pdf) by **L. G. Valiant** (1984) 47 | * [Quantum algorithms: an overview](https://arxiv.org/pdf/1511.04206.pdf) by **Ashley Montanaro** (2015) 48 | * [How Professional Hackers Understand Protected Code while Performing Attack Tasks](http://users.elis.ugent.be/~brdsutte/research/publications/2017ICPCceccato.pdf) by **M. Ceccato et al.** (2017) 49 | * [Pointer Analysis: Haven’t We Solved This Problem Yet?](http://www.cs.trinity.edu/~mlewis/CSCI3294-F01/Papers/p54-hind.pdf) by **Michael Hind** (2001) 50 | * [Why Programmer-specified Aliasing is a Bad Idea](https://people.cs.pitt.edu/~mock/papers/clei2004.pdf) by **Markus Mock** (2004) 51 | * [Fixing Faults in C and Java Source Code: Abbreviated vs. Full-word Identifier Names](http://www2.unibas.it/gscanniello/Giuseppe_Scanniello%40unibas/Home_files/TOSEM.pdf) by **Giuseppe Scanniello et al.** (2017) 52 | * [SHILL: A Secure Shell Scripting Language](http://shill.seas.harvard.edu/shill-osdi-2014.pdf) by **Scott Moore et al.** (2014) 53 | * [Hygienic Macro Expansion](http://web.cs.ucdavis.edu/%7Edevanbu/teaching/260/kohlbecker.pdf) by **Eugen Kohlbecker et al.** (1986) 54 | * [Dual EC: A Standardized Back Door](https://projectbullrun.org/dual-ec/documents/dual-ec-20150731.pdf) by **Daniel J. Bernstein et al.** (2015) 55 | * [On the Practical Exploitability of Dual EC in TLS Implementations](http://dualec.org/) by **Stephen Checkoway et al.** (2014) 56 | * [Accounting for Style in Machine Translation](http://mt-archive.info/TMI-1990-DiMarco.pdf) by **Chrysanne DiMarco & Graeme Hirst** (1990) 57 | * [You Can’t Stay Here: The Efficacy of Reddit’s 2015 Ban Examined Through Hate Speech](http://comp.social.gatech.edu/papers/cscw18-chand-hate.pdf) by **Eshwar Chandrasekharan et al.** (2017) 58 | * [Evolving Virtual Creatures](http://www.karlsims.com/papers/siggraph94.pdf) by **Karl Sims** (1994) 59 | * [Non-linear Digital Implementation of the Moog Ladder Filter](http://www.mirlab.org/conference_papers/International_Conference/DAFx%202004/Proc/P_061.pdf) by **Antti Huovilainen** (2004) 60 | * [Global Illumination Compendium](https://people.cs.kuleuven.be/~philip.dutre/GI/TotalCompendium.pdf) by **Philip Dutré** (2003) 61 | * [A Box, Darkly: Obfuscation, Weird Languages, and Code Aesthetics](http://nickm.com/cis/a_box_darkly.pdf) by **Michael Mateas & Nick Montfort** (2005) 62 | * [Chaff Bugs: Deterring Attackers by Making Software Buggier](https://arxiv.org/pdf/1808.00659.pdf) by **Zhenghao Hu** (2018) 63 | * [Behavioral Experiments in Email Filter Evasion](http://vorobeychik.com/2016/evasionhs.pdf) by **Liyiming Ke et al.** (2016) 64 | * [Heracles: Improving Resource Efficiency at Scale](http://csl.stanford.edu/~christos/publications/2015.heracles.isca.pdf) by **David Lo et al.** (2015) 65 | * [Intel x86 considered harmful](https://blog.invisiblethings.org/papers/2015/x86_harmful.pdf) by **Joanna Rutkowska** (2015) 66 | * [Mixin’ Up the ML Module System](https://people.mpi-sws.org/~rossberg/mixml/mixml-icfp08-extended.pdf) by **Derek Dreyer & Andreas Rossberg** (2008) 67 | * [1ML – Core and Modules United (F-ing First-Class Modules)](https://people.mpi-sws.org/~rossberg/1ml/1ml-jfp-draft.pdf) by **Andreas Rossberg** (2016) 68 | * [Linear Scan Register Allocation on SSA Form](http://www.christianwimmer.at/Publications/Wimmer10a/Wimmer10a.pdf) by **Christian Wimmer & Michael Franz** (2010) 69 | * [Profile guided code positioning](https://dl.acm.org/citation.cfm?id=93550) by **Karl Pettis & Robert C. Hansen** (1990) 70 | * [Bounding Data Races in Space and Time](http://kcsrk.info/papers/pldi18-memory.pdf) by **Stephen Dolan** (2018) 71 | * [Delayed Impact of Fair Machine Learning](https://arxiv.org/abs/1803.04383) by **Lydia T. Liu et al.** (2018) 72 | * [Language and Operating System Features for Real-time Programming](https://www.usenix.org/legacy/publications/compsystems/1988/win_donner.pdf) by **Marc D. Donner & David H. Jameson** (1988) 73 | * [Finger trees: a simple general-purpose data structure](http://www.staff.city.ac.uk/~ross/papers/FingerTree.pdf) by **Ralf Hinze & Ross Paterson** (2006) 74 | * [Theory and Practice of Chunked Sequences](http://www.chargueraud.org/research/2014/chunkedseq/chunkedseq.pdf) by **Umut A. Acar** (2014) 75 | * [RRB Vector: A Practical General Purpose Immutable Sequence](https://infoscience.epfl.ch/record/213452/files/rrbvector.pdf) by **Nicolas Stucki** (2015) 76 | * [Hierarchical Temporal Memory including HTM Cortical Learning Algorithms](https://numenta.com/assets/pdf/whitepapers/hierarchical-temporal-memory-cortical-learning-algorithm-0.2.1-en.pdf) by **Numenta** (2011) 77 | * [Using an Abstracted Interpreter to Understand Abstract Interpretation](https://www.cs.indiana.edu/l/www/classes/b621/abiall.pdf) by **Daniel P. Friedman & Anurag Mendhekar** (?) 78 | * [Phrasal Forms](http://www.jsoftware.com/papers/fork1.htm) by **K. E. Iverson & E. E. McDonnell** (?) 79 | * [Applicative programming with effects](http://www.staff.city.ac.uk/~ross/papers/Applicative.pdf) by **Conor McBride & Ross Paterson** (2008) 80 | * [Theorems for free](https://people.mpi-sws.org/~dreyer/tor/papers/wadler.pdf) by **Philip Wadler** (1989) 81 | * [Epigram: Practical Programming with Dependent Types](http://cs.ru.nl/F.Wiedijk/courses/tt-2010/tvftl/epigram-notes.pdf) by **Conor McBride** (2010) 82 | * [Dimension Types](https://link.springer.com/content/pdf/10.1007%2F3-540-57880-3_23.pdf) by **Andrew Kennedy** (1994) 83 | * [Computing Machinery and Intelligence](https://www.csee.umbc.edu/courses/471/papers/turing.pdf) by **A. M. Turing** (1950) 84 | * [Ideal Hash Trees](https://infoscience.epfl.ch/record/64398/files/idealhashtrees.pdf) by **Phil Bagwell** (2001) 85 | * [Notional Machines and Introductory Programming Education](https://www.researchgate.net/publication/259998496_Notional_Machines_and_Introductory_Programming_Education) by **Juha Sorva** (2015) 86 | * [Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire](https://ris.utwente.nl/ws/portalfiles/portal/6142049/meijer91functional.pdf) by **Erik Meijer et al.** 87 | * [Fictional Separation Logic](http://cs.au.dk/~birke/papers/sharing-conf.pdf) by **Jonas Braband Jensen & Lars Birkedal** (2012) 88 | * [Views: Compositional Reasoning for Concurrent Programs](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/views.pdf) by **Thomas Dinsdale-Young et al.** (2016) 89 | * [Some Philosophical Problems from the Standpoint of Artificial Intelligence](http://www-formal.stanford.edu/jmc/mcchay69.pdf) by **John McCarthy and Patrick J. Hayes** (1969) 90 | * [Cognitive Dimensions of Notations: Design Tools for Cognitive Technology](https://www.cl.cam.ac.uk/~afb21/publications/CT2001.pdf) by **A.F. Blackwell et al.** (2001) 91 | * [Using Routers to Build Logic Circuits: How Powerful is BGP?](https://vanbever.eu/pdfs/vanbever_turing_icnp_2013.pdf) by **Marco Chiesa et al.** (2013) 92 | * [A History of Haskell: Being Lazy With Class](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.pdf) by **Paul Hudak et al.** (2007) 93 | * [Deep Code Comment Generation](https://xin-xia.github.io/publication/icpc182.pdf) by **Xing Hu et al.** (2018) 94 | * [Gradual Typing: A New Perspective](https://www.irif.fr/~gc/papers/popl19.pdf) by **Giuseppe Castagna et al.** (2019) 95 | * [How To Write Shared Librarie](https://software.intel.com/sites/default/files/m/a/1/e/dsohowto.pdf) by **Ulrich Drepper** (2011) 96 | * [Macaroons: Cookies with Contextual Caveats for Decentralized Authorization in the Cloud](https://ai.google/research/pubs/pub41892) by **Arnar Bigisson et al.** (2014) 97 | * [Reasonably Programmable Literal Notation](https://github.com/cyrus-/ptsms-paper/blob/master/icfp18/omar-icfp18-final.pdf) by **Cyrus Omar & Jonathan Aldrich** (2018) 98 | * [Dijkstra Monads for Free](https://www.fstar-lang.org/papers/dm4free/) by **Danel Ahman et al.** (2017) 99 | * [How to Architect a Query Compiler, Revisited](https://www.cs.purdue.edu/homes/rompf/papers/tahboub-sigmod18.pdf) by **Ruby Y. Tahboub et al.** (2018) 100 | * [Coq in Coq](http://www.lix.polytechnique.fr/~barras/publi/coqincoq.pdf) by **Bruno Barras & Benjamin Werner** (1997) 101 | * [Collapsing Towers of Interpreters](http://lampwww.epfl.ch/~amin/pub/collapsing-towers.pdf) by **Nada Amin & Tiark Rompf** (2018) 102 | * [A Concrete Presentation of Game Semantics](http://www.cs.ox.ac.uk/people/luke.ong/personal/publications/galop08.pdf) by **W. Blum & C.-H. L. Ong** (2008) 103 | * [Algorithmic Game Semantics and its Applications: Final Report](http://www.cs.ox.ac.uk/people/luke.ong/personal/publications/final-report-agsa.pdf) by **S. Abramsky & C.-H. L. Ong** (2006) 104 | * [Program Testing and the Meaning Explanations of Intuitionistic Type Theory](http://www.cse.chalmers.se/~peterd/papers/MartinLofFestschrift.pdf) by **Peter Dybjer** (2012) 105 | * [Combining Testing and Proving in Dependent Type Theory](http://www.cse.chalmers.se/~peterd/papers/Testing_Proving.pdf) by **Peter Dybjer et al.** (2003) 106 | * [Verifying Haskell Programs by Combining Testing and Proving](http://www.cse.chalmers.se/~peterd/papers/Dallas.pdf) by **Peter Dybjer et al.** (2003) 107 | * [Verifying Haskell Programs by Combining Testing, Model Checking and Interactive Theorem Proving](http://www.cse.chalmers.se/~peterd/papers/TestingModelChecking.pdf) by **Peter Dybjer et al.** (2004) 108 | * [Random Generators for Dependent Types](http://www.cse.chalmers.se/~peterd/papers/Guiyang.pdf) by **Peter Dybjer et al.** (2004) 109 | * [Partial Evaluation of Computation Process - An Approach to a Compiler-Compiler](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.10.2747) by **Yoshihiko Futamura** (1999) 110 | * [Idris, a General Purpose Dependently Typed Programming Language: Design and Implementation](https://eb.host.cs.st-andrews.ac.uk/drafts/impldtp.pdf) by **Edwin Brady** (2013) 111 | * [Ivor, A Proof Engine](https://eb.host.cs.st-andrews.ac.uk/writings/ivor.pdf) by **Edwin Brady** (2006) 112 | * [Lambdascope—Another optimal implementation of the lambda-calculus](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.109.3616) by **Vincent van Oostrom et al.** (2008) 113 | * [About the efficient reduction of lambda terms](https://www.researchgate.net/publication/312462365_About_the_efficient_reduction_of_lambda_terms) by **Andrea Asperti** (2017) 114 | * [Sharing in the Evaluation of lambda Expression](http://pauillac.inria.fr/~levy/pubs/88icot.pdf) by **Jean-Jacques Lévy** (1988) 115 | * [Cubical Type Theory: a constructive interpretation of the univalence axiom](http://www.math.ias.edu/~amortberg/papers/cubicaltt.pdf) by **Cyril Cohen et al.** (2016) 116 | * [Generative Type Abstraction and Type-level Computation](https://www.seas.upenn.edu/~sweirich/papers/popl163af-weirich.pdf) by **Stephanie Weirich et al.** (2011) 117 | * [Wellfounded Recursion with Copatterns—A Unified Approach to Termination and Productivity](https://www.cs.mcgill.ca/~bpientka/papers/icfp13.pdf) by **Andreas Abel & Brigitte Pientka** (2013) 118 | * [Practical Type Inference for Arbitrary-Rank Types](https://repository.upenn.edu/cis_papers/315/) by **Simon Peyton Jones et al.** (2007) 119 | * [Innovations in Computational Type Theory using Nuprl](http://www.nuprl.org/documents/Allen/05-jal-final.pdf) by **S.F. Allen et al.** (2005) 120 | * [Homotopical Patch Theory](http://dlicata.web.wesleyan.edu/pubs/amlh14patch/amlh14patch.pdf) by **Carlo Angiuli** (2014) 121 | * [Interactive design of bonsai tree models](http://algorithmicbotany.org/papers/bonsai.eg2003.pdf) by **Frederic Boudon et al.** (2003) 122 | * [The Limbo Programming Language](http://www.vitanuova.com/inferno/papers/limbo.pdf) by **Dennis M. Ritchie** (2005) 123 | * [Continuation calculus](https://arxiv.org/pdf/1309.1257.pdf) by **Bram Geron & Herman Geuvers** (2013) 124 | * [A type system for Continuation Calculus](https://arxiv.org/pdf/1409.3313.pdf) by **Herman Geuvers et al.** (2014) 125 | * [GADTs Meet Their Match: Pattern-Matching Warnings That Account for GADTs, Guards, and Laziness](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/08/gadtpm-acm.pdf) by **Georgios Karachalias et al.** (2015) 126 | * [META II: A Syntax-Oriented Compiler-Writing Language](http://www.ibm-1401.info/Meta-II-schorre.pdf) by **D. V. Schorre** (1964) 127 | * [Compiling Erlang to Scheme](http://www.iro.umontreal.ca/~feeley/papers/FeeleyLarosePLILP98.pdf) by **Marc Feeley & Martin Larose** (1998) 128 | * [Etos: an Erlang to Scheme compiler](http://www.iro.umontreal.ca/~feeley/papers/FeeleyLaroseDIRO1079.pdf) by **Marc Feeley & Martin Larose** (1997) 129 | * [Computing Arbitrary Functions of Encrypted Data](https://crypto.stanford.edu/craig/easy-fhe.pdf) by **Craig Gentry** (2008) 130 | * [Generic top-down discrimination for sorting and partitioning in linear time](https://www.cs.ox.ac.uk/projects/utgp/school/henglein2012c.pdf) by **Fritz Henglein** (2012) 131 | * [Critical Perspectives on Provable Security: Fifteen Years of “Another Look” Papers](https://eprint.iacr.org/2019/1336.pdf) by **Neal Koblitz & Alfred Menezes** (2019) 132 | * [The Derivative of a Regular Type is its Type of One-Hole Contexts](http://strictlypositive.org/diff.pdf) by **Conor McBride** (?) 133 | * [How Bad Can It Git? Characterizing Secret Leakage in Public GitHub Repositories](https://www.ndss-symposium.org/wp-content/uploads/2019/02/ndss2019_04B-3_Meli_paper.pdf) by **Michael Meli et al.** (2019) 134 | * [Functional Pearl: Maximally Dense Segments](https://scm.iis.sinica.edu.tw/pub/mds.pdf) by **Sharon Curties & Shin-Cheng Mu** (2010) 135 | * [Distributed Feature Composition: A Virtual Architecture for Telecommunications Services](http://www.pamelazave.com/dfctse.pdf) by **Michael Jackson & Pamela Zave** (1998) 136 | * [Fexprs as the basis of Lisp function application or $vau: the ultimate abstraction](https://web.wpi.edu/Pubs/ETD/Available/etd-090110-124904/unrestricted/jshutt.pdf) by **John N. Shutt** (2010) 137 | * [“One part politics, one part technology, one part history”: Racial representation in the Unicode 7.0 emoji set](https://journals.sagepub.com/doi/pdf/10.1177/1461444819899623) by **Kate M. Miltner** (2020) 138 | * [Snakemake—a scalable bioinformatics workflow engine](https://watermark.silverchair.com/bts480.pdf?token=AQECAHi208BE49Ooan9kkhW_Ercy7Dm3ZL_9Cf3qfKAc485ysgAAAnYwggJyBgkqhkiG9w0BBwagggJjMIICXwIBADCCAlgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMSyL-0hj21xagVQoYAgEQgIICKdoxKm6qdGo7ofd2bLkpiZFTd_BzPU7ZwU0K20DJq0pfJzrkLqIAB6DweQyXXcoyKgIcdZzi9Wr5ihSiBgDI643Q9XSqZjYFTjXGPvDRsun2p18276lPU6OgElLdKnbL6i-4RRu_8ZbjI9If1kS3eBMjelQw9c4GA32U0HV1FarVbr7LoL46tt04Cg8Fjbk-U8SG9M3Gc_FyTuPQBHpLcjR2UFbIH34xiFfHW4YMIT1TeakbCnWm16RmL-s5QLAWtOj0un7YvQvvXBnYGDmmJtQmD_2JIe21OFNytX5GDIFJuovYWCwxEkrLvQWouVXssI5vt21_vZCD7RUrGFCtM1bzjryFMbiIRf4xhBmJilgs32N0pwRJQbwmlcnsTU3IzSKSHXaalDePsrcSQ-_bxe5GdXvS-M1hoRqiW0YM6p8YdwyCxV2OODhKxy1CMV_UsFVdy1Gv_bXVn8rwGECqOW8xMNdWn-Pu4Qhl_Jdsy3a9Lym3OtaSAAPbiyRthIXUHYaxYkAodb4nvTQrwlMehMCZYgHWIObQroIbUETVRn8DKibrKFm-uBBaRG6cEFURHEv1htVjAik-7LV7xygDLj3IP9NvB_6mSR-71wqgyfdHWoUUJhEyQasHZvSlP65eEKXZsdEdxjLqtsq9KnTkTQTZ40nh4Zsro026ziORS0CG8A6cWOWBrj6V9VcMmA9S6TUMkjI7Zh1ZD5HHIow79adqrGHQnT7ddis) by **Johannes Köster & Sven Rahmann** (2012) 139 | * [Making a Fast Curry: Push/Enter vs. Eval/Apply for Higher-Order Languages](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/eval-apply.pdf) by **Simin Marlow & Simon Peyton Jones** (2004) 140 | * [System F with Type Equality Coercions](https://www.microsoft.com/en-us/research/wp-content/uploads/2007/01/tldi22-sulzmann-with-appendix.pdf) by **Martin Sulzmann et al.** (2011) 141 | * [The Simple Essence of Automatic Differentiation](https://arxiv.org/pdf/1804.00746.pdf) by **Conal Elliott** (2018) 142 | * [Notions of computation and monads](https://person.dibris.unige.it/moggi-eugenio/ftp/ic91.pdf) by **Eugenio Moggi** (1991) 143 | * [The Art of the Propagator](https://groups.csail.mit.edu/mac/users/gjs/6.945/readings/art.pdf) by **Alexey Radul & Gerald Jay Sussman** (2008) 144 | * [Take A Way: Exploring the Security Implications of AMD’sCache Way Predictors](https://mlq.me/download/takeaway.pdf) by **Moritz Lipp et al.** (2020) 145 | * [STEPS Toward the Reinvention of Programming](http://www.vpri.org/pdf/tr2012001_steps.pdf) by **Yoshiki Ohshima et al.** (2012) 146 | * [Make — A Program for Maintaining Computer Programs](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.95.9198&rep=rep1&type=pdf) by **S. I. Feldman** (1974) 147 | * [Micro-Policies: Formally Verified, Tag-Based Security Monitors](https://prosecco.gforge.inria.fr/personal/hritcu/publications/micropolicies-draft.pdf) by **Arthur Azevedo de Amorim et al.** (2015) 148 | * [Applicative programming with effects](http://www.staff.city.ac.uk/~ross/papers/Applicative.pdf) by **Conor McBride & Ross Paterson** (2008) 149 | * [Let-floating: moving bindings to give faster programs](https://www.microsoft.com/en-us/research/wp-content/uploads/1996/05/float.pdf) by **Simon Peyton Jones et al.** (1996) 150 | * [The Two Dualities of Computation: Negative and Fractional Types](https://legacy.cs.indiana.edu/~sabry/papers/rational.pdf) by **Roshan P. James & Amr Sabry** (2012) 151 | * [Supermonads and superapplicatives](https://jbracker.de/publications/2017-BrackerNilsson-SupermonadsAndSuperapplicatives-UnderConsideration.pdf) by **Jan Bracker & Henrik Nilsson** (2017) 152 | * [Hasochism—The Pleasure and Pain of Dependently Typed Haskell Programming](https://dl.acm.org/doi/pdf/10.1145/2503778.2503786) by **Sam Lindley & Conor McBride** (2013) 153 | * [The Simple Essence of Algebraic Subtyping: Principal Type Inference with Subtyping Made Easy](https://infoscience.epfl.ch/record/278576) by **Lionel Parreaux** (2020) 154 | * [Mathematical Logic as Based on the Theory of Types](https://pdfs.semanticscholar.org/307e/db386b0e8873dace282285296370ebae4d6a.pdf?_ga=2.110070528.480651931.1591954849-1218701680.1573819848) by **Bertrand Russell** (1908) 155 | * [Magic Sets for disjunctive Datalog programs](https://www.sciencedirect.com/science/article/pii/S0004370212000562) by **Mario Alviano et al.** (2012) 156 | * [Explaining Outputs in Modern Data Analytics](http://www.vldb.org/pvldb/vol9/p1137-chothia.pdf) by **Zaheer Chothia et al.** (2016) 157 | * [A History of CLU](http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-561.pdf) by **Barbara Liskov** (2012) 158 | * [Functional Programming with Overloading and Higher-Order Polymorphism](http://web.cecs.pdx.edu/~mpj/pubs/springschool95.pdf) by **Mark P. Jones** (1995) 159 | * [Design and Implementation of Probabilistic Programming Language Anglican](https://arxiv.org/pdf/1608.05263.pdf) by **David Tolpin et al.** (2016) 160 | * *The use of the genie system in numerical calculation* by **J. K. Iliffe** (1961) 161 | * [Counting Immutable Beans: Reference Counting Optimized for Purely Functional Programming](https://arxiv.org/pdf/1908.05647.pdf) by **Sebastian Ullrich & Leonardo de Moura** (2020) 162 | * [A tutorial implementation of a dependently typed lambda calculus](https://andres-loeh.de/LambdaPi/LambdaPi.pdf) by **Andres Löh et al.** (2001) 163 | 164 | ### Books 165 | 166 | * *Gödel, Escher, Bach* by **Douglas Hofstaedter** (1979) 167 | * *Computation - Finite and Infinite Machines* by **Marvin Minsky** (1967) 168 | * *The Sciences of the Artificial* by **Herbert Simon** (1969) 169 | * [The Implementation of Functional Programming Languages](http://research.microsoft.com/en-us/um/people/simonpj/papers/slpj-book-1987/start.htm) by **Simon Peyton Jones** (1987) 170 | * [How to Design Programs](http://htdp.org/2003-09-26/Book/curriculum.html) by **Matthias Felleisen et al.** (2001) 171 | * [Preliminary Proceedings of the Ninth Workshop on Language Descriptions Tools and Applications LDTA 2009](http://ldta.info/2009/ldta2009proceedings.pdf) by **Torbjörn Ekman and Jurgen Vinju** (2009) 172 | * [Distributed Algorithms](http://users.ics.aalto.fi/suomela/da/) by **Jukka Suomela** (2014) 173 | * [Sequent Calculus as a Compiler Intermediate Language](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/04/sequent-calculus-icfp16.pdf) by **Simon Peyton Jones et al.** (2016) 174 | * [RABBIT: A Compiler for SCHEME](http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AITR-474.pdf) by **Guy Steele** (1978) 175 | * *The Psychology of Computer Programming* by **Gerald Weinber** (1971) 176 | * [PILOT: A Step Toward Man-Computer Symbiosis](https://dspace.mit.edu/bitstream/handle/1721.1/6905/AITR-221.pdf) by **Warren Teitelman** (1966) 177 | * [Optimizing compilation with the Value State Dependence Graph](https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-705.pdf) by **Alan C. Lawrence** (2007) 178 | * [Succinct Data Structures](http://www.research.att.com/export/sites/att_labs/people/Jacobson_Guy_J/library/publications/JacobsonThesis.pdf) by **Guy Jacobson** (1989) 179 | * [Space-Efficient Data Structures for Information Retrieval](https://uwspace.uwaterloo.ca/bitstream/handle/10012/7491/Claude_Francisco.pdf) by **Francisco Claude** (2013) 180 | * [Linux Kernel in a Nutshell](http://www.kroah.com/lkn/) by **Greg Kroah-Hartman** (2009) 181 | * [A Retargetable C Compiler: Design and Implementation](https://sites.google.com/site/lccretargetablecompiler/) by **David R. Hanson & Christopher W. Fraser** (1995) 182 | * [An Extension-Oriented Compiler](https://pdos.csail.mit.edu/~rsc/rsc-thesis.pdf) by **Russ Cox** (2001) 183 | * [A Brief Introduction to Machine Learning for Engineers](https://arxiv.org/pdf/1709.02840.pdf) by **Osvaldo Simeone** (2018) 184 | * [On the Design of Editors for Small Computers](http://history.dcs.ed.ac.uk/archive/apps/Whitfield-Thesis/thesis.html) by **C. H. Whitfield** (1972) 185 | * [The little book about OS development](https://littleosbook.github.io/) by **Erik Helin & Adam Renberg** (2015) 186 | * [Programming Language Foundations in Agda](https://plfa.github.io/) by **Wen Kokke & Philip Wadler** (2018?) 187 | * [Operating Systems: From 0 to 1](https://tuhdo.github.io/os01/) by **Tu Do** (2018?) 188 | * [Game Programming Patterns](http://gameprogrammingpatterns.com/) by **Robert Nystrom** (2014) 189 | * [The Power of Prolog](https://www.metalevel.at/prolog) by **Markus Triska** (2005) 190 | * [The AWK Programming Language](https://ia802309.us.archive.org/25/items/pdfy-MgN0H1joIoDVoIC7/The_AWK_Programming_Language.pdf) by **Alfred V.Aho et al.** (1988) 191 | * [Understanding Computation: From Simple Machines to Impossible Programs](http://computationbook.com/) by **Tom Stuart** (2013) 192 | * [Process Compendium 2004-2010](https://drive.google.com/file/d/0B9h469--G5OwOGVfVmUxZUQ5VzA/view) by **Casey E. B. Reas** (2010) 193 | * [Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers](https://lamport.azurewebsites.net/tla/book-02-08-08.pdf) by **Leslie Lamport** (2002) 194 | * [Let’s Build a Compiler (in Haskell)](http://alephnullplex.github.io/cradle/) by **Geoff Ford** (2014) 195 | * [Let’s Build a Compiler](https://compilers.iecc.com/crenshaw/tutorfinal.pdf) by **Jack W. Crenshaw** (1988) 196 | * [The Art of VA Filter Design](https://www.native-instruments.com/fileadmin/ni_media/downloads/pdf/VAFilterDesign_1.1.1.pdf) by **Vadim Zavalishin** (2015) 197 | * [Programming from A to Z](https://shiffman.net/a2z/) by **Daniel Shiffman** (2018?) 198 | * [Physical Audio Signal Processing for Virtual Musical Instruments and Audio Effects](https://ccrma.stanford.edu/~jos/pasp/) by **Julius O. Smith III** (2010) 199 | * [ofBook](https://openframeworks.cc/ofBook/chapters/foreword.html) by **Various** (2018) 200 | * [The Scientist and Engineer's Guide to Digital Signal Processing](http://www.dspguide.com/pdfbook.htm) by **Steven W. Smith** (1997) 201 | * [Traditional methods of pattern designing; an introduction to the study of the decorative art](https://archive.org/details/traditionalmetho00chririch) by **Archibald H. Christie** (1910) 202 | * [Calculus Made Easy](http://djm.cc/library/Calculus_Made_Easy_Thompson.pdf) by **Silvanus P. Thompson** (1943) 203 | * [Beautiful Racket: an introduction to language-oriented programming using Racket](https://beautifulracket.com/) by **Matthew Butterick** (2017) 204 | * [Purely Functional Data Structures](http://www.cs.cmu.edu/%7Erwh/theses/okasaki.pdf) by **Chris Okasaki** (1996) 205 | * [Graphics Programming Black Book](http://www.jagregory.com/abrash-black-book/) by **Michael Abrash** (1997) 206 | * [Introducing the Spartan 3E FPGA and VHDL](https://github.com/hamsternz/IntroToSpartanFPGABook/blob/master/IntroToSpartanFPGABook.pdf) by **Mike Field** (2014) 207 | * [Advanced Topics in Types and Programming Languages](http://www.cis.upenn.edu/~bcpierce/attapl/) by **Benjamin C. Pierce** (2004) 208 | * [Types and Programming Languages](http://www.cis.upenn.edu/~bcpierce/tapl/) by **Benjamin C. Pierce** (2002) 209 | * [VHDL Tutorial](https://www.seas.upenn.edu/~ese171/vhdl/vhdl_primer.html) by **Jan Van der Spiegel** (2001) 210 | * [Category Theory for Programmers](https://github.com/hmemcpy/milewski-ctfp-pdf) by **Bartosz Milewski** (2018) 211 | * [Programming languages and dimensions](https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-391.pdf) by **Andrew John Kennedy** (1996) 212 | * [Poetry of Programming - Puzzle Based Introduction to Functional Programming](https://egri-nagy.github.io/popbook/) by **Attila Egri-Nagy** (2018) 213 | * [Introduction to Compilers and Language Design](https://www3.nd.edu/~dthain/compilerbook/) by **Douglas Thain** (2018) 214 | * [Higher Order Perl](https://hop.perl.plover.com/) by **Mark Jason Dominus** (2005) 215 | * [The Early Development of Programming Languages](http://bitsavers.trailing-edge.com/pdf/stanford/cs_techReports/STAN-CS-76-562_EarlyDevelPgmgLang_Aug76.pdf) by **Donald Knuth & Luis Trabb Pardo** (1976) 216 | * [The Little Book of Semaphores](http://greenteapress.com/semaphores/LittleBookOfSemaphores.pdf) by **Allen B. Downey** (2016) 217 | * [A Primer on Bézier Curves](https://pomax.github.io/bezierinfo/) by **Mike Kamermans** (2018) 218 | * [Algorithms](http://jeffe.cs.illinois.edu/teaching/algorithms/) by **Jeff Erickson** (2018) 219 | * [Engineering a Safer World—Systems Thinking Applied to Safety](http://mitpress.mit.edu/books/engineering-safer-world) by **Nancy G. Leveson** (2012) 220 | * [Seven Sketches in Compositionality: An Invitation to Applied Category Theory](https://arxiv.org/pdf/1803.05316.pdf) by **Brendan Fong & David I.Spivak** (2018) 221 | * [Practical Implementation of a Dependently Typed Functional Programming Language](https://eb.host.cs.st-andrews.ac.uk/writings/thesis.pdf) by **Edwin C. Brady** (2005) 222 | * [Dependently Typed Programming with Domain-Specific Logics](http://dlicata.web.wesleyan.edu/pubs/thesis/thesis.pdf) by **Daniel R. Licata** (2011) 223 | * [The Innovators](https://www.simonandschuster.com/books/The-Innovators/Walter-Isaacson/9781476708706) by **Walter Isaacson** (2015) 224 | * [But How Do It Know?](http://buthowdoitknow.com/) by **J. Clark Scott** (2009) 225 | * [Rust in Action](https://livebook.manning.com/#!/book/rust-in-action/welcome/v-9/) by **T. S. McNamara** (unreleased) 226 | * [Ruby Under a Microscope](http://patshaughnessy.net/ruby-under-a-microscope) by **Pat Shaughnessy** (2013) 227 | * [Calculus for Beginners and Artists](http://www-math.mit.edu/~djk/calculus_beginners/) by **Daniel Kleitman** (2019) 228 | * *The Mythical Man-Month* by **Frederick P. Brooks, Jr.** (1975) 229 | * *Algorithms + Data Structures = Programs* by **Niklaus Wirth** (1976) 230 | * *Software Abstractions: Logic, Language, and Analysis* by **Daniel Jackson** (2012) 231 | * [A fully homomorphic encryption scheme](https://crypto.stanford.edu/craig/) by **Craig Gentry** (2009) 232 | * [Software Security—Principles, Policies, and Protection](https://nebelwelt.net/SS3P/softsec.pdf) by **Matthias Payer** (2019) 233 | * [Practical Compiler Construction](http://www.t3x.org/reload/index.html) by **Nils M. Holm** (2012) 234 | * [Scheme 9 from Empty Space](http://www.t3x.org/s9book/index.html) by **Nils M. Holm** (2014) 235 | * [An Introduction to Array Programming in Klong](http://www.t3x.org/klong/book.html) by **Nils M. Holm** (2018) 236 | * [Write Your Own Compiler](http://www.t3x.org/t3x/book.html) by **Nils M. Holm** (2017) 237 | * [Lisp System Implementation](http://www.t3x.org/lsi/index.html) by **Nils M. Holm** (2019) 238 | * [Sketchy Scheme](http://www.t3x.org/sketchy/index.html) by **Nils M. Holm** (2011) 239 | * [Logic Programming in Scheme](http://www.t3x.org/amk/index.html) by **Nils M. Holm** (2012) 240 | * [Compiling Lambda Calculus](http://www.t3x.org/clc/index.html) by **Nils M. Holm** (2018) 241 | * *The t Programming Language: A Dialect of Lisp* by **Stephen Slade** (1987) 242 | * *Land Of Lisp* by **Conrad Barski** (2010) 243 | * [Thinking Forth](http://thinking-forth.sourceforge.net/) by **Leo Brodie** (1984) 244 | * [Stack Computers: the new wave](https://users.ece.cmu.edu/~koopman/stack_computers/) by **Philip J. Koopman, Jr.** (1989) 245 | * *A Discipline of Programming* by **Edsger Dijkstra** (1976) 246 | * *Software Desing X-Rays: Fix Technical Debt with Behavioral Code Analysis* by **Adam Tornhill** (2018) 247 | * *Verified Functional Programming in Agda* by **Aaron Stump** (2016) 248 | * [Low Level Virtual Machine for Glasgow Haskell Compiler](https://llvm.org/pubs/2009-10-TereiThesis.pdf) by **David Anthony Terei** (2009) 249 | * *Waltzing With Bears* by **Tom DeMarco & Timothy Lister** (2003) 250 | * [Lattice-based Cryptography—Threshold Protocols and Multiparty Computation](https://pure.au.dk/portal/files/68736697/Ph.D_dissertation_Rikke_Bendlin.pdf) by **Rikke Bendlin** (2013) 251 | * [Towards a practical programming language based on dependent type theory](http://www.cse.chalmers.se/~ulfn/papers/thesis.pdf) by **Ulf Norell** (2007) 252 | * [Smacc: A Compiler-Compiler](http://books.pharo.org/booklet-Smacc/pdf/2018-10-21-Smacc-Compiler.pdf) by **John Brant et al.** (2018) 253 | * [Security Engineering](https://www.cl.cam.ac.uk/~rja14/book.html) by **Ross Anderson** (2020) 254 | * [Understanding and Evolving the Rust Programming Language](https://www.ralfj.de/research/phd/thesis-screen.pdf) by **Ralf Jung** (2020) 255 | 256 | ## Recreational 257 | 258 | ### Papers 259 | 260 | * [The Psychological Impact Of Incarceration: Implications for Post-Prison Adjustment](http://www.urban.org/sites/default/files/alfresco/publication-pdfs/410624-The-Psychological-Impact-of-Incarceration.PDF) by **Craig Hainey** (2002) 261 | * [Holy Stigmata, Anorexia, and Self-Mutilation: Parallels in Pain and Imagining](http://www.academia.edu/541052/Holy_Stigmata_Anorexia_and_Self-Mutilation_Parallels_in_Pain_and_Imagining) by **Robert Mullen** (2010) 262 | * [What Mary Didn’t Know](http://home.sandiego.edu/~baber/analytic/Jackson.pdf) by **Frank Jackson** (1986) 263 | * [Traversable Wormholes, Stargates, and Negative Energy](http://electrogravityphysics.com/wp-content/uploads/traversable-wormholes-stargates-negative-energy001.pdf) by **Eric W. Davis** (2009) 264 | * [Insights into Sexism: Male Status and Performance Moderates Female-Directed Hostile and Amicable Behaviour](http://journals.plos.org/plosone/article/file?id=10.1371/journal.pone.0131613&type=printable) by **Michael M. Kasumovic & Jeffrey H. Kuznekoff** (2015) 265 | * [A Mixed Methods Study of Telepathic Interspecies Communication with Therapeutic Riding Horses and Their Recovering Wounded Veteran Partners](https://deboraherickson.vpweb.com/upload/Telepathic_interspecies_communication-with-horses_06-09-16.pdf) by **Deborah L. Erickson et al.** (2016) 266 | * [I Didn’t Want to Offend You: The Cost of Avoiding Sensitive Questions](https://poseidon01.ssrn.com/delivery.php?ID=573003097124108027103018029101066102004031054052030066103127106126127093090026068007006034063101028059032067029102006126071107046016071077042066005092087075125075096068080057089030002091067082002086121068123091073001119029031003026126081122019106086104&EXT=pdf) by **Einav Hart et al.** (2019) 267 | * [Three typefaces for mathematics](http://ultrasparky.org/school/pdf/DanielRhatigan_Dissertation.pdf) by **Daniel Rhatigan** (2007) 268 | * [Individual differences in personality predict the use and perceived effectiveness of essential oils](https://journals.plos.org/plosone/article/file?id=10.1371/journal.pone.0229779&type=printable) by **Lindsay S. Ackerman & William J. Chopik** (2020) 269 | * [Was sind und was sollen die Zahlen?](http://www.opera-platonis.de/dedekind/Dedekind_Was_sind_2.pdf) by **Richard Dedekind** (1887) 270 | * [Blaming a Few Bad Apples to Save a Threatened Barrel: The System-Justifying Function of Conspiracy Theories](https://onlinelibrary.wiley.com/doi/pdf/10.1111/pops.12404) by **Daniel Jolley et al.** (2018) 271 | 272 | ### Books 273 | 274 | * *A History of Eternity* by **Jorge Luis Borges** (1936) 275 | * *The Garden of the Forking Paths* by **Jorge Luis Borges** (1941) 276 | * *A Thousand Plateaus* by **Gilles Deleuze and Felix Guattari** (1980) 277 | * *Archeology of Violence* by **Pierre Clastres** (1980) 278 | * *Geometric Galois Actions* by **Leila Schneps and Pierre Lochak** (1997) 279 | * *The Order of Things* by **Michel Foucault** (1966) 280 | * *Do Androids Dream of Electric Sheep?* by **Philip K. Dick** (1968) 281 | * [Dialogues Concerning Natural Religion](http://www.davidhume.org/texts/dnr.html) by **David Hume** (1779) 282 | * [An Improviser’s OS](http://www.waynekrantz.com/?albums=wayne-krantz-an-improvisers-os-book) by **Wayne Krantz** (2018) 283 | * [The Last Ringbearer](http://fan.lib.ru/img/e/eskov/last_ringbearer_engl/last_ring_bearer.pdf) by **Kirill Yeskov** (1999) 284 | * *Diary of a Very Bad Year: Confessions of an Anonymous Hedge Fund Manager* by **an Anonymous Hedge Fund Manager (duh)** (2010) 285 | * *Mastering the Core Teachings of the Buddha: An Unusually Hardcore Dharma Book* by **Daniel Ingram** (2009) 286 | * *How to Win Friends and Influence People* by **Dale Carnegie** (1936) 287 | * *The Bell Jar* by **Sylvia Plath** (1963) 288 | * *Diese sehr ernsten Scherze* by **Daniel Kehlmann** (2006) 289 | * *Bleeding Edge* by **Thomas Pynchon** (2013) 290 | * *Vom Gehen im Eis* by **Werner Herzog** (2009) 291 | * *The Peregrine* by **John Alec Baker** (1967) 292 | * *Invisible Cities* by **Italo Calvino** (1972) 293 | * *Reisende auf einem Bein* by **Herta Müller** (1989) 294 | * [Don’t Just Roll the Dice](https://neildavidson.com/downloads/dont-just-roll-the-dice-2.0.0.pdf) by **Neil Davidson** (2012) 295 | * [Unsettling the Coloniality of Being/Power/Truth/Freedom: Towards the Human, After Man, Its Overrepresentation—An Argument](https://law.unimelb.edu.au/__data/assets/pdf_file/0010/2432989/Wynter-2003-Unsettling-the-Coloniality-of-Being.pdf) by **Sylvia Wynter** (2003) 296 | * *A General Theory of Oblivion* by **José Eduardo Agualusa** (2013) 297 | * *The Refusal of Work* by **David Frayne** (2015) 298 | * *A Mathematician’s Apology* by **G. H. Hary** (1940) 299 | * *The Case Against Reality: Why Evolution Hid the Truth from Our Eyes* by **Donald Hoffman** (2019) 300 | * *Risk Savvy* by **Gerd Gigerenzer** (2015) 301 | * *The Geometry of Meaning: Semantics Based on Conceptual Spaces* by **Peter Gärdenfors** (2014) 302 | * *Implicit Learning and Tacit Knowledge: An Essay on the Cognitive Unconscious* by **Arthur S. Reber** (1996) 303 | * *Educating Intuition* by **Robin M. Hogarth** (2010) 304 | * *The Reasons of Love* by **Harry G. Frankfurt** (2004) 305 | * *Thinking Being: Introduction to Metaphysics in the Classical Tradition* by **Eric D. Perl** (2014) 306 | * [Sand Talk: How Indigenous Thinking Can Save the World](https://www.textpublishing.com.au/books/sand-talk) by **Tyson Yunkaporta** (2019) 307 | * [Microcosmic God Volume II: The Complete Stories of Theodore Sturgeon](https://www.kobo.com/us/es/ebook/microcosmic-god) by **Theodore Sturgeon** (2013) 308 | * *Working in Public* by **Nadia Eghbal** (2020) 309 | * *Survival of the Fattest: The key to Human Brain Evolution* by **Stephen C. Cunnane** (2005) 310 | * *Essentials of Strength Training and Conditioning* by **G. Gregory Haff & N. Travis Triplett (Editors)** (2015) 311 | * *Designing Resistance Training Programs* by **Steven J. Fleck & William J. Kraemer** (2014) 312 | * *Foundations of Sport and Exercise Psychology* by **Robert S. Weinberg & Daniel Gould** (2018) 313 | * *Triphasic Training: A Systematic Approach to Elite Speed and Explosive Strength Performance* by **Cal Dietz & Ben Peterson** (2012) 314 | * *Practical Programming for Strength Training* by **Mark Rippetoe** (2014) 315 | * *Easy Strength: How to Get a Lot Stronger Than Your Competition-And Dominate in Your Sport* by **Pavel Tsatsouline & Dan John** (2011) 316 | * *The Purposeful Primitive: From Fat and Flaccid to Lean and Powerful* by **Marty Gallagher** (2012) 317 | * *Never Let Go* by **Dan John et al.** (2011) 318 | * *Olympic Weightlifting: A Complete Guide for Athletes & Coaches* by **Greg Everett** (2016) 319 | * [Coming Into Being: Artifacts and Texts in the Evolution of Consciousness](https://us.macmillan.com/books/9780312176921) by **William Irwin Thompson** (1998) 320 | * *The Five Disfunctions of a Team* by **Patrick Lencioni** (2002) 321 | * *Learn How To Study* by **Derek Rowntree** (1970) 322 | -------------------------------------------------------------------------------- /done.md: -------------------------------------------------------------------------------- 1 | # Done 2 | 3 | First off, a caveat. I am most certainly not qualified to judge any of 4 | the writings I judge, so please see everything I am writing as notes to 5 | myself to remind me of key ideas in the paper or book at hand and what 6 | I thought of them. They are as biased and right and wrong about things 7 | as I personally am. So if you do not trust me as a person, do not trust 8 | my write-ups—and even if you do trust me, I’m probably out of my depth 9 | here. 10 | 11 | ## Computer Science 12 | 13 | ### Papers 14 | * [Growing a Proof Assistant](https://williamjbowman.com/resources/cur.pdf) by **William Bowman** (2016) 15 | 16 | I am hesitant to write anything about this paper at all, as it is a draft 17 | and subject to change. I will, however, write down a few things that came 18 | to my mind when I first read the paper. Maybe I will reread it when it is 19 | done. 20 | 21 | The paper presents a racket lang implementing a proof assistant. The key 22 | idea is to make proof assistants easier to extend and work with apart 23 | from writing proof. Maybe I am missing something obvious, but for me 24 | most of the features presented before chapter 5 are not actually features 25 | of the lang at hand but of Racket itself. After a long-winded motivation, 26 | we finally arrive at the notion of tactics in Cur - the language at hand -, 27 | which are interesting and definitely worth the read. My major problem with 28 | the language is that it sacrifices a convenient syntax to write proofs - the 29 | sweetexps are not really helping much - to make it easier to integrate into 30 | Racket. The proof system looks a little clumsy to me, but we gain extensibility 31 | for it. If that scratches an itch, it might be useful, but I really think 32 | the syntax does not help to make the proofs themselves readable. 33 | 34 | * [Parsing With Derivatives - A Functional Pearl](http://matt.might.net/papers/might2011derivatives.pdf) by **Matthew Might et al.** (2011) 35 | 36 | Beautiful little pearl on how to make Brzozowski derivatives usable 37 | for real-world parsing through performance tweaks (memoization, fixpoints, 38 | laziness). Uses Racket code (which helped me a lot with understanding 39 | some of the underlying equations). 40 | 41 | * [Simply Easy! An Implementation of a Dependently Typed Lambda Calculus](http://strictlypositive.org/Easy.pdf) by **Andres Löh et al.** (2007) 42 | 43 | Interesting implementation of a dependently typed lambda calculus. 44 | The paper is worth reading for the description of current Haskell 45 | programs alone: "a ghastly hodgepodge of generalized algebraic data 46 | types, multi-parameter type classes with functional dependencies, 47 | impredicative higher-ranked types, and even data kinds." Some of 48 | the figures completely puzzled me (e.g. figure 10 on the type 49 | rules in the language that is being laid out), but I am used to 50 | that in type system papers. The rules are usually explained in 51 | the text anyway, so I just skim the figures. 52 | 53 | The main contribution of this paper for me is not that it shows 54 | dependent types are possible to implement (anyone who has heard 55 | of Agda, Coq, or Idris will know that by now), but that it can 56 | even be straightforward. The implementation given in the paper 57 | is mind-boggingly simple, and I think that is pretty amazing. 58 | 59 | * [Situations, Actions, and Causal Laws](http://www.dtic.mil/dtic/tr/fulltext/u2/785031.pdf) by **John McCarthy** (1963) 60 | 61 | Another one of these classic papers that I had missed. I don’t 62 | think I completely understand the paper, although, as per usual 63 | McCarthy does not fail to instill a lot of thoughts in my slow 64 | mind. His idea of the Advice Taker is an interesting forgotten 65 | concept (probably due to the AI winter, though I am not around 66 | long enough to really judge that). 67 | 68 | His relational approach to the computational view of reality 69 | reminds me a lot of Prolog, obviously, although I am unsure 70 | how much Prolog was really influenced by the Advice Taker (I 71 | should probably read more about that as well). 72 | 73 | * [Reflections on Trusting Trust](http://www3.cs.stonybrook.edu/%7Ecse509/p761-thompson.pdf) by **Ken Thompson** (1984) 74 | 75 | While I do not fully agree with the moral view of the world 76 | presented in this talk, I think the idea of a malicious compiler 77 | is cute. It has not occurred to me yet but is obvious when 78 | you think about it - a trademark of interesting ideas. 79 | 80 | * [Out of the Tar Pit](http://shaffner.us/cs/papers/tarpit.pdf) by **Ben Moseley and Peter Marks** (2006) 81 | 82 | The essential paper on FRP. Apart from giving an excellent 83 | introduction into what FRP is and should be, the authors 84 | also spend a great deal of time on explaining how different 85 | programming paradigms deal with state and complexity and 86 | their individual shortcomings (that were supposedly overcome 87 | through FRP). 88 | 89 | Great paper, very long, but - at least in my opinion - out 90 | of necessity, not borne from babbling. 91 | 92 | * [Type Systems as Macros](http://www.ccs.neu.edu/home/stchang/pubs/ckg-popl2017.pdf) by **Stephen Chang et al.** (2017) 93 | 94 | A bit hard to read and involved, but very deep insights. 95 | I might try to recreate in zepto. 96 | 97 | The syntax of all of the languages and systems presented 98 | were ugly. That’s not that big of a problem, though, if 99 | one puts a bit more abstraction around them they could 100 | actually be pleasant to work with. 101 | 102 | * [Rapid Case Dispatch in Scheme](http://scheme2006.cs.uchicago.edu/07-clinger.pdf) by **William Clinger** (2006) 103 | 104 | An inside view into how Larceny does optimizations of `case`. 105 | Interesting if a bit complex and hard to read if one is unfamiliar 106 | with reading intermediate form Larceny programs. The examples 107 | are rather simple, though. I think the mixing of strategies 108 | to achieve maximum performance sounds like a hard optimization 109 | to get right but worth its while. 110 | 111 | * [Do Be Do Be Do](https://arxiv.org/pdf/1611.09259v1.pdf) by **Sam Lindley et al.** (2016) 112 | 113 | Frank is certainly an interesting language. I am not quite 114 | sure I understand all of its semantics and implications, though. 115 | Especially the explanation of Core Frank left me not quite satisfied, 116 | but that might just be me and my personal problems with the notation 117 | again. Might have to give that one another read if I want to go deeper 118 | into effects languages. 119 | 120 | * [Sketchpad - A Man-Machine Graphical Communication System](https://www.cs.purdue.edu/homes/hosking/197/canon/sutherland.pdf) by **Ivan Sutherland** (1964) 121 | 122 | This is one of the most humbling papers I have ever read. The complexity 123 | of the system described—Sketchpad—is mind-boggling, considering the tooling 124 | of the time. I marvel at it in the same way we marvel at things of complexity 125 | that have been built by generations that had to do without the conveniences 126 | and abstractions that we now have. I did not take away a lot in the hard 127 | technical sense, and yet it influenced my thinking greatly already. 128 | 129 | * [Hygienic Macro Expansion](http://web.cs.ucdavis.edu/%7Edevanbu/teaching/260/kohlbecker.pdf) by **Eugene Kohlbecker et al.** (1986) 130 | 131 | The fundamental paper on hygienic macro expansion. Reads fairly nicely. 132 | I was familiar with the concept before reading the paper, but it really 133 | feels like my basic grasp on the concept is much stronger now. Very 134 | helpful for the system (System Z) I am currently working on, as I will 135 | have to implement it in a language that is not Scheme or even a Lisp there 136 | and that is a fairly badly documented process I find. 137 | 138 | * [A prettier printer](http://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf) by **Philip Wadler** (1997) 139 | 140 | Philip Wadler is my spirit animal. In this paper he essentially conjures 141 | up a wonderfully simple and composable algebra of printing and uses it 142 | to implement a simple, efficient, and readable pretty printer. It makes 143 | me want to implement one of my own. Then again, why would I if I cannot 144 | even begin to capture the beauty of this paper? Very readable and very 145 | pretty indeed. 146 | 147 | * [Flattening Combinators: Surviving Without Parentheses](https://web.archive.org/web/20160817074514/http://www.westpoint.edu/eecs/SiteAssets/SitePages/Faculty%20Publication%20Documents/Okasaki/jfp03flat.pdf) by **Chris Okasaki** (2003) 148 | 149 | A theoretical pearl by Chris Okasaki (of "Functional Datastructures" fame). 150 | It shows how to rewrite arbitrary combinators to stack expressions, similar 151 | to what you would to in reverse polish notation. It’s a simple yet very beautiful 152 | showcase of how to rewrite postifx notation to combinators and vice versa 153 | and invents an interesting approach to Gödel numbering on the way, in less 154 | than eight pages. The latter of the two implications is a bit harder to digest, 155 | and less applicable to what I am doing, but relatively obvious, which astounded 156 | me considering I am not a very battle-hardened theoretical computer scientist. 157 | Maybe my reading just starts to bear fruits or maybe it is Okasaki’s pristine 158 | writing. 159 | 160 | * [Why New Programming Languages for Simulation?](https://groups.csail.mit.edu/commit/papers/2016/why.pdf) by **Gilbert Louis Bernstein and Fredrik Kjolstad** (2016) 161 | 162 | Coming from the language designers of Ebb and Simit, respectively, this nice 163 | little summary on why to create new languages is very centered around simulation, 164 | but can be easily generalized. It tries to tackle the age-old question of "Why 165 | should we create even more programming languages?" with a simple answer: better 166 | abstraction, better tools need time to be developed. And we can do better than 167 | we currently are. Which is a nice sentiment that I deeply share, as a hobby/semi-serious 168 | language designer. 169 | 170 | * [Lambda: The Ultimate Declarative](https://dspace.mit.edu/bitstream/handle/1721.1/6091/AIM-379.pdf) by **Guy Steele** (1976) 171 | 172 | This paper is filled to the brim with interesting ideas. The symmetry of lambdas 173 | and actors was especially surprising. Rewriting function calls to jumps is not 174 | that new an optimization, apparently, which is also interesting to know; the bit 175 | about implementing tail-recursion as `GOTO` going back to the PDP-1 puts shame to 176 | every language that still does not implement proper tail recursion. And I should 177 | try to play around with the CPS-converter given in Appendix A, that one was really 178 | interesting. 179 | 180 | * [Debunking the ‘Expensive Procedure Call’ Myth, or, Procedure Call Implementations Considered Harmful, or, Lambda: The Ultimate GOTO](https://dspace.mit.edu/bitstream/handle/1721.1/5753/AIM-443.pdf) by **Guy Steele** (1977) 181 | 182 | An interesting insight into programming in the 70s. Coming from today it is 183 | pretty much impossible that one learns that using `GOTO` is good for your 184 | programs, neither as an optimization (most modern compilers are better than 185 | average Joe Programmer at understanding how to optimize the program anyway) 186 | nor as a stylistic choice (most blindly obey Djikstra’s quip about `GOTO` 187 | being harmful without having read the actual article, in my experience). 188 | Now, I personally still find that sometimes `GOTO` might be acceptable 189 | (in error handling/cleanup cases, very sparingly, for instance), but 190 | the issue that Steele and adressed in this paper is pretty much accounted 191 | for by now. Maybe I am mistaken, and am in the wrong business, though. 192 | 193 | * [Adding an LLVM Backend to Bigloo Scheme](https://gupea.ub.gu.se/bitstream/2077/34201/1/gupea_2077_34201_1.pdf) by **Mikael Brockman** (2013) 194 | 195 | An interesting masters thesis on compiling Scheme—more specifically, 196 | Bigloo Scheme—into LLVM. It is surprisingly short and spends very little 197 | time actually talking about the specifics of the implementation, but 198 | the authors approach seems interesting. I played around with a LLVM 199 | backend for zepto that works on the textual IR level, but I did not find 200 | a good way to make it modular and abandoned it after implementing a useless 201 | subset of Scheme; this is to say this undertaking resonated with me. 202 | I should take a look at the final product at some point. 203 | 204 | * [SECD: Design Issues](http://prism.ucalgary.ca/bitstream/1880/46590/2/1989-369-31.pdf) by ? (?) 205 | 206 | I cannot remember how I found this paper and a quick search for it 207 | doesn’t reveal much information, either. Its title seems to be "SECD: 208 | Design Issues" and it seems to be a report on the work of a research 209 | group at the University of Calgary (led by Graham and Birtwistle, 210 | maybe?), probably in the late 80s or early 90s (89 at least, according 211 | to the citations). It describes an effort to create a chip for the 212 | SECD ~virtual~ machine. It is really interesting and I learned tons 213 | reading it, especially because I have little idea of hardware design 214 | and manufacturing. 215 | 216 | * [Exceptional Continuations in JavaScript](http://www.schemeworkshop.org/2007/procPaper4.pdf) by **Florian Loitsch** (2007) 217 | 218 | An interesting little paper on how to implement continuations in a 219 | language that doesn’t have them. It’s a bit clumsy if you compare 220 | it to first-class continuations, but this is more or less a given, 221 | at least in my opinion. It also helps my understanding of how to 222 | implement continuations, even if I have already implemented them 223 | myself. If I ever need to do so again, I might look at it beforehand, 224 | as the techniques described in the paper are interesting. 225 | 226 | * [Scheme: An Interpreter for Extended Lambda Calculus](https://web.archive.org/web/20171025111456/http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-349.pdf) by **Gerald Sussman and Guy Steele** (1975) 227 | 228 | This paper blew my mind. I had no idea that the initial implementation 229 | of Scheme had such a wonderful actor system. Sure it is a bit more 230 | crude than what we are used to these days, but it is still much more 231 | advanced than I would have expected. The same for the pattern-matching 232 | implementation, which is wonderfully elegant and simple. I could reimplement 233 | a simple pattern-matcher in zepto for a blog post maybe. In general the 234 | code presented in the blog post is incredibly advanced, at least much more 235 | than anything I would’ve thought is to be found in a paper from the mid-70s. 236 | 237 | On another note, them basically implementing `Promise.race` and then calling 238 | it useless is wonderfully ironic. 239 | 240 | * [i, Poet: Automatic Chinese Poetry Composition through a Generative Summarization Framework under Constrained Optimization](http://homepages.inf.ed.ac.uk/mlap/Papers/IJCAI13-324-1.pdf) by **Rui Yan et al.** (2013) 241 | 242 | I have had a lingering interest in AI for a long time, but decided never to 243 | act on it, partly because it is not my domain of expertise and partly because 244 | everyone seems to want to jump on that bandwagon with bad ideas lately. I still 245 | read about it and think I have a pretty okay grasp on the concepts, I just never 246 | had a project that required me to write a truly learning system. With that in mind, 247 | this is still a very interesting paper, because it describes in great detail an 248 | approach to AI writing poetry in a sensible way. It’s a bit annoying that they did 249 | not provide an example poem that was generated—I was really interested in seeing 250 | one of those—, but I liked the idea of having multiple neural nets, one for writing 251 | the draft and one for refining it. That felt similar to how I approach writing: 252 | brainstorm and build, then make sense of the mess you’ve just created. I have always 253 | been a poor editor, so maybe the second neural net would be of greater help for me, 254 | but I assume it will be some time until I can tap into the potential of AI that 255 | helps me convey what I want to write. 256 | 257 | * [An Incremental Approach to Compiler Construction](https://github.com/namin/inc/blob/master/docs/paper.pdf) by **Abdulaziz Ghuloum** (2006) 258 | 259 | I am not sure I agree with the methodology—and the implementation—provided in 260 | this paper. It mgith be that the reader has implemented a compiler after they’ve 261 | worked through the paper, but the compiler is really bad, the architecture does 262 | not lend itself well to extension, and paedagogically the reader has not gained 263 | as much as they would have with a better engineered, "do things the right way" 264 | compiler. The compiler presented in there is a big messy hack and noone should 265 | have to base their compiler on that. 266 | 267 | * [The Security Impact of HTTPS Interception](https://jhalderm.com/pub/papers/interception-ndss17.pdf) by **Zakir Durumeric et al.** (2017) 268 | 269 | This paper broke my heart. It is incredible that at this day and age people still 270 | think HTTPS interception can increase security instead of severely decreasing it. 271 | I don’t think I have to say more on that matter. Almost 11% percent intercepted 272 | traffic is damn scary. 273 | 274 | * [Generational Garbage Collection and the Radioactive Decay Model](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.448.818&rep=rep1&type=pdf) by **William Clinger** (1997) 275 | 276 | The main take-away from this paper is that I am probably too thick to implement 277 | a good garbage collector. Generational garbage collectors are relatively hard 278 | to build properly—I’ve tried and failed before. Larceny is a truly interesting 279 | Scheme implementation. I should try it out sometime, because I thoroughly enjoyed 280 | reading papers about it—its documentation on its compiler passes are pretty 281 | pristine. 282 | 283 | * [BigchainDB: A Scalable Blockchain Database](https://www.bigchaindb.com/whitepaper/bigchaindb-whitepaper.pdf) by **Tren McConaghy** et al. 284 | 285 | More blockchain bullshit. Yay. This incredibly badly written paper presents a 286 | fundamentally flawed idea—basically a shitty framework to RethinkDB—a database 287 | that’s failed as well, and for good reasons. I know I sound like an ass here, 288 | but I’ve lost patience with people who have no idea about how to build a database 289 | building databases, because I am the one who cleans up after the mess when a 290 | startup ends up choosing that tech and the DB ends up blowing up (mostly because 291 | of configuration flaws, of course, but if your default configurations are 292 | broken, your system likely is broken as well). Bottom line: I did not enjoy 293 | reading this paper. 294 | 295 | * [Generalized Parser Combinators](https://dinhe.net/~aredridel/.notmine/PDFs/Parsing/SPIEWAK%2C%20Daniel%20%282010%29%20-%20Generalized%20Parser%20Combinators.pdf) by **Daniel Spiewak** (2010) 296 | 297 | I actually tried to implement GLL parser combinators for zepto before and failed 298 | at the trampolining, so this paper clarified a lot of things that I did not understand. 299 | I wanted to try and implement a GLL again in the future and after reading this paper, 300 | I feel equipped to tackle the problem. As an aside: Scala code still looks weird to me. 301 | Kind of like I felt reading Haskell before I knew it. 302 | 303 | * [Lambda: The Ultimate Imperative](https://dspace.mit.edu/bitstream/handle/1721.1/5790/AIM-353.pdf) by **Gerald Sussman and Guy Steele** (1976) 304 | 305 | I’ve read this paper before, and it is still wonderful. Scheme speaks to me in a 306 | very peculiar way. But, instead of waxing poetic, I will just quote the end of 307 | the paper, because there is a very deep insight for language designers to be 308 | found here: "No amount of language design can *force* a programmer to write clear 309 | programs. If the programmer’s conception of the problem is badly organized, then 310 | [their] program will also be badly organized. The extent to which a programming 311 | language can help a programmer to organize [their] problem is precisely the extent 312 | to which it provides features appropriate to [their] problem domain. The emphasis 313 | should not be on eliminating "bad" language constructs, but on discovering or 314 | inventing helpful ones." 315 | 316 | * [The impact of syntax colouring on program comprehension](http://www.ppig.org/sites/default/files/2015-PPIG-26th-Sarkar.pdf) by **Advait Sarkar** (2015) 317 | 318 | With a sample size of ten I feel like it would be a bit dubious for me to derive 319 | general conclusion from this paper—especially considering three datasets had to be 320 | excluded from part of the conclusions, reducing the sample size to seven. Nonetheless, 321 | it is interesting research into how effective syntax highlighting really is, because 322 | most of the arguments for or against syntax highlighting seem to be strawman arguments 323 | or highly subjective (I won’t link to blog posts that come to mind, because I’m not that 324 | much of an ass). In toto, this paper is a valuable addition to the conversation about the 325 | cost and gains of syntax highlighting. 326 | 327 | * [Fast Deterministic Selection](https://arxiv.org/pdf/1606.00484.pdf) by **Andrei Alexandrescu** 328 | 329 | I always liked Alexandrescu’s talks. Sadly, I’ve not yet managed to 330 | try out D, the programming language he is mostly working on except for 331 | his work on C++. This paper presents a fun new algorithm for selection 332 | in a field of research that has not seen great advances since Hoare’s 333 | seminal paper (except for Median of Medians, which builds on it). I 334 | am looking forward to try it out in D and see how it performs. I might 335 | also want to implement it in another language if it performs well. 336 | 337 | * [The view from the left](http://strictlypositive.org/view-Dec6.ps.gz) by **Conor McBride & James McKinna** (2004) 338 | 339 | I can’t say I understood a lot of it, but I still feel like a learned 340 | a lot, just struggling through it and looking up all kinds of things. 341 | I respect Connor McBride a lot—I was not familiar with James McKinnas 342 | work, but I am will be keeping an eye out from now on—and so that was 343 | rewarding in itself already. 344 | 345 | * [I am not a number: I am a free variable](http://strictlypositive.org/notanum.ps.gz) by **Conor McBride & James McKinna** (2004) 346 | 347 | Another Epigram paper, but shorter and more approachable, because it 348 | describes the implementation of a specfic feature (syntax manipulation). 349 | It’s probably also closer to my field of expertise and thus easier for 350 | me to understand. I enjoyed this paper as well. That being said, their 351 | insistence of putting an accent on role is a little irritating, because 352 | I don’t understand it—one of the reasons I don’t like The New Yorker 353 | articles sometimes. Also, I like how they talk about their users when 354 | they say: “Our foes cannot choose wicked names in order to make mischief.” 355 | 356 | * [Futexes Are Tricky](https://www.akkadia.org/drepper/futex.pdf) by **Ulrich Drepper** (2011) 357 | 358 | Indeed they are. This paper is a very useful resource if one needs to 359 | use futexes. It’s not that great for light reading—at least not section 360 | 2, which goes into great detail to explain every input for the syscall. 361 | It’s useful, just not made for reading as prose. The whole paper is written 362 | in a tutorial-style, and realitvely instructive. I enjoyed learning about 363 | futexes, in any case. 364 | 365 | * [Distributed Algorithm for Optimal Power Flow on a Radial Network](http://smart.caltech.edu/papers/distributedalg.pdf) by **Qiuyu Peng and Steven Low** (2014) 366 | 367 | Coming from a field I’ve not had much exposure to, this paper is filled 368 | with lingo I don’t understand. It didn’t prevent me from finding it 369 | intriguing, though, and I think I actually learned something. 370 | 371 | * [Optimal Decentralized Primary Frequency Control in Power Networks](http://smart.caltech.edu/papers/optimaldecent.pdf) by **Changhong Zhao and Steven Low** (2014) 372 | 373 | This paper is from the same source as the one above, and so I had the 374 | same trouble. Sadly this one also suffers from bad writing; I assume 375 | the authors are not native English speakers. This was detrimental to 376 | my reading experience, unfair as it is. I am unfamiliar with the 377 | territory and the writing increased the cognitive load—not a great 378 | combo. 379 | 380 | * [Ornamental Algebras, Algebraic Ornaments](https://personal.cis.strath.ac.uk/conor.mcbride/pub/OAAO/LitOrn.pdf) by **Conor McBride** (2011) 381 | 382 | Yet another paper by the infallible Conor McBride. This meditation on 383 | data types and their relationship is based on a simple idea that blew 384 | my mind completely: data types are but a kind of refinement types of 385 | each other, joined by forgetful functions in the one direction and 386 | information-adding functions in the other. Pretty darn clever. 387 | 388 | * [Model, View, Controller](http://heim.ifi.uio.no/~trygver/1979/mvc-2/1979-12-MVC.pdf) by **Trygve M. H. Reenskaug** (1979) 389 | 390 | Another one of those papers that was incredibly insightful and solved 391 | a problem we still face today, very cleanly. It’s incredibly short, 392 | more of a personal note than a paper, but it cleanly sets boundaries 393 | between components. 394 | 395 | * [What Not to Do When Writing an Interpreter for Specialisation](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.56.5748&rep=rep1&type=pdf) by **Neil D. Jones** (1996) 396 | 397 | Pretty dry but highly informative. This makes me want to write a toy 398 | project that implements program specialization. I should probably reread 399 | the paper when not jetlagged anymore. 400 | 401 | * [OpenConflict: Preventing Real Time Map Hacks in Online Games](https://www.shiftleft.org/papers/openconflict/openconflict.pdf) by **Elie Bursztein et al.** (2011) 402 | 403 | An impressive amount of engineering by the authors went into cracking 404 | online games and then fixing them. Super fun to read and interesting, even 405 | though my knowledge of elliptic curve cryptography is way too basic to 406 | understand the protocol described in the later parts of the paper well. 407 | It is written well enough to incentivize me to keep reading, though, so 408 | all is well. 409 | 410 | * [Symmetric Cryptography in Javascript](http://bitwiseshiftleft.github.io/sjcl/acsac.pdf) by **Emily Stark et al.** (2009) 411 | 412 | Interesting read, even if it’s a little outdated. I would love to see an 413 | up-to-date version, especially because the benchmakrs where so browser-focused. 414 | A lot has changed since 2009 in browser performance. 415 | 416 | * [Why and how to use arbitrary precision](https://homepages.loria.fr/PZimmermann/papers/cise.pdf) by **Kave R. Ghazi et al.** (2010) 417 | 418 | This paper ties in to my lates project, a [reimplementation](https://github.com/hellerve/bc) 419 | of bc. The constant folding part is especially interesting. I didn’t 420 | know about GCC’s usage of mpfr in optimizations either and that section, 421 | albeit short, was especially intriguing for that reason. 422 | 423 | * [Designing extensible, domain-specific languages for mathematical diagrams](https://www.cs.cmu.edu/~kqy/resources/Penrose_OBT.pdf) by **Katherine Ye et al.** (2017) 424 | 425 | Super exciting idea! As a novice to most of the fields I read papers 426 | from—I mean, how many domains can you have domain knowledge in, really?—, 427 | having illustrations definitely helps a ton! Making this simpler, more accessible, 428 | or just having better tooling should help tremenduously in incentivizing people 429 | to build diagrams, which in turn incentivizes me to dive deeper into the field. 430 | 431 | * [Visualizing LSTM decisions](https://arxiv.org/pdf/1705.08153v1.pdf) by **Jos van der Westhuizen & Joan Lasenby** (2017) 432 | 433 | As always when it comes to papers outside of my limited domain of expertise 434 | I cannot say I understood this paper thoroughly. This time, however, I feel 435 | a little better, because someone with actual knowledge around the topic 436 | presented on it at our ML paper reading group, which is nice. 437 | 438 | After concurring that the paper was borderline unreadable, she explained 439 | LSTMs, a very helpful addition. I feel equipped to talk about them more now. 440 | The choice of illustrative examples in this papers was abominable. 441 | 442 | * [Painterly Rendering for Animation](https://disney-animation.s3.amazonaws.com/uploads/production/publication_asset/47/asset/p477-meier_1996.pdf) by **Barbara J. Meier** (1996) 443 | 444 | A beautiful paper, both in its writing—which is simple, not convoluted, 445 | and does a great job at explaining everything—and its idea, which is 446 | super simple: mixing particle rendering and painterly rendering of still 447 | images. The particle rendering is necessary for continuity between frames, 448 | and the idea seems obvious in hindsight, which is evidence for how powerful 449 | it is. 450 | 451 | * [Coherent Noise for Non-Photorealistic Rendering](http://graphics.pixar.com/library/NPRNoise/paper.pdf) by **Michael Kass & Davide Pesare** (2011) 452 | 453 | Yet another nifty solution for the shower door effect, this time using coherent 454 | noise. It seems to perform quite well and should be reasonably cheap, so I’m all 455 | for it, though I cannot estimate whether it actually helps with anything. 456 | 457 | * [Playing Atari with Deep Reinforcement Learning](https://arxiv.org/abs/1312.5602) by **Volodymyr Mnih** (2013) 458 | 459 | Yet another paper from my paper reading group. It, too, was a bit painful to 460 | read through, even though the topic seemed interesting at first. Of course, I 461 | learned a lot about Reinforcement Learning in our session, but I don’t think 462 | the paper would’ve told me much—especially because the data in Reinforcement 463 | Learning is often so different from the data in other flavors of ML. The 464 | linear algebra didn’t help, of course, although it wasn’t _too_ bad. 465 | 466 | * [Generating Pseudo-random Floating-Point Value](http://allendowney.com/research/rand/downey07randfloat.pdf) by **Allen B. Downey** (2007) 467 | 468 | Extremely interesting algorithm, but I never really generated random floating 469 | point values, so I cannot really say whether the algorithm is any good. It’s 470 | deeply satisfying to read anyway if you’re into numerics. 471 | 472 | * [Phyllotaxis](http://algorithmicbotany.org/papers/abop/abop-ch4.pdf) (Chapter 4 of “The Algorithmic Beauty of Plants”) by **Przemyslaw Prusinkiewicz && Aristid Lindenmayer** (1990) 473 | 474 | This paper (or rather chapter) spawned a creative coding session, a few algorithmic 475 | experiments, reflections on phyllotactic mechanism in the 2D layout of galaxies, 476 | and an art print for my girlfriend, so I cannot complain. 477 | 478 | * [Stylizing Animations by Example](http://graphics.pixar.com/library/ByExampleStylization/paper.pdf) by **Pierre Bénard et al.** (2013) 479 | 480 | Wow, this was dense. I can’t say I understood all of the math—but then I don’t 481 | think that’s expected. What I can say is that this is more of a reference 482 | paper than one you would read for fun, but maybe that’s just me. I’m not 483 | sure of the general usefulness of having read it, other than for the issue 484 | at hand (taking pictures and interpolating the frames between them by 485 | models). 486 | 487 | * [Gyrophone: Recognizing Speech From Gyroscope Signals](https://crypto.stanford.edu/gyrophone/files/gyromic.pdf) by **Yan Michalevsky et al.** (2014) 488 | 489 | Pretty scary stuff I didn’t know about, although I don’t know how I could 490 | have possibly missed it. At first I thought of it as a rather constructed attack, 491 | but as soon they showed that the gyroscope can be upgraded to work at 8kHz 492 | I was pretty scared. 493 | 494 | * [The Brigade Renderer: A Path Tracer for Real-Time Games](https://www.hindawi.com/journals/ijcgt/2013/578269/) by **Jacco Bikker & Jeroen van Schijndel** (2012) 495 | 496 | Interesting concept, I would like to see it in action. The visual format 497 | of the paper irritated me somewhat, especially the poor quality of the 498 | illustrations. 499 | 500 | * [Improving Noise](http://mrl.nyu.edu/~perlin/paper445.pdf) by **Ken Perlin** (2002) 501 | 502 | One of Ken Perlin’s seminal papers on noise that led to simplex. I’m forever 503 | grateful to Perlin, mostly for the beauty and elegance of smooth noise functions 504 | in general, and simplex in particular. 505 | 506 | * [Efficient computational noise in GLSL](http://webstaff.itn.liu.se/~stegu/jgt2012/article.pdf) by **Ian McEwan et al.** (2011) 507 | 508 | Another take on noise; I might steal this implementation for my own GLSL 509 | code. 510 | 511 | * [Simplex noise demystified](http://staffwww.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf) by **Stefan Gustavson** (2005) 512 | 513 | The third noise paper today. It just details simplex noise again, and again 514 | in Java, but with a few improvements for speed—and it includes an implementation 515 | for higher dimensions (namely 3D and 4D). 516 | 517 | * [An efficient line drawing algorithm](http://staffwww.itn.liu.se/~stegu/circle/circlealgorithm.pdf) by **Stefan Gustavson** (2003) 518 | 519 | An algorithm that’s beautiful in its simplicity. I read this not for practical 520 | reasons, and so the clarity of the algorithm appealed to me greatly. I’m going 521 | to write a blog post on this. 522 | 523 | * [A Cellular Texture Basis Function](http://www.rhythmiccanvas.com/research/papers/worley.pdf) by **Steven Worley** (1996) 524 | 525 | Another seminal paper, this time by Worley. I am fascinated by Voronoi cells 526 | and Worley’s contribution makes them even more interesting to me. The paper is 527 | somewhat hard to read, though, not very hands-on and mathematical. I enjoyed it 528 | because I already knew the concept it explains, but if I hadn’t I doubt I would 529 | have understood. 530 | 531 | * [Stackelberg Games for Adversarial Prediction Problems](https://pdfs.semanticscholar.org/2e82/acecef77e72e14eb805b7ee9c145ab00e726.pdf) by **Michael Brückner & Tobias Scheffer** (2011) 532 | 533 | My first dabblings into Adversarial AI. While the paper wasn’t too enjoyable to 534 | read, the ideas are quite fun to work with. I’m interested in seeing an actual 535 | application in, say, a spam filter. 536 | 537 | Again, going through the paper with my reading group was what actually made me 538 | understand it. Otherwise I wouldn’t have grokked it, I think. 539 | 540 | * [Making digital filters sound "analog"](http://quod.lib.umich.edu/cgi/p/pod/dod-idx/making-digital-filters-sound-analog.pdf?c=icmc;idno=bbp2372.1992.009) by **Dave Rossum** (1992) 541 | 542 | Short, but interesting paper on analog modeling. I’m told this is another classic, 543 | although I feel like I’m missing the point a little. Maybe I’m not involved enough 544 | to see the appeal. 545 | 546 | * [Practical Exhaustive Optimization Phase Order Exploration and Evaluation](http://www.cs.fsu.edu/~whalley/papers/taco09.pdf) by **Prasad A. Kulkarni et al.** (2008) 547 | 548 | Very well-written and clear paper on pahse ordering. I was surprised that the 549 | authors didn’t try to keep a list of ordering "prefixes" (i.e. a dictionary 550 | from `sequence of phases` to `current output`) in memory to speed up the 551 | application-maybe the space used by this datum is motr than I imagine? 552 | I’m also unfamiliar with the framework they used, so it might well be an 553 | infeasible idea in their environment. 554 | 555 | Then again, some of the numbers blew my mind: “For this study, we stop the 556 | exhaustive search on any function if the time required exceeded an approximate 557 | limit of 2 weeks. Please note that exhaustive phase order evaluation for most 558 | of the functions requires a few min utes or a few hours, with only the largest 559 | enumerated functions requiring a few days.” How is that even possible? It’s 560 | the magic of exponentiality, I guess, but oh my. 561 | 562 | There’s more that threw me off about the paper, though. The “results” section 563 | in particular had my alarm bells go off when the authors didn’t detail why they 564 | excluded certain functions from the benchmark and the results. Maybe I’m too 565 | used to thinking in terms of psychology where this kind of methodological error 566 | has poisoned a lot of papers. 567 | 568 | * [Opportunities and Challenges for Data Center Demand Response](http://smart.caltech.edu/papers/dcdrsurvey.pdf) by **Adam Wierman et al.** (2014) 569 | 570 | This was a fairly interesting and approachable read for a complete newbie like 571 | me. I have no idea how the grid and power distribution acutally works, but the 572 | authors managed to make me feel as if I had a good overview over the state of 573 | the grid and the role data centers play within it now. Highly recommendable, 574 | and I was especially intrigued to hear about the elaborate systems that are 575 | in play between consumers and producers of energy within the grid. 576 | 577 | * [Succinct Indexable Dictionaries with Applications to Encoding k-ary Trees, Prefix Sums and Multisets](https://arxiv.org/pdf/0705.0552.pdf) by **Raman et al.** (2007) 578 | 579 | An interesting paper for an interesting algorithmic problem that I currently 580 | don’t have. It is fairly theoretical in its description, spending a lot of time 581 | proving various of its properties. Nonetheless, I enjoyed the paper’s problems 582 | and proposed solutions. I might need some more time to think about it and its 583 | implications. 584 | 585 | * [How to Write a 21st Century Proof](https://lamport.azurewebsites.net/pubs/proof.pdf) by **Leslie Lamport** (2012) 586 | 587 | I’ve been obsessing over TLA+ for the last few days, and reading Lamport’s 588 | papers about it has been a highly entertaining addition to my currculum. I’m 589 | not sure I will ever find the time to tinker with it enough to suggest it to my 590 | clients, but I’ll sure as hell try. 591 | 592 | * [Euclid Writes an Algorithm: A Fairytale](https://lamport.azurewebsites.net/pubs/euclid.pdf) by **Leslie Lamport** (2011) 593 | 594 | A cute little story that has an underhanded agenda (I don’t particularly like 595 | that, but in this case I was aware what it would be and read the paper for it 596 | anyway). The illustrations are not my cup of tea, and the humor is not mine 597 | necessarily, either, but the contents are educational. 598 | 599 | * [On Conditional Branches in Optimal Search Trees](https://arxiv.org/pdf/cs/0604016.pdf) by **Michael B. Baer** (2006) 600 | 601 | Pretty intersting paper on the performance of branching. The implementation 602 | of branching using search trees always seemed like overkill to me, but clearly 603 | there must be something there. I’m not a performance expert, after all, and the 604 | explanations provided in this paper are fairly impressive. 605 | 606 | * [The Implementation of Case Statements in Pascal](http://eprints.utas.edu.au/126/1/CaseStmts.pdf) by **Arthur Sale** (1981) 607 | 608 | This paper is mostly interesting for historical purposes: the considerations 609 | applied to compiler optimizations were completely different, largely driven by 610 | resource constraints that we generally can forget about—this doesn’t mean that 611 | we don’t have problems with the efficiency of compilers anymore, of course. 612 | 613 | * [A Superoptimizer Analysis of Multiway Branch Code Generation](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.602.1875&rep=rep1&type=pdf) by **Roger Anthony Sayle** (2008) 614 | 615 | This paper tries to be an update for the above Pascal Case paper. One major 616 | update, apart from 27 years of research difference, is that the author actually 617 | tries to go through the data to find out which approaches to optimization would 618 | actually make a difference. This is something that Sale—the author of the 1981 619 | paper—requested, and so, over a quarter of a century later, he got what he 620 | asked for. 621 | 622 | * [FSA-based Packet Filters](http://staff.polito.it/riccardo.sisto/cisco/report.pdf) by **Pierluigi Rolando et al.** (?) 623 | 624 | Highly detailed paper on packet filtering that highlights a few of the more 625 | interesting optimizations that are possible in filters. I enjoyed the in-depth 626 | descriptions of the algorithms used to reduce memory and CPU usage. 627 | 628 | * [The Structure and Performance of Efficient Interpreters](https://www.jilp.org/vol5/v5paper12.pdf) by **M. Anton Ertl & David Gregg** (2003) 629 | 630 | This paper didn’t age particularly well in real numbers, but the general 631 | assessments are still more or less true. Of course some of the statements—Java 632 | being 119 times slower than C, for instance—are incredibly outdated, but the 633 | optimizations (threaded code vs. switch statements, for instance) are still 634 | fresh. The title, however is a little misleading, because it’s mostly about 635 | branching, not general efficiency. 636 | 637 | * [The Anatomy of a Search Engine](http://infolab.stanford.edu/~backrub/google.html) by **Sergey Brin & Lawrence Page** (1998) 638 | 639 | It baffles me that this paper is less than 20 years old. So much has changed 640 | with the advent of the tool described in this paper. It’s a fun read, but 641 | somewhat frightening. I like how open the early architecture of Google was, 642 | because it is an interesting piece of technology. 643 | 644 | * [Iago Attacks: Why the System Call API is a Bad Untrusted RPC Interface](https://cseweb.ucsd.edu/~hovav/dist/iago.pdf) by **Stephen Checkoway & Hovav Shacham** (2013) 645 | 646 | I can’t say I understand the threat model of this paper fully, but what I can 647 | say is that the technical details are interesting, and the descriptions are 648 | worth reading. I quite enjoy learning about the nitty-gritty internals of 649 | memory allocators, even if their explicit goal is to break applications. 650 | 651 | * [Rigorous Benchmarking in Reasonable Time](https://core.ac.uk/download/pdf/10637797.pdf) by **Tomas Kalibera & Richard Jones** 652 | 653 | This paper seemed very familiar—I think I’ve read it before, but forgot to put 654 | it on here. It’s fairly nice in its demands for rigour in benchmarking, and pretty 655 | useful for me at the moment. Let’s see how I do in implementing ideas from this 656 | paper—I’ve not been known for my scientific rigour in the past. 657 | 658 | * [Fast Functional Lists, Hash-Lists, Deques and Variable Length Arrays](https://infoscience.epfl.ch/record/52465/files/IC_TECH_REPORT_200244.pdf) by **Phil Bagwell** (2002) 659 | 660 | An interesting idea; I admire Phil Bagwell’s work on data structures, and this 661 | paper doesn’t let me down. Though it is at times very hard to read, the 662 | contents are highly stimulating. One of the more promising data structures 663 | that I’ve recently discovered. 664 | 665 | * [Lively Linear Lisp — 'Look Ma, No Garbage!'](http://home.pipeline.com/~hbaker1/LinearLisp.html) by **Henry G. Baker** (1991) 666 | 667 | This is a little pearl, dense, powerful and beautiful. There is some deep 668 | insight in this paper, although some of the statements rely on a purely 669 | functional—in the sense of not performing IO—environment, such as “Nested 670 | functional composition has the obvious mechanical interpretation, since the 671 | intermediate results are utilized by exactly one consumer. The mechanical 672 | metaphor also shows that parallel execution of subexpressions is possible 673 | and correct (so long as the primitive CONS itself—the creator of argument 674 | lists—evaluates its arguments in parallel), since there is no mechanism whereby 675 | the subexpressions can communicate.”, which in my mind is only sensible in a 676 | “box is getting hot” environment. 677 | 678 | * [A Little Implementation Language](http://www.ultimate.com/phil/lil/lil.html) by **P.J. Plauger** (1976) 679 | 680 | The language described is cute and the idea beautiful. While I agree with the 681 | author that a language like this might not be needed in this day and age—and, 682 | admittedly, not in the last 40 years—I think it would be rewarding and possibly 683 | worth it to investigate whether it is suited as an intermediate representation 684 | for a compiler, similar to the god-awful LLVM IR, but more readable. 685 | 686 | * [The use of subroutines in programmes](http://www.laputan.org/pub/papers/wheeler.pdf) by **David J. Wheeler** (1952) 687 | 688 | It is sometimes baffling to me now that practices that are now very much the 689 | norm have not always been the norm. Of course I rationally know this to be the 690 | case, but it is still surprising when a paper like this one catches me 691 | off-guard. 692 | 693 | * [Some Were Meant for C—The Endurance of an Unmanageable Language](https://www.cl.cam.ac.uk/~srk31/research/papers/kell17some-preprint.pdf) by **Stephen Kell** (2017) 694 | 695 | I come from an entirely different school than the author of this paper, and 696 | naturally I disagree with him. It is, however, a deeply insightful paper with 697 | a lot of interesting ideas about how and why C is still unparalleled in certain 698 | areas. A highly educational read with a selection of fun little programs to 699 | look at. 700 | 701 | * [The rsync algorithm](https://www.andrew.cmu.edu/course/15-749/READINGS/required/cas/tridgell96.pdf) by **Andrew Tridgell & Paul Mackerras** (1996) 702 | 703 | rsync is a remarkable piece of software, and the algorithm that powers it is 704 | testament to that. I love this description of the algorithm, high-level and 705 | short as it might be. It is quite enjoyable to read, and I think I understood 706 | the algorithm itself quite well. 707 | 708 | * [The Paradigms of Programming](https://dl.acm.org/citation.cfm?id=359140) by **Robert Floyd** (1979) 709 | 710 | Turing award speeches are always a good place to look for interesting ideas, 711 | and this one is no exception. The picture Floyd paints of our profession is 712 | still depressingly accurate—to the point that you wonder how we still haven’t 713 | learned from it. But then again, such is the case with many of the papers on 714 | this list. 715 | 716 | * [Some thoughts on security after ten years of qmail 1.0](https://cr.yp.to/qmail/qmailsec-20071101.pdf) by **Daniel Bernstein** (2007) 717 | 718 | While his writing is a little obnoxious, the insight imparted on us in this 719 | paper is extremely valuable. The ideas are all simple, which is what makes them 720 | so great. I will definitely steal some of the design ideas for the next project 721 | that I have to design and build from scratch; some are even applicable without 722 | a major redesign/rebuild. 723 | 724 | * [When Textbook RSA is Used to Protect the Privacy of Hundreds of Millions of Users](https://arxiv.org/pdf/1802.03367.pdf) by **Jeffrey Knockel et al.** (2018) 725 | 726 | This is one of the scariest things I’ve read in this list. While many of the 727 | flaws are depressingly basic, they’re also not ounlandish, in a perverse way. 728 | One more reason to be sad at the state of programming as a craft and science. 729 | 730 | * [Optimizing Pattern Matching](http://pauillac.inria.fr/~maranget/papers/opat/) by **Fabrice Le Fessant & Luc Maranget** (2001) 731 | 732 | One thing that struck me while reading thee papers was how *simple* most of the 733 | discussed optimizations were. While I’ve very publicly dabbled in compiler 734 | development from time to time, many optimization techniques I’ve looked at 735 | still seem scary and complex. Not the ones described in this paper. I don’t know 736 | whether that’s a testament to the author’s abilities to describe them—to me, 737 | anyway—or rather due to their objective simplicity. 738 | 739 | * [Notation as a Tool of Thought](http://www.jsoftware.com/papers/tot.htm) by **Kenneth E. Iverson** (1979) 740 | 741 | This paper is all over the place. I didn’t particularly enjoy reading it, even 742 | though I admire Iverson greatly. The point he was trying to make was, at least 743 | in my eyes, poorly illuminated, especially due to him repeatedly jumping into 744 | long-winded examples—in fact, a significant part of this paper is spent on 745 | explaining solutions to various problems that I didn’t care about going in: what 746 | I wanted to hear was how mathematical notation is flawed, and how Iverson 747 | intends to fix it. 748 | 749 | [A little Scheme in Pharo](https://files.pharo.org/books-pdfs/booklet-AMiniSchemeInPharo/2018-03-17-MiniScheme.pdf) by **Stéphane Ducasse & Guillermo Polito** (2018) 750 | 751 | This paper is fun to reimplement. It’s more of a tutorial than a paper, really. 752 | What’s especially fun about this is that, intentionally or not, some of the code 753 | required to make this work is missing (namely applying primitives). As a total 754 | Pharo newbie, it was fun to figure out how to do this. It took me two 755 | approaches, but I was pleased with the final result. And it sure helped make my 756 | workflow more efficient. 757 | 758 | [Making Digital Filters Sound Analog](https://quod.lib.umich.edu/i/icmc/bbp2372.1992.009/--making-digital-filters-sound-analog?view=toc) by **Dave Rossum** (1992) 759 | 760 | This paper is a little old, and feels naive and simplistic when you compare it 761 | to the complex edifices that now come out of analogue modelling efforts. Of 762 | course it’s worth reminding yourself what humble beginnings anologue-modelled 763 | DSP had, only two decades ago, and this paper is good at that! 764 | 765 | * [Cyclic Symmetric Multi-Scale Turing Patterns](http://www.jonathanmccabe.com/Cyclic_Symmetric_Multi-Scale_Turing_Patterns.pdf) by **Jonathan McCabe** (2010) 766 | 767 | A super fun read that inspired me to play around with Turing patterns some more. 768 | The paper is a little sparse on specifics on how to add the multiscalability 769 | that produces the fractal qualities seen in the last part, and I wasn’t able to 770 | reproduce them yet. I will continue to work on it! 771 | 772 | * [Software Engineering at Google](https://arxiv.org/abs/1702.01715) by **Fergus Henderson** (2017) 773 | 774 | As a paper it’s quite terrible. It doesn’t read especially interesting, and the 775 | information in it is of course biased. Some of the practices discussed in the 776 | paper are huge read flags that make me highly uncomfortable, but seem not to 777 | faze the author. O tempora, o mores. 778 | 779 | * [Randomly-Scoped Lambda Calculus](http://www.club.cc.cmu.edu/~rharwood/tmp/random.pdf) by **Ben Blum** (2013) 780 | 781 | A very enjoyable writeup of a ridiculous idea. I’m excited by ridiculous ideas, 782 | and I’m excited by this paper. 783 | 784 | * [The Final Pretty Printer](http://davidchristiansen.dk/drafts/final-pretty-printer-draft.pdf) by **David Christiansen, David Darais & Weixi Ma** (2017) 785 | 786 | A very interesting twist on Wadler’s paper on pretty printing from the 20th 787 | century; I enjoy extensibility, and providing it in a monadic way is, while 788 | foreign to me, extremely intriguing. As always with these kinds of papers it 789 | went a little bit over my head, but this is why I enjoyed it so much. I’ll have 790 | to reread it once I implement seriously useful tools for working with Carp. 791 | 792 | * [GLL Parsing with Flexible Combinators](https://pure.royalholloway.ac.uk/portal/files/31169565/paper.pdf) by **L. Thomas van Binsbergen et al.** (2018) 793 | 794 | While the topic is certainly fairly interesting, this paper lost me about 795 | halfway through and I only got back into it about 5 pages later, in the section 796 | about Evaluation. Surely the implementation is interesting, but I find the 797 | description unnecessarily obtuse and convoluted; that might just be me, though. 798 | 799 | * [Programming Paradigms for Dummies: What Every Programmer Should Know](https://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf) by **Peter Van Roy** (2009) 800 | 801 | While an interesting overview of different programming paradigms, this already 802 | feels a little dated. It also feels a little biased towards Oz/Mozart, of which 803 | I’m not a huge fan—so bias met bias. Nonetheless, it’s very comprehensive and 804 | thoughtful an approach to classifying paradigms. 805 | 806 | * [Crash-Only Software](https://www.usenix.org/legacy/events/hotos03/tech/full_papers/candea/candea.pdf) by **George Candea & Armando Fox** (2003) 807 | 808 | This paper is msotly historically interesting, because it describes a paradigm 809 | that, through Erlang and related technologies, has entered the mainstream by 810 | now. The paper talks about these concepts in the context of Java, which is 811 | interesting enough in its own right, but I’d have hoped for at least a mention 812 | of Erlang; I guess it wasn’t part of the general consciousness of Computer 813 | Science back then. 814 | 815 | * [A Programming Language for Mechanical Translation](http://www.mt-archive.info/MT-1958-Yngve.pdf) by **Victor Yngve** (1958) 816 | 817 | This is one of those papers where the age is perceptible from the first 818 | sentence. I quote in full: “It has been said that the automatic digital 819 | computer can do anything with symbols that we can tell it in detail how to do.” 820 | The paper presents a valiant if a little dated approach to parsing natural 821 | language, but is almost entirely impenetrable due to the writing style that is 822 | exceedingly descriptive. 823 | 824 | * [Climbing Up the Semantic Tower — at Runtime](http://fare.tunes.org/files/climbing/climbing.pdf) by **François-René Rideau** (2018) 825 | 826 | This paper is deceptively short and mind-bogglingly dense. I enjoyed reading it, 827 | even though I don’t understand half of it. The [Youtube video](https://www.youtube.com/watch?v=heU8NyX5Hus) 828 | linked to in the paper helped clear thins up tremendously, but still it is quite 829 | hard to follow for me. Exciting times! 830 | 831 | * *An Industrial Case: Pitfalls and Benefits of Applying Formal Methods to the 832 | Development of a Network-Centric RTOS* by **Eric Verhulst et al.** (2008) 833 | 834 | I never heard of the operating system OpenComRTS before. It seems like a well 835 | thought out project with some interesting features, and I’d like to take a 836 | closer look at it when I find the time. For now I’m just enamoured with the idea 837 | of verifying a kernel with TLA+. 838 | 839 | * [The Implementation of Lua 5.0](https://www.lua.org/doc/jucs05.pdf) by **Roberto Ierusalimschy et al.** (2005) 840 | 841 | This paper gives a concise technical overview of some of the more interesting 842 | VM techniques employed in the Lua interpreter. Lua is probably my favorite VM to 843 | look at, and the authors do a pretty great job at explaining why that is. 844 | 845 | * [From Interpretation to Compilation](https://www.mbsd.cs.ru.nl/publications/papers/2008/janj08-CEFP07-InterpretationToCompilation.pdf) by **Jan Jansen et al.** (2008) 846 | 847 | This paper is quite useful as a reference for people wanting to build compilers 848 | for functional languages; it shows a few implementation techniques that might 849 | be interesting to explore for people wanting to speed up the code their compiler 850 | generates (and who doesn’t want that). That being said, I’d enjoy revisiting 851 | the benchmarks in this paper over 10 years later and seeing how the compiler 852 | discussed in it fairs against newer versions of GHC. 853 | 854 | * [YOLOv3: An Incremental Improvement](https://pjreddie.com/media/files/papers/YOLOv3.pdf) by **Joseph Redmond & Ali Farhadi** (2018?) 855 | 856 | This is probably the most entertaining paper I read all year, and I don’t even 857 | know anything about machine learning, let alone image classification. It’s quite 858 | fun, though, and I really enjoy the unprofessional tone. 859 | 860 | * [An Introduction to Dependent Types and Agda](http://www2.tcs.ifi.lmu.de/~abel/lehre/SS09/Fun/DepTypes.pdf) by **Andreas Abel** (2009) 861 | 862 | This one just boggled my mind. It’s the first time I really felt like I 863 | understood the power of dependent types as proof systems, and it gave me a great 864 | intuition into how to start learning Agda. I realized that the concepts actually 865 | aren’t complicated at all, but it took me a while to really understannd that. 866 | 867 | * [“Major key alert!” - Anomalous keys in Tor relay](https://nymity.ch/anomalous-tor-keys/pdf/anomalous-tor-keys.pdf) by **George Kadianakis et al.** (2017) 868 | 869 | This was a fascinating read. The topic is captivating—security topics always 870 | have a certain pull to them—and the language is clear enough so that a layman 871 | like me who does not bring a deep knowledge of the technologies used in the 872 | Tor network understands the approaches used by the researchers and 873 | feels—probably illusorily—like they are able to interpret the findings as well. 874 | 875 | * [Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms](http://www.cs.rochester.edu/~scott/papers/1996_PODC_queues.pdf) by **Maged Michael and Michael Scott** (1996) 876 | 877 | This paper has it all: source code, pseudo code, a comprehensive-seeming study 878 | of the prior arts, and a goo set of benchmarks. It made me want to try to 879 | reimplement the algorithm, if only to play around with some C or Carp. 880 | 881 | * [A Mulching Proposal—Analysing and Improving an Algorithmic System for Turning the Elderly into High-Nutrient Slurry](https://ironholds.org/resources/papers/mulching.pdf) by **Os Keyes et al.** (2019) 882 | 883 | One of those rare papers that’s both very fun and quite insightful. It’s 884 | undoubtedly silly, but the message is very clear, and very real: any one way of 885 | judging algorithms—especially checklist-style analyses—will fall short of 886 | underlying social and/or ethical implications. You can’t rely on blue prints for 887 | making decisions that have implications beyond the technical. 888 | 889 | * [Experiences Threat Modeling at Microsoft](https://adam.shostack.org/modsec08/Shostack-ModSec08-Experiences-Threat-Modeling-At-Microsoft.pdf) by **Adam Shostack** (2008) 890 | 891 | Very legible, an easy and enjoyable read! Threat modeling is a fun activity, and 892 | this paper is a classic! 893 | 894 | * [Linda In Context](http://worrydream.com/refs/Carriero%20-%20Linda%20in%20Context.pdf) by **Nicholas Carriero & David Gelernter** (1989) 895 | 896 | Although at some points unfair to its competition, this paper showcases a 897 | compelling programming model seemingly lost to time—at least in the mainstream. 898 | That’s fairly sad, as the case the authors make for Linda is fairly solid. I 899 | don’t know as much about its context as I probably should; oh well, yet another 900 | thing to look at! 901 | 902 | * [Mirrors: Design Principles for Meta-level Facilities of Object-Oriented Programming Languages](http://bracha.org/mirrors.pdf) by **Gilad Bracha and David Ungar** (2004) 903 | 904 | A quite informative and comprehensive overview of mirrors, though a little 905 | dated. I quite enjoy the descriptions of the tradeoffs involved when designing 906 | reflection systems, however, and I’ve admired the authors’ work for a while now. 907 | 908 | * [Object Oriented Shader Composition Using CLOS](https://github.com/Shinmera/talks/blob/master/els2018-glsl-oop/paper.pdf) by **Nicolas Hafner** (2018) 909 | 910 | Short and crisp. The paper presents an interesting idea, but I’d have liked more 911 | examples, especially if and how incoming and outgoing variables are merged. From 912 | the listings I assume that this merge can’t always happen completely 913 | automatically—Figure 1 and Figure 3 name the incoming vector `position`, while 914 | Figure 2 names it `vertex_data`—, but I’m not sure whether that’s just taken 915 | care of by implementing the superclass in CLOS. 916 | 917 | * [Dedalus: Datalog in Time and Space](https://www2.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-173.pdf) by **Peter Alvaro et al.** (2009) 918 | 919 | I got this paper by a talk from Peter 920 | Alvaro—[see also](https://github.com/hellerve/programming-talks)—, because he 921 | talked a little bit about Dedalus and I got very intrigued. I was familiar with 922 | the basic idea behind it—Datalog plus negation and time—, and that was lucky, 923 | for otherwise I wouldn’t have taken away much. The paper is very technical in a 924 | domain I don’t know much about, and much of the jargon doesn’t immediately click 925 | for me. I was able to get the gist of it with the background by the talk, 926 | however, and enjoyed the paper a lot. 927 | 928 | * [The Inferno Operating System](http://www.vitanuova.com/inferno/papers/bltj.pdf) by **Sean Dorward et al.** 929 | 930 | The lineage of Inferno is clear: Plan9 was a great influence, and the language 931 | Limbo is clearly an ancestor of Go. Rob Pike sometimes earns a little ridicule 932 | for how persistent he was pushing the ideas underlying Plan9, Inferno, and Go, 933 | but once he found the niche that Go is filling today, it all started to fall 934 | into place. Nonetheless, the GUI applications developed in Limbo are 935 | interesting, and their structure is undoubtedly appealing. 936 | 937 | * [Some Elements of Mathematica Design](https://www.stephenwolfram.com/publications/academic/elements-mathematica-design.pdf) by **Stephen Wolfram** (1992) 938 | 939 | The insight in this paper is not earth-shattering—and a little self-congratulatory, 940 | unsurprisingly—, but it’s useful. API design is a discipline that’s near and dear to my 941 | heart, and Stephen Wolfram certainly has some insight into that. 942 | 943 | * [Descriptive Complexity: A Logician’s Approach to Computation](https://www.ams.org/notices/199510/immerman.pdf) by **Neil Immerman** (1995) 944 | 945 | An extremely dense paper, it was recommended to me as one of the most 946 | interesting papers in complexity research. It was a little hard to follow for 947 | me, but it was enjoyable nonetheless. I’m not usually concerned with complexity 948 | classes, but of course I feel a certain attraction to the field (maybe only 949 | motivated by the desire to relive my study days, where these kinds of questions 950 | were at least of grade-related importance). 951 | 952 | * [Soutei, a Logic-Based Trust-Management System](http://okmij.org/ftp/Prolog/Soutei.pdf) by **Andrew Pimlott & Oleg Kiselyov** (2006) 953 | 954 | I have a certain fondness for Datalog, and the system described in this paper 955 | perfectly encapsulates all of the things that I love about it. Descriptive 956 | policies tend to be almost inexpressable in many popular programming languages, 957 | and Datalog is extremely good at it. The bits of Haskell code shown are pretty 958 | elegant as well. 959 | 960 | * [Weird machines, exploitability, and provable unexploitability](http://www.dullien.net/thomas/weird-machines-exploitability.pdf) by **Thomas Dullien** (2017) 961 | 962 | Pretty cool work that solidifies some of our underlying assumptions about 963 | security by giving them a scientific framework. It’s also nice to be able to 964 | create proofs for exploitability and unexploitability. 965 | 966 | * [Static Typing for a Faulty Lambda Calculus](https://www.cs.princeton.edu/~dpw/papers/lambdazap-icfp06.pdf) by **David Walker et al.** (2006) 967 | 968 | What a fun idea! The paper is extremely inspiring and surprisingly readable. I 969 | particularly enjoyed that the typing rules were explained in prose—more papers 970 | should do that rather than just rely on the figures, if only for my sake. 971 | 972 | * [Dis Virtual Machine Specification](http://www.vitanuova.com/inferno/papers/dis.pdf) by **Vita Nuova Limited** (2003) 973 | 974 | Reading the specs I want to implement the virtual machine myself. The virtual 975 | machine isn’t overly complicated, but has a fun instruction set and datatypes. 976 | Maybe one day I have time for it. 977 | 978 | * [A Plea for Lean Software](https://cr.yp.to/bib/1995/wirth.pdf) by **Niklaus Wirth** (1995) 979 | 980 | While Wirth’s tone is exceedingly paternalistic, I think his points are mostly 981 | sound, if a littel anecdotal. I’ve been trying to write simple software for 982 | quite some time now, and I still haven’t quite figured out the right 983 | heuristics. Maybe in a few years I’ll be able to look back at a project I’ve 984 | done as fondly as Wirth. 985 | 986 | * [The Emperor’s Old Clothes](http://www.cs.fsu.edu/~engelen/courses/COP4610/hoare.pdf) by **Charles Anthony Richard Hoare** (1981) 987 | 988 | It’s refreshing to hear about someone as distinguished as Tony Hoare speak 989 | about personal failures. It’s also a story that many of us have lived through 990 | before, though maybe not in a PL context. His criticism of the failings of 991 | the now infamous Algol commitee are harsh, but important. 992 | 993 | * [Our Human Condition "From Space"](http://www.vpri.org/pdf/m2003001_human_cond.pdf) by **Alan Kay** (2003) 994 | 995 | This was a fun and inspiring read, and I expected nothing less. Now I want to 996 | go do some “real-world math”. 997 | 998 | * [Checking a large routine](https://fi.ort.edu.uy/innovaportal/file/20124/1/09-turing_checking_a_large_routine_earlyproof.pdf) by **Alan Turing** (1949) 999 | 1000 | While the way Turing sets up and executes the proff is incredibly primitive and 1001 | tedious from today’s perspective, it’s remarkable in that it predates most of 1002 | the early writing on proofs by decades and anticipates some of the ideas that 1003 | people like Robert Floyd would have independently almost twenty years later. 1004 | 1005 | * [Assigning Meanings to Programs](https://www.cs.tau.ac.il/~nachumd/term/FloydMeaning.pdf) by **Robert W. Floyd** (1969) 1006 | 1007 | This mostly-forgotten hallmark paper touches on a few points that I find 1008 | interesting: the halting problem (and how to get around it), state charts, and 1009 | Algol. It also provides me with a vocabulary to prove things about the latter 1010 | two concepts, which might be handy in the future. 1011 | 1012 | * [How Should Compilers Explain Problems to Developers?](http://static.barik.net/barik/publications/fse2018/barik_fse18.pdf) by **Titus Barik et al.** (2018) 1013 | 1014 | This is a fun read that dives deeper into the presentation of errors than I’ve 1015 | seen done, but it’s still pretty shallow and I’m not necessarily convinced by 1016 | the setup. Nonetheless, research like this is important and sadly very rare, so 1017 | kudos! 1018 | 1019 | * [Formal Analysis of the Remote Agent Before and After Flight](https://ti.arc.nasa.gov/m/pub-archive/176h/0176%20%28Havelund%29.pdf) by **Klaus Havelund et al.** (2000) 1020 | 1021 | An enjoyable if somewhat frustrating read. I appreciate the level of detail 1022 | that the authors give about their verification experience, but I’m a little put 1023 | off by their insistence to use Java over Lisp, even though Lisp was used for 1024 | the codebase. Manually translating the Lisp code to Java code before 1025 | translating, or translating manually into the model-checking language, seems 1026 | counter-productive to the verification effort and somewhat diminishes my 1027 | interest in their findings. 1028 | 1029 | * [Synthesizing Data Structure Transformations from Input-Output Examples](https://www.cs.rice.edu/~sc40/pubs/pldi15.pdf) by **John K. Feser et al.** (2015) 1030 | 1031 | The methods for arriving at synthesized programs is deceptively simple, which 1032 | I find encouraging. I’d like to try this approach myself eventually, and I 1033 | found the authors’ explanation extremely readable and easy to understand. 1034 | 1035 | * [Pico Lisp—A Radical Approach to Application Development](http://software-lab.de/radical.pdf) by **Alexander Burger** (2006) 1036 | 1037 | A short but insightful paper about minimalism in Lisp. I don’t think all of the 1038 | content is fair or accurate, but I agree with it to a certain extent. Pico Lisp 1039 | embodies a bit of that minimalism that usually gets lost very quickly when 1040 | iterating on an idea. 1041 | 1042 | * [APROL—A Hybrid Language](http://www.cs.trinity.edu/~jhowland/aprol.paper.pdf) b y**Dennis Holmes & John E. Howland** (1993) 1043 | 1044 | I was sent this paper by a friend after showing them [april](https://github.com/phantomics/april), 1045 | a similar-seeming project. After an examination of both systems it became 1046 | clear, however, that their goals and design decisions are very different. 1047 | Personally I prefer april’s solution of having a library to interface with 1048 | APL/J/K within Lisp, but I understand why a different design might lead to a 1049 | more powerful, well-integrated system. 1050 | 1051 | * [Actor Semantics of Planner-73](https://dspace.mit.edu/bitstream/handle/1721.1/41116/AI_WP_081.pdf) by **Irene Greif & Carl Hewitt** (1974) 1052 | 1053 | I found this paper while researching the references of the original Scheme 1054 | paper, and was quite surprised when it talked about the incospicuous cons 1055 | cell at length, a data structure I had seen in the Scheme paper. I didn’t 1056 | know of its importance, and it was quite fun to figure out its state problems 1057 | together with the authors. 1058 | 1059 | * [The Discoveries of Continuations](http://www.cs.ru.nl/~freek/courses/tt-2011/papers/cps/histcont.pdf) by **John C. Reynolds** (1993) 1060 | 1061 | Reynolds’ papers have a special quality to them: they’re engaging, readable, 1062 | and he comes off as a supremely friendly person—and apparently he was. On top 1063 | of that, this paper is filling a gap in my historical understanding of how 1064 | continuations got to where they are today. Many of the researchers Reynolds 1065 | credits I hadn’t even heard about, particularly since I hadn’t looked at the 1066 | history of Algol-60 very deeply yet. 1067 | 1068 | * [Lisp—Notes on its Past and Future](http://www-formal.stanford.edu/jmc/lisp20th.pdf) by **John McCarthy** (1980) 1069 | 1070 | This is an interesting paper in that it poses very compelling questions, the 1071 | direction of which I don’t particularly agree with. I think I understand the 1072 | aesthetical opinions that McCarthy argued for in this paper, but I see the 1073 | world through a different, maybe less pure lens. 1074 | 1075 | * [Using a Proof Assistant to Teach Programming Language Foundations o rLambda, the Ultimate TA](https://www.cis.upenn.edu/~bcpierce/papers/plcurriculum.pdf) by **Benjamin C. Pierce** (2008) 1076 | 1077 | This paper renewed my interest to go back to university. I just wish I had had 1078 | teachers like that, or that I will have them again in the future. The class 1079 | sounds extremely interesting, and I would have loved to attend it. 1080 | 1081 | * [Direct Functions in Dyalog APL](https://www.dyalog.com/uploads/documents/Papers/dfns.pdf) by **John Scholes** (1997) 1082 | 1083 | A brief but thorough no frills introduction to dfns. I struggled to find a good 1084 | thorough description of all of their moving parts—there are more than meets the 1085 | eye—, and this little paper is the best I could find. It answered all the 1086 | questions that I had. 1087 | 1088 | * [A History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf) by **Rich Hickey** (2020) 1089 | 1090 | While I do not always agree with Hickey’s designs, it would be dishonest to 1091 | pretend that his thinking and designs haven’t influenced me tremendously. I’d 1092 | dispute that some of Clojure’s benefits that are presented in this paper are in 1093 | fact benefits, but, again, these are philosophical gripes that really don’t 1094 | change the fact that Clojure is well designed, stable, and, not least of all, 1095 | successful. 1096 | 1097 | * [APL Since 1978](https://dl.acm.org/doi/pdf/10.1145/3386319) by **Roger K.W. Hui & Morten J. Kromberg** 1098 | 1099 | Although pretty long and at times more of a reference manual than a history, 1100 | this paper is full of knowledge about APL that helped me make sense of one of 1101 | the few programming paradigms that I know of and still can’t quite get behind. 1102 | It’s inspiring for sure. 1103 | 1104 | * [Submodules in Racket: You Want it When, Again?](https://www.cs.utah.edu/plt/publications/gpce13-f-color.pdf) by **Matthew Flatt** (2013) 1105 | 1106 | While the paper is written clearly and with many illuminating graphics and 1107 | exmaples, the subject matter is complex enough that I left feeling not quite 1108 | as if I understood the system in its entirety (exemplified by a project using 1109 | some complicated Racket module fiddling that I worked on at the time that 1110 | wasn’t much easier for me after working through this paper). 1111 | 1112 | * [Convivial Design Heuristics for Software Systems](https://www.cs.kent.ac.uk/people/staff/srk21/research/papers/kell20convivial.pdf) by **Stephen Kell** (2020) 1113 | 1114 | Quite dense, and quite interesting thinking that largely aligns with my own, 1115 | but it equips me with another connection between concepts that I didn’t 1116 | have—one of the reasons why I read papers in the first place. Very fun read. 1117 | 1118 | * [Agda: Equality](http://www2.tcs.ifi.lmu.de/~abel/Equality.pdf) by **Andreas Abel** (2012) 1119 | 1120 | An accessible yet illuminating introduction to proving equality and proofs 1121 | using equality. I had never thought about how `≡` works in Agda, and just 1122 | implicitly assumed that it was part of the system. It’s delightful to learn 1123 | that it isn’t special at all. 1124 | 1125 | ### Books 1126 | 1127 | * [You Can’t Spell Trust without Rust](https://cdn.rawgit.com/Gankro/thesis/d2f0b64fe93c23923f3a43a7038427083edad4c5/thesis.pdf) by **Alexis Beingessner** (2015) 1128 | 1129 | As one Reddit user helpfully put it: “You can’t spell slaughter without laughter 1130 | either”. Technically this is not a book but a master’s thesis, but I’ll count 1131 | it as a book for reasons of vanity. It is relatively readable, but not very 1132 | exciting either. Rust excites me less and less the more I do with it, and this 1133 | thesis didn’t help. I’ll read a bit more about it, but for now I’ll have to 1134 | conclude that Rust is not for me, neither theoretically nor practically. 1135 | 1136 | * *If Hemingway Wrote JavaScript* by **Angus Croll** (2014) 1137 | 1138 | One of the most delightful tech books I’ve ever read. It is whimsical, and 1139 | while only tangentially pedagogical, an incredibly gratifying read. I expect 1140 | to revisit it again and again—its disjointed nature makes this very easy and 1141 | immediately valuable. 1142 | 1143 | * *How Not to Program in C++* by **Steve Oualline** (2003) 1144 | 1145 | This book didn’t age very well. Much of its content feels outdated, and some of 1146 | the brain teasers feel petty, just fluff to fill up the book. I enjoyed a few 1147 | of the riddles a lot, but in general I was annoyed at them pretty quickly. 1148 | 1149 | * [10 PRINT CHR$(205.5+RND(1)); : GOTO 10](http://nickm.com/trope_tank/10_PRINT_121114.pdf) by **Nick Montfort et al.** (2013) 1150 | 1151 | It’s pretty grandiose. 1152 | 1153 | * [97 things every programmer should know](https://www.gitbook.com/book/97-things-every-x-should-know/97-things-every-programmer-should-know/details) by **Kevlin Henney (editor)** (2010) 1154 | 1155 | While most of the adivce in this book is fairly solid, the writing varies 1156 | wildly. Some of the experts could’ve used a lot more editor attention, but who 1157 | am I to judge? The contents are fairly light, and I think most of the advice is 1158 | not as profound or rarely brought to the attention of us lowly developers as 1159 | the authors think. Maybe I’m just still grumpy about Uncle Bob’s incoherent 1160 | ramblings, who knows. 1161 | 1162 | * [The Craft of Text Editing](http://www.finseth.com/craft/) by **Craig A. Finseth** (1999) 1163 | 1164 | I had to read this one, what with me implementing [my own terminal 1165 | editor](https://github.com/hellerve/e) and all. There is a lot of interesting 1166 | information in this one. Some of it is purely historical, as some standards have 1167 | popped up and changed the assumptions (for instance UTF-8, ANSI escape 1168 | sequences, and such). Some of it is still interesting. 1169 | 1170 | Reading this gave me feature envy for `e`, but I think it’s best if I don’t 1171 | change it, even if some algorithmic improvement woud arguably be low effort and 1172 | high impact. Take for instance gap buffers: they are fairly well understood and, 1173 | considering all the resources that you get on them, more or less trivial to 1174 | implement. But `e` is an editor mostly for programming and writing “regular” 1175 | prose, where the lines aren’t all that long. Add this fact to the consideration 1176 | that, while gap buffers are easy to implement, they would complect the design of 1177 | the editor, and I’d veto them until they prove necessary to my users—of which 1178 | there aren’t many, as I assume—or to me. So, while it was an interesting read, I 1179 | will refrain from implementing my new-found knowledge prematurely. 1180 | 1181 | * [Experimenting with Programming Languages](http://www.vpri.org/pdf/tr2008003_experimenting.pdf) by **Alessandro Warth** (2008) 1182 | 1183 | The original description of OMeta. OMeta has quickly become one of my favorite 1184 | approaches to parsers—it is weird, original, and fun to work with. The ideas of 1185 | worlds described in chapter 4 are less well known, but just as eye-opening. As 1186 | always, reading this gave me an itch to try and build dozens of things—it’s hard 1187 | to read Warth’s work without wanting to try it all out. 1188 | 1189 | * [PLANNER: A Language for Manipulating Models and Proving Theorems in a Robot](https://dspace.mit.edu/bitstream/handle/1721.1/6171/AIM-168.pdf?sequence=2) by **Carl Hewitt** (1970) 1190 | 1191 | I regard PLANNER as one of the most interesting chapters in the history of 1192 | programming languages. It’s the grandfather of theorem provers and logic 1193 | programming languages like Prolog alike, and it’s fun to read about its 1194 | implementation. This document is not really a front-to-back kind of read and 1195 | more of a reference work, but it is quite enlightening! 1196 | 1197 | * [Tutorial on Good Lisp Programming Style](https://www.cs.umd.edu/~nau/cmsc421/norvig-lisp-style.pdf) by **Peter Norvig & Kent Pitman** (1993) 1198 | 1199 | A very insightful little pamphlet that aged pretty well. I was able to take 1200 | some of the prescribed rules directly into [SBCLi](//github.com/hellerve/sbcli). 1201 | The writing is concise and to the point, but never curt or unmotivated. It was 1202 | tremendous fun! 1203 | 1204 | * *Mastering Clojure Macros* by **Colin Jones** (2014) 1205 | 1206 | A fun little book on macro programming, for beginners and experts alike. I 1207 | already knew a lot of the covered material, but revision never hurt anyone, 1208 | and it’s explained in a very pleasant style. What’s especially fun was that I 1209 | ended up in a very similar place when preparing my talk on Clojure macros for 1210 | next week! 1211 | 1212 | * [Let over Lambda](https://letoverlambda.com/) by **Doug Hoyte** (2008) 1213 | 1214 | Though the book is very aggressive in its Common-Lisp-over-everything view of 1215 | the world it contains some fairly interesting macro techniques. I had fun 1216 | recreating some of the macros in other Lisps—most notably Carp and Clojure—, 1217 | but in the end I mostly stayed for the insight around macros, which I don’t 1218 | agree with 100%, but had fun wrapping my head around. 1219 | 1220 | * *Data and Reality: A Timeless Perspective on Perceiving and Managing Information in Our Imprecise World* by William Kent (1978) 1221 | 1222 | It’s supposedly a classic, and it has some neat little rules in there. The 1223 | author is not a very good writer, though, a fact that is exacerbated in the 1224 | edition that I read by the editor who can’t help but insert little out-of-place 1225 | commentary sections. I don’t know whether those come from a genuine desire to 1226 | explain or plain vanity, but they’re useless, and, what’s worse, actually 1227 | disturb the flow of the book. 1228 | 1229 | * [Elements of Clojure](https://leanpub.com/elementsofclojure) by **Zachary Tellman** (2019?) 1230 | 1231 | A fantastic read, even for non-clojurists. Its prose and tone soothe me and 1232 | enable me to read it almost like a novel, but of course leaves a deeper 1233 | impression for my professional work. 1234 | 1235 | ## Recreational 1236 | 1237 | ### Papers 1238 | * [A Study of Prisoners and Guards in a Simulated Prison](http://www.zimbardo.com/downloads/1973%20A%20Study%20of%20Prisoners%20and%20Guards,%20Naval%20Research%20Reviews.pdf) by **Philip Zimbardo et al.** (1973) 1239 | 1240 | One of the most famous papers of psychology. I had to read one 1241 | of Zimbardo’s books when studying psychology at University, but 1242 | never got around to actually reading this infamous paper. It is 1243 | both well-written and topically interesting, but extremely disturbing. 1244 | I doubt any ethics committee would let an experiment like that 1245 | happen these days. 1246 | 1247 | *EDIT:* It is also harshly criticized these days. If you want to read 1248 | dissenting voices, I suggest you check out [this 1249 | article](https://medium.com/s/trustissues/the-lifespan-of-a-lie-d869212b1f62). 1250 | 1251 | * [On Being Sane In Insane Places](https://isites.harvard.edu/fs/docs/icb.topic625827.files/On_Being_Sane_In_Insane_Places-1.pdf) by **David Rosenhan** (1973) 1252 | 1253 | Another very interesting pyschological paper that I discovered 1254 | much too late. It is a paper in the same vein as the Zimbardo 1255 | paper above. Very clearly written, at times seeming unscientific, 1256 | but asking important questions and providing an excellent basis 1257 | for thinking about how psychiatry should work and how it does. 1258 | Of course, the situation described in this paper is not the 1259 | situation we are in right now (we have gone a long way since 1260 | the 70s after all), but we should be wary of the fact that back 1261 | then, too, we thought we did things the right way when in fact 1262 | we didn’t. 1263 | 1264 | * [High-Selectivity Electrochemical Conversion of CO2 to Ethanol using a Copper Nanoparticle/N-Doped Graphene Electrode](http://onlinelibrary.wiley.com/doi/10.1002/slct.201601169/full) by **Yang Song et al.** (2016) 1265 | 1266 | Saying I understood this paper would be an overstatement. It was an 1267 | interesting read nonetheless and the research in it sounds promising. 1268 | To a clean future! 1269 | 1270 | * [Can Additional Homeopathic Treatment Save Costs? A Retrospective Cost-Analysis Based on 44500 Insured Persons](http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0134657) by **Julia Ostermann et al.** (2015) 1271 | 1272 | This study is a very important step towards a real cost evaluation 1273 | of homeopathy. While I would be careful not to generalize, because 1274 | the study had a lot of moving pats that are unaccounted for, the 1275 | sample size is pretty huge and the conclusions are pretty decisive 1276 | in that I can say that, no, homeopathic treatment is not generally 1277 | cheaper than traditional western medicine. 1278 | 1279 | * [Caesarean sections and for-profit status of hospitals: systematic review and meta-analysis](http://bmjopen.bmj.com/content/bmjopen/7/2/e013670.full.pdf) by **Olir Hoxha et al.** (2017) 1280 | 1281 | Somewhat unsettling research, but unsurprising—I am a cynic, after 1282 | all. It’s also not necessarily bad a priori that more C sections are 1283 | performed, I guess, but it hints at an underlying profit-driven environment 1284 | in profit-driven hospitals (duh). This holds true regardless of patient 1285 | history, apparently, which, if generalizable (which I hope is not the case) 1286 | would be highly appalling. 1287 | 1288 | * [Schrodinger’s Cat and World History: The Many Worlds Interpretation of Alternative Facts](https://arxiv.org/pdf/1703.10470.pdf) by **Tom Banks** (2017) 1289 | 1290 | A highly entertaining read. 1291 | 1292 | * [Tezos: A Self-Amending Crypto-Ledger Position Paper](https://www.tezos.com/pdf/position_paper.pdf) by **L.M. Goodman** (2014) 1293 | 1294 | I’m still pondering whether I should take part in the crowd sale. 1295 | But this sounds really cool. 1296 | 1297 | * [On the Typography Of Flight-Deck Documentation](https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19930010781.pdf) by **Asaf Degani** (1992) 1298 | 1299 | One of the most insightful looks into typography that I’ve found. 1300 | I don’t anticipate I will be responsible for any flight-related 1301 | typography any time soon, but the advice given in this paper is 1302 | rock-solid. 1303 | 1304 | * [Legible, are you sure? An experimentation-based typographical design in Safety-critical context](http://lii-enac.fr/articles/vinot-chi-2012.pdf) by **Jean-Luc Vinot & Sylvie Athènes** (2012) 1305 | 1306 | Related to the item above, but a bit more analytical and focusing 1307 | on digital graphical interfaces instead of print. It’s also not 1308 | as easy to infer simple rules from the paper, but it’s still 1309 | presenting deep insights. 1310 | 1311 | *False Suffocation Alarms, Spontaneous Panics, and Related Conditions—An Integrative Hypothesis* by **Donald F. Klein** (1992) 1312 | 1313 | An interesting take on panic attacks, suffocation, and brain 1314 | signalling. 1315 | 1316 | * [Tezos — A Self-Amending Crypto-Ledger White paper](https://www.tezos.com/pdf/white_paper.pdf) by **L.M. Goodman** (2014) 1317 | 1318 | Still not convinced. 1319 | 1320 | * [Deconstructing the evidence-based discourse in health sciences: truth, power and fascism](http://www.ucl.ac.uk/Pharmacology/dc-bits/holmes-deconstruction-ebhc-06.pdf) by **Dave Holmes et al.** 1321 | 1322 | I thoroughly enjoyed this read, reading it as a joke. 1323 | 1324 | * [Is the Chocolate-Eating, Coffee-Drinking, Dog-Walking Red Wine Drinker a Prototype?](https://www.princeton.edu/~joha/publications/Haushofer_et_al_Food_Preferences.pdf) by **Haushofer et al.** (2014) 1325 | 1326 | It had to be tested. 1327 | 1328 | * [Motivation and Nonsense in Chinese Secret Languages](https://brannerchinese.com/publications/Branner_final_pre-publication_draft_of_Secret_Languages_paper_dated_201004_corrections20111004.pdf) by **David P. Brenner** (2010) 1329 | 1330 | One of the most interesting, readable papers I’ve ever read. The ease with which 1331 | the topics are discussed and broken down, even for laymen like me, is positively 1332 | startling, in a good way. 1333 | 1334 | * [Attitudinal emotions and head movements in Danish first acquaintance conversations](http://www.ep.liu.se/ecp/093/013/ecp12093013.pdf) by **Bjørn Wessel-Tolvig & Patrizia Paggio** (2012) 1335 | 1336 | I’m a layman, but this paper seems like it lacks a lot of data. The topic is 1337 | fairly intriguing and should be studied more, but, as the authors themselves 1338 | admit in the conclusion, there is just too little data for any claim to be made, 1339 | which is a bummer. 1340 | 1341 | * [Is Justified True Belief Knowledge?](http://www-bcf.usc.edu/~kleinsch/Gettier.pdf) by **Edmund L. Gettier** (1963) 1342 | 1343 | This is one of those rare papers where someone broke new ground by writing a few 1344 | pages (three, in this case) that just happened to blow everyone away. In this 1345 | case the paper is even more compelling, because it is understandable even to 1346 | someone who is not well-versed in the context of the paper. Very enjoyable, 1347 | enlightening read, and a style to which I aspire (like most, I imagine). 1348 | 1349 | * *The Proper Treatment of “Your Ass” in English* by **John Beavers & Andrew Koontz-Garboden** (2003) 1350 | 1351 | Very entertaining read. It’s not really my area of expertise—not at all, 1352 | really—, and still it’s quite fun to read. Of course the pun density is quite 1353 | high, but that just comes with the territory. 1354 | 1355 | * [Fandomized Algorithms and Fandom Number Generation](https://github.com/lkuper/fandomized-algorithms) by **Lindsey Kuper & Alex Rudnick** (2013) 1356 | 1357 | Short, but sweet, but I don’t think I’ll try the tech out any time soon. 1358 | 1359 | * [A Mathematician’s Lament](https://www.maa.org/external_archive/devlin/LockhartsLament.pdf) by **Paul Lockhart** (2002) 1360 | 1361 | I must’ve read it for the second time, but I can’t remember reading it for the 1362 | first time (except for a recollection of some of the things that have been said, 1363 | without knowing where they come from). It’s a good, enjoyable, cathartic read. 1364 | 1365 | * [Managing an iconic old luxury brand in a new luxury economy: Hermès handbags in the US market](https://www.gwern.net/docs/economics/2014-lewis.pdf) by **Tasha L. Lewis & Brittany Haas** (2014) 1366 | 1367 | I knew next to nothing about the brand or its products before I started reading 1368 | the article. It felt genuinely informative to read, and though I’m not looking 1369 | to purchase any of their products anytime soon, the company’s business model is 1370 | interesting enough for me to read about. 1371 | 1372 | * [The Euclidean Algorithm Generates Traditional Musical Rhythms](http://cgm.cs.mcgill.ca/~godfried/publications/banff.pdf) by **Godfried Toussaint** (2005) 1373 | 1374 | This little paper is fun and well-written, and it doesn’t matter that my music 1375 | theory is a little rusty—I was still able to comprehend it all. The author 1376 | writes well, explains well, and I enjoyed his many references to musical 1377 | styles of the world which I definitely will research more in the future. 1378 | 1379 | * [Das Unsterblichkeitskonzept des "Pythagorean Institute of Philosophical Studies for the Immortality of Men"](http://publikationen.ub.uni-frankfurt.de/frontdoor/index/index/docId/47992) by **Hannes Puchta** (2018) 1380 | 1381 | It’s hilarious, and I’m not sure whether that’s intentional or not. The 1382 | material this paper is based on is just ridiculous, and the author can’t help 1383 | but play around with it a bit. 1384 | 1385 | * [Histerektomie: Zahlen und Trends aus der Gesundheitsberichterstattung des Bundes](https://www.rki.de/DE/Content/Gesundheitsmonitoring/Gesundheitsberichterstattung/GBEDownloadsK/2014_1_hysterektomie.pdf?__blob=publicationFile) by **Franziska Pütz & Elena von der Lippe** (2014) 1386 | 1387 | While 2012 is a bit old now, this is a really instructive paper with a lot of 1388 | good data points (well, good in a statistical sense, since the numbers are 1389 | alarmingly high). The prevalence of hysterectomies in Germany surprised me, 1390 | even if it’s comparable to that of other surgeries in a global context (at 1391 | least the ones I know of). I really hope for more minimally invasive 1392 | alternatives to this surgery to appear. 1393 | 1394 | * [Academic Citation Practice: A Sinking Sheep?](https://blogg.hvl.no/kildebruk/wp-content/uploads/sites/42/2017/03/Rekdal2014AcademicCitation.pdf) by **Ole Bjørn Rekdal** (2014) 1395 | 1396 | A beautifully written article that highlights an important problem. I found the 1397 | narrative more compelling than the actual hard facts, so I ironically didn’t 1398 | check any of the paper’s resources—I wonder what the author would think of 1399 | that. 1400 | 1401 | * [Is a calorie a calorie?](https://academic.oup.com/ajcn/article/79/5/899S/4690223) by **Andrea C. Buchholz & Dale A. Schoeller** (2004) 1402 | 1403 | A fantastic and comprehensive introductory article into the complications of 1404 | diets and nutrition. While not much of it is actionable for the general 1405 | population, it’s good to keep these basic concepts in mind when evaluating 1406 | diets and papers on new diets. 1407 | 1408 | ### Books 1409 | 1410 | * *Abhandlung über den Ursprung der Sprache* by **Johann Gottfried Herder** (1772) 1411 | 1412 | This book was intriguing in multiple respects: way ahead of its time 1413 | and yet so much of it is reflecting the sentiments of its time, sometimes 1414 | in a painful manner, such as when Herder talks about Black people—or anyone 1415 | Non-white, for that matter. The first part is a bit hard to decypher, but 1416 | the second part is making up for it. If you want to take anything away 1417 | from this book, the last four pages actually summarize his main point 1418 | quite nicely (starting at the paragraph labeled `3.`). 1419 | 1420 | * *Erzählte Zeit—50 deutsche Kurzgeschichten der Gegenwart* by **Manfred Durzak (Editor)** (1989) 1421 | 1422 | A great collection of German short stories detailling life in Germany 1423 | during various periods of the 20th century. I don’t think I can write 1424 | up a coherent comment about the book; there is just too much ground to 1425 | cover. I skipped two short stories that didn’t appeal to me writing-wise, 1426 | but other than that I was very happy with the layout, sequencing, and the 1427 | stories themselves. I don’t think there is a translation to any other 1428 | language of this particular book, but I’m sure most of the individual 1429 | stories are translated. 1430 | 1431 | * *The Lover* by **Marguerite Duras** (1984) 1432 | 1433 | Beautifully written story; it was the first book I read of Duras’ and I definitely 1434 | missed out. I need to read the Hiroshima Mon Amour screenplay next, and I 1435 | think I would like to see the movie, although I’m typically not a fan of 1436 | movie adaptations if I really liked the book. We’ll see. 1437 | 1438 | * *Die Berliner Antigone—Erzählungen und Gedichte* by **Rolf Hochhuth** (1986) 1439 | 1440 | Although I’m not a big fan of his style—he is a touch too preachy, like many 1441 | great German poets after the war, although for good reason—he delivers solid 1442 | stories that are interesting as historical commentary. Both of the prose and 1443 | the poems in this book are too clearly pointed for me, although I assume it is 1444 | hard to write about the war and the holocaust without being preachy. One of the 1445 | few who don’t fall into that trap is Paul Celan, himself a holocaust survivor 1446 | and incredible writer, and I don’t think a comparison is fair. 1447 | 1448 | * *Selected Poems* by **E. E. Cummings (edited by Richard S. Kennedy)** (2007) 1449 | 1450 | I like E.E. Cummings’ early and a few of his late poems. I have no taste for 1451 | his cubist poems, and his poems dealing with love and sexuality are severely 1452 | overrated in my eyes. The section introductions written by the editor try to 1453 | give an overview over the author’s views and environment that influenced his 1454 | writing, but most of them end up being toadyish. 1455 | 1456 | * *Die Sekunden danach* by **Matthias Politycki** (2009) 1457 | 1458 | I reread it after years of not reading any of his works. It’s still one of the 1459 | most enjoyable poetry books on my shelf. His style is clear, but subtle, and 1460 | effortlessly lighthearted. My favorite poems are about his random encounters, 1461 | often with women, beautiful moments, captured in a clear and unspectacular 1462 | manner. I like his matter-of-fact tone a lot. 1463 | 1464 | * *On Value* by **Triple Canopy & Ralph Lemon** (2015) 1465 | 1466 | I purchased this book at the PS1 warmup party at MoMA. I don’t know what I 1467 | expected, but this sure wasn’t it. I enjoyed the read, however. The book 1468 | is a series of essays and conversations by and of modern artists, particularly 1469 | dancers. Their throughts on their art and craft and its presentation felt both 1470 | intimate and illuminating, curated and natural. 1471 | 1472 | * *Scotland and Its Whiskies: The Great Whiskies and Their Landscapes* by 1473 | **Michael Jackson** (2001) 1474 | 1475 | A beautifully written book with equally beautiful photography. Michael Jackson 1476 | is one of the best writers this most special of drinks has ever seen, and it 1477 | was the writer it deserved. This book is a playful tale of a journey through 1478 | Scotland and its pretty distilleries. Highly recommended read. 1479 | 1480 | * *The Witch’s Vacuum Cleaner* by **Terry Pratchett** (2017) 1481 | 1482 | Terry Pratchett at his youngest. The stories are incredibly charming and cute, 1483 | and it is well suited for reading to anyone, though I’d recommend someone who’s 1484 | close to you. Strangers can act funny if you shout even the best stories at 1485 | them. 1486 | 1487 | * [CLOSURE](https://github.com/steveklabnik/CLOSURE) by **\_why, the lucky stiff** (2013) 1488 | 1489 | I was quite obsessed with \_why for some time, ca. 2012. Over the years I’ve 1490 | thought of him every now and then, but I didn’t know about this last relic he 1491 | gave to his followers—I don’t think he’d like that term very much, but I think 1492 | it’s appropriate. Anyway, I devoured it. It’s pretty great. 1493 | 1494 | * *He sacado mi esperanza a lucir* by **Hans-Eckardt Wenzel** (2014) 1495 | 1496 | A beautiful book of poems by one of my favorite German musicians. I picked it 1497 | up when I saw him live—books are great memorabilia. The poems are great in 1498 | their own right, but it’s even better if you want to learn Spanish from German 1499 | or the other way around, because it’s also quite wordy poetry. 1500 | 1501 | * *Nachtstücke* by **E.T.A. Hoffmann (Artemis und Winkler edition)** (2012) 1502 | 1503 | I knew all of the stories in this book already, but haven’t read them in years 1504 | and this edition is a little different from what I remembered. It’s a classic 1505 | of German romantic literature, and rightfully so. Others have said better than 1506 | I ever could what this book is. 1507 | 1508 | * *Herz, stirb oder singe* by **Juan Ramón Jiménez (Diogenes edition)** (1977) 1509 | 1510 | A gorgeous book of poems that I’ve read a bunch of times over the years. It has 1511 | been very influential on my poetry and, less obviously, my Spanish. This 1512 | edition is uncharacteristically sparse on detail on the author, which intrigued 1513 | teenage me even more. Now, of course, Jiménez is one of my favorite poets. 1514 | 1515 | * *Unter dem Stern des Bösen* by **Gabriel García Márquez** (1966) 1516 | 1517 | A confusing little book that I love. It’s another one of the books I just had 1518 | to reread this year, especially because I’m reading another one of his in 1519 | Spanish right now, very slowly and despairing about whether I will ever not be 1520 | terrible at the language. This one I read in German, and it was like visiting 1521 | an old friend with a different address, familiar, yet different. 1522 | 1523 | * *Parzival* by **Wolfram von Eschenbach (Schöningh Edition)** (1965) 1524 | 1525 | This is one of the most pleasurable editions of Parzival that I’ve read. It is 1526 | a small selection of the core stories within the book, which makes it a little 1527 | more palatable to the modern reader. It is less meandering and more focused, 1528 | although it is still a fairly foreign read. 1529 | 1530 | * *Brigitta* by **Adalbert Stifter** (Reclam edition from 2003) 1531 | 1532 | One of the more boring books that I’ve read in my life. The story is not 1533 | necessarily bad, but the writing reads incredibly self-indulgent to me. It is 1534 | fairly short and has pretty parts, but on a whole I didn’t enjoy reading it. 1535 | 1536 | * *Gute Reise, Genosse* by **Kirill Gradov** (1984) 1537 | 1538 | Insightful book into the life in the Sovjet Union. I first read it when I was 1539 | around 12 years old, and it had great influence on the way I pictured living in 1540 | the Sovjet Union. It is still a nice read, and feels like a glimpse into a 1541 | foreign world. 1542 | 1543 | * *Prosaminiaturen—Opus III* by **Wolfgang Haak** (2008) 1544 | 1545 | Paul Celan and he have influenced my writing—in German— like no other 1546 | writers have. This is one of my favorite books, and I read it every other 1547 | year, at least partially. Highly recommmended read. 1548 | 1549 | * *Writings to an Unfinished Accompaniment* by **W. S. Mervin** (1976) 1550 | 1551 | Mervin is one of my favorite American poets. I didn’t know him before I found a 1552 | double edition of this and another of his books in a used book store in Berlin. 1553 | I devoured them. He is definitely part of the canon, but somehow I didn’t hear 1554 | about him until very late. 1555 | 1556 | * *The Moving Target* by **W. S. Mervin** (1976) 1557 | 1558 | I prefer the book above, but it is interesting to see how Mervin’s writing 1559 | changed and developed over the years. Had I read this one first, however, I 1560 | probably wouldn’t have been enamoured with his writing as much. 1561 | 1562 | * *Eiche und Angora* by **Martin Walser** (1962) 1563 | 1564 | A painful and funny, sad and satiristic play. I didn’t know about it before 1565 | finding it in a used book store, and read it within a few days. It is touching 1566 | while still maintaining its comedy. This might be my new favorite play, and my 1567 | favorite book to deal with Germany’s disgraceful past. 1568 | 1569 | * *Erzählungen* by **Christa Wolf** (1983) 1570 | 1571 | I’m a big fan of Wolf’s writing. She is often introduced as one of East 1572 | Germany’s most important writers, and rightfully so. Her short stories are 1573 | surprisingly critical of the regime (surprising that they were published, that 1574 | is to say), and incredibly candid. 1575 | 1576 | * *Brief an Lord Liszt* by **Martin Walser** (1982) 1577 | 1578 | This book is deeply personal and honest, a recollection of a feud without 1579 | fingerpointing, but with all of the drama. Masterfully crafted and cutting. 1580 | 1581 | * *Der Revisor* by **Nikolai Gogol** (1836) 1582 | 1583 | It is quite fascinating how this pushed all of my buttons. I was deeply annoyed 1584 | with almost every character in the story (which is exactly what the author 1585 | wanted, I suppose). I’d love to see it on stage sometime. 1586 | 1587 | * *Lenz* by **Georg Büchner** (1839) 1588 | 1589 | Terribly fascinating in both story and backstory. The reclam edition I read came 1590 | bundled with a few resources and a very comprehensive explanation of the history 1591 | and context of this fragment. It is very disjointed, but beautifully written and 1592 | highly gripping. 1593 | 1594 | * *Der zerbrochene Krug* by **Heinrich von Kleist** (1807) 1595 | 1596 | A weird, but satisfying book. As with Lenz, the backstory—particularly the bits 1597 | about Goethe—are fascinating as well. I understand it doesn’t jive well with 1598 | audiences, but that’s a mark of many great plays anyway. 1599 | 1600 | * *Antigone* by **Sophocles** (Translation by Wilhelm Kuchenmüller, 1955) 1601 | 1602 | This short play, in a beautiful translation by a capable philologist, sucks even 1603 | the reader in with its mesmerizing rhythm (iambic pentameter throughout). It’s 1604 | a compelling story set after the fallout of the Seven Against Thebes that 1605 | imagines the fate of Antigone and Ismene after Eteokles and Polynices died. It 1606 | is powerful in its appeal to humanity and as an example of what happens when 1607 | power and rage combine to blind their master. 1608 | 1609 | * *Die Germanen* by **Rudolf Simek** (2006) 1610 | 1611 | This book is a good, non-ideological look at the histories of the Germanic 1612 | peoples, how they connect, how they differ, and how they interrelate with other 1613 | cultures of the time (mostly the Huns and the Romans). I very much enjoyed 1614 | reading this, because it helped understand that the Germanic peoples were not 1615 | just barbarians, but also not the peoples the Germans or Slavic people owe their 1616 | heritage to. It’s more complex than that, and this book does not shy away from 1617 | the complexity, isntead embracing it and trying to make sense of it. 1618 | 1619 | * *Ein fliehendes Pferd* by **Martin Walser** (1978) 1620 | 1621 | This is the third book by Martin Walser that I read this year. This year, he’s 1622 | slowly morphing into my favorite author. His calm, collected writing, centered 1623 | around realistic characters, is both entertaining and insightful. This book in 1624 | particular has a beautiful calmness about it. 1625 | 1626 | * *Pankraz der Schmoller* by **Gottfried Keller** (1856) 1627 | 1628 | This might be my least favorite book of this year. Even though it is short, it 1629 | was hard for me to get through. I quite enjoyed the afterword, as it gave me 1630 | some context about the book and the period it was written in, but the book 1631 | itself wasn’t my cup of tea at all. 1632 | 1633 | * *The Truth* by **Terry Pratchett** (2000) 1634 | 1635 | This was one of the first discworld novels I ever read, and I still enjoy it. 1636 | Nuff said. 1637 | 1638 | * *The Black Swan: The Impact of the Highly Improbable* by **Nassim Nicholas Taleb** (2007) 1639 | 1640 | Very informal and pretty insightful, but obscured by an unnecessarily relaxed 1641 | style that makes some of the reasoning feel pretty sloppy. 1642 | 1643 | * *Deutschstunde* by **Siegfried Lenz** (1968) 1644 | 1645 | A beautiful book on multiple levels. The title alone hints at the duplicity of 1646 | the story: it is both the tale of having to write an essay, and an exploration 1647 | of German nature itself. It’s decidedly descriptive, all deductions are made by 1648 | the reader—though as always you are compelled to follow the main character’s 1649 | reasoning—, and you are free to leave this book with your own conclusions. 1650 | 1651 | * *Ansichten eines Clowns* by **Heinrich Böll** (1963) 1652 | 1653 | I read this book for the fourth or fifth time in 2018, and I was still gripped 1654 | by it. It’s a great book to devour. I enjoy the story, and the radical honesty 1655 | with which all of the characters—including the main character—are portrayed. 1656 | 1657 | * *Die Gruppe 47* by **Helmut Böttiger** (2012) 1658 | 1659 | A well-written history of the most important group of German writers post-WWII. 1660 | It’s informing and entertaining, and it’s incredibly well-researched, citing 1661 | from books, letters, private correspondences of famous authors and publishers. 1662 | I’m already telling everyone to read it. 1663 | 1664 | * *Der Goldkäfer* by **Edgar Allan Poe** (1843) 1665 | 1666 | A beautiful story. I read it for the third or fourth time this year (2018), and 1667 | it is always a quick and enjoyable read. My edition also boosts a set of 1668 | gorgeous illustrations from the early 20th century, which accompany the story 1669 | very nicely. 1670 | 1671 | * [Out of the Aeons](http://www.hplovecraft.com/writings/texts/fiction/oa.aspx) by **H.P. Lovecraft & Hazel Heald** (1935) 1672 | 1673 | A fantastic little short story. Lovecraft is one of my favorite writers, not so 1674 | much because of the stories he told, but because of his flowery prose and 1675 | magnificent command of the English language. I learned a new word from this 1676 | story: “proboscidian”. 1677 | 1678 | * *Gateway* by **Frederik Pohl** (1977) 1679 | 1680 | Easily one of my favorite books this year. The premise is extremely intriguing 1681 | and sets a great scene for big questions about humanity and space. The narrator 1682 | is not the nicest person, but he makes for a very intriguing character to 1683 | explore. Thanks to @lamarqua for getting me into this by giving me—and 1684 | Meredith—the book in the first place. 1685 | 1686 | * *If on a winter's night a traveler* by **Italo Calvino** (1979) 1687 | 1688 | A masturbatory postmodernist tale that serves mostly itself. It’s not 1689 | impenetrable and has its moments, but in the end it’s nothing more than an 1690 | exercise in mutual patting of backs between the author and the knowledgeable, 1691 | well-read reader who understands that literary tradition is blasé and properly 1692 | teling a story bourgeouis. 1693 | 1694 | * *The Prince* by **Niccolò Machiavelli** (1513/1532) 1695 | 1696 | Maciavelli was a product of his time, and his meditations are primarily 1697 | interesting from a historical perspective. His works shaped the thoughts of many 1698 | emperors, and his knowledge of the lives and deeds of historical figures was 1699 | almost unparalleled. My edition in particular featured accompanying commentary 1700 | by Max Oberbreyer from 1879 that felt more dated than the original work, but 1701 | were nonetheless illuminating and very useful for a bit of context on the people 1702 | Machiavelli uses as examples. 1703 | 1704 | * *A History of the World in 6 Glasses* by **Tom Standage** (2006) 1705 | 1706 | A neat little book with a good history (as far as I can tell) of some of the 1707 | world’s most influential drinks. The chapter on only drink I knew some of the 1708 | history of prior to reading the book—Rum—was a bit of a red flag, though, 1709 | because the author has a nasty habit of pretending his favorite theory about 1710 | a historical factoid that’s still a topic of discussion—the etymology of the 1711 | drink’s name, for instance—is gospel and the only one worth mentioning. It is 1712 | nonetheless informative and fun to read. 1713 | 1714 | * *Das Vorbild* by **Siegfried Lenz** (1978) 1715 | 1716 | Another incredibly poignant book by Siegfried Lenz. He was an incredibly 1717 | descriptor (and caricaturist) of the German spirit of the time, and all of his 1718 | characters feel like archetypes. I had a lot of fun reading this, even though 1719 | not a single one of the characters was likable—and I think they weren’t meant 1720 | to be. 1721 | 1722 | * *Picknick am Wegesrand* by **Arkadi & Boris Strugatzki** (1972) 1723 | 1724 | A fun, gripping read. I have my gripes with the last part and especially the 1725 | ending (I won’t spoil it here, though). My edition also featured an afterword by 1726 | Stanislaw Lem which was insufferable, pretentious, and mistakes opinion for the 1727 | scientific method; it ruined an otherwise perfectly good read for me. 1728 | 1729 | * [Zen and the Art of Motorcycle Maintenance](https://en.wikipedia.org/wiki/Zen_and_the_Art_of_Motorcycle_Maintenance) by **Robert M. Pirsig** (1974) 1730 | 1731 | This might’ve been the best, most insightful I’vé ever read. I’m just floored. 1732 | 1733 | * [Notes on the Synthesis of Form](https://en.wikipedia.org/wiki/Notes_on_the_Synthesis_of_Form) by **Christopher Alexander** (1964) 1734 | 1735 | The core idea, breaking down tradeoffs, linking them, and working your way up 1736 | again, is worth talking about. Unfortunately, the book gets a little repetitive 1737 | after a while and the appendices (a case study and mathematical formulation) are 1738 | not so fun to read. I’ll have to revisit those. 1739 | 1740 | * *Gedichte* by **Rose Ausländer** (2017) 1741 | 1742 | I really enjoy Rose Ausländer’s early poems. Her later poems (from the seventies 1743 | and eighties, to be precise) feel very different, and are a little too direct 1744 | and not linguistically interesting enough for me. Nonetheless the edition that I 1745 | have has a good collection of different samples from different periods in her 1746 | life, and it’s great fun to read them side by side. 1747 | 1748 | * *The Revolution Betrayed* by **Leon Trotsky** (1936) 1749 | 1750 | Both politically and historically interesting, this book is a good vivisection 1751 | of the state of the Soviet union of the 1930s by a disillusioned revolutionary. 1752 | It keeps surprpising me how many of the basic arguments against communism and 1753 | socialism have been dealt with such a long time ago, and while people keep 1754 | bringing them up, unchallengedly, when we have books like this one that clearly 1755 | explain what the Soviet union was and wasn’t, and where it all went down the 1756 | drain. 1757 | 1758 | * *Perfecting Sound Forever: An Aural History of Recorded Music* by **Greg Milner** (2010) 1759 | 1760 | A fun read, but has its shortcomings. It’s extremely centered around recording 1761 | history in the US, features a bunch of weird quacky types (such as Mr. Diamond), 1762 | and it features almost exclusively men as protagonists of the history of 1763 | recording—which might reflect the industry makeup, but was very obviously weird 1764 | to me. Nonetheless, I learned a bunch of things about the history of recording 1765 | and some of the more important historical records. 1766 | 1767 | * *What’s Yours is Mine: Against The Sharing Economy* by **Tom Slee** (2017) 1768 | 1769 | A beautiful examination of the race to the bottom that is the Sharing Economy 1770 | since it got the big money. There’s lots of interesting insight to be had in 1771 | the book, but it’s most useful as a reference work, quantifying the feeling of 1772 | political and social activists, economists, and politicians around the world, 1773 | and giving us a numerical frame for a policy debate that’s long overdue. 1774 | 1775 | * *Jürgen* by **Heinz Strunk** (2017) 1776 | 1777 | What a painful, gorgeous book. It hurts a lot to read, and puts its fingers on 1778 | the pain points of German culture; and that’s a great thing! I read the book in 1779 | little more than a day, and it was a day well spent! 1780 | 1781 | * *Eine Frau schaut auf Männer, die auf Frauen schauen: Essays über Kunst, Geschlecht und Geist* by **Siri Hustvedt** (2019) 1782 | 1783 | I didn’t know any of Siri Hustvedt’s work going into this book, I just thought 1784 | the title sounded interesting in the bookstore. The book is extremely 1785 | stimulating, because it is very eclectic, touching on topics I’m familiar with 1786 | and some I know nothing about. I didn’t agree with the message of all of the 1787 | essays, or even enjoy all of them, but it’s a good book nonetheless; and it made 1788 | me decide to finally read some Kierkegaard! 1789 | 1790 | * *De coniuratione Catilinae* by **Salust** (41 B.C.) 1791 | 1792 | It’s scary how little the rhethoric of populist deception has changed in the 1793 | last 2000 years. Some of the monologues by Catilina could be transplanted 1-to-1 1794 | to the current times, and would make as much sense as they did back then. 1795 | 1796 | * *Monsieur Ibrahim et les Fleurs du Coran* by **Éric-Emmanuel Schmitt** (2001) 1797 | 1798 | Understandable even for me, this book is beautiful in its simplicity. I enjoyed both the 1799 | writing and the story. I wanted to read more Éric-Emmanuel Schmitt for a long time, and I 1800 | believe now might finally be the right time. 1801 | 1802 | * *Diese Einsamkeit ohne Überfluß* by **Sigrid Damm** (2000) 1803 | 1804 | What a beautiful tale, about so many things. She tells us about her work, about her life, 1805 | and about the time that is 1995. Sadly my edition (by Suhrkamp) is riddled with spelling 1806 | mistakes that reek of OCR, but I tried not to think about that. 1807 | 1808 | * *Leibhaftig* by **Christa Wolf** (2002) 1809 | 1810 | A moving tale of an illness and about life in East Germany—especially when trying to both 1811 | have a career and make a difference. I felt with the author, and I felt an urge to help 1812 | her, and in the end it left me feeling both happy and helpless, knowing that health and 1813 | illness are things that come and go, and that they’re part of life. 1814 | 1815 | * *Die letzte Wette* by **Jason Starr** (2002) 1816 | 1817 | An emotional but accurate betrayal of human interactions, relationships, and lives gone 1818 | wrong. It felt very genuine and the characters made sense to me—though some were a little 1819 | over the top, but such is fiction—, and most elicited at least a little bit of 1820 | understanding, no matter how misguided or fallible they were. The mark of a good book. 1821 | 1822 | * *Das Bonusgeheimnis* by **Martin Suter** (2014) 1823 | 1824 | Funny as always. The stories are entertaining, and, though satirical, not too far away 1825 | from reality. The punchlines never fail to deliver, and the book generally aged well. 1826 | 1827 | * *In der Nacht leuchten die Wörter* by **Ernesto Cardenal** (1979) 1828 | 1829 | I’m not a big fan of epic, long poems. This book was worth reading anyway, for its 1830 | political and historical dimension alone. The author’s descriptions and depictions of life 1831 | in Central America in the midst of multiple USA-led “regime changes” is visceral. ¡Viva la 1832 | revoluçion cubana! 1833 | 1834 | * *Die Ratten* by **Gerhard Hauptmann** (1911) 1835 | 1836 | I’m quite surprised how little the dialects have changed since then, especially 1837 | with the addition of the polish dialect/accent of one of the protagonists 1838 | (Piperkarcka), which feels pretty accurate to me. Apart from that it also 1839 | happens to be a fantastic play that I love very much. 1840 | 1841 | * *Panikraum* by **Hendrik Jackson** (2018) 1842 | 1843 | Some of the most intricate, elaborate, and difficult poetry I’ve ever read. It’s 1844 | extremely dense, but also a ton of fun. Not all the material “clicked” for me, 1845 | but a lot of it did, and that was pretty cool. 1846 | 1847 | * *God Bless You, Dr. Kevorkian* by **Kurt Vonnegut** (1999) 1848 | 1849 | This was the weirdest thing I’ve read in a while. 1850 | 1851 | * *Orff* by **Lilo Gersdorf** (1981) 1852 | 1853 | An interesting monograph that mostly talks about Carl Orff’s magnificent 1854 | compositional work, and doesn’t contain a lot of information about his life. 1855 | I’d have been especially interested about his time during the Nazi regime, but 1856 | it was mostly circumnavigated by the author. 1857 | 1858 | * *The Artful Wooden Spoon—How to Make Exquisite Keepsakes for the Kitchen* by **Joshua Vogel** (2015) 1859 | 1860 | This book is fantastic, reading it felt like practicing Zen. The voice is calm 1861 | and full of wisdom, and the next time I find a beautiful fallen branch, I’m 1862 | going to bring it home. My carving tools are ready. 1863 | 1864 | * *Das Gilgamesch-Epos* by **Wolfram Frhr. von Soden** (2003) 1865 | 1866 | It is always interesting to read old epic poetry and old texts in general, and 1867 | at least to me it’s surprising how little has changed. To people familiar with 1868 | the Judeo-Christian tradition, many of the stories will seem oddly familiar—an 1869 | ark, a flood, a dove?—, with an almost off-puttingly repetitive narrative. 1870 | 1871 | * *Die Kunst, glücklich zu sein* by **Arthur Schopenhauer** (2005) 1872 | 1873 | This little collecion of pearls of wisdom by an interesting, troubled man were 1874 | extremely insightful and supremely quotable. I enjoyed reading it, even though I didn’t agree with some of the rules and analyses. I also enjoyed being 1875 | confronted with ancient Greek again, though, truth be told, I wasn’t able to 1876 | decypher most of it. 1877 | 1878 | * *On Bullshit* by **Harry G. Frankfurt** (1986) 1879 | 1880 | An insightful, unpretentious read that exhibits exceptional clarity. The ideas 1881 | are presented understandably, and each movement from one idea to the next 1882 | can be followed even by me. 1883 | 1884 | * *Wolkenbruchs wunderliche Reise in die Arme einer Schickse* by **Thomas Meyer** (2014) 1885 | 1886 | Very slow for a while, with the Jiddish being the only thing that kept me 1887 | afloat. Over time the story grew on me, though, and it got ever more 1888 | interesting; I’m a sucker for 20-something love stories and coming of age, and 1889 | this book added an interesting voice to that genre. 1890 | 1891 | * *Glenn Gould* by **Andrew Kazdin** (1989) 1892 | 1893 | I left this book disliking both Gould and the author. The author’s admission of reading a 1894 | woman’s love letters to Gould for years just made my stomach churn, and so did Gould’s 1895 | alleged personal habits. It won’t change my opinion of the music, of course, and I’ll 1896 | always love his Goldberg variations, but it’s definitely a bit sad. 1897 | 1898 | * *Der goldene Kompass* by **Philip Pullman** (1995) 1899 | 1900 | Yeah, I know, it’s a YA book. I read it back when I was a young teenager, and 1901 | remember disliking the writing at the time. It didn’t get better this time. I 1902 | still somewhat enjoyed the story, but the writing was in fact so abysmal that 1903 | I wanted to quit repeatedly. Of course, I’m not the target audience, so I guess 1904 | it’s fine. 1905 | 1906 | * *On Modern Art* by **Paul Klee** (1924) 1907 | 1908 | Paul Klee was a tremendously well-spoken man, and this book is a testament to 1909 | that fact. I made the mistake of reading the English version as published by 1910 | Faber & Faber in 1948, which is quite terrible and clunky—there are some nice 1911 | prints of some of his works in there, however, which makes it all worth it 1912 | again. 1913 | 1914 | * *Pedagogical Sketchbook* by **Paul Klee** (1921) 1915 | 1916 | For me this was an entertaining read, but ultimately without consequences. It’s 1917 | nice to see a bit of the inner workings of the artistic mind of Paul Klee, but 1918 | in the end the processes and ideas are too hermetic for me to grasp. 1919 | 1920 | * *Wir nehmen die Welt nur zu ernst* by **Hermann Hesse** (2019) 1921 | 1922 | While I enjoyed a lot of the texts in the book, I’m saddened by how much of the 1923 | book consists of private and unpublished correspondences and/or poems. I can’t 1924 | say that I know that some of the writing was never meant to be read by a wider 1925 | audience, because I don’t know for sure, but I suspect it was in fact meant as 1926 | the intimate chatter between friends and lonesome doodles; reading it just 1927 | feels wrong. 1928 | 1929 | * *Die unendliche Bibliothek* by **Jorge Luis Borges** (1991) 1930 | 1931 | This collection of stories, collected by Alberto Manguel—one of the people who 1932 | read to Borges after he had gone blind—, is a fantastic illustration of why 1933 | Borges has become a bit of a dog whistle for intellectuals—or self-perceived 1934 | intellectuals. The stories are insightful, witty, and full of magic. I love his 1935 | writings and the stories that he dreams up equally much. 1936 | 1937 | * *The Three Stigmata of Palmer Eldritch* by **Philip K. Dick** (1965) 1938 | 1939 | Despite having some complaints about aspects of the book—the story seemed pretty 1940 | incoherent, some of the symbolism was super heavy-handed, and the Sci-Fi 1941 | world ultimately unbelievable to me—, I loved it. Something kept me going, kept 1942 | me at it and entertained, and I enjoyed it a lot. In the end, it’s just fun to 1943 | read, and sometimes that’s more important than anything else. 1944 | 1945 | * *The Image of the City* by **Kevin Lynch** (1960) 1946 | 1947 | I have forgotten why this was on my reading list, but I enjoyed reading it. I 1948 | understand that the work is significant, but I do have my quarrels with it, 1949 | mostly about the author not sharing any of the data he used to draw up his 1950 | conclusions—he references it a whole lot, which makes it even more weird. The 1951 | writing is not especially good either, but that’s okay considering the intent, 1952 | which was first to get an idea out, and only secondarily to articulate it well. 1953 | 1954 | * [Common Sense for the 21st Century](https://www.rogerhallam.com/wp-content/uploads/2019/08/Common-Sense-for-the-21st-Century_by-Roger-Hallam-Download-version.pdf) by **Roger Hallam** (2019) 1955 | 1956 | An extremely inspiring read. I don’t enjoy being part of a movement, and I’m 1957 | too cynical to believe in anything strongly enough to sacrifice myself for it, 1958 | but this book is a great way of making resistance actionable anyway, which is 1959 | great. It’s a good playbook. 1960 | 1961 | * *Der Baron auf den Bäumen* by **Italo Calvino** (1957) 1962 | 1963 | This must’ve been one of the books I most enjoyed reading in 2019. The writing 1964 | is fantastic and the story is absurd and fun enough to keep me entertained the 1965 | whole time. This book made me reevaluate what I think of Italo Calvino’s 1966 | writing in general, which I didn’t like very much in “If on a winter’s night a 1967 | traveler” (see above). 1968 | 1969 | * *Die Struktur wissenschaftlicher Revolutionen* by **Thomas S. Kuhn** (1962) 1970 | 1971 | The writing is abominable, the idea interesting but could be explained in about 1972 | two minutes: science follows a cycle of dogma and innovation. Breakthroughs in 1973 | science open up new possibilities, leading to new paradigms (or dogma), and then 1974 | we wait for another breakthrough. An interesting idea, and definitely worth 1975 | considering, but it deserves a better exposition than Kuhn was able to provide. 1976 | 1977 | * *Three Men in a Boat* by **Jerome K. Jerome** (1889) 1978 | 1979 | I have no idea how that book came into our possession, but I’m glad it did. The 1980 | writing is outrageously funny, and the absence of any sort of discernable story 1981 | does not make it less good. I had a great time with it. 1982 | 1983 | * *Die Ordnung des Diskurses* by **Michel Foucault** (1970) 1984 | 1985 | This book reads like the reasonable companion book to Jean Baudrillard’s 1986 | “Simulacra and Simulation”—which I’m trying to get throguh as well. It’s 1987 | well-written and although it tries to acknowledge the power discourse has over 1988 | us, and over our reality, it never goes into the masturbatory lala land that 1989 | Baudrillard seems to prefer. Instead, Foucault tries to find out what describes 1990 | and especially limits discourse, and why. As such, it is partly a prototype for 1991 | “The Order of Things”, one of my favorite philosophy books. 1992 | 1993 | * *Der Zauberer* by **Vladimir Nabokov** (1986) 1994 | 1995 | This proto-Lolita is beautifully written, which necessarily means that reading 1996 | it felt both disgusting and shamefully erotic at times. It’s a troubling book, 1997 | because it is good. The protagonist felt real, and seeing the world through his 1998 | eyes was a disturbing, painful experience. 1999 | 2000 | * *Ruhm* by **Daniel Kehlmann** (2009) 2001 | 2002 | I read this book back when it came out, but must’ve misplaced it. I 2003 | rediscovered it in the public library I like to go to, and it’s as fantastic as 2004 | I remember. I enjoy how different the stories are, and how they link up in 2005 | subtle ways to create a coherent universe. 2006 | 2007 | * *Beerholms Vorstellung* by **Daniel Kehlmann** (1997) 2008 | 2009 | I enjoyed eleven out of twelve chapters. I’ve read this book before, and I 2010 | still remembered that I had my problems with it; now I remember why. The last 2011 | chapter was a little trope-y, but apart from that, this is a beautiful book 2012 | that I enjoy quite a bit, although maybe not as much as Kehlmann’s later works. 2013 | 2014 | * *Simulacra and Silumation* by **Jean Baudrillard** (1981) 2015 | 2016 | This felt slightly incoherent at times, but had some interesting thoughts in 2017 | it. Generally it was a little hard to work through, but I enjoyed the ride. 2018 | It was a little bit like poetry on crack, with a slight twist of self-diagnosed 2019 | genius. 2020 | 2021 | * *Name und Notwendigkeit* by **Saul Kripke** (1972) 2022 | 2023 | While I enjoyed the main theses of the book, the constant insistence on the 2024 | intellecual superiority of reader/listener and Kripke himself got on my nerves 2025 | pretty quickly, as did the sprawling footnotes of often little content other 2026 | than “I don’t have time nor space to explain the things I posit here ”, which 2027 | is infuriating in its uselessness. There are good insights in the book that 2028 | inspired me, but reading it is no fun. 2029 | 2030 | * *Occupy! Die ersten Wochen in New York* by **Carla Blumenkranz et al.** (2011) 2031 | 2032 | It should be a light, short read. When you let it sink in, when you think about 2033 | it, then it’s not light nor short. It’s a lesson in how important uprisings get 2034 | stifled by mass inaction and eventual compromise (because radicalism is the 2035 | greatest of all crimes in a world made of sugar). 2036 | 2037 | * *Unkenrufe* by **Günter Grass** (1992) 2038 | 2039 | About ten pages before the end of the book I realized that it was already in my 2040 | book shelf. I’m pretty sure I never read it before, but who knows. It’s a good 2041 | book without much in the way of a dramatic arc, but it’s interestingly 2042 | told—though the last 30 pages or so are a little painful and drawn out. 2043 | 2044 | * *Hydriotaphia, Urn Burial, or, a Discourse of the Sepulchral Urns lately found in Norfolk* by **Thomas Browne** (1658) 2045 | 2046 | One of the most interesting, weird, exciting to read books I’ve ever 2047 | encountered. It has received high praise from some of my favorite writers, and 2048 | for good reason: it is just singuar not just in its content, but also in style 2049 | and grace. 2050 | 2051 | * *Das Foucaultsche Pendel* by **Umberto Eco** (1988) 2052 | 2053 | While some of the parts of this book feel way over the top, I quite enjoyed 2054 | reading it, and it’s very clearly the work of a smart and talented author. 2055 | It took me a while to read because of its content and its scope, but it was 2056 | definitely worth it. 2057 | 2058 | * *Der Fremde* by **Albert Camus** (1942) 2059 | 2060 | When I was in high school I attended a book club where we read this book. I 2061 | didn’t have time to read the book this week, so I just pretended I knew all 2062 | about it during the session. Everyone bought my lie, and the teacher even 2063 | complimented my nuanced understanding of the main character. It was all a bit 2064 | of a train wreck. 2065 | 2066 | Now, a decade later, I was finally able to read the book that stood on my shelf 2067 | for so long. It’s a beautiful little piece of prose, not overly long, not 2068 | overly artsy, but still with a sense of clarity and narrative skill that is 2069 | quite remarkable. 2070 | 2071 | * *Ob mit Dolche, Feile oder Revolver* by *?* (2013) 2072 | 2073 | This selection of materials pertaining to the assassination of Empress 2074 | Elisabeth of Austria by Luigi Lucheni is stellar in its quality (and the 2075 | edition I own is beautiful). The clarity of Lucheni’s words, paired with the 2076 | inanity of the system’s minions interviewing him, makes for a great read. 2077 | 2078 | * *Collected Stories* by **William Carlos Williams** (edition of 1996) 2079 | 2080 | A powerful, honest portrayal of the early to mid 20th century in New York City 2081 | and elsewhere. It’s a fascinating glimpse into a reality that isn’t long gone, 2082 | and still feels very far away (and mostly for good reason). 2083 | 2084 | * *Reise ins Auge des Sturms* by **Pierleone Porcu** (2014) 2085 | 2086 | A beautiful manifesto, though it was hard for me to take anything away from it. 2087 | 2088 | * *Neue Wenden des Kapitalismus* by **Alfredo M. Bonanno** (2015) 2089 | 2090 | Most people expect insurrectionalists to be boneheaded, but I’ve found most of 2091 | the ones I’ve read works from (Ernesto Guevara and George Orwell come to mind) 2092 | are actually well-spoken people with clear thinking. This book was another such 2093 | example: the content is intensely revolutionary, but the tone is calm, 2094 | collected, and rational. 2095 | 2096 | * [Pop Gym, The Zine](https://popgym.org/assets/zinesitefinal1.pdf) by **Pop Gym** (2018) 2097 | 2098 | A beautiful little read about self-defense, bodies, gender roles, and much 2099 | more. Some of the stories hit me right in the feels, but all of them motivated 2100 | me to train harder, to be stronger, to help others. 2101 | 2102 | * [Pop Gym, The Zine #2](https://popgym.org/assets/zinesiteedit2.pdf) by **Pop Gym** (2019) 2103 | 2104 | All the things I said about issue one directly above also apply here. 2105 | 2106 | * *Hera Lindsay Bird* by **Hera Lindsay Bird** (2016) 2107 | 2108 | What a fantastic little book of poetry. It took me a while to “get” her 2109 | work—maybe I’m a little too serious for it usually. But once it clicked, it 2110 | clicked hard, and since then she’s become one of my favorite poets. Honestly. 2111 | 2112 | * *Pamper Me to Hell & Back* by **Hera Lindsay Bird** (2018) 2113 | 2114 | Just as beautiful as her eponymous book. 2115 | 2116 | * *Becoming a Supple Leopard* by **Kelly Starrett** (2013) 2117 | 2118 | I keep coming back to this book for advice on how to treat like kinks and 2119 | itches, and thus far it’s never disappointed. I quite enjoy its regimen, and 2120 | even though the mobility routines in the book are not enough for me—I quite 2121 | enjoy training my end range mobility for splits and the like—, it’s incredibly 2122 | valuable for resolving pain and feeling better. 2123 | 2124 | * *Building the Gymnastics Body* by **Christopher Sommer** (2008) 2125 | 2126 | While I don’t agree with everything in the book, it might be my new favorite 2127 | introductory text to physical fitness. If I could only recommend one fitness 2128 | book, this would be it. 2129 | 2130 | * *Es ist immer so schön mit dir* by **Heinz Strunk** (2021) 2131 | 2132 | A fantastic, horrifying, funny, terrible read. Heinz Strunk really paints a 2133 | dire but not inaccurate picture of humanity. 2134 | 2135 | ## Management 2136 | 2137 | ### Papers 2138 | 2139 | * [Open Source Archetypes: A Framework For Purposeful Open Source](https://blog.mozilla.org/wp-content/uploads/2018/05/MZOTS_OS_Archetypes_report_ext_scr.pdf) by **Mozilla Foundation & Open Tech Strategies** (2018) 2140 | 2141 | This book provides a good overview of open source archetypes (duh) that can help 2142 | in the decision when and how to go about creating a community and licensing your 2143 | software as open source. Obviously a great amount of work was invested in 2144 | creating this. 2145 | 2146 | ### Books 2147 | 2148 | * *Zero To One: Notes on Startups, or How to Build the Future* by **Peter Thiel & Blake Masters** (2014) 2149 | 2150 | I’m not in the crazy startup space that Thiel and Masters describe, and I’m 2151 | quite happy about that. There is some insight in that book, and a bunch of 2152 | bullshit and survival bias. It’s written quite entertainingly, and sifting 2153 | through it for the gems is never boring, so I quite enjoyed the read. 2154 | 2155 | * *[The Great CEO Within](https://docs.google.com/document/d/1ZJZbv4J6FZ8Dnb0JuMhJxTnwl-dwqx5xl0s65DE3wO8/preview#)* by **Matt Mochary** (2018) 2156 | 2157 | This book is astonishingly good. While I work for a consultancy and not a 2158 | startup and face a very different set of opportunities and challenges than 2159 | startup management does, large parts of this book were insightful, useful, and 2160 | interesting to read. What a way to start my management section. 2161 | 2162 | * *The Hard Thing about Hard Things* by **Ben Horowitz** (2014) 2163 | 2164 | This book is part autobiography, part management advice. I enjoyed reading it; 2165 | it’s lighthearted, doesn’t feel overly long, and doesn’t dwell on anything for 2166 | too long. Nonetheless, I’m not sure how useful it truly is; it’s fairly personal 2167 | and biased, but at least it doesn’t give off a false sense of objectivity. 2168 | --------------------------------------------------------------------------------