Cooking track

How did you get something to work? Show us how to write the script, configure the utility, debug the code. Share your best recipes.
From the beginner to the advanced level, we’re looking for tips, tutorials, best practices, and collaborative development sessions. Share what you know about your favorite tools, programming languages, and development techniques. Example topics from the past include “Data Science in the Open” and “Hands-on Virtualization with Ganeti.”

Sessions for this track

* "A huge green fierce snake bars the way!"; or, Building a Text Adventure Game in Python

Have you ever wanted to vanquish a dragon with your bare hands? First step is making a world where you can. In this talk, I'll give you the blueprints for my Python text adventure engine, as well as some recipes for making things in a text-only world.
Cooking
Katie Silverio

* A Developer's-Eye View of API Client Libraries

A developer's experience of an API and its client libraries can make the difference between them building on a project and giving up in frustration. If you develop an API client library, you'll learn what you can do to get it out of the way so developers can spend mental energy on putting together exciting projects, not fighting with tools. If you work with web APIs, you'll learn about factors to consider when you're choosing a framework to use. Either way, you'll learn about best practices--code-related and not--that make the difference between fun and easy development and a frustrating slog.
Cooking
Frances Hocutt

* A Profile of Performance Profiling With pprof

When our code is slow, performance gains can often difficult to obtain. Our ideas of where to focus our attention are often wrong. pprof has become my go to tool, and it's easy to see why. Together we'll learn how to understand pprof's output to help us zero in on the parts of our code that need the most love.
Cooking
Lauren Voswinkel

* Bridging the Digital Divide with SMS Bots

We all know about Twitter and IRC bots, but with about 4/5 of people worldwide without smartphones SMS has the potential to reach those left behind the digital divide. We will discuss the various methods for developing an SMS bot, the legal and ethical implications of doing so, and we will build an SMS bot live.
Cooking
Briar Schreiber

* Build a Web Map with Open Source Tools

Come learn to make a map on the web! In this tutorial, we will build an interactive, data-filled web map using a number of open source tools including Mapbox.js (a JavaScript library based on Leaflet.js). We will cover several options for interactivity and data sources, and show how to integrate with external APIs and other mapping tools.
Cooking
Lyzi Diamond

* Cat-herd's Crook: Enforcing Standards in 10 Programming Languages

At MongoDB we write open source database drivers in ten programming languages. Ideally, all behave the same. We also help developers in the MongoDB community replicate our libraries’ behavior in even more (and more exotic) languages. How can we herd these cats along the same track? For years we failed, but we’ve recently gained momentum on standardizing our libraries. Testable, machine-readable specs prove which code conforms and which does not.
Cooking
Samantha Ritter, A. Jesse Jiryu Davis

* Dog Food is for Dogs: Escape the Crate of Your Perspective with User Research

Dogfooding—using your own products—is nice, but is it sufficient to produce good design for people who aren’t you? Our familiarity with our projects and their quirks makes us poor substitutes for users in the wild. So just who are these users, and how do you incorporate them into design and development? In this workshop, we'll explore user experience design and research strategies that will help you design for people who aren’t you.
Cooking
Rachel Shadoan, amelia abreu

* Failing With Grace

One of the biggest challenges of building distributed systems is dealing with failure. In this talk we'll explore how distributed systems fail and then once we're good and scared, we'll cover a number of approaches and tools to help you deal with failure.
Cooking
Sean O'Connor

* Hello, my name is __________.

Our personal identity is core to how we perceive ourselves and wish to be seen. All too often, however, applications, databases, and user interfaces are not designed to fully support the diversity of personal and social identities expressed throughout the world.
Cooking
Nova Patch

* How to Read a Stack Trace

When you're trying to make sense of an surprising software crash or an unexpected test failure, knowing your way around a stack trace can make the difference between bewildered frustration and finding a root cause.
Cooking
Moss Collum

* How We Learned To Stop Worrying And Love (Or At Least Live With) GitHub

In the past few years, GitHub has become the most widely used platform for managing open source projects, thanks to the ease it provides for submitting and accepting pull requests. However, GitHub's issue tracker is not as full featured as more venerable bug trackers such as Bugzilla, and it is not as easy to use for organizations which have a large number of casual contributors. Come hear how one organization coped with the sudden loss of their Bugzilla database by restructuring their tracking workflow to use GitHub's built-in issue management features, as well as implementing API hooks to provide missing functionality.
Cooking
Jen Griffin, Athena Yao

* Introduction to data munging with pandas and IPython Notebook

This talk will go over importing, exploring, and exporting your data, and common issues you may encounter.
Cooking
Meli Lewis

* Leveraging Docker to Enable Learning

