Chemistry 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

* A Matter of Time

Did you know that every so often, a minute lasts 61 seconds? If that sounds like something that might break some software, you'd be right! In this talk, we'll discuss the common ways that time is implemented in a number of libraries you probably depend on, how these representations can fall short of giving us a complete picture of what time it is, and what we can do about this state of affairs.
John Feminella

* Developer and the DOM - A history of manipulation and abstraction

As web developers we see a variety of tools evolve every year that all claim to be the future of web development, but few people are as excited to explore the past. In this talk we’ll trace the lineage of the contemporary web landscape back to the advent of the DOM and the first browser javascript API. In doing so we hope to illuminate an often overlooked historical perspective on web development and explain why frameworks like React and Angular came into existence and why today is an exciting time to be working with the browser.
Zachary Michael, Gregory Noack

* Dr. Jekyll and Mr. Pelican: A Comparison of Static Site Generators

Want to make a static site or blog, but not sure where to start? Tired of using Wordpress and looking for something better? This talk will get into the nitty-gritty details of how Jekyll and Pelican -- two popular static site generators -- work, and explain how to choose which is best for your project. Using examples you can clone from github, we'll cover the pros and cons of both SSGs, discuss things that neither does well, and give you a better idea of how to get your site up and running (with an open source tool!).
Lucy Wyman

* Email as Distributed Protocol Transport: How Meeting Invites Work and Ideas for the Future

Learn how meeting invites work and some crazy other ideas for distributed protocols built on email.
Christine Spang

* Hacking Minecraft!

Minecraft is an incredibly popular game with developers. I'll give a brief tour of opportunities to practice your craft in the Minecraft world and walkthrough some tutorials using popular open source projects.
Jonan Scheffler

* How Do Python Coroutines Work?

Asynchronous I/O frameworks like Node, Twisted, Tornado, and Python 3.4’s new “asyncio” can efficiently scale past tens of thousands of concurrent connections. But async coding with callbacks is painful and error-prone. Programmers increasingly use coroutines in place of callbacks to get the best of both worlds: efficiency plus a natural and robust coding style. I’ll explain how asyncio’s coroutines work. They are built using Python generators, the “yield from” statement, and the Future and Task classes. You will gain a deep understanding of this miraculous new programming idiom in the Python standard library.
A. Jesse Jiryu Davis

* How the Internet Works

The Internet runs the world; it connects our devices, powers our businesses, and even talks to our thermostats. But how does it all happen? We will follow an adventurous young web browser from the moment a hapless user presses "enter" and witness the trials and tribulations of many packets. Ride alongside the most fearsome syscalls as we learn how the Internet works!
Noah Kantrowitz

* How to Teach Git

Version control is a necessary piece of the open source community and git has an unfortunately steep learning curve. Here is what I have learned from teaching git to beginners, so you don’t have to make the same mistakes.
Georgia Reh

* Micropub: The Emerging API Standard for IndieWeb Apps

Micropub is an emerging open API standard that is used to create posts on your own domain using third-party apps. Web apps and mobile apps can use Micropub to post notes, photos, bookmarks and many other kinds of posts to your own website, similar to using a Twitter client to post to your Twitter account.
Aaron Parecki

* On-device, open source mobile vector rendering of OpenStreetMap

Learn about the moving pieces of Mapbox GL, an open source framework for rendering beautiful maps based on OpenStreetMap-based data on Android and iOS. Find out what goes into making completely configurable world maps that are always up to date and always available in your pocket.
Justin Miller

* Open Source Tools for Scientific Research

Come learn about open science and the tools available for modern scientific research.
Amy Boyle

* Open Source your Circuit Design with KiCAD

I learned to design circuits in Eagle because at the time there were no good, free, open source alternatives but I would argue that's changed. Let's talk about why KiCAD might be the CAD program you're looking for and do a whirlwind tour of the current state of KiCAD tools and community.
Jenner Hanni

* Probably

If you want to understand probability better (and you should), this is the talk for you.
Bart Massey

* So how do you reach every person on the planet: Internationalization at Twitter

Twitter is the world’s most popular platform which enables users to create and share ideas and information instantly, without barriers. In order to fulfill this mission, it has to provide language support for every person seamlessly. This talk will walk through Twitter’s open source language libraries, internationalization and localization standards and technologies.
Alolita Sharma

* Software Archeology and The Code Of Doom

You approach the legacy codebase with trepidation. If the vine-draped entrance and collapsing roof weren't enough warning, traces of previous explorers before you lie scattered about, caught in bizarre traps and oubliettes. What next, snakes?!
Kerri Miller

* Tricking Out the Terminal: An Introduction

A beginner-focused overview of the particulars and pitfalls of the command line and several common shells, with a focus on improving developer workflows, exposing common default tools, implementing useful open-source tools, and inserting emoji into prompts (pretty much the best part of customizing the terminal).
Lydia Katsamberis

