Theory track

We know that a combination of ingredients works, but why? Show us the science behind the recipe. Explain the components of a project and how they interact.
Explore how our technology works on the lowest levels, and what that can teach us about optimal use. Tell us your analysis and profiling techniques, how implementation affects function, and what a kernel is made of. Example topics from the past include “OSWALD: Lessons from and for the Open Hardware Movement” and “Doing NoSQL with SQL.”

Sessions for this track

* Containers: A Guide for the Perplexed

WTF are containers anyway? And what aren't they? And what is all this other ... stuff? Come find out.
Josh Berkus

* Create your own type system in 45 minutes

Don't let programming language designers have all the fun: you can design your own type system that is better than the current one.
Michael Ernst

* Debug Better: 2017 Edition

Debugging: the schedule destroyer, the confidence sapper, the mire in which thousands of working hours are lost every day. It’s time to stop staring at those four lines of code, desperately willing the solution to appear. This session is about the strategies that will steer you around bugs, tactics for dealing with them, and tools that can shorten a four-hour debugging session to five minutes.
Yoz Grahame

* Decoding the history of codes

The word "code" means different things to different people. In this talk, we explore cryptography and how it's evolved over time. We look at some key historical events and see how the art of encryption affected our lives.
Niharika Kohli

* JavaScriptural Exegesis

If we're going to be so religious about our standards and patterns, why not use religious tools to analyze and improve them? Exegesis is a tool for nuance and understanding in the absolutes found on bikesheds everywhere, such as "replace all vars with const" and "await is the new Promise".
Michael Schoonmaker

* Keeping Secrets On Remote Machines

Conventional wisdom says that using the cloud means giving up privacy and control. But maybe crypto is actually literally magic and we can have our cake and eat it too? We're mostly not there yet, but let's talk about some of the ways that we're getting close.
Erica Portnoy

* Learn the lambda calculus and be a better programmer

Come learn an ancient model of pen & paper programming in order to change how you think about code
Clarissa Littler

* Quantum Computers and Where to Hide from Them

After making the smallest possible transistors, scientists are developing new computation methods based on quantum mechanics. This talk is an intro to: what makes quantum computing special, how to build assembly-like instructions for quantum computers in Python and JavaScript, and how we could start encrypting data to avoid quantum codebreaking.
Nick Doiron

* Remotely Control This Browser: WebDriver and the Path to an Interoperable Web

Browser automation based on the WebDriver standard is a key step toward web compatibility happiness. Automating all browsers consistently is an interesting challenge. In this session you'll learn how WebDriver is built into Firefox, why that makes the web better for everyone, and how you can get involved.
Maja Frydrychowicz

* SVG: So Very Good

Icon fonts! CSS-only illustrations! High-resolution GIF animations! Today's web designers still regularly and enthusiastically employ these techniques... yet they're all a better fit for SVG, a powerful vector image format that's already old enough to drive a car.
Tyler Sticka

* The Existential Tester: How to Assess Risk and Prioritize Tests

To test, or not to test? That is the question. With limited time and resources there are only so many tests we can write and run. How do you determine what features of a new project to test? How do you know when a test is obsolete, or needs to be updated? What gets run per-commit, nightly, or weekly? What should you test manually? This talk will give you a framework for thinking about how to assess risk on a project and prioritize your
Lucy Wyman

* Theory behind Image Compression and Semantic Search.

This talk will focus on describing a matrix decomposition technique called Singular Value Decomposition that conveys important geometrical and theoretical insights about linear transformations. This technique is not as famous as it should be given the range of applications from science and engineering.
Santi Adavani

Proposals for this track

* Applied Abstract Problems in FOSS Infrastructure

This talk will focus on some of the mathematical aspects of DevOps demonstrated through the investigation of problems in FOSS Infrastructure.
Theory 2017-03-22 23:59:43 +0000
Daniel Pono Takamori

* Archetypal Ballers and Ternary Plots - Visualizing NBA Skills for Fun and Profit