When giving workshops or presenting online tutorials, it's frequently the case that the system setup can take longer than the actual learning exercises. Using Docker to provide a learning sandbox solves this problem while avoiding changing the learner's system in potentially destructive ways.
Cooking
Kirsten Hunter

* Making Docker Actually Work

Workflow and tools to make Docker work the way it should, in production and in development
Cooking
Simon McFarlane

* Open Source Tools of the Hardware Hacking Trade

Many embedded systems contain design flaws that could lead to exploitable vulnerabilities. In order to discover such flaws, hackers and engineers use a specific set of tools. In this session, Joe will discuss his favorite open source hardware hacking and reverse engineering tools, including those that monitor/decode digital communications, extract firmware, inject/spoof data, and identify/connect to debug interfaces.
Cooking
Joe Grand

* Testing the Multiverse

It’s a basic principle of testing that minimizing dependencies will make you happier, faster, and more productive. But what happens when you can’t?
Cooking
Jason Clark

* The Quantified Self in the Smart City: Geo-Visualizing the Open Data of YOU

How do we track ourselves and what does it mean for the places we live? What mapping tools can help us to quickly understand the data we're collecting?
Cooking
Arlene Ducao

* User Research For Non-Researchers

User research doesn't have to be time-consuming, elaborate, or performed by a UX professional. If you're willing to talk to a few strangers, you can do user research. In this presentation, I'll talk about how to do lightweight research on any product or topic, no matter what your background and training are. I'll focus on the most effective tools for quick research, and some of the common pitfalls for novice researchers.
Cooking
Jane Davis

* Using Asterisk to Stop Robocallers

Robocallers are very annoying. Even when the Do Not Call list works, it doesn't cover all robo callers. This talk is about combining Asterisk (an open source PBX) running on a BeagleBone and some inexpensive hardware to really stop these annoying callers.
Cooking
Michael Pigg

Proposals for this track

* An Introduction to Slim for PHP

Why is Slim cool? Because it gives you what you need to start an HTTP application, and then gets out of the way. It lets me use the components I want to use. It doesn't require any external dependencies. And it doesn't make me learn a whole bunch of framework-specific stuff that will be useless everywhere else. I like that. And I think you will too. This session will cover why you'd choose Slim, building a "hello world" app with just a few lines of code, how to integrate your favorite components, and scaling Slim up to the needs of larger apps.
Cooking 2015-01-16 14:52:46 +0000
Ed Finkler

* Automate Yo'self

One of the greatest productivity boosts you can have as a programmer is optimizing your working environment to more tightly integrate your tools and remove inefficiencies. Come learn a number of tips, tricks, and tools that can make your programming experience faster and better.
Cooking 2015-03-08 05:44:12 +0000
John Anderson

* Automated image resizing using ImageMagick

This talk describes how to use ImageMagick to quickly resize images while maintaining great visual quality and a small file size.
Cooking 2015-03-14 22:58:10 +0000
David Newton

* Build your own Ruby-powered Arcade Machine!

This session will cover the basics of game programming using Ruby, as well as the hardware you need in order to build and run your own Ruby-powered arcade machine.
Cooking 2015-02-09 22:09:49 +0000
Andrew Havens

* Compressing the white whale: how to learn by re-inventing.

"So this is where I made my biggest mistake, and I really still chuckle about it to this day. I notice that sometimes, when I'm trying to convert a word into a number, it's actually longer than the original word. So I get clever and just said 'hey if the word is shorter, just use the word.' Hey hey awesome, another small efficiency. What was wrong with that? Bingo, that number was already in use. So now Moby Dick compresses beautifully into an even smaller file, and even looks okay at first glance, until you try to read and see about half the sentences are now gibberish"
Cooking 2015-03-13 20:59:52 +0000
Toby Fee

* Continuous Delivery and Large Microservice Architectures: Reflections on Ioncannon

Continuous delivery of a monolith is easy, just automate, automate, automate! But what challenges will you run into applying the same ideas to 300 microservices? Come and find out!
Cooking 2015-02-02 21:50:29 +0000
Kevin Scaldeferri

* Developing Fault-Tolerant Software With Your Favorite Programming Language

Fault-tolerance is more than handling unexpected signals, events and exceptions. It includes handling complete crashes gracefully along with memory corruption or invalid state that leads to crashes. All programmers are human and no actively developed source code can be completely perfect.
Cooking 2015-02-25 02:55:44 +0000
Michael Truog

* Essential DevStack

OpenStack Development Demystified
Cooking 2015-02-17 11:49:54 +0000
Swapnil Kulkarni

* Get the Message: Scaling Web Applications With Messaging