* Troubleshooting In Distributed Systems

The shift to microservice and distributed architectures has made software products more flexible and scalable-- and a lot more complex. With so many moving parts, ephemeral conditions and the spectre of partial failure, it can be much more difficult to pinpoint how and why things break. Learn how Logstash, Elasticsearch and Kibana can be used to monitor healthy systems and investigate issues as they pop up, and what we can do outside of software to improve our process of problem-solving.
Megan Baker

* Using Julia & D3 to analyse web performance data

If you've always wanted to play around with D3 or Julia, or both, this talk will get you up to speed very quickly. Using web performance data as the vehicle, and an aim to extract meaningful information from it, we will explore both Julia and D3 and come up with some fun visualizations that may not be possible using only one of these tools.
Philip Tellis

* Venturing into the Spooky Science of Ruby

Grab a scalpel as we put Ruby on the table to look at this lovely language's internals. We'll start with class inheritance and method lookup, and then explore the mysterious eigenclass and how it fits in. We'll use our newfound knowledge to turn children into zombies, meet unexpected vampires, and make our own Ruby mutants. Okay, so maybe it won't be too spooky, but you'll come away having a better understanding of Ruby objects and their internals (and braaaains!).
Zoe Kay

* What Are Computers, Really?

We'll take a whirlwind tour of the theory behind what computers do. We'll start with counting on our fingers and end with an explanation of why there are some problems where the laws of physics say "no, a computer can never do this". No mathematical background necessary.
Clarissa Littler

* What's in a name? Phonetic Algorithms for Search and Similarity

Search can be as simple as returning a word or part of word based on character similarity. LIKE and wildcard matches can be sufficient, but can only account for character or string matching, and fail on misspelled words or names. Phonetic algorithms can help us find matches for misspellings and typo'd user data.
Mercedes Coyle

* When Your Codebase Is Nearly Old Enough To Vote

What do you do when your project is so old that technology has changed around you? (Or, how do you future-proof a project that you've just started so that when it gets that old, you'll be ready?) Come hear a case study of Dreamwidth Studios, a fifteen-year-old web app with a codebase consisting of a quarter million lines of legacy Perl and a mission to modernize ... if it doesn't break everything.
Denise Paolucci

* You Got Your Idris in My C++! A First Look at Denotational Design

Programmers gripe that we have two kinds of programming languages: the ones we write in for fun, and the ones we write in because we have to. We may enjoy coding that weekend project in Agda, but we have to leave that smile behind on Monday morning when we go back to Java or C++. But is that really the case? Or can we find a way of bringing the expressiveness, the rigor, or the fun of our favorite languages into our day jobs?
Ian Dees

Proposals for this track

* 7 years of collaborative calendaring: Exploring Calagator

Seven years in, the Portland tech community's open source calendar aggregator, Calagator, has survived ups and downs, seen the outcome of those Ruby and Rails dogma shifts, and fundamentally changed the way people in Portland tech build community. In this combination talk and installfest, we'll explore the origins, history, impact, and future of Calagator, and how you can use Calagator to improve your local communities and increase engagement. Bring your laptops and your Ruby dev environments, and we'll walk through a fresh install!
Chemistry 2015-03-15 01:02:30 +0000
Shawna Scott

* A Crash Course In Reactive Programming with Play Framework

Let's build a sample application using reactive programming principles and the Play Framework along with AngularJS.
Chemistry 2015-01-22 15:52:48 +0000
Michael Pigg

* Builder - an IDE for GNOME and beyond

Builder is an IDE that was successfully crowdfunded by IndieGoGo for GNOME. While for GNOME, Builder has a potential that goes beyond with an A-list of features and integrated help.
Chemistry 2015-03-15 04:03:51 +0000
Sriram Ramkrishna

* Building Composable Services

Composable services and tools have been a hot topic lately. Learn why microservices can help bring your ideas to life faster while being more reliable and resilient. We'll show what frameworks and techniques you can use to build composable services and infrastructure, and help you avoid some of the common pitfalls.
Chemistry 2015-03-15 03:24:37 +0000
Noah Kantrowitz

* Cluster Computing with Apache Spark