Basketball is second only to baseball in its rich variety of detailed data and analysis techniques. This project uses two techniques to reduce this complexity. The first, archetypal analysis, is an unsupervised learning technique that reduces the 18-dimensional box scores to a three-dimensional vector. The second, ternary plots, provides an elegant visualization for comparing players and teams. Using these techniques, I'll review the 2016 - 2017 NBA season.
Theory 2017-03-29 21:44:54 +0000
M Edward Borasky

* Building JavaScript plugins that scale

How do you build JavaScript plugins that meet use cases you haven't thought of yet? How do you build them to scale? To adapt? In this talk, I'll explore some specific strategies for creating flexible, scalable JS plugins.
Theory 2017-03-31 14:56:02 +0000
Chris Ferdinandi

* De Falsis Deis: Social Contracts

Social engineering; it's a little more common and complicated than you might think. Wherever people live and work together, a social contract is formed. First theorized by Socrates and further expanded by Tom Hobbes, John Locke and Jean-Jacques Rousseau, this system is so fundamental most people take part in it unwittingly. Social hackers can use this to their advantage - and by breaking the social contract, we are all left vulnerable to attack. In this talk I will discuss how social contracts develop and how hackers use this natural human behavior against their targets.
Theory 2017-04-02 22:25:57 +0000
Tiberius Hefflin

* Devboards in the Android Open Source Project (and how they are bridging communities)

The Android Open Source Project (AOSP) has long been criticized as not being a model open source project, and many articles have been written about the friction between AOSP developers and the upstream kernel community. But things are changing, and one effort to improve things has been integrating devboard support into AOSP. This talk will cover that effort, and how having a place of shared interest helps foster collaboration between the product focused AOSP community and the upstreamed focused kernel community.
Theory 2017-04-08 21:24:29 +0000
John Stultz

* G-code: the assembly of 3D printing

A brief exploration of g-code, the family of low level languages that describe the physical process of running the 3D printer or CNC mill, from a programmer's perspective
Theory 2017-03-31 18:52:26 +0000
Clarissa Littler

* Never Accept the First Offer

We’ve all been at the negotiation table, whether we choose to participate or not. It’s easy to avoid this short lived discomfort, but doing so can cost the average person around $500,000 in lost income over the course of their lifetime. Making the decision to negotiate is the first step - this talk will help with the rest.
Theory 2017-04-02 22:23:38 +0000
Tiberius Hefflin

* Rack 'em, Stack 'em Web Apps

While Rails is the undisputed king of Ruby web frameworks, it’s not the only option. Rack is a simple, elegant HTTP library for small Ruby web applications. This makes it ideal for microservices and applications where performance is a must.
Theory 2017-03-31 17:27:10 +0000
Jason Clark

* The Emerging Interoperable Social Web — Standardizing the Social Web II

In this sequel to last year's talk, Aaron Parecki will cover the current state of interoperable implementations of the well-established W3C standards you heard about last year. Many of these standards have grown this year both in number of implementations and their live usage on the web. In addition, Aaron will cover this year's emerging standards that have a few implementations and could use additional experimentation and feedback.
Theory 2017-03-31 22:44:58 +0000
Aaron Parecki

* Threading Yarn, Writing Code: What Traditional Arts and Crafts Can Teach Us About Programming

You’ve probably heard people say that programming is an art and a craft. Does it have anything to do with the traditional arts and crafts like cross stitching, knitting, or sewing? In this talk we’ll explore the intersection of traditional and modern crafts and what they can learn from each other.
Theory 2017-03-22 11:13:56 +0000
Anna Ossowski

* WebPush Notifications for Kinto

I'll first talk about what Kinto is, followed by a details of how webpush works. I'll wrap it up by explaining how webpush can be integrated into apps using simple http calls.
Theory 2017-03-24 11:55:15 +0000
Mansimar Kaur

* What I Learned from My Own Just In Time Compiler

We all know the V8 javascript engine, and modern JVMs, are very fast. But why? Sometimes, its easier to find out by reinventing the wheel than from reading monolithic codebases.
Theory 2017-03-29 17:08:53 +0000
Michael R Fairhurst