Program for Seattle GNU/Linux Conference 2017

Wes Payne

Clojure for Unix Hackers
Or how I learned to stop hating and love node.js

presented by Wes Payne

Intended Audience

Unix hackers, sysadmins, and developers; especially those skeptical of the JVM and node.js. Anyone interested in functional programming, lisps, or data oriented programming.

Audience Takeaways

  • Basic understanding of Clojure and functional programming
  • Appreciation of sympathetic philosphies between Unix and Clojure
  • Introduction to scripting with Clojurescript...

10:45 - 11:35 Room 3179 Programming

SSH and the shell: go forth securely

presented by der.hans

SSH is the go to tool for sysadmins and developers for interactive connections to remote machines. It creates secure, encrypted connections between computers, even across hostile networks. Unless you accept keys without verification (DON'T DO THAT!!!).

SSH can also create tunnels for encapsulating other connections, including other protocols and data. Sysadmins can bridge protocols across ne...


10:45 - 11:35 Room 3184 Systems/Ops
Wm Salt Hale

Keepassing your credentials synced and under control

presented by Wm Salt Hale

Do you use the same few passwords over and over? Is there a piece of paper with hard-to-remember ones somewhere? How about a file that lives on five different devices and is never up-to-date?

Even the most secure passwords can be broken with a $5 wrench. Long forgotten websites are frequently compromised. Files can be stored in The Cloud, but is that really where such sensitive data should b...


10:45 - 11:35 Room 3180 Security/InfoSec
Mariah Noelle

Engaging young people
How to include positive youth participation in our community

presented by Mariah Noelle

Respecting and encouraging youth agency as an integral part of the free software movement is pertinent to our advancement. Plenty of civic participation opportunities exist for young people, so let's explore how we can provide an inclusive space for them that is worth their time. Providing an introduction to youth development, this talk will explore how to initiate positive engagement and reten...


10:45 - 11:35 Room 3178 Education
Molly de Blanc

A division of labor: Attempting to measure free software

presented by Molly de Blanc

We like to think that diversity has increased over time--contributors have stuck around as they age, students are excited to get started, initiatives are making space for people of color, trans* individuals, women, and other groups underrepresented in free software. We like to think we are doing better at recognizing the wide range of contributions and that more people are getting involved from...


10:45 - 11:35 Room 3183 People
Clark Boylan

Python Packaging and Dependency Management in the Real World

presented by Clark Boylan

One of Python's greatest strengths is the large and diverse set of existing code bases that you can build on to accomplish your goals. Unfortunately, as projects grow, managing your dependencies can become a constant headache.

Unwinding which transitive dependency update now conflicts with other dependencies or is simply broken then somehow preventing that version of the dependency from bein...


13:00 - 13:20 Room 3179 Programming
Adam Monsen

Automatic Chicken Door HOWTO
No it will not hurt a chicken

presented by Adam Monsen

In this talk I'll show you how I created a raspberry pi-powered chicken door using only Free Software. You can use this knowledge to get inspired to create your own automated hardware+software systems. I'll go over these features:

  • hardware interleave gravity lock mechanism
  • instant-read photoresistor poll door actuation trigger
  • photoresistor signal analog to digital conversion
  • worm...

13:00 - 13:20 Room 3184 Hardware/IoT
Carol Smith

You Can't Launch a Spaceship if All You Hire Are Astronauts: Other Jobs in Technology

presented by Carol Smith

We talk so much about computer science and programming when we talk about tech that we tend to forget other career opportunities. I'll discuss the possibilities for using your computer science degree in other parts of technology as well as opportunities that are available in tech to people without computer science degrees. Let's make more way for people who aren't interested in programming to j...


13:30 - 13:50 Room 3183 People
Omar Ravenhurst

From Al-Qaeda to Shia LaBeouf - How Crowdsourced Intelligence Analysis Removed Any Idea Of Privacy
Finding What Doesn't Want To Be Found

presented by Omar Ravenhurst

Individuals on various online forums have begun to realize that they can find just about anything, just about anywhere in the world using publicly-available tools. With enough digging and research, random strangers sitting in basements around the world have worked together to

  • Locate terrorist training camps inside of ISIS-controlled areas in the Syrian Civil War by making diagrams and map...

13:30 - 13:50 Room 3180 Security/InfoSec
Andrew Beyer

Using a Chromebook as Your "Daily Driver" Linux Laptop

presented by Andrew Beyer

ChromeOS is running on a Linux kernel under the hood already, but it doesn't expose that to end users by default. However, there are a number of options for getting a familiar software toolset running on your Chromebook.

We'll talk about reasons why (and why not) you might want to consider Chromebooks as a hardware choice, take a look at the choices for using the hardware as a platform for...


13:30 - 13:50 Room 3184 Hardware/IoT
Sarabeth Jaffe

Programming in Prison: Web Development behind Bars

presented by Sarabeth Jaffe

In a plain-looking computer room sits 30+ men wearing khaki-colored shirts and pants, each staring intently at their monitors. Some young, some old, some with tattoos, all with different life stories. These men--many of which have never been on the Internet-- are learning computer programming while serving time at Washington State's second largest prison.

Gaining employment upon release fro...


13:30 - 13:50 Room 3178 Education

How To Learn Rust

presented by edunham

Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety. This talk will answer the question "When should I use Rust?", and introduce you to the fabulous world of educational resources created by friendly Rustaceans to accompany you on your adventure into safe systems programming.

13:30 - 13:50 Room 3179 Programming
John SJ Anderson

Logs Are Magic
Why Git Workflows and Commit Structure Should Matter To You

presented by John SJ Anderson

Git is a powerful, critical, yet poorly understood tool that virtually all Open Source developers use. One of the key features that git provides is a powerful and comprehensive log that displays the history of all the changes that have happened in a project, including potential developments that weren't ever merged, details about former versions of software that can inform future development, a...


14:00 - 14:50 Room 3179 Programming
Sam Kitajima-Kimbrel

Bowerbirds of Technology
Architecture and Operations at Less-Than-Google Scale

presented by Sam Kitajima-Kimbrel

Facebook, Google, Uber, LinkedIn, and friends are the rarefied heights of software engineering. They encounter and solve problems at scales shared by few others, and as a result, their priorities in production engineering and architecture are just a bit different from the rest of us down here in the other 99% of services. Even as a lead engineer for Twilio, I rarely dealt with the same uncharte...


14:00 - 14:50 Room 3180 People
Tony Sebro

ROI: Return on Inclusion

presented by Tony Sebro

FLOSS community leaders and participants seeking to promote diversity and inclusion within their community must contend with the collective inertia of the status quo. How much should committed communities be prepared to invest in order to overcome this inertia? And, how can they measure and justify their success?

My presentation will examine the social and financial costs FLOSS communities...


14:00 - 14:50 Room 3183 People
Donald R. Robertson

History of Control
The Past and Future of Digital Restrictions Management

presented by Donald R. Robertson


The talk will give an overview of the history of Digital Restrictions Management (DRM), from codes and passwords for ancient video games to remote attestation spyware and beyond. It will provide the listener with a perspective on the true purpose of DRM, which throughout its history has always been control over the user. While nominally DRM has something to do with copyright, in e...


14:00 - 14:50 Room 3178 Education
James Cooper

Distributed Systems With Docker Swarm

presented by James Cooper

Recent versions of Docker support a clustering feature called swarm. Swarm allows a set of machines running Docker to form a cluster. Together with Docker Compose, swarm simplifies the task of deploying a set of services to multiple hosts and provides DNS based service discovery and load balancing without the need to run additional software.

During this talk you'll learn how to:

  • Pac...

14:00 - 14:50 Room 3184 Systems/Ops
Jose Antonio Rey

Open Source: Worldwide Communities

presented by Jose Antonio Rey

In this talk I'll tell you my story about contributing to an Open Source community from abroad. Nowadays, communities have a lot of people from all around the world. What's their perspective? How do you deal with timezones? How do you get involved and get others from around the world involved? And how does culture in each area affect the community? Learn this and much more.

15:30 - 16:20 Room 3183 People
Brian Raiter

Introduction to the Godot Game Engine

presented by Brian Raiter

Ever wanted to learn how to build your own game? There's never been a better time to start. While most of the industry is focused on proprietary engines, there are also a number of free software game engines that don't get nearly as much press.

This talk will introduce you to Godot, a capable and fully-featured game engine, 100% free and open source, under active development, with excellent ...


15:30 - 16:20 Room 3178 Something different
Benno Rice

A Brief History of I/O
A short walk down the data path

presented by Benno Rice

Whether it’s video and keyboards, disks and network interfaces, or touch screens and cellular modems all computers do some form of input and output. The ways in which I/O happens have changed massively over the years though.

On the hardware side we’ve gone from paper tape to punch cards to tape to many generations of hard drives and now various forms of solid-state storage. We’ve also gone f...


15:30 - 16:20 Room 3184 Systems/Ops
Andy Thompson

Ransomware: History, Analysis, & Mitigation
This humorous and entertaining talk teaches everyone, from Mom and Pops to large enterprise organizations what's really happening and how to protect themselves.

presented by Andy Thompson

Just as the title says, we go over the humble origins, touch on the notable variants of yesteryear, the big hitters of today, and discuss the future of ransomware. It's no longer just for windows anymore. Linux, Mac and Mobile platforms are all ripe for extortion. This humorous and entertaining talk teaches everyone, from Mom and Pops to large enterprise organizations what's really happening an...


15:30 - 16:20 Room 3180 Security/InfoSec
Jeff Silverman

What's new in Python 3.6 and some of the factors to consider when upgrading from Python 3.5 or Python 2.7
Python tends to have a "scorched earth" policy. You don't need to be burned

presented by Jeff Silverman

Python 3.6 has a bunch of cool features, but you have to know what they are if you are going to take advantage of them. My talk is going to focus on what is new and why they are "cool" and you should use them.

I am also going to discuss the decision criteria you should use when making the decision about what which version to use when implementing your python software projects.

15:30 - 16:20 Room 3179 Programming
Paul English

Detecting BadBIOS, Evil Maids, Bootkits, and Other Firmware Malware
Systems/Ops, Hardware/IoT, Security/InfoSec

presented by Paul English

For attackers, platform firmware is the new Software. Most systems include hundreds of firmwares - UEFI or BIOS, PCIe expansion ROMs, USB controller drivers, storage controller host and disk/SSD drivers. Firmware-level hosted malware, bare-metal or virtualized, is nearly invisible to normal security detection tools, has full control of your system, and can often continue running even when the s...


16:30 - 17:20 Room 3180 Security/InfoSec
Liam Newman

Hackers Gotta Eat
Building a Company Around an Open Source Project

presented by Liam Newman

Creating and leading an open source project can be both rewarding and frustrating. It is rewarding to see the project grow and people contribute, but it can become frustrating and burdensome when your side-project comes to dominate your free time. If you're fortunate, you might be employed to work full-time on your open source project or even start a company around the project; then what? What ...


16:30 - 17:20 Room 3183 People
Mike Hamrick

Beyond iotop and iostat: A disk I/O deep dive using blktrace and debugfs

presented by Mike Hamrick

Programs like iostat and iotop can tell you all sorts of interesting things about what's happening on your block devices. You can answer questions like: "How busy are my disks?" "What's my average latency?" "How many blocks per second am I writing?" "Which processes are doing the most disk I/O?"

What do you do when that information isn't detailed enough? While it's great to have statisti...


16:30 - 17:20 Room 3184 Systems/Ops
Ian Santopietro

UEFI: What Is It and How Can We Exploit It For Fun And Profit
How I Made a Bootloader In 300 Lines of Python

presented by Ian Santopietro

UEFI carries with it a lot of negative connotations. While it's far from perfect, it's certainly not the overarching evil thing that a lot of us make it out to be. Here we'll discuss the facts and faction surrounding UEFI and the difference between it and other related technologies like Secure Boot, Coreboot, BIOS, and others.

After this we'll take a look at a direct comparison between boot...


16:30 - 17:20 Room 3178 Something different

Verbose mode: an exploration of programming languages and craft

presented by hwaterhouse

I want to talk about knitting technical writing and how it has changed based on the education level we provide in schools, and what that means for technology. The reason mainstream patterns are hard is because they assume a base level of knowledge in their users, and because they are so concerned about brevity that they omit context. This talk explains how the meaning of "common knowledge" cha...


16:30 - 17:20 Room 3179 Programming
Lisha Sterling

Open Source From Standing Rock To Your Home Community
Technology for protecting water, earth, and people

presented by Lisha Sterling

At Standing Rock we had as many as 20,000 people living in open fields, along a hillside, and tucked behind a grove of trees, all without the modern infrastructure that makes a city of that size function today. The community at the camps had to generate our own electricity, bring Internet from 10 miles away without access to the fiber lines, boost cell phone signals from far away, communicate o...


10:45 - 11:35 Room 3178 Something different

Philosophy in Code
I Kant Even

presented by Margaret

Coding in practice is a perpetual learning experience.  It can be daunting when first tackling a new language, framework, legacy codebase, etc. Immanuel Kant outlined some thought tools for making sense of vast new intellectual territory and eventually conquering them.  I have found the application of these insights enormously helpful over the years. This talk will aim to pass along those tools...


10:45 - 11:35 Room 3179 Programming
Ben Kero

Introduction to Containers on Linux
Using Common Container Runtimes from a User's Perspective

presented by Ben Kero

Containers are an increasingly common tool everywhere. They're used in the software development process, debugging, and in production services. As a Linux desktop user you can similarly benefit from technologies built with containers. Like virtual machines they will enable you to install apps, test out a new Linux distro, or simply learn how containers work.

This talk is geared towards users...


10:45 - 11:35 Room 3184 Systems/Ops
Brian Callahan Lisa Marie Maginnis

Leveraging collaborative mentorship to strengthen your free software community
A case study for discussion

presented by Brian Callahan and Lisa Marie Maginnis

There has been much discussion over the past several years about improving the quality of free software communities in terms of increasing participation and reducing burnout. Numerous explanations and suggestions have been offered in order to make lasting improvements. Indeed, building and strengthening your community should be recognized as a core mission for all free software project leaders....


10:45 - 11:35 Room 3183 People
Matthew Treinish

Building a Better Thermostat

presented by Matthew Treinish

After returning from a recent trip that occurred during the middle of a heat wave. I arrived home to find my apartment quite hot, at least 45C inside. Needless to say it wasn’t the most comfortable way to come home after 15 days out of town, I decided it was time for me to do something about it to address this so I didn't come home to that unpleasant surprise again. Normally, this problem is so...


10:45 - 11:35 Room 3180 Hardware/IoT
Benno Rice

You Can't Unit Test C, Right?

presented by Benno Rice

Testing is a wonderful thing. Code with good tests is so much easier to work with and change due to the comfort the tests provide that you haven't broken anything you didn't expect to break.

C can be a tricky language to work in. It compiles to static code. It's incredibly low-level compared to many of the languages people use these days. It also comes with a delightfully bewildering and...


13:00 - 13:20 Room 3179 Programming
Aaron Wolf 5 years of a work-in-progress

presented by Aaron Wolf

In 2012, an optimistic programmer convinced his friend to do something about his complaints and ideas around economic injustice and market-failures in free/libre/open (FLO) culture and software. Five years later, has a concrete vision, a global community of volunteers, and a valuable collection of writings and research about sustainable funding for FLO projects.

Still, Snowd...


13:00 - 13:20 Room 3183 Something different
John SJ Anderson

A static site generator should be your next language learning project

presented by John SJ Anderson

When learning a new language, some folks prefer to read the language documentation, or work through simple exercises like you might find on -- but I prefer to have something more like an actual project. I find that holds my focus a little better, and that I do a better job of absorbing the new language syntax and features if I'm using them for something real.

In this tal...


13:30 - 13:50 Room 3183 Programming
Cullen Taylor

Automatically Watching the Most Interesting Twitch Streams
Entertainment without Burden

presented by Cullen Taylor

It can be tedious to watch multiple twitch streams at once, as streamers are constantly moving in and out of games, reading their subscriber messages, and doing other audience engagement tasks in the downtime. What if a viewer wants to just see the uptime, or the most interesting parts of live streams automatically?

My solution to this problem (for one game at least) is called pubgredzone. I...


13:30 - 13:50 Room 3180 Something different
Christopher Neugebauer

Diverse T-Shirts for Diverse People

presented by Christopher Neugebauer

Did you know that most people are not the same as most other people? I know, it surprised me too.

It turns out, that the differences that people share also affect the sort of clothing that fits them. Different people have different shapes. Different people like different colours.

T-shirt manufacturers, however, aren't always great at reflecting this diversity. Fewer colours are available...


13:30 - 13:50 Room 3178 Something different
Maira Wenzel

The journey to open source the .NET documentation
Building community around docs

presented by Maira Wenzel

Is it possible to build an open source community around docs? Microsoft, and more specifically the .NET team, have completely embraced open source for all things .NET! Not just the products and tools, but also its documentation.

In this presentation, attendees will learn about the journey to open source the .NET documentation, including its API reference. You’ll learn how to apply the lesso...


13:30 - 13:50 Room 3184 Documentation
Julia Kreger

How to get a cross-project feature landed in OpenStack
Or how I plotted to obtain success...

presented by Julia Kreger

A little over two years ago, I was told in a Vancouver conference center meeting room, "Two others have tried to propose that feature, but they have both failed". I knew it was the right path to take. I knew people in the room and the larger community wanted to go in that direction. The question was how?

In this this talk, I'll cover my experience building consensus on design, setting expect...


13:30 - 13:50 Room 3179 Programming
Paul Berg

Giving The Public What They Pay For
Opening Government Funded Research

presented by Paul Berg

The United States and other governments spend tens, if not hundreds of billions of dollars per year funding research for the benefit of their own populations and of mankind. This research results in large amounts of software technology in bleeding edge areas that is ripe for development into disruptive products. However, much of this research is opaque and unavailable to the common software dev...


14:00 - 14:50 Room 3183 People

Creating Fresh Kernels

presented by labbott

The kernel is an important part of every Linux system. The Linux kernel releases a new version approximately every 3 months and brings in a large number of changes with each release. There are a variety of choices distributions can make for kernels, from choosing a single kernel version to support for many years to updating to the newest version as soon as it comes out. This talk is designed to...


14:00 - 14:50 Room 3184 Systems/Ops
Dmitry Polyakovsky

Scaling applications with Redis
practical lessons from real world experience

presented by Dmitry Polyakovsky

Using Redis for

  • Caching
  • As queue for running background jobs
  • Storing rapidly changing data

I will be sharing real world examples of practical solutions to scale applications. It will be intermediate to advanced level talk. It is best to have at least 1 year of Redis experience and understanding of key/value data stores, caching and queues. Or exposure to alternatively technolo...


14:00 - 14:50 Room 3179 Data/AI/ML
Susan Harris

The Rhythm of Patterns

presented by Susan Harris

Human beings have evolved to recognise patterns: In weather, in plants, in stellar movements. We do this intuitively to make order out of the abstract. Patterns are so ingrained that, even without knowing, we imbue patterns in everything we create - to make order out of what would otherwise be chaos.

In this talk I’ll use music and rhythm to introduce you to the power of patterns and how th...


14:00 - 14:50 Room 3178 Something different
Christopher Aedo

Brewing Beer with Linux, Python and a RaspberryPi

presented by Christopher Aedo

Making beer with open software is a blast! There are a host of open source programs available for driving the hardware required to brew awesome beer. This presentation will include an overview of the most popular brewing software available with special attention paid to the python-based project "CraftBeerPi". There will also be a detailed review of the system Christopher has been brewing beer w...


14:00 - 14:50 Room 3180 Hardware/IoT
Robinson Tryon

Keep it Secret! Keep it Safe!
Who's In Control Of Your Medical Data?

presented by Robinson Tryon

The high-tech industry has revolutionized healthcare, ushering in an amazing new era of medicine, but both providers and patients have struggled to keep up with changes in how we track healthcare data. Widespread digitization of medical records has the promise to be a step forward in the advancement of treatment, but there are several pitfalls that we must avoid to ensure that patients retain c...


15:30 - 16:20 Room 3178 Something different
Nell Shamrell

Platform Agnostic and Self Organizing Software Packages

presented by Nell Shamrell

One of the dreams of development is to build a software package once, then be able to deploy it anywhere. With current Open Source projects this dream is closer than ever. Come to this talk to learn how to create software packages that run (almost) anywhere. You will see how the same application can be run on bare metal, on a VM, or in a container - with everything needed to automate that appli...


15:30 - 16:20 Room 3179 Systems/Ops
Pooja Purswani Dipesh C Monga

When VR meets Internet of things
The Life beyond second life

presented by Pooja Purswani and Dipesh C Monga

It gets even more interesting when virtual and augmented reality meets the Internet of Things." — Phil Repp

IoT is taking over the technology industry with a huge bang! Our focus is to make the IoT smarter and more suitable for human interaction. Virtual Reality is the next billion dollar industry and it is the future of the Entertainment, Gaming and Education Industry. Now, imagine the po...


15:30 - 16:20 Room 3180 Hardware/IoT
Deb Nicholson

Software Patents: Global Trends

presented by Deb Nicholson

In the developer community, nobody cares where their collaborators are physically located. It's a completely different story for legal practitioners and others who look at the licenses, patents and treaties that dictate what's feasible, what's expensive and what's impossible -- or even illegal. Software production has become rapid, diverse and global and in many instances, regulators have been ...


15:30 - 16:20 Room 3183 Something different
Brian MacDonald

Writing the Next Great Tech Book
From Idea to Successful Publication

presented by Brian MacDonald

You have an idea for the next great technical book. Maybe you're excited about a new technology that nobody's written about yet. Maybe you're unimpressed with the books that are out there on your favorite topic. Maybe writing a book is on your bucket list. This session will help your idea reach its potential as a published book. Technical publishing is an opaque process with a lot of moving par...


15:30 - 16:20 Room 3184 Documentation
Richard Fontana

Taking license compatibility semi-seriously

presented by Richard Fontana

License compatibility refers to the problem of creating combined works out of code under different, seemingly clashing FLOSS licenses. It most often arises where at least one of the licenses is in the GPL family.

A surprising amount of intellectual energy, by developers, users, lawyers and "compliance professionals", has been devoted to dealing with the topic of license compatibility. Incomp...


16:30 - 17:20 Room 3183 Something different

Hello Gmom!
Pushing back against loneliness in end-of-life care.

presented by Jeremy


Content Warning: This talk includes references to debilitating illness and death, but the emphasis is on quality of life and family.

After suffering a debilitating stroke, Barbara, my girlfriend's grandmother, was left disabled, bed-bound, and mostly non-verbal. We visited often, and were with her when she passed earlier this year. For Christmas, I built her a web applicat...


16:30 - 17:20 Room 3180 Design/UI/UX/Accessibility
Gareth J. Greenaway

Your Solution Is Not My Problem

presented by Gareth J. Greenaway

When you attend a conference, you're likely to see some really inspiring talks about how the speaker uses a particular technology or infrastructure stack. "Wow!" you think, "I'm going to go back to the office and try that out just like the speaker did it!"

Before you do that, come see THIS talk. It hopefully will convince you that while your current infrastructure or solution isn't perfect, ...


16:30 - 17:20 Room 3179 Systems/Ops
garrett honeycutt

How to build a CD pipeline for your systems

presented by garrett honeycutt

Show how to use pipeline tools such as Jenkins in conjunction with configuration management and testing software to build a CD pipeline for systems. Will cover the ideas behind building a CD pipeline, what types of testing are used and at what stages. The talk will be vendor neutral with regards to how this is achieved along with practical guides to commonly used software for each step.

16:30 - 17:20 Room 3178 Systems/Ops

Intermediate shell scripting: getting more bash for your $

presented by der.hans

Want to take your shell scripting to the next level? Interested in adding string manipulation and arrays to your arsenal? In shell math?

Shell still has the best system integration for stringing together our favorite command line tools such as ls, grep and sed. Better yet is doing some of that work in the shell without reaching for a forked program, especially inside loops. This presentation...


16:30 - 17:20 Room 3184 Systems/Ops