What was the last paper within the realm of computing you read? What did it inspire you to build or tinker with? Come share the ideas in an awesome academic/research publication 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. Otherwise, just come, listen, learn, and discuss.
We'll be using papers-we-love's curated repository. Please contribute by adding PR's for papers, code, and/or links to other repositories.
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
Thanks to Yahoo! for hosting this first edition!
Matthew Colborn in Pluralism and the Mind (2011) wrote:
“The major dilemma for Western science – and those who follow it – is how to fit subjective experiences in to a larger world-view that at least appears to preclude them.
As the philosopher John Searle put it:
“How can we square [the] self-conception of ourselves as mindful, meaning-creating, free, rational, etc. agents with a universe that consists of entirely mindless, meaningless, unfree, nonrational, brute physical particles?”.
Searle is claiming that the background assumptions of Western science conflict in some fundamental way with our everyday view of ourselves.”
As expressed by Colborn (and Searle), there is a discordance between the science we use to understand the world and how we view and understand ourselves as living beings. Can this be resolved by improving (and expanding) what science …
Vacuum instability is one of the most fascinating (and terrifying) topics of cosmology and particle physics. This paper asks and answers some of the early questions of vacuum decay and inflationary theory. The discussion ranges in tone from sanitized mathematical descriptions of field equations to humorous rhetorical musings on the fate of the universe in different scenarios. Despite its brevity and age, Coleman and Luccia's work continues to serve as a reference and inspiration for work in gravitation and cosmology today.
Daniel Brice will present "On the likelihood that one unknown probability exceeds another in view of the evidence of two samples" by William Thompson. It gives a solution to the multi-armed bandit problem that gives O(log(n)) regret that is today used in machine learning applications and goes by the name "Thompson Sampling" in this author's honor. Contrast this to A/B Testing, another multi-armed bandit algorithm that gives much worse O(n) regret.
This month, we'll hear from Jim Benvenuto on his research into EPITAXIS: A System for Syntactic and Semantic Software Queries using Deductive Retrieval and Symbolic Execution. If you've not seen Jim speak before, it's a real treat.
EPITAXIS: A System for Syntactic and Semantic Software Queries using Deductive Retrieval and Symbolic Execution
The stubborn persistence of Moore's law has enabled dramatic increases in the size and complexity of software. In addition, the information content of a program is spread over several different layers of abstraction. Superficially (and in our typical mode of interaction with an editor) a program is a sequence of characters, where its syntactic, semantic, pragmatic, and apobetic layers lay latent under deeper layers of abstraction.
Epitaxis is a language independent system desi…
This month we're trying something a little bit different: lightning talks! The idea of lightning talks is that everyone can present a paper they love in 5 minutes. No slides, no pressure. Remember to tell us who wrote it and why you like it! As time allows, you can present more than one. If you're not sure where to find a paper to read, reach out to me and I can point you in the right direction. Feel free to comment on the event if you're concerned others might cover the same paper.
We're still going to have food and drinks and the usual timeline.…
This month I'm presenting Edsger Dijkstra's classic GOTO Considered Harmful and the response <a>"GOTO Considered Harmful" Considered Harmful</a>. We will be hosted by Yahoo again.
Despite all of his other contributions to computing science, Dijkstra's most well known paper continues to be GOTO Considered Harmful. Cited by thousands of other papers and articles, it spawned numerous copycat papers and responses. It is loved, loathed, and misunderstood.
But more than just the technical merits, the paper deserves a second look for how we discuss software and computing. How does the way we convey our ideas affect our legacy?
Sam is a senior engineer in Yahoo's video org. He enjoys plenty of things and vague bio-blurbs. He tweets at @cateches.…
This month, Mike will present "On Criteria To Be Used in Decomposing Systems into Modules" by DL Parnas.
Most people would agree that writing modular programs is better than the alternative, but there is disagreement on how to structure modules within a system. In this presentation we are going to do some time travelin' to the 60s and 70s to see how these discussions got started, and explore two different ways of writing a modular system. In doing this we will explore some of the pros and cons of the different systems and determine if one structure is better for most cases.
This month, we have Dr Toal presenting C.A.R. Hoare's classic Communicating Sequential Processes.
This paper suggests that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method. When combined with a development of Dijkstra's guarded command, these concepts are surprisingly versatile. Their use is illustrated by sample solutions of a variety of familiar programming exercises.
We'll be back at Yahoo's Playa Vista campus, where food and drink will be provided. The parking lot between Bluff Creek and Artisan's will be complimentary.…
This month Gonzalo Maldonado will present John Hughes' Why Functional Programming Matters at Yahoo's Playa Vista campus. Food & drink will be provided.
Immutable Data, Data-Driven apps and Reactive UIs, these technologies are the latest industry buzzwords. All of them are based on functional programming principles, yet some of their users are not aware of that influence.
John Huges back in the 90s presented the idea that since modularity is the key to successful programming, functional programming matters because it enables well structured and easy to debug software.
This presentation will revisit his paper and compare how these principles are being applied in the new "Reactive technologies" and why Functional Programming Matters.
Since the days where computers had green screens, Gonzalo has been hacking any turing-complete device he has stumbled upon,…
This month we have Paul Snively presenting "Propositions as Types" at Yahoo's brand new Playa Vista campus. Food and drink will be provided.
Philip Wadler may be the most important computer scientist you’ve never heard of. However, as principal designer of the Haskell programming language, co-designer of generics in Java with Scala designer Martin Odersky, co-designer of XQuery for the W3C, and prolific (and humorous, cf. ’Threesomes, with and without blame’ from POPL 2010) writer and speaker, there is little doubt he has influenced you if you write software. His recent (March 2014) paper, ‘Propositions as Types,’ is his survey of the relationship between propositions, as in mathematical logic, and types, as in statically-typed programming language. Together, we’ll explore how and w…
This month Bill will present "No Silver Bullet" by Fred Brooks. link
Some thirty years after Turing Award winner Fred Brooks’ seminal work 'No Silver Bullet' was published, the industry has paved over his enthusiastic skepticism, with an air of pessimism and apathy. After tearing down the failed software development methodologies of our predecessors, I will leverage Brooks’ work to frame a critique of current industry themes such as DevOps, Microservices, and Cloud Computing. Lest however, you be consumed by an unshakable hopelessness that, as an industry, we are bound to Santayana’s Sisyphean prophesy (‘those who don’t learn from history are bound to repeat it’), I will show that Brooks’ theories are alive, well and in fact thriving in niche communities paving our way forward.
In a previous life, Bill (@william…
This month Sam will present "Macaroons: Cookies with Contextual Caveats for Decentralized Authorization in the Cloud" by Arnar Birgisson and Joe Gibbs Politz and Úlfar Erlingsson and Ankur Taly and Michael Vrable and Mark Lentczner.
Cookies are the ubiquitous method of authorization on the Web, but they’re not without shortcomings. Subject to theft & forgery, cookies are essentially unsharable.
Sam will talk about macaroons as a way to safely share & delegate authorization between sites and services. Using very simple cryptographic methods, we can efficiently create and verify tokens allowing access under specified conditions.
The effects of this range from logging in to websites, increasing privacy on social media, and even more secure banking.
Sam is a sr software engineer at Yahoo where he builds the apps that play the videos that people want to watch. @cateches on twitter.
This month Jim will present "Metaobject Protocols: Why We Want Them And What Else They Can Do" by Kiczales, Ashley, Rodriguez, Vahdat & Bobrow.
Abstraction is one of the pillars of computer science. Software has traditionally been constructed according to the principle that a module should expose its functionality but hide its implementation. This principle, informally known as black-box abstraction, is a basic tenet of software design, underlying our approaches to portability, reuse,and many other important issues in computing. However, in some cases black-box abstraction causes the very problems it is supposed to eliminate.
As a programming languages becomes higher and higher level, its implementation in terms of the underlying machines involves more and more trade-offs on the part of the implementer, about what cases to optimize at the expense of other cases. This leaves a programmer victim to inefficie…
Bitcoin is many things - a critique, a currency, a protocol, and perhaps even acontemporary industrial revolution. More immediately, however, bitcoin and theoriginal paper that spawned it are of interest to the working programmer as astudy in the design of fault-tolerant, decentralized systems. Beginning fromthe crtique of trusted third parties we will see how bitcoin provides novelstarting points for system architecture in the age of increasingly cheap andubiquitous computing power, as well as speculate about what all this mightentail for the future.
Additional Reading / Context For The Paper:
* Shelling Out -- The Origin of Money (Nick Szabo)
This month, Bill Berry will present Hints for Computer System Design by Butler Lampson.
While technologies, methodologies and abstractions have waxed and waned over the years, Butler Lampson’s ‘Hints for Computer Systems Design’ remains relevant to the current challenges faced in software and hardware systems engineering. Drawing against the backdrop of current development practices, we will discuss how Lampson’s hints can still be used, some thirty years later, to implement functionally accurate, high-performing fault-tolerant software systems.
In a previous life Bill (@williamberryiii) crafted scenery for Broadway, a la Pirates of Penzance, but now crafts software for the enterprise, a la Pirates of Silicon Valley. In his roles as Technical Lead and Application Architect for The Retail Equation, Bill has le…
This month, Phil Freeman will present"Principal type-schemes for functional programs" by Damas and Milner.
The Damas-Hindley-Milner type system is a classical system for the first-order polymorphic lambda calculus, and the ML family of programming languages. This paper introduces Algorithm W, a simple algorithm for type reconstruction in the DHM type system. I'll walk through the main results of the paper, and compare the DHM type system with other more modern systems.
A huge thank-you to Brainium for hosting us this month!
At this Papers We Love LA we will have Mark Masse presenting "Architectural Styles and the Design of Network-based Software Architectures" by Roy Fielding. This presentation will focus primarily on Chapter 5, which introduces the Representational State Transfer (REST) architectural style for distributed hypermedia systems. REST API design topics will also be covered in the presentation.
Dinner will be provided.
Thanks to Riot Games for hosting this event!
Mark Masse spent his early career with Disney, architecting and developing the content management system (CMS) that powers ESPN.com, ABC.com and Disney.com. In 2011, Mark architected the API management system used by Walt Disney Theme Parks and Resorts and authored the "REST API Design Rulebook" for O'Reilly. In 2014, Mark joined Riot Games as an Engineering Manager supporting a team that is dedicated to leveling up other inter…
Ryan Nichols will present An Axiomatic Basis for Computer Programming by C.A.R Hoare.
A brilliant paper written in 1969, which introduced some of the most influential components of programming which we all rely on today. We'll be discussing automatic verification of program properties, Hoare logic, and more.
Ryan Nichols (@rynodivino) is a front-end engineer at Yahoo. He enjoys <cool hobby> and <funny interest> (and making terrible jokes)!…
I couldn't find a speaker available this month & then we lost our room booking. But let's not let that get us down. I've got a couple speakers on the docket for April & May.
Let's meet at the Daily Pint, enjoy drinks we love, and geek out about computer science.
See you there!
Ps. It's buy-your-own-drinks in case that was ambiguous.…
Sam L'ecuyer will present The Join Calculus: a Language for Distributed Mobile Programming, by Cedric Fournet and Georges Gonthier.
Do semaphores and mutexes, distributed locks and clocks confound you? Does concurrency as an afterthought frustrate and bewilder you? In this paper, Fournet and Gonthier present the join calculus, a modeling language for clean, asynchronous distributed computing. This language builds upon well established techniques of pattern matching, static typing, and local variable declaration to lay the foundation for synchronizing data across multiple machines, code mobility, and failure detection.