Apache Spark is a general engine for working with cluster scale data. This talk will introduce core concepts such as Map/Reduce and Resilient Distributed Data Sets (RDD's), give an overview of the Spark platform, and get into some code.
Chemistry 2015-03-15 01:00:42 +0000
Todd Lisonbee

* Cooking with Chef

Chef is in simple terms an infrastructure automation framework based on Ruby with a very cute name. However, its more than that and its uses are immeasurable. It is becoming the standard by which technology companies deploy and configure their system. Join me as we use dive deep into this framework and become true chefs ourselves.
Chemistry 2015-03-14 19:04:10 +0000
Johanni Thunstrom

* Crypto 101

Let's make cryptography less cryptic. This talk would give you a peek into the fun world of ciphers and encryption mechanisms with a basic understanding of the hard problems of mathematics behind the magic.
Chemistry 2015-02-13 16:50:26 +0000
Niharika Kohli

* Decentralising communication with Matrix

Matrix is a new ecosystem for decentralised IP communications, using simple HTTP APIs to exchange data (messages, VoIP, IoT data etc) between clients and servers in an entirely decentralised manner - with conversations not being controlled by any single party or silo. This talk will give an introductory overview to the rationale, architecture and APIs of the Matrix ecosystem, including showing how you can use the APIs for IM, WebRTC and IoT communication between some example Matrix clients and servers. Example material: Matrix is: * Open * Decentralised * Persistent * Eventually Consistent * Cryptographically Secure * Messaging Database * with JSON-over-HTTP API. Key Characteristics: * Entirely open: * open standard; open source; open project; open federation. * Message History as first-class citizen * Group communication as first-class citizen * Fully distributed room state (cryptographically signed) - no SPOFs or SPOCs. * Strong cryptographic identity to prevent spoofing * Identity agnostic * End-to-end encryption (RSN)
Chemistry 2015-03-08 10:38:49 +0000
Matthew Hodgson

* Designing Reactive Systems with Akka

This session will show attendees how to building reactive services using Akka and Scala. Reactive services are scalable, reliable, and efficient and we'll demonstrate the basic model, a simple development workflow, and the tools and libraries that make it all work.
Chemistry 2015-03-08 21:14:48 +0000
Thomas Lockney

* Dipping Your Toe in the Ruby Water: Using Ruby with Non-Ruby Projects

This session will introduce you to the Ruby programming language by comparing it to PHP, and show some creative ways to start integrating Ruby with your non-Ruby projects.
Chemistry 2015-02-09 20:51:26 +0000
Andrew Havens

* Get Your Shoes (Back) On!

Years ago the enigmatic Rubyist _why created Shoes, a tiny GUI toolkit for writing fun, simple applications in Ruby. Shoes served as the foundation for Hackety Hack, a programming environment specially designed to be accessible to kids.
Chemistry 2015-01-17 00:40:15 +0000
Jason Clark

* How learning about Cassandra internals cut our query times in half!

You might think the details of how your database operates internally is arcane knowledge for ops witches, but no! Understanding how it performs writes, reads, and stores data can help you develop better data models that can more effectively support your query patterns and dramatically improve the performance of your application.
Chemistry 2015-03-07 23:28:08 +0000
Amy Hanlon

* How Ruby and Java meet and work together

What if you have a working Ruby on Rails app, and you also have a Java component and you need them to interact without rewriting one of them in another programming language? JRuby is here to rescue!
Chemistry 2015-03-07 21:24:37 +0000
Alissa Bonas

* How to hook your communications into Matrix

Matrix is a new ecosystem for decentralised IP communications, using simple HTTP APIs to exchange data (messages, VoIP, IoT data etc) between clients and servers in an entirely decentralised manner - with conversations not being controlled by any single party or silo. This hands-on tutorial session will * Give a quick overview of the architecture and rationale of the Matrix ecosystem * Show how to get up and running with your own matrix homeserver * Guide through using the client-server API for communication (looking at the API from the command-line as well as using various Matrix-enabled clients). * Demonstrate how to use Matrix to bridge together existing communication islands (IRC, XMPP, blogs, IoT data silos etc) using the Application Service API - letting the audience bridge their existing IRC channels etc into Matrix!
Chemistry 2015-03-08 10:49:34 +0000
Matthew Hodgson

* Improving performance with responsive (and responsible!) images

Attendees can expect concrete examples of how the new `picture` element and `srcset` attribute work, and to learn how they can use responsive and responsible images right now to improve performance and deliver the best possible experience to their users.
Chemistry 2015-03-14 22:56:12 +0000
David Newton

* Is WebRTC ready for primetime?

Integrating WebRTC into your products hasn't been easy since it was first introduced. Is it now ready for the prime time?
Chemistry 2015-03-14 22:32:53 +0000
Dan Jenkins

* Machine Learning at Scale: Using Apache Spark and MLlib

A common problem of working with large sets of data is that machine learning tools are not able to scale effectively. Apache Spark is a fast, cluster computing engine that provides a rich toolset for machine learning called MLlib, which solves this problem of scaling.
Chemistry 2015-03-06 23:44:47 +0000
Sarah Guido

* Never do the same thing twice

Use tools like Chef, Ansible, Docker and Terraform to not do things over and over.
Chemistry 2015-03-14 21:43:09 +0000
Amy Pivo

* Open Source Hardware for Community Science

Closed-source scientific instrumentation doesn't work for community science. It's too expensive, too precise and delicate, and can't be repaired or rebuilt easily. Open-source hardware allows for a means of creating massive deployments of sensing systems, and pulling their data outputs together. This is the wave of the future.
Chemistry 2015-01-23 20:30:56 +0000
Pete Marchetto

* RESTful Micro-service communication over AMQP

In the last several years, the web application has evolved from “monolith” to collection of APIs. In this presentation, we discuss the advantages, the difficulties, and some of the technologies involved in getting APIs to talk with each other successfully.
Chemistry 2015-03-09 15:25:40 +0000
Serge Domkowski

* Ruby for Beginners: A Tour of the Ruby Language and Ecosystem

An introduction to Ruby programming for those who are new to software or new to Ruby specifically.
Chemistry 2015-03-07 17:45:03 +0000
Jonan Scheffler

* SlamData: SQL Isn't Just for RDBMS Anymore

NoSQL: the technology that everyone loves to hate on. Yet despite shaky formal foundations and horror stories of career-ending proportions, there's one thing I'm pretty sure of: NoSQL is here to stay. MongoDB is now the 4th most popular database of the world, and the company commercializing the open source database is valued at more than $1.6 billion dollars. For the longest time, the only way of accessing data in these NoSQL databases has been writing code: every database has its own API which lets you do various random things in sometimes very strange ways. That works for building applications, but it doesn't work for tooling, most specifically, for analytics and reporting. If you've ever tried to building a data processing workflow or some reporting machinery on top a NoSQL database, you know exactly what I'm talking about: it's painful, write-once, often buggy code you'll end up throwing away some day. What if there were another way? What if you could query databases like MongoDB as easily as MySQL? What if you could hook up standard open source database tools to MongoDB like Squirrel, and have things just work? Thanks to an open source project I've been working on for the past year and a half, I'm happy to say all these things are possible. ...
Chemistry 2015-01-15 14:26:59 +0000
John A. De Goe

* Stop Building Monoliths!

All I needed to do was validate a postcode, and validating non-US postcodes can be tricky, so I didn't want to write that code myself. So I went to Google and searched on "postcode validate javascript". The first link was to a library, and it did postcode validation! Then I read the documentation. Postcode validation was a method. Of a form object. Not a HTML form object, but the library's form object. I'd have to import the whole framework, and rewrite my application, just to validate postcodes. Hold on here: postcodes are strings first, and maybe form elements later. But wouldn't validating a postcode be a method on a string?
Chemistry 2015-03-14 23:09:47 +0000
Emma Humphries

* Stuck in the MUD: Writing a Scalable & Asynchronous TCP Server in Ruby

An introduction of CarbonMU, my new open-source Ruby MUD platform, and Celluloid, the underlying Ruby concurrent/actor-based programming framework.
Chemistry 2015-03-07 00:41:49 +0000
Tim Krajcar

* Test-Builder and beyond

Test-Builder, the foundation upon which Test-More, Test-Simple, and just about any other Test-Package are built, is getting new internals. Test-Builder and its internals are nearly 10 years old, and they are showing their age. It has been known for some time that things would have to change eventually. A few years back Schwern launched the Test-Builder 2 project. This effort ultimately failed to reach adoption. However a recent change, which simply modified a comment, managed to break Moose and other related packages, we simply can't sit around and let such things continue to happen.
Chemistry 2015-01-21 22:52:18 +0000
Chad Granum

* Using WebRTC to enhance your product

Using WebRTC doesn't require that brand new idea or that awesome new app that's going to revolutionise communications. Using WebRTC can just mean enhancing your product with more features and therefore bringing more to your service. Learn what opportunities you're missing.
Chemistry 2015-03-14 22:39:14 +0000
Dan Jenkins

* WebRTC, the hard bits

WebRTC is hard, but there's so many services and tools to make things easier. It's time to start utilising them to create awesome experiences.
Chemistry 2015-03-14 22:36:12 +0000
Dan Jenkins

* Why nobody cares about your GitHub project

Open source is hard. Everybody tells you to create a GitHub account and start throwing your code out there. Once you do, you realize that nobody really cares. In this talk, we'll see what you can do to increase the visibility of your work and how this can dramatically affect the quality of your project.
Chemistry 2015-02-24 15:16:27 +0000
Zeno Rocha

* Your Ops Stack is a Category

The core strategy of managing complexity in computer science and programming is leveraging abstraction. Category Theory is a branch of mathematics dedicated to dealing with abstraction. It sounds like a match made in heaven, since so many of our best technologies are inspired by mathematics: PageRank, routing, graphs, and computers themselves.
Chemistry 2015-03-15 06:58:30 +0000
Brandon Crisp