New York Chapter
What was the last paper within the realm of computing you read and loved? What did it inspire you to build or tinker with? Come share the ideas in an awesome academic/research paper with fellow engineers, programmers, and paper-readers. Lead a session and show off code that you wrote that implements these ideas or just give us the lowdown about the paper (because of HARD MATH!). Otherwise, just come, listen, and discuss.
As the original Papers We Love chapter, we've been helping New Yorkers scratch their paper reading itch for most of 2014. We welcome everyone from the programming community for an evening of ideas, vibrant discussions and hanging out with your fellow travellers.
The New York Chapter meets monthly at different locations throughout the city. Keep an eye on our Meetup.com page to find out the latest address.
Our meets fill up fast, so please make sure to RSVP only if you plan on attending. You can find our schedule and RSVP here on Meetup.com.
Papers We Love has a Code of Conduct. Please contact one of the Meetup's organizers if anyone is not following it. Be good to each other and to the PWL community!
Sign-up: Please RSVP for meetings via Meetup.com
Contact: contact AT paperswelove DOT org
We're back in 2017 with Erich Ess, lead engineer on Jet.com's Core Platform team, presenting on foundational work to visualize fluid motion: Imaging Vector Fields Using Line Integral Convolution by Brian Cabral and Leith Leedom.
Line Integral Convolution is one of the most intuitive data visualization techniques around. It's dropping paint in a river to see how the current is flowing: to visualize a vector field simply take an image and have the vector field smear the colors. The result is a powerful alternative to using arrows or stream lines. And while the intuition is very straightforward, the actual mathematics that power the technique are very complex.
Erich Ess (
We're back with Wil Yegelwel, an engineer on Two Sigma's Compute team, presenting on 3 related, foundational graphics papers on the topic(s) of illumination and rendering: Continuous shading of curved surfaces, Illumination for computer generated pictures, and The Rendering Equation.
Illumination in computer graphics deals with calculating the color of each pixel on the screen when trying to render a photorealistic scene. The problem is that generating increasingly realistic renderings requires a lot of processing and so a tradeoff must be made between compute time and image quality. We will first look at two foun…
It's with great pleasure to announce that we'll be hosting Elizabeth Ramirez, a senior software engineer at The New York Times and M.S. candidate in Applied Mathematics at Columbia University. She'll be presenting on a classic: A New Approach to Linear Filtering and Prediction Problems by Rudolf Kálmán. Kálmán, who passed away in July, was a luminary who shaped the field of modern control theory.
It's been a long time coming, but we have the fantastic David Nolen, lead developer of Clojurescript (among other things) presenting at PWLNYC. He'll be presenting Parsing with Derivatives by Matthew Might, David Darais, & Daniel Spiewak. It's a heralded paper that has a super interesting follow-up (On the Complexity and Performance of Parsing with Derivatives), has influenced clojure.spec, and this helpful video!
We present a functional ap…
PWLNYC is extremely excited to be hosting Deniz Altınbüken, a Ph.D. candidate in Distributed Systems at Cornell University. We were first introduced to her work upon seeing her amazing Ricon 2015 talk and reading through Paxos: Made Moderately Complex. She's travelling from Cornell to join us in talking about the topic of Chain Replication (CR) and their new and improved protocol for it, which has a formally defined end-to-end specification.
This is going to be a special one! We're working with the QCon New York team to put together a series of 4 PWL "mini" (15~20-minute) presentations by 4 wonderful speakers, all of whom are also speaking at QCon! So, we're extremely happy to welcome Evelina Gabasova (@evelgab), Eric Brewer (@eric_brewer), Ines Sombra (@randommood), and Caitie McCaffrey (@caitie) to PWLNYC!
Also, QCon New York is offering $100 off their conference ticket for our group. Just use the code "paperswelove" when registering!
- Evelina Gabasova presenting on
The paper I'm going to discuss is the result of what happens when people with backgrounds in mathematics, psychology, and artificial intelligence (Feltovich and Bradshaw) get together to ask questions about how teams operate alongside the originators of modern decision-making and cognitive systems engineering research (Klein and Woods).
The concepts outlined in the paper have provided frames and directions in designing tools and environments where successful work requires multiple actors (whether they are people or software agents!) to succeed. This seminal paper takes a deep dive into not just people and teamwork, but what comprises the…
We're **crazy** excited to have Bryan Cantrill, CTO of Joyent, formerly of Sun Microsystems, presenting on Jails: Confining the omnipotent root. by Poul-Henning Kamp and Robert Watson and Solaris Zones: Operating System Support for Consolidating Commercial Workloads by Dan Price and Andy Tucker!
You can also catch Bryan presenting at the NYC Container Summit on February 10th, which also is hosting an advanced technical track, which includes hand-on tutorials! Also, watch this amazing illumos presentation by Bryan in 2011!
Of all the ways to manipulate a 3D mesh, the “push/pull” technique popularized by SketchUp is one of the most approachable and fun. PushPull++ is a recent paper that elaborates on the technique, cleaning up a lot of edge cases and unlocking new features, using wonderfully straightforward math. The potential for 3D modeling tools or procedural mesh generation APIs built on these simple ideas is very exciting.
The paper presents the technique and the tool that the authors built. I will focus on the technique, as that’s the part I…
In 1984 Leslie Lamport began to observe the glitch problem  occurs in everyday life. Realizing this phenomenon had not been discussed by psychologists of the day, he set out to describe his observations using the classical formalization of Buridan's ass. Lamport initially failed to have this paper published in various scientific journals, being rejected on grounds of superficiality. It wasn't until 2011, when a reader suggested he resubmit to Foundations of Physics, that the paper was eventually published.
Those familiar with the works of Lamport know him as a logician, his life's work has pushed forward the state of…
It's with great pleasure to announce that we'll have Tomas Petricek, PhD student at University of Cambridge, functional programer, and F# enthusiast, presenting on the 1975 book -- Against Method: Outline of an Anarchist Theory of Knowledge by Paul Feyerabend.
This will be a little different! There's no open-access PDF version of the book around, but you can find at bookstores, Amazon, or on the Internet... or so I've heard.
How is computer science research done? What we take for granted and what we question? And how do theories in computer science tell us something about the real world? Those are some of the questions that may inspire computer scientist like me (and you!) to look into philosophy of science. I’ll prese…
We're elated to have Ryan Zezeski, kernel hacker and Baltimorean, presenting on The Slab Allocator: An Object-Caching Kernel Memory Allocator by Jeff Bonwick.
In 1994 Jeff Bonwick presented his Slab Allocator at the USENIX SummerTechnical Conference. Over two decades later Google reports 35-thousand results for "slab allocator". CiteSeerX reports 93 citations. And many modern kernel allocators are based on his design, such as illumos, Linux, and FreeBSD. Jeff's design, along with the original paper, remains just as relevant today as it was 21 years ago. Join me as I tell the tale of the Slab Allocator: where it came from, what it is, why it's important, and where it's going.
It's going to be a special evening. After taking the month of July off, we're coming back with the original Papers We Love speaker, Michael R. Bernstein, co-host of Beats, Rye, & Types and Code Climate hustler, and he’s very excited to be back, presenting on Propositions as Types by Philip Wadler and showcasing some work from The Little Prover by Friedman and Eastlund!
I’ll (Michael) be talking about Philip Wadler’s paper "Propositions as Types," which starts ou…
We're happy to have Jason Ganetsky, tech lead of storage for Google Cloud Pub/Sub, presenting on Making a Fast Curry: Push/Enter vs. Eval/Apply for Higher-order Languages by Simon Marlow and Simon Peyton Jones.
Higher-order languages that encourage currying are typically implemented using one of two basic evaluation models: push/enter or eval/apply. Implementors use their intuition and qualitative judgements to choose one model or the other. Our goal in this paper is to provide, for the first time, a more substantial basis for this choice, based on our qualitative and quantitative experience of implementing both models in a state-of-the-art compiler for Haskell.
Our conclusion is simple, and contradicts our initial intuition: compiled implementations should use eval/apply.
We're thrilled to have Samy Al Bahra, co-founder of Backtrace and founder of Concurrency Kit, presenting on Making Lockless Synchronization Fast: Performance Implications of Memory Reclamation by Hart, McKenney, and Brown.
Multicore systems are ubiquitous but modern concurrent programming techniques still do not see wide-spread adoption. Most concurrent software (developed in low-level languages) still relies on error-prone and unscalable memory management techniques for correctness despite the introduction of superior methods over 30 years ago. Safe memory reclamation allows for performant and robust memory management that is also suitable for advanced concurrent programming techniques such as non-blocking synchronization. If properly used, safe memory reclamation techniques allow improved performance …
We're so excited to have Neha Narula, a PhD student in PDOS, the Parallel and Distributed Operating Systems group at MIT, and an amazing speaker and researcher, presenting on The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors by Clements, Kaashoek, Zeldovich, Morris, and Kohler.
Moore's law is over, or at least, we won't be making programs go faster by running on faster processors, but instead by parallelizing our code to use more of them. Reasoning about concurrent code is difficult; but it's also very hard to understand whether your design has latent scalability bottlenecks until you can actually run it on many cores. And what if the problem is in your interface, instead of just the …
Strachey's lectures on "Fundamental Concepts in Programming Languages" provided an extremely broad survey of core issues in programming language design that provided much of the terminology we use today, including definitions of the kinds of polymorphism and the kinds of expressions we see in programming languages. Published as a paper many years later, Strachey's lectures provide an especially readable overview of programming languages concepts.
John Myles White (
We're riveted to have Andrew Turley, lead software engineer on the platform team atTheLadders, presentingIncremental Mature Garbage Collection Using the Train Algorithm by Jacob Seligmann & Steffen Grarup.
Automatic garbage collection has spared programmers from an entire class of programming errors related to memory leaks and attempting to access objects that were incorrectly freed. As programs have grown in size and complexity, so have the systems that manage garbage collection. Each algorithm makes a different set of tradeoffs between factors such as the space used by objects, the space used by bookkeeping, the number of unused objects (garbage) that remain uncollected, the time spent in allocation, and the time spent in
We're extremely thrilled to host Sam Tobin-Hochstadt, Assistant Professor in the School of Informatics and Computing at Indiana University, presenting Composable and Compilable Macros by Matthew Flatt of the University of Utah.
"Composable and Compilable Macros" introduces the Racket module system, which addresses the following problem: When you have macros that run programs at compile-time, how does this interact with separate compilation and ahead-of-time compilation. The paper introduces "phases", which enable Racket to behave the same regardless of when and how you compile your program. It also introduces the idea of writing different modules in different languages, which is now used for systems like Typed Racket.
A few related papers:
We're thrilled to have Jeff Larson, data editor Data Editor at ProPublica, presenting On the resemblance and containment of documents by Andrei Z. Broder.
Increasingly Journalists are dealing with ever larger document dumps, and in order to find interesting stories in these troves, they have to cluster the documents to separate the wheat from the chaff. The size of these dumps often means that traditional algorithms either are too complex and take too long, or they rely on apriori constants like the number of clusters to search for.
Jeff Larson will present a novel algorithm called minhashing that was invented at AltaVista in order to loosely cluster similar documents. The paper " On the resemblance and containment of documents" relies on a hash collisions to create document fingerprints and shows that documents can be clustered in linear time …
Our lives now run on software. Bugs are becoming not just annoyances for software developers, but sources of potentially catastrophic failures. A careless programmer mistake could leak our social security numbers or crash our cars. While testing provides some assurance, it is difficult to test all possibilities in complex systems--and practically impossible in concurrent systems. For the critical systems in our lives, we should demand mathematical guarantees that the software behaves the way the programmer expected.
A single paper influenced much of the work towards providing these mathematical guarantees. C.A.R. Hoare’s seminal 1969 paper “An Axiomatic Basis for Computer Programming” introduces a method of reasonin…
We're excited to have Camille Fournier , CTO at Rent the Runway, presenting on The Chubby lock service for loosely-coupled distributed systems by Mike Burrows.
Distributed consensus is often discussed in terms of algorithms: Paxos, ZAB, RAFT, etc. But while the algorithms may be more or less mind-bending, for me the more interesting aspect of distributed consensus is creating systems that support it for the general use case. This paper, on Google's Chubby lock service, is the story of happens when a system stops being a polite theory, and starts getting real-world use.
To anyone who has worked in depth as a distributed systems engineer, Chubby is a beautiful paper. It is not a paper about algorithms and their limits, or a toy fringe system created by grad students to test a hypothesis.…
We're excited to have Peter Burka , member of the software research team at Two Sigma, presenting on Crossing the Gap from Imperative to Functional Programming through Refactoring by Alex Gyori, Lyle Franklin, Danny Dig, and Jan Lahoda.
The introduction of lambdas to Java 8 might be the most significant change to the Java language since Java 2 was released in 1998. Lambdas and the accompanying functional operations like map and filter promise to allow Java programmers to write clearer, simpler code, and to take better advantage of parallelism.
While developers of new code will be able to start using the features immediately, what should we do with the billions of lines of code that have already been written? This paper proposes that we can automatically translate the existing body of Java code to make use of the new features. This imp…
My favorite problems are always those with the highest ratio of difficulty in solving to difficulty in stating. The lowest common ancestor problem exemplifies this. It was first stated in 1973, and can be described to anyone in two sentences, or with one sentence and a picture. But it took 11 years before an optimal solution was discovered, and another 16 before an understandable and implementable solution with the same bounds was presented, in this paper, The LCA Problem Revisited. This problem is furthermore satisfying because its bounds are so tight: pre-processing takes as long as just re…
We're happy to have Erik Hinton, developer at the New York Times, presenting on The Derivative of a Regular Type is its Type of One-Hole Contexts by Conor McBride.
Papers are generally loved for one of two reasons. Either the paper is foundational, siring a lineage of important research, or the paper is useful, guiding readers toward clever optimizations, fault-tolerant solutions, and non-intuitive hacks. "The Derivative of a Regular Type is its Type of One-Hole Contexts" is neither. Only a few papers build on McBride's work and the conclusions of the paper, though promising, haven't yet found any real employ.
This paper is lovable, fun, and important because it is a radical thought experiment in the limits of abstraction. The paper poses the question: we call data types "algebraic", so can we "do calculus" on them? Surely…
In June, we have the pleasure of hearing Aysylu Greenberg, Software Engineer at Google and maintainer of the Clojure library Loom, speaking on the paper "One VM to Rule Them All" by Thomas Wuerthinger, Christian Wimmer, et al.
The paper explains how you can write an interpreter and get an optimizing just-in-time (JIT) compiler for free. This enables language designers to focus on features without worrying about the complexities of compiler optimizations and code generation. This paper presents a Java Virtual Machine (JVM) that allows the application to control the JIT compiler behavior at runtime. …
We're ecstatic to have Chas Emerick presenting A comprehensive study of Convergent and Commutative Replicated Data Types by Marc Shapiro, Nuno Preguiça, Carlos Baquero, and Marek Zawirski (2011).
Conflict-free Replicated Data Types (CRDTs) are a formalism for providing practical data and programming primitives for use in distributed systems applications without necessitating expensive (and sometimes impractical) consensus mechanisms. Their key characteristic is that they provide conflict-free "merging" of distributed concurrent updates given only the weak guarantees of eventual consistency.
While this paper did not coin the term 'CRDT', it was the first to provide a comprehensive treatment of the…
When you need to execute code on a cluster of machines, deciding which machine should run that code becomes a complex problem, known as scheduling. We're all familiar with routing problems, such as the recent RapGenius incident. It turns out that simple improvements to randomized routing can dramatically improve the performance! Sparrow is a distributed scheduling algorithm for low latency, high throughput workloads. We'll review the Sparrow algorithm, and learn the tricks that they used. Then, we'll discuss other applications of Sparrow, besides the big-data map-reduce application it was create…
Some great papers embody insights, others package up those insights into digestible bites. "Programing with Algebraic Effects and Handlers" is the later sort of great paper. After two decades of fundamental research in to the nature of computation, a lot of mysterious ideas in computer science such as continuations and exception handling finally made sense to a number of mathematically inclined geniuses. Bauer and Pretnar's Eff programming language cuts right through the heart of the theory in a way that makes sense to anybody who has ever written a functional program. This paper uses the Eff language to explore…
Doors open at 7 pm; the presentation will begin at 7:30 pm; and, yes, there will be beer and pizza.
After Michael presents the paper, we will open up the floor to discussion and questions.
We hope that you'll read the paper before the Meetup (and if you don't, no worries, be happy now!), and if you have any questions, thoughts, or related information, please visit our *github-thread* on the matter: https://github.com/papers-we-love/papers-we-love/issues/1.
Additionally, if you have any papers you want t…