Go is a great systems language. Asynchronous, distributed, pub-sub message queues written in Go allow you to build really large systems. At Bitly, we built our business using microservices that process messages from our open source message queue system, NSQ (http://nsq.io/), and make interesting data available over the web. Learn how to build your own scalable web application using microservices and NSQ, what patterns to follow and what problems to anticipate.
Cooking 2015-03-07 23:25:25 +0000
Peter Herndon

* Getting started with WebRTC

Getting started with WebRTC is hard. It doesn't have to be.
Cooking 2015-03-14 22:34:27 +0000
Dan Jenkins

* KDE : Journey of a Season of KDE student to Google Code In organisation administrator

The talk involves my journey as a SoK student in 2012 where I worked with KDE under KDE-educational game pairs, then as a Google Summer of Code student in 2013 with plasma team, emerging as a Google Code In 2013 mentor as well as administrator of Season of KDE 2014 as well as Google Code In 2014 for KDE organization. The talk also involves the changes in plasma so far from plasma 1 to plasma 5, how the code quality has improved with the upcoming plasma development and how to get involved with open source development.
Cooking 2015-02-20 05:35:25 +0000
Heena Mahour

* Keep calm, it's reverse engineering time

As developers, sometimes we have to investigate a bug, or add a new feature in a codebase that is completely new to us, often with no one available to ask anything about that code. How can we do this?
Cooking 2015-03-07 10:37:03 +0000
Alissa Bonas

* Lightweight Openstack Benchmarking Service with Rally and Docker

Benchmark OpenStack Cloud
Cooking 2015-02-17 11:53:24 +0000
Swapnil Kulkarni

* Mastering Bootstrap: how to get the most out of Bootstrap by writing modular CSS themes

Take Bootstrap to the next level by learning how to setup a development environment with harp.js, setup a Less variable and mixin library, make your theme modular, and deploy your theme for use on your projects or for sale on a marketplace.
Cooking 2015-01-11 08:36:42 +0000
Matt Lambert

* Mobile Cloud Computing for the Data Scientist

An explanation of the key differences and problems that mobile cloud computing faces, as well as solutions to address some of these immediate challenges. A walk-through in the architecture of a large-scale mobile cloud, as well as a how-to explanation. We will then run a simple machine learning program, and explain where the data is being fetched from the cloud and how this data is being handled. We will then discuss what innovate smart apps do and how these apps take it to the next level.
Cooking 2015-03-08 03:53:11 +0000
Johanni Thunstrom

* Modular SQL

Sometimes, one can get lost in a jungle of SQL code; in this session, we'll go over how to build queries with a more modular design, testing components as they go, and building complex functionality from simpler SQL blocks.
Cooking 2015-03-08 05:42:55 +0000
Michael Alan Brewer

* Naked and Afraid: Mobile Offline Access to Emergency Data

There's an emergency. You need critical information that you put in the cloud. But the internet and mobile networks are all down. What now?
Cooking 2015-03-09 00:32:27 +0000
Matt Woodward

* Numfar, do the dance of compatibility: moving languages forward without leaving users behind

Moving a language forward in backward incompatible ways is often necessary, but can be hard on users. In this talk, I'll compare and contrast approaches used to support older code bases in different languages, and look at what works and what doesn't.
Cooking 2015-01-20 00:53:35 +0000
Adam Harvey

* Performance Testing Crash Course

Take back an understanding of how to automate performance and load testing and evaluate the impact it has on performance and your business.
Cooking 2015-01-28 03:29:29 +0000
Dustin Whittle

* Pop Open a Kernel

Ever wanted to build a simple kernel for a small computer? Curious how an OS starts and how it communicates with your keyboard and screen? Together, we'll build a simple arm kernel from scratch. No experience in assembly language or knowledge about CPU architecture is required, just some basic knowledge of C/C++ and curiosity about how things work under the hood.
Cooking 2015-03-12 02:54:04 +0000
Ian Kronquist

* Ruby hacks for sanity on big projects

On larger projects with more teammates, basic sanity can be difficult. Here we will cover some sanity-saving measures, from single tests that you should always write, to overrides for ActiveRecord
Cooking 2015-03-12 03:57:31 +0000
Compiled Wrong

* Running Open Source Java Platforms in the Public Cloud

Running a single instance of anything is easy - but how do you configure platforms for clustered environment in the cloud? Learn how to effectively launch a fleet of clustered Java-based platforms in the cloud, with or without containers, and carry that knowledge to run many others (WildFly, Spring Boot, Infinispan, and more).
Cooking 2015-01-16 18:25:50 +0000
Ray Tsang

* Sane Database Change Management with Sqitch

SQL change management has always sucked. This talk introduces Sqitch, the SQL change management application that doesn’t suck. Come see how it works, learn the few simple rules you need to get the most out of it, and liberate yourself from the suckitude.
Cooking 2015-03-10 18:31:25 +0000
David Wheeler

* Sass: What It Is, How It's Used, and Why It's So Syntactically Awesome

This talk will start off with the basics of what Syntactically Awesome StyleSheets are, what features and functionality they have to offer, and why they're a great tool to have in your arsenal. We'll then delve into how to use Sass in developing your own sites and what tools you'll want to use alongside it, complete with a live demo and some in-production examples.
Cooking 2015-02-13 20:41:18 +0000
Lucy Wyman

* Science Writing for the Small Screen with Osjourno-Webapplate

Science writers targeting the small screen are faced with a number of challenges. To address them, I've developed a workflow centered on RMarkdown authoring tools and the Mozilla Webapplate web app deployment framework.
Cooking 2015-03-08 03:24:05 +0000
M. Edward (Ed) Borasky

* Software Development and Stretched Analogies

Our perspective matters. Using interesting framing (while also laughing at the absurdity of it) can help us become better developers.
Cooking 2015-03-08 04:33:50 +0000
Kyle Jones

* Spring Boot, Microservices, Kubernetes - How To

Join this session to learn how to create a Java-based microservice using Spring Boot, containerize it using Maven plugins, and subsequently deploy a fleet of microservices and dependent components such as Redis using Kubernetes.
Cooking 2015-03-07 03:38:15 +0000
Ray Tsang

* Techniques and Tools for Literate DevOps

Lacking the Hermetic knowledge required to administrate servers, we take judicious notes and hyperlinks. Why not combine those written thoughts with the commands we enter to configure and tame our digital beasties? We have a tool for that.
Cooking 2015-02-07 04:41:11 +0000
Howard Abrams, Kasey Alusi

* Testing the Bottom Turtle: An Extreme Case of Integration Testing for the Web

Every time I push a commits to GitHub, many different systems wake up and start collaborating to test integrations with content servers, browsers, operating systems, and even major social networks. We've learned a lot building this testing infrastructure and I want to show you how you can use the same approach -- using free services -- for your next project.
Cooking 2015-03-08 01:10:50 +0000
Sean McGregor

* The Open Educator -- Practical Advice for Applying Open Source Practices and Resources to K-12 Hands-on Learning

This talk is geared toward teachers, informal educators, or anyone interested in engaging k-12 youth. It will cover common problems encountered when adapting open source technology and suggest ways to combine open source to other learning movements such as Maker Education and Common Core.
Cooking 2015-03-15 04:04:07 +0000
Alice Rice

* Three Bug Stories

Learn to write better code by hearing interesting ways that code has gone wrong!
Cooking 2015-03-08 03:29:05 +0000
Moss Collum

* Time for Change: How to approach an OS project switchover

So, who here has an open source project they maintain? Ok, of those people, who calls out or references. Who's had the other thing change in a certain way causing bugs and general headaches? It's a pretty common problem in open source, especially when you're dealing with API's and such. Eventually, services change, move, change, or even shut down completely. And it becomes a tricky decision on how to deal with this change, and how to switch over from an old service to the new. I'm going to talk about how you approach sun-setting interfacing with an old version of a service, and switching over to the new version, cleanly, with lots of spec coverage and testing. I'm not going to pretend that. We're not even fully finished with the switchover yet, and there's still plenty more to learn. But hopefully you won't make the same mistakes we did.
Cooking 2015-02-11 17:33:55 +0000
Peter Souter

* View-first, and you can too.

In a world predominantly powered by MVC webapps, view-first web development provides a more designer and front-end developer friendly alternative to the convention. We'll look at how view-first development manifests itself in the Lift Web Framework, some of the benefits we get from it, and how that might translate into other languages and frameworks.
Cooking 2015-02-21 04:16:53 +0000
Matt Farmer

* Web Performance: Beginner to Expert to Crazy Person

There’s no such thing as fast enough. You can always make your website faster. This talk will show you how.
Cooking 2015-03-13 23:10:51 +0000
Philip Tellis

* Whirlwind tour of Ansible and its missing toolchain

Get the most out of Ansible by leveraging docker (as a full OS, or Droplets), zsh (completions), vim (plugins), and others to provision all your systems.
Cooking 2015-03-15 05:37:17 +0000
Micah Elliott

* Writing debuggable code

Let's talk about the Do's and Don'ts that make code easier to debug (because let's face it, we will all write bugs at some point in our coding careers).
Cooking 2015-03-08 04:31:29 +0000
Jonathan Harker

* You Should Speak

Have you ever thought about speaking at a conference, then come up with some excuse like "I don't know enough", "I'm scared of public speaking", or "I don't know where to apply"? Come to this talk to learn how to combine the open source tools and technolgies which solve all of those problems and more!
Cooking 2015-03-15 03:17:15 +0000
E. Dunham