<schedule>
<version>169</version>
<conference>
<acronym>seagl2018</acronym>
<title>Seattle GNU/Linux Conference 2018</title>
<start>2018-11-08</start>
<end>2018-11-10</end>
<days>3</days>
<timeslot_duration>00:05</timeslot_duration>
</conference>
<day date='2018-11-08' index='1'>
<room name='Chef Seattle Offices'>
<event guid='Gnv49UBJDgdBDS3suO-fvg' id='585'>
<date>2018-11-08T02:00:00-08:00</date>
<start>10:00</start>
<duration>05:00</duration>
<room>Chef Seattle Offices</room>
<type>Pre-SeaGL Tutorial</type>
<language></language>
<slug>585-tutorial-learn-kubernetes-habitat</slug>
<title>TUTORIAL: Learn Kubernetes &amp; Habitat</title>
<subtitle></subtitle>
<track></track>
<abstract>Interested in [Kubernetes](https://kubernetes.io)? Curious about [Habitat](https://www.habitat.sh)? You&#39;re in luck! Thanks to IBM and Chef you can learn them for free!

Join us on **November 8th, the day before SeaGL starts**, for a workshop at hosted in the Chef offices in Seattle. You&#39;ll learn the basics of Kubernetes and how to get great results with Habitat in a Kubernetes cluster. Ideally you&#39;ll come out excited and confident to use Kubernetes and Habitat in your own projects. Thanks to IBM donating a robust public Kubernetes cluster (which will be available for a month), you&#39;ll even be able to practice what you learn after the tutorial is done!

Space is limited and [RSVPs are required](https://www.eventbrite.com/e/ibmxchef-kubernetes-workshops-tickets-52024461565?ref=estw). Here are the vitals:

* **When**: Thursday November 8, 2018 from 10-3
* **Where**: Chef Software Inc. located at 619 Western Ave, Seattle, WA 98104
* **Who**: Anyone and everyone, which is to say: You!
* **How much**: Absolutely free (just like SeaGL!)
* **What**: IBM workshop on Kubernetes, food break, Chef/Habitat workshop
* [**RSVP Link**](https://www.eventbrite.com/e/ibmxchef-kubernetes-workshops-tickets-52024461565?ref=estw)

Hope to see you there!</abstract>
<description>Interested in [Kubernetes](https://kubernetes.io)? Curious about [Habitat](https://www.habitat.sh)? You&#39;re in luck! Thanks to IBM and Chef you can learn them for free!

Join us on **November 8th, the day before SeaGL starts**, for a workshop at hosted in the Chef offices in Seattle. You&#39;ll learn the basics of Kubernetes and how to get great results with Habitat in a Kubernetes cluster. Ideally you&#39;ll come out excited and confident to use Kubernetes and Habitat in your own projects. Thanks to IBM donating a robust public Kubernetes cluster (which will be available for a month), you&#39;ll even be able to practice what you learn after the tutorial is done!

Space is limited and [RSVPs are required](https://www.eventbrite.com/e/ibmxchef-kubernetes-workshops-tickets-52024461565?ref=estw). Here are the vitals:

* **When**: Thursday November 8, 2018 from 10-3
* **Where**: Chef Software Inc. located at 619 Western Ave, Seattle, WA 98104
* **Who**: Anyone and everyone, which is to say: You!
* **How much**: Absolutely free (just like SeaGL!)
* **What**: IBM workshop on Kubernetes, food break, Chef/Habitat workshop
* [**RSVP Link**](https://www.eventbrite.com/e/ibmxchef-kubernetes-workshops-tickets-52024461565?ref=estw)

Hope to see you there!</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='189'>expohall</person>
</persons>
</event>
</room>
</day>
<day date='2018-11-09' index='2'>
<room name='Theatre'>
<event guid='mskQQpT2TbZUS5kHmjsawA' id='579'>
<date>2018-11-09T01:30:00-08:00</date>
<start>09:30</start>
<duration>00:25</duration>
<room>Theatre</room>
<type>Keynote</type>
<language></language>
<slug>579-open-source-today-individuals-need-not-apply</slug>
<title>Open Source Today: Individuals Need Not Apply?</title>
<subtitle></subtitle>
<track></track>
<abstract>The open source software ecosystem has seen major changes since the term &quot;open source&quot; was coined and adopted 20 years ago. The scale and complexity of open source projects have increased, professional development practices like software testing at the project level have been introduced, and the infusion of money into development has created a different landscape for contributors and companies.

In this modern world of open source software with the tremendous success in terms of adoption and business investment, is there still a place for individual open source enthusiasts?</abstract>
<description>The open source software ecosystem has seen major changes since the term &quot;open source&quot; was coined and adopted 20 years ago. The scale and complexity of open source projects have increased, professional development practices like software testing at the project level have been introduced, and the infusion of money into development has created a different landscape for contributors and companies.

In this modern world of open source software with the tremendous success in terms of adoption and business investment, is there still a place for individual open source enthusiasts?</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='800'>Elizabeth K. Joseph</person>
</persons>
</event>
<event guid='R5RCrJcrxd9JArQcb8mhwg' id='581'>
<date>2018-11-09T02:00:00-08:00</date>
<start>10:00</start>
<duration>00:25</duration>
<room>Theatre</room>
<type>Keynote</type>
<language></language>
<slug>581-insecure-connections-love-and-mental-health-in-our-digital-lives</slug>
<title>Insecure Connections: Love and mental health in our digital lives</title>
<subtitle></subtitle>
<track></track>
<abstract>The lens through which we view--and know--what it means to love, to be ourselves, and to connect with others is now backed by microchips and millions of lines of code. As our lives continue to become increasingly managed by our devices, we need to ask ourselves what we&#39;re gaining--and what we&#39;re giving up--by allowing technology into the spaces that make our hearts ache and that keep us up at night.

This talk will weave together two narratives essential to many people: health and love. It will examine the ways in which both of these topics have become entwined with computing, what that means for us as individuals, and what that means for our individual and societal user freedoms.</abstract>
<description>The lens through which we view--and know--what it means to love, to be ourselves, and to connect with others is now backed by microchips and millions of lines of code. As our lives continue to become increasingly managed by our devices, we need to ask ourselves what we&#39;re gaining--and what we&#39;re giving up--by allowing technology into the spaces that make our hearts ache and that keep us up at night.

This talk will weave together two narratives essential to many people: health and love. It will examine the ways in which both of these topics have become entwined with computing, what that means for us as individuals, and what that means for our individual and societal user freedoms.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='581'>Molly de Blanc</person>
</persons>
</event>
</room>
<room name='Room 3180'>
<event guid='WQjVcdctRuaQSmhx1No0vA' id='502'>
<date>2018-11-09T02:45:00-08:00</date>
<start>10:45</start>
<duration>00:50</duration>
<room>Room 3180</room>
<type>Longer Talk</type>
<language></language>
<slug>502-intro-to-machine-learning-with-scikit-learn</slug>
<title>Intro to Machine Learning with Scikit-learn</title>
<subtitle></subtitle>
<track>Data, AI, ML</track>
<abstract>#### Overview
This talk will give a tour of the **scikit-learn** project, an open source python platform for doing most types of modern machine learning. Scikit-learn is used in all corners of the machine learning world, from early prototypes to production models, both in academia and industry. This powerful tool kit has been carefully maintained to provide high quality, thoroughly documented code and a consistent developer experience. The web site, **scikit-learn.org**, provides a great wealth of introductory material and tutorials, development guides and code documentation, and links to primary research.

In this talk, we&#39;ll cover the following topics:

#### Supervised Machine Learning
- Building a basic machine learning classifier
- Demonstrating how easy it is to try additional classifiers with minimal code changes
- A brief discussion of how to compare the efficacy of different classifiers

#### Unsupervised Machine Learning
- Running a basic data clustering algorithm
- Again demonstrating how easy it is to swap algorithms
- Comparing the results of different algorithms, and discussing how a practitioner might choose between them

#### Data Processing
- A brief overview of the data preprocessing tools available in the scikit-learn platform

Participants will gain the knowledge they need to begin their own course of study into pratical machine learning, and will be introduced to helpful resources to lean on during the learning process. The code used in the talk will also be available on github after the talk.</abstract>
<description>#### Overview
This talk will give a tour of the **scikit-learn** project, an open source python platform for doing most types of modern machine learning. Scikit-learn is used in all corners of the machine learning world, from early prototypes to production models, both in academia and industry. This powerful tool kit has been carefully maintained to provide high quality, thoroughly documented code and a consistent developer experience. The web site, **scikit-learn.org**, provides a great wealth of introductory material and tutorials, development guides and code documentation, and links to primary research.

In this talk, we&#39;ll cover the following topics:

#### Supervised Machine Learning
- Building a basic machine learning classifier
- Demonstrating how easy it is to try additional classifiers with minimal code changes
- A brief discussion of how to compare the efficacy of different classifiers

#### Unsupervised Machine Learning
- Running a basic data clustering algorithm
- Again demonstrating how easy it is to swap algorithms
- Comparing the results of different algorithms, and discussing how a practitioner might choose between them

#### Data Processing
- A brief overview of the data preprocessing tools available in the scikit-learn platform

Participants will gain the knowledge they need to begin their own course of study into pratical machine learning, and will be introduced to helpful resources to lean on during the learning process. The code used in the talk will also be available on github after the talk.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='775'>Hailey Buckingham</person>
</persons>
</event>
<event guid='tAk8CQ2NVpBG1HKXIVqxNg' id='551'>
<date>2018-11-09T05:30:00-08:00</date>
<start>13:30</start>
<duration>00:50</duration>
<room>Room 3180</room>
<type>Longer Talk</type>
<language></language>
<slug>551-hack-your-clothes-merging-and-patching-textiles</slug>
<title>Hack your clothes: Merging and patching textiles</title>
<subtitle></subtitle>
<track>Something different</track>
<abstract>Many FLOSS enthusiasts exact perfect control of every bit and byte in their digital lives, but feel helpless at the mercy of clothing manufacturers to mass-produce garments for them. Sewing is an under-appreciated technology which allows you to modify, resize, and even duplicate your proprietary garments, or design your own!

This talk will take a quick spin through the underlying principles of fabric materials and construction, then share everything you need to know to mend, re-shape, or add pockets to your clothes. And of course, we’ll talk about when you should and shouldn’t sew with floss.

Slides online at http://talks.edunham.net/seagl2018/sewingtalk.pdf</abstract>
<description>Many FLOSS enthusiasts exact perfect control of every bit and byte in their digital lives, but feel helpless at the mercy of clothing manufacturers to mass-produce garments for them. Sewing is an under-appreciated technology which allows you to modify, resize, and even duplicate your proprietary garments, or design your own!

This talk will take a quick spin through the underlying principles of fabric materials and construction, then share everything you need to know to mend, re-shape, or add pockets to your clothes. And of course, we’ll talk about when you should and shouldn’t sew with floss.

Slides online at http://talks.edunham.net/seagl2018/sewingtalk.pdf</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='45'>edunham</person>
</persons>
</event>
<event guid='x40i_c41d0ZlUyiEscD0Ww' id='494'>
<date>2018-11-09T07:00:00-08:00</date>
<start>15:00</start>
<duration>00:50</duration>
<room>Room 3180</room>
<type>Longer Talk</type>
<language></language>
<slug>494-smart-greenhouses-with-iot-machine-learning-and-sometimes-plants</slug>
<title>Smart Greenhouses with IoT, Machine Learning, and sometimes plants</title>
<subtitle></subtitle>
<track>Hardware, IoT</track>
<abstract>What does it take to grow food all year round in the Pacific North West when you are a lazy software engineer? This talk walks through the journey of one who has taken up the challenge of growing food with as much technology and as little effort as possible. The end-result of this journey is one of the most advanced greenhouses in the PNW. Topics include supplemental greenhouse lighting control, energy efficient heating/cooling, visual computing to estimate plant growth, machine learning to predict conditions, automatic irrigation, sensors and monitoring, and much more.
</abstract>
<description>What does it take to grow food all year round in the Pacific North West when you are a lazy software engineer? This talk walks through the journey of one who has taken up the challenge of growing food with as much technology and as little effort as possible. The end-result of this journey is one of the most advanced greenhouses in the PNW. Topics include supplemental greenhouse lighting control, energy efficient heating/cooling, visual computing to estimate plant growth, machine learning to predict conditions, automatic irrigation, sensors and monitoring, and much more.
</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='771'>Kevron Rees</person>
</persons>
</event>
<event guid='7ulKibT1i17hOcMKhctFtA' id='509'>
<date>2018-11-09T08:00:00-08:00</date>
<start>16:00</start>
<duration>00:20</duration>
<room>Room 3180</room>
<type>Shorter Talk</type>
<language></language>
<slug>509-it-s-properties-all-the-way-down-narrowing-in-on-a-property-test-s-input-space</slug>
<title>It&#39;s properties all the way down! Narrowing in on a property test&#39;s input space.</title>
<subtitle></subtitle>
<track>Something different</track>
<abstract>One of the strengths of property testing is its potential to automate testing scenarios for what might otherwise be infeasible or even impossible to write for a project one by one. Writing property tests however, isn&#39;t always intuitive. It can be difficult to work out what a project or a function&#39;s properties are (not to mention how to arbitrarily explore them). This talk will tackle strategies for pinpointing a testable property and what it means to successfully explore that property&#39;s space.

This talk will begin with a brief introduction to property based testing, how it&#39;s used, the advantages it has over traditional unit testing and why you should write property tests too. We&#39;ll talk about applications of property testing such as sending voltage ranges to a vehicle to spoof brake pressure or randomly constructing C headers to verify bindings to that program&#39;s symbols can be generated. We&#39;ll explore how to take a broad property like valid &quot;header file&quot; and break it into smaller properties. &quot;Header file&quot; breaks first into a list of declarations then eventually into things like types, pointer levels and array dimensions. We&#39;ll talk about the importance of starting with the a &quot;hello, world&quot; equivalent for a property test and how that evolves. Next we&#39;ll talk about the power of property tests to uncover edge cases and assumptions that were hiding in a code base. Finally we&#39;ll touch on what to look for in property testing tooling and what it means to apply it to your own projects.</abstract>
<description>One of the strengths of property testing is its potential to automate testing scenarios for what might otherwise be infeasible or even impossible to write for a project one by one. Writing property tests however, isn&#39;t always intuitive. It can be difficult to work out what a project or a function&#39;s properties are (not to mention how to arbitrarily explore them). This talk will tackle strategies for pinpointing a testable property and what it means to successfully explore that property&#39;s space.

This talk will begin with a brief introduction to property based testing, how it&#39;s used, the advantages it has over traditional unit testing and why you should write property tests too. We&#39;ll talk about applications of property testing such as sending voltage ranges to a vehicle to spoof brake pressure or randomly constructing C headers to verify bindings to that program&#39;s symbols can be generated. We&#39;ll explore how to take a broad property like valid &quot;header file&quot; and break it into smaller properties. &quot;Header file&quot; breaks first into a list of declarations then eventually into things like types, pointer levels and array dimensions. We&#39;ll talk about the importance of starting with the a &quot;hello, world&quot; equivalent for a property test and how that evolves. Next we&#39;ll talk about the power of property tests to uncover edge cases and assumptions that were hiding in a code base. Finally we&#39;ll touch on what to look for in property testing tooling and what it means to apply it to your own projects.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='779'>Shea Newton</person>
</persons>
</event>
<event guid='BSnwTe0a3dl0wFL6wD5o8w' id='458'>
<date>2018-11-09T08:30:00-08:00</date>
<start>16:30</start>
<duration>00:50</duration>
<room>Room 3180</room>
<type>Longer Talk</type>
<language></language>
<slug>458-freedom-and-privacy-in-the-web</slug>
<title>Freedom and privacy in the Web</title>
<subtitle>Fighting licensing, tracking, fingerprinting and other issues, from both sides of the cable</subtitle>
<track>Legal, Licensing</track>
<abstract>Websites and the technologies they are built on continue to evolve from the static text documents of old (with the occasional image, tiled background and blinking marquee) to very elaborate pieces of interactive software, with both local and remote code execution that brings all kinds of overlooked privacy and user freedom concerns. Fueled by practicality and monetization incentives, web developers regularly impose non-free JavaScript to their visitors, who also have to suffer being tracked and fingerprinted by all kinds of third parties.

In this talk we will explore the sometimes obscure issues at play, and we will discuss tools and practices for end users to protect their freedom and privacy when browsing the Web, and for site developers to be able to offer an interactive, feature-rich experience to their visitors in freedom-respecting ways.

Attendees will learn about the [JavaScript Trap](https://www.gnu.org/philosophy/javascript-trap.en.html) and its [solutions](https://www.gnu.org/software/librejs/), as well as  [fingerprinting](https://en.wikipedia.org/wiki/Device_fingerprint) and other forms of browser [tracking](https://en.wikipedia.org/wiki/Website_visitor_tracking), and how to work around those and other issues from both the visitor and the webmaster side.</abstract>
<description>Websites and the technologies they are built on continue to evolve from the static text documents of old (with the occasional image, tiled background and blinking marquee) to very elaborate pieces of interactive software, with both local and remote code execution that brings all kinds of overlooked privacy and user freedom concerns. Fueled by practicality and monetization incentives, web developers regularly impose non-free JavaScript to their visitors, who also have to suffer being tracked and fingerprinted by all kinds of third parties.

In this talk we will explore the sometimes obscure issues at play, and we will discuss tools and practices for end users to protect their freedom and privacy when browsing the Web, and for site developers to be able to offer an interactive, feature-rich experience to their visitors in freedom-respecting ways.

Attendees will learn about the [JavaScript Trap](https://www.gnu.org/philosophy/javascript-trap.en.html) and its [solutions](https://www.gnu.org/software/librejs/), as well as  [fingerprinting](https://en.wikipedia.org/wiki/Device_fingerprint) and other forms of browser [tracking](https://en.wikipedia.org/wiki/Website_visitor_tracking), and how to work around those and other issues from both the visitor and the webmaster side.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='755'>Ruben Rodriguez</person>
</persons>
</event>
</room>
<room name='Room 3184'>
<event guid='neXYqu_mOjkNR4nnrK3phA' id='541'>
<date>2018-11-09T02:45:00-08:00</date>
<start>10:45</start>
<duration>00:50</duration>
<room>Room 3184</room>
<type>Longer Talk</type>
<language></language>
<slug>541-basic-licensing-considerations-and-compliance-for-projects-and-companies</slug>
<title>Basic Licensing Considerations and Compliance for Projects and Companies</title>
<subtitle></subtitle>
<track>Legal, Licensing</track>
<abstract>Technology projects do not happen in isolation and often interface with, include or have dependencies on a plethora of other projects which may be licensed under a variety of Open Source, Libre or even proprietary licenses, and possibly include even patent and trademark concerns. Ensuring that a project is compliant with the requirements of all of these licenses can seem like a daunting proposition, but turning a blind eye to the issue can put both the project and its consumers at legal risk or cause rifts in the community if other projects feel their licenses are not being given proper consideration.

Large projects and companies often maintain specialists in this area in order to stay on top of things. Such specialists are probably outside of the reach and budget of smaller projects and companies, but there are best practices and a baseline of knowledge available that can be sufficient for most cases.

We will discuss: 

1. The reasons for licensing your project properly and appropriately for your project&#39;s goals.

2. Basic best practices to minimize the complexity of compliance as your project grows.

3. The primary concerns around licensing issues for your project and those in its ecosystem.

4. How to address conflicts in a productive manner.

5. What you need to do in order to reasonably achieve and maintain compliance with a minimum of bookkeeping and effort.

6. When and how to seek advice when you need it.</abstract>
<description>Technology projects do not happen in isolation and often interface with, include or have dependencies on a plethora of other projects which may be licensed under a variety of Open Source, Libre or even proprietary licenses, and possibly include even patent and trademark concerns. Ensuring that a project is compliant with the requirements of all of these licenses can seem like a daunting proposition, but turning a blind eye to the issue can put both the project and its consumers at legal risk or cause rifts in the community if other projects feel their licenses are not being given proper consideration.

Large projects and companies often maintain specialists in this area in order to stay on top of things. Such specialists are probably outside of the reach and budget of smaller projects and companies, but there are best practices and a baseline of knowledge available that can be sufficient for most cases.

We will discuss: 

1. The reasons for licensing your project properly and appropriately for your project&#39;s goals.

2. Basic best practices to minimize the complexity of compliance as your project grows.

3. The primary concerns around licensing issues for your project and those in its ecosystem.

4. How to address conflicts in a productive manner.

5. What you need to do in order to reasonably achieve and maintain compliance with a minimum of bookkeeping and effort.

6. When and how to seek advice when you need it.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='309'>Paul Berg</person>
</persons>
</event>
<event guid='otVvms0qOdQJ4R9gbfcp9w' id='447'>
<date>2018-11-09T05:00:00-08:00</date>
<start>13:00</start>
<duration>00:20</duration>
<room>Room 3184</room>
<type>Shorter Talk</type>
<language></language>
<slug>447-i-m-lazy-so-i-write-tests</slug>
<title>I’m Lazy So I Write Tests</title>
<subtitle></subtitle>
<track>Programming</track>
<abstract>Does your team deal with bugs that could have been caught earlier in the development cycle? Wish you could get the benefits of Test-driven development (TDD) but are worried that your dev team might revolt or that stakeholders will think that you&#39;re being unproductive? In this talk, we&#39;ll discuss an approach I&#39;ve taken to balance the concerns of developers and stakeholders while simultaneously increasing developer productivity, increasing knowledge sharing, and reducing software defects. I&#39;ve named this approach &quot;TBD&quot;, or &quot;Test-backed development&quot;.</abstract>
<description>Does your team deal with bugs that could have been caught earlier in the development cycle? Wish you could get the benefits of Test-driven development (TDD) but are worried that your dev team might revolt or that stakeholders will think that you&#39;re being unproductive? In this talk, we&#39;ll discuss an approach I&#39;ve taken to balance the concerns of developers and stakeholders while simultaneously increasing developer productivity, increasing knowledge sharing, and reducing software defects. I&#39;ve named this approach &quot;TBD&quot;, or &quot;Test-backed development&quot;.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='745'>Jaime Lopez</person>
</persons>
</event>
<event guid='AGrL4psVX86V2txivv-AZA' id='501'>
<date>2018-11-09T05:30:00-08:00</date>
<start>13:30</start>
<duration>00:50</duration>
<room>Room 3184</room>
<type>Longer Talk</type>
<language></language>
<slug>501-easy-microservices-with-python-flask-and-docker</slug>
<title>Easy Microservices with Python, Flask, and Docker</title>
<subtitle></subtitle>
<track>Programming</track>
<abstract>This talk will give an overview of how to quickly build and deploy **RESTful microservices** using **Python**, **Flask**, and **Docker**. These open source tools make it very easy to build scalable microservices that are easy to write and maintain, and that can be quickly deployed in most linux (and linux-related) environments.

We&#39;ll cover the following:

1. Using Flask to build a basic python web application 
2. Hosting our app locally with gunicorn, an open source WSGI server 
3. Writing a simple Dockerfile 
4. Using our Dockerfile to containerize our service
5. Host our service locally using docker 
6. See a demo of how to deploy our docker image to a cloud instance and see it hosting our service.

Participants will gain a cursory overview of the techniques needed to get started with microservices on these platforms, and will be able to access all the source code on github after the talk as well.</abstract>
<description>This talk will give an overview of how to quickly build and deploy **RESTful microservices** using **Python**, **Flask**, and **Docker**. These open source tools make it very easy to build scalable microservices that are easy to write and maintain, and that can be quickly deployed in most linux (and linux-related) environments.

We&#39;ll cover the following:

1. Using Flask to build a basic python web application 
2. Hosting our app locally with gunicorn, an open source WSGI server 
3. Writing a simple Dockerfile 
4. Using our Dockerfile to containerize our service
5. Host our service locally using docker 
6. See a demo of how to deploy our docker image to a cloud instance and see it hosting our service.

Participants will gain a cursory overview of the techniques needed to get started with microservices on these platforms, and will be able to access all the source code on github after the talk as well.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='775'>Hailey Buckingham</person>
</persons>
</event>
<event guid='sET8th4xWoFP9EOwDXXy8Q' id='532'>
<date>2018-11-09T07:00:00-08:00</date>
<start>15:00</start>
<duration>00:50</duration>
<room>Room 3184</room>
<type>Longer Talk</type>
<language></language>
<slug>532-continuous-learning-for-developers</slug>
<title>Continuous Learning for Developers</title>
<subtitle></subtitle>
<track>Education</track>
<abstract>The world of technology never stops moving, and developers are frequently told that they have to be constantly learning in order to keep up. Entire industries are devoted to helping developers stay on the cutting edge, and they offer a multitude of options and formats: books, video, online interactive programs. There&#39;s live training, both on-site and remote, small groups and large, and mixes of all of the above. Your time is valuable, so how do you get the maximum return for your investment? You&#39;ve probably heard about learning styles, but recent evidence indicates they&#39;re not as useful as previously believed. Preferences and ingrained habits have more effect on learning and retention than an inherent style. 

In this session, I&#39;ll introduce you to the various learning formats available, and provide some advice on selecting the one that best fits your needs, or those of your team. Your needs may vary depending on the situation: The resources you need to learn a new programming language probably aren&#39;t the same as the ones you&#39;d use to learn a new version control system. Know how to identify a format that isn&#39;t working for you, and when to change it up. Cost plays a factor too, of course. 

Attendees will learn:
* The available forms of continuous learning
* Some sources for finding these products, and what they cost
* How to identify the form that works best for you
* Evaluating whether education is working

With a little planning, you can make continuous learning something to get excited about.</abstract>
<description>The world of technology never stops moving, and developers are frequently told that they have to be constantly learning in order to keep up. Entire industries are devoted to helping developers stay on the cutting edge, and they offer a multitude of options and formats: books, video, online interactive programs. There&#39;s live training, both on-site and remote, small groups and large, and mixes of all of the above. Your time is valuable, so how do you get the maximum return for your investment? You&#39;ve probably heard about learning styles, but recent evidence indicates they&#39;re not as useful as previously believed. Preferences and ingrained habits have more effect on learning and retention than an inherent style. 

In this session, I&#39;ll introduce you to the various learning formats available, and provide some advice on selecting the one that best fits your needs, or those of your team. Your needs may vary depending on the situation: The resources you need to learn a new programming language probably aren&#39;t the same as the ones you&#39;d use to learn a new version control system. Know how to identify a format that isn&#39;t working for you, and when to change it up. Cost plays a factor too, of course. 

Attendees will learn:
* The available forms of continuous learning
* Some sources for finding these products, and what they cost
* How to identify the form that works best for you
* Evaluating whether education is working

With a little planning, you can make continuous learning something to get excited about.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='598'>Brian MacDonald</person>
</persons>
</event>
<event guid='zH1ld4L_A0kFuzo-V9tBPQ' id='460'>
<date>2018-11-09T08:00:00-08:00</date>
<start>16:00</start>
<duration>00:20</duration>
<room>Room 3184</room>
<type>Shorter Talk</type>
<language></language>
<slug>460-you-are-never-too-old-to-change-to-a-tech-career</slug>
<title>You Are Never Too Old to Change to a Tech Career</title>
<subtitle></subtitle>
<track>People</track>
<abstract>_Dear Abby, I have always wanted to get into tech, but I&#39;m afraid I am too old to start now. There is a training program I want to enroll in that looks really good and interesting, but it takes a year, and I know I will need continual training to develop meaningful skills. I&#39;m already 50, so spending five or ten years learning a new career may not make sense. What should I do? Signed, Feeling Desperate

Dear Feeling Desperate, How old will you be in 5 or 10 years if you DON&#39;T make your career change now?_

High tech needs people from all walks of life, especially older people. Please allow me, as the Queen of Career Changers, to inspire and delight you with an assortment of proven reasons to follow your dreams no matter your age. Anyone can learn to do anything, you&#39;re never too old to try something new, and life experience is more important than almost anything.</abstract>
<description>_Dear Abby, I have always wanted to get into tech, but I&#39;m afraid I am too old to start now. There is a training program I want to enroll in that looks really good and interesting, but it takes a year, and I know I will need continual training to develop meaningful skills. I&#39;m already 50, so spending five or ten years learning a new career may not make sense. What should I do? Signed, Feeling Desperate

Dear Feeling Desperate, How old will you be in 5 or 10 years if you DON&#39;T make your career change now?_

High tech needs people from all walks of life, especially older people. Please allow me, as the Queen of Career Changers, to inspire and delight you with an assortment of proven reasons to follow your dreams no matter your age. Anyone can learn to do anything, you&#39;re never too old to try something new, and life experience is more important than almost anything.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='743'>Carla Schroder</person>
</persons>
</event>
<event guid='rVPB1A_uW7TDlmZQ7iJLbQ' id='521'>
<date>2018-11-09T08:30:00-08:00</date>
<start>16:30</start>
<duration>00:50</duration>
<room>Room 3184</room>
<type>Longer Talk</type>
<language></language>
<slug>521-computational-randomness-controlled-chaos-in-an-ordered-machine</slug>
<title> Computational Randomness: Controlled Chaos in an Ordered Machine </title>
<subtitle></subtitle>
<track>Security, Information Security</track>
<abstract>There are many computational needs for randomness, from virtual card shuffling to creating a cryptographically secure id. Generally, using the default random libraries to create random numbers is sufficient, but for secure cases we might need to use something better. Come learn about the best methods for common scenarios that require random number generation.  Attendees will learn how to evaluate different kinds of  random number generators and select the best one for a specific purpose. 

First, we will discuss some high profile examples of randomness gone wrong. Next we will look at both pseudo-random number generators, which use statistically repeatable processes to generate seemingly random series and then true random number generators, which inject physical processes like atmospheric noise to generate sequences of numbers. Finally, we will look at modern methods for creating randomness, including the secrets module and cryptography.io in python. 

By the end of this talk attendees should:
Understand the concept of mathematical randomness and how it is generated
Have knowledge of popular random number generators 
Be able to evaluate different generators and decide when to use a particular kind
</abstract>
<description>There are many computational needs for randomness, from virtual card shuffling to creating a cryptographically secure id. Generally, using the default random libraries to create random numbers is sufficient, but for secure cases we might need to use something better. Come learn about the best methods for common scenarios that require random number generation.  Attendees will learn how to evaluate different kinds of  random number generators and select the best one for a specific purpose. 

First, we will discuss some high profile examples of randomness gone wrong. Next we will look at both pseudo-random number generators, which use statistically repeatable processes to generate seemingly random series and then true random number generators, which inject physical processes like atmospheric noise to generate sequences of numbers. Finally, we will look at modern methods for creating randomness, including the secrets module and cryptography.io in python. 

By the end of this talk attendees should:
Understand the concept of mathematical randomness and how it is generated
Have knowledge of popular random number generators 
Be able to evaluate different generators and decide when to use a particular kind
</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='746'>Amanda Sopkin</person>
</persons>
</event>
</room>
<room name='Room 3183'>
<event guid='jC5jo0-cZkGitsB0hT0Lsw' id='440'>
<date>2018-11-09T02:45:00-08:00</date>
<start>10:45</start>
<duration>00:50</duration>
<room>Room 3183</room>
<type>Longer Talk</type>
<language></language>
<slug>440-intro-to-sensu-a-monitoring-and-alerting-framework</slug>
<title>Intro to Sensu - A monitoring and alerting framework</title>
<subtitle></subtitle>
<track>Systems, sysadmin, ops, DevOps</track>
<abstract>Sensu is an open source monitoring solution built for today&#39;s environments. Sensu allows you to get complete visibility of your infrastructure and software. Besides monitoring, it also does alerts and metrics routing and ties into tools you might already use. You will leave understanding how Sensu works and how to quickly get started using it.</abstract>
<description>Sensu is an open source monitoring solution built for today&#39;s environments. Sensu allows you to get complete visibility of your infrastructure and software. Besides monitoring, it also does alerts and metrics routing and ties into tools you might already use. You will leave understanding how Sensu works and how to quickly get started using it.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='67'>garrett honeycutt</person>
</persons>
</event>
<event guid='S8Sy3xpkTS1Cw86aXu3uyQ' id='525'>
<date>2018-11-09T05:00:00-08:00</date>
<start>13:00</start>
<duration>00:20</duration>
<room>Room 3183</room>
<type>Shorter Talk</type>
<language></language>
<slug>525-securing-your-projects-by-choosing-better-open-source-packages</slug>
<title>Securing Your Projects by Choosing Better Open Source Packages </title>
<subtitle></subtitle>
<track>Security, Information Security</track>
<abstract>Industry statistics show that ~57% of codebases are open source this is up from ~36% one year ago. Many applications now contain more open source than proprietary source code.

How can you determine what you can and cannot trust? Can you trust popularity, if it is popular does that make it safe? It is on the internet and everyone is using it. Does that make it safe?

This talk will give you some very simple tools and guidelines to help you decide whether to move along and keep searching.

Key takeaways

* How to take a discerning look at the software
* How many developers does it take to make a good project
* How to determine if there may be security issues
* The importance of a test suite

With these tools in your arsenal, you will understand how to choose components that should pass security muster.</abstract>
<description>Industry statistics show that ~57% of codebases are open source this is up from ~36% one year ago. Many applications now contain more open source than proprietary source code.

How can you determine what you can and cannot trust? Can you trust popularity, if it is popular does that make it safe? It is on the internet and everyone is using it. Does that make it safe?

This talk will give you some very simple tools and guidelines to help you decide whether to move along and keep searching.

Key takeaways

* How to take a discerning look at the software
* How many developers does it take to make a good project
* How to determine if there may be security issues
* The importance of a test suite

With these tools in your arsenal, you will understand how to choose components that should pass security muster.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='777'>Michaela (Miki) Demeter</person>
</persons>
</event>
<event guid='DdGxkKR6TP8Is-Om0BL8Jg' id='545'>
<date>2018-11-09T05:30:00-08:00</date>
<start>13:30</start>
<duration>00:50</duration>
<room>Room 3183</room>
<type>Longer Talk</type>
<language></language>
<slug>545-setting-sail-introduction-to-kubernetes-concepts-and-architecture</slug>
<title>Setting Sail: Introduction to Kubernetes Concepts and Architecture</title>
<subtitle></subtitle>
<track>Systems, sysadmin, ops, DevOps</track>
<abstract>**Description:** Linux containers have exploded in popularity and usage over the last 5 years and Kubernetes is the leading container orchestration platform. It was originally created at Google but is open-source and home to thousands of contributors, yet is often cited as being overly complex or unfriendly to understand, install and operate. 

This talk assumes only that the audience know what containers are (though won&#39;t necessarily have used them) and through the use of practical examples will:
- Summarise the need for container orchestrators and discuss the properties of Kubernetes that made it so popular
- Show the Kubernetes primitives and how to use them for constructing and deploying software applications
- Explain the architecture of the Kubernetes tooling and how it&#39;s components interact
- Cover how the platform can (and is being) extended by the community to support more complex applications and use cases

**Abstract:** Since it&#39;s inception at Google 3 years ago, Kubernetes has surged ahead as the dominant container orchestration platform, boasting a healthy ecosystem and thousands of contributors. But at nearly 2 million lines of code and near-continual feature sprawl, it is often cited that Kubernetes is overly complex and unfriendly to understand, install, configure and operate. 

If you&#39;re planning on deploying containers and Kubernetes, understanding the main primitives and overall system architecture are key pre-requisites. Even if you aim to deploy to one of the major cloud providers (where often the control plane is managed), an appreciation of the behaviours and concepts that underpin the system will reduce much of the operations pain when ready to deploy to production. 

So do you know your `pods` from your `deployments`? Are you `fluentd` in logging and monitoring containers? Do you believe in `kubicorn`s? 

In this talk, we will look briefly at why container orchestration is so important, and the properties of Kubernetes that enabled it to capture much of the orchestration mind-share. We&#39;ll examine the resource types provided by Kubernetes for us to construct and deploy software applications in a scalable, secure and portable way by walking through clear and practical demo examples. Finally, we&#39;ll dive into the architecture of Kubernetes, and explain how all of the composite components interact to deliver the full platform.

After attending this talk you&#39;ll definitely be ready to take the `Helm`!</abstract>
<description>**Description:** Linux containers have exploded in popularity and usage over the last 5 years and Kubernetes is the leading container orchestration platform. It was originally created at Google but is open-source and home to thousands of contributors, yet is often cited as being overly complex or unfriendly to understand, install and operate. 

This talk assumes only that the audience know what containers are (though won&#39;t necessarily have used them) and through the use of practical examples will:
- Summarise the need for container orchestrators and discuss the properties of Kubernetes that made it so popular
- Show the Kubernetes primitives and how to use them for constructing and deploying software applications
- Explain the architecture of the Kubernetes tooling and how it&#39;s components interact
- Cover how the platform can (and is being) extended by the community to support more complex applications and use cases

**Abstract:** Since it&#39;s inception at Google 3 years ago, Kubernetes has surged ahead as the dominant container orchestration platform, boasting a healthy ecosystem and thousands of contributors. But at nearly 2 million lines of code and near-continual feature sprawl, it is often cited that Kubernetes is overly complex and unfriendly to understand, install, configure and operate. 

If you&#39;re planning on deploying containers and Kubernetes, understanding the main primitives and overall system architecture are key pre-requisites. Even if you aim to deploy to one of the major cloud providers (where often the control plane is managed), an appreciation of the behaviours and concepts that underpin the system will reduce much of the operations pain when ready to deploy to production. 

So do you know your `pods` from your `deployments`? Are you `fluentd` in logging and monitoring containers? Do you believe in `kubicorn`s? 

In this talk, we will look briefly at why container orchestration is so important, and the properties of Kubernetes that enabled it to capture much of the orchestration mind-share. We&#39;ll examine the resource types provided by Kubernetes for us to construct and deploy software applications in a scalable, secure and portable way by walking through clear and practical demo examples. Finally, we&#39;ll dive into the architecture of Kubernetes, and explain how all of the composite components interact to deliver the full platform.

After attending this talk you&#39;ll definitely be ready to take the `Helm`!</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='618'>John Harris</person>
</persons>
</event>
<event guid='C4YCiw9C0xZtOsipJiQY-g' id='544'>
<date>2018-11-09T07:00:00-08:00</date>
<start>15:00</start>
<duration>00:50</duration>
<room>Room 3183</room>
<type>Longer Talk</type>
<language></language>
<slug>544-terraform-all-the-things</slug>
<title>Terraform all the things</title>
<subtitle></subtitle>
<track>Systems, sysadmin, ops, DevOps</track>
<abstract>Many companies continue to manually create and manage their cloud infrastructure via web consoles. Documenting these procedures is challenging, especially since the interfaces are always evolving. Reviewing the changes is also difficult and often involves having a coworker watching over your shoulder. Rolling back a bad change requires deleting your current work and attempting to manually recreate the old infrastructure from memory. (Scaling or deploying the infrastructure to new environments also often involves manually recreating it.)

Hashicorp’s Terraform allows for the management of infrastructure as code. While a growing number of groups have started to utilize this tool, most are only just beginning to scratch the surface of its potential. Yes, Terraform can be used to create and manage resources in AWS and other cloud providers. However, thanks to an ever-growing number of providers, it can manage resources in many other popular cloud services.

In this talk, attendees will learn:

* How a large technology company transitioned from manually provisioning servers to using Terraform to manage cloud resources as reviewable and documentable code stored in a Version Control System
* Some easy and actionable tips to aid in managing Terraform as the number of resources and users grows
* Why it makes sense to manage all of your cloud resources in Terraform and not just your servers

Attendees to this talk should have at least a basic familiarity with what Terraform is and how it is used to manage simple resources.</abstract>
<description>Many companies continue to manually create and manage their cloud infrastructure via web consoles. Documenting these procedures is challenging, especially since the interfaces are always evolving. Reviewing the changes is also difficult and often involves having a coworker watching over your shoulder. Rolling back a bad change requires deleting your current work and attempting to manually recreate the old infrastructure from memory. (Scaling or deploying the infrastructure to new environments also often involves manually recreating it.)

Hashicorp’s Terraform allows for the management of infrastructure as code. While a growing number of groups have started to utilize this tool, most are only just beginning to scratch the surface of its potential. Yes, Terraform can be used to create and manage resources in AWS and other cloud providers. However, thanks to an ever-growing number of providers, it can manage resources in many other popular cloud services.

In this talk, attendees will learn:

* How a large technology company transitioned from manually provisioning servers to using Terraform to manage cloud resources as reviewable and documentable code stored in a Version Control System
* Some easy and actionable tips to aid in managing Terraform as the number of resources and users grows
* Why it makes sense to manage all of your cloud resources in Terraform and not just your servers

Attendees to this talk should have at least a basic familiarity with what Terraform is and how it is used to manage simple resources.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='330'>Nathan Handler</person>
</persons>
</event>
<event guid='97khkeewEM1DdirgXbNgWQ' id='420'>
<date>2018-11-09T08:00:00-08:00</date>
<start>16:00</start>
<duration>00:20</duration>
<room>Room 3183</room>
<type>Shorter Talk</type>
<language></language>
<slug>420-centralized-syslog-made-easy</slug>
<title>Centralized Syslog Made Easy</title>
<subtitle></subtitle>
<track>Systems, sysadmin, ops, DevOps</track>
<abstract>If you have a lot of servers, then you have a lot of logfiles. If you have a lot of logfiles, then you probably want one place to look at all of them.

This talk will cover:

- How to set up a centralized syslog server
- How to point your other servers&#39; syslog daemons to the centralized server
- Security implications of centralizing syslog
- Security advantages of centralizing syslog
- Best practices and common pitfalls of centralized syslogging
- What to do with all these logfiles

There will be time at the end for Questions And Answers, and the slides, along with a recording of the talk, will be uploaded afterwards.</abstract>
<description>If you have a lot of servers, then you have a lot of logfiles. If you have a lot of logfiles, then you probably want one place to look at all of them.

This talk will cover:

- How to set up a centralized syslog server
- How to point your other servers&#39; syslog daemons to the centralized server
- Security implications of centralizing syslog
- Security advantages of centralizing syslog
- Best practices and common pitfalls of centralized syslogging
- What to do with all these logfiles

There will be time at the end for Questions And Answers, and the slides, along with a recording of the talk, will be uploaded afterwards.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='614'>Omar Ravenhurst</person>
</persons>
</event>
<event guid='Bw2CLhKIMOJPINB8AO29Qw' id='417'>
<date>2018-11-09T08:30:00-08:00</date>
<start>16:30</start>
<duration>00:50</duration>
<room>Room 3183</room>
<type>Longer Talk</type>
<language></language>
<slug>417-webauthn-multi-factor-auth-for-everyone</slug>
<title>WebAuthn: Multi-factor Auth for Everyone</title>
<subtitle></subtitle>
<track>Security, Information Security</track>
<abstract>Everyone generally agrees that passwords have problems. Many of the solutions tend to involve multi-factor authentication of some kind but that&#39;s always been a pain to implement in the browser, requiring custom backends or other tricky things.

Until now!

The WebAuthn standard, now at Candidate Review stage at W3C, allows for great ease of accessing extra authentication factors, Yubikeys, software tokens, maybe even biometrics, from browsers. It also specifies everything that’s needed in order to implement authentication workflows using these tokens.

This presentation will cover the history of multi-factor authentication and the issues it’s had in adoption, then go into an overview of the WebAuthn spec and how it works and finally demonstrate how to integrate it into various web frameworks. What&#39;s FIDO? What&#39;s CTAP? What even is a Relying Party and how can I get invited to one? Come and find out!</abstract>
<description>Everyone generally agrees that passwords have problems. Many of the solutions tend to involve multi-factor authentication of some kind but that&#39;s always been a pain to implement in the browser, requiring custom backends or other tricky things.

Until now!

The WebAuthn standard, now at Candidate Review stage at W3C, allows for great ease of accessing extra authentication factors, Yubikeys, software tokens, maybe even biometrics, from browsers. It also specifies everything that’s needed in order to implement authentication workflows using these tokens.

This presentation will cover the history of multi-factor authentication and the issues it’s had in adoption, then go into an overview of the WebAuthn spec and how it works and finally demonstrate how to integrate it into various web frameworks. What&#39;s FIDO? What&#39;s CTAP? What even is a Relying Party and how can I get invited to one? Come and find out!</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='564'>Benno Rice</person>
</persons>
</event>
</room>
<room name='Room 3179'>
<event guid='LFggyhDirNm9IHX6_9RJjg' id='453'>
<date>2018-11-09T02:45:00-08:00</date>
<start>10:45</start>
<duration>00:50</duration>
<room>Room 3179</room>
<type>Longer Talk</type>
<language></language>
<slug>453-a-punch-card-ate-my-program</slug>
<title>A punch card ate my program!</title>
<subtitle></subtitle>
<track>Something different</track>
<abstract>COBOL is the Rodney Dangerfield of programming languages — it doesn&#39;t get any respect. COBOL is routinely denigrated for its verbosity and dismissed as archaic, and for good reason: COBOL bears little to no resemblance to modern programming languages. Yet COBOL is far from a dead language. It processes an estimated 85% of all business
transactions, and 5 billion lines of new COBOL code are written every year!

In the past I’ve argued that COBOL isn’t such a bad language, but I&#39;m not going to do that here! Instead, we’ll journey deep into the past to recreate a retro bug that could only happen in COBOL! Our travels will include:

* Syntactic white space!
* Scotch tape!
* Dueling compiler options!
* Virtual punch cards!
* Sentences!
* Code blocks!
* Periods!

No punch cards were harmed in the creation of this talk.
</abstract>
<description>COBOL is the Rodney Dangerfield of programming languages — it doesn&#39;t get any respect. COBOL is routinely denigrated for its verbosity and dismissed as archaic, and for good reason: COBOL bears little to no resemblance to modern programming languages. Yet COBOL is far from a dead language. It processes an estimated 85% of all business
transactions, and 5 billion lines of new COBOL code are written every year!

In the past I’ve argued that COBOL isn’t such a bad language, but I&#39;m not going to do that here! Instead, we’ll journey deep into the past to recreate a retro bug that could only happen in COBOL! Our travels will include:

* Syntactic white space!
* Scotch tape!
* Dueling compiler options!
* Virtual punch cards!
* Sentences!
* Code blocks!
* Periods!

No punch cards were harmed in the creation of this talk.
</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='750'>Walter Mankowski</person>
</persons>
</event>
<event guid='uokNRWabA8DlSnUybPqqgg' id='478'>
<date>2018-11-09T05:30:00-08:00</date>
<start>13:30</start>
<duration>00:50</duration>
<room>Room 3179</room>
<type>Longer Talk</type>
<language></language>
<slug>478-so-you-want-to-be-a-kernel-developer-moving-beyond-checkpatch</slug>
<title>So you want to be a kernel developer -- moving beyond checkpatch</title>
<subtitle></subtitle>
<track>Programming</track>
<abstract>Many people are interested in kernel development but struggle to get involved. After making a single contribution many people don&#39;t know what to do next. Some contributors don&#39;t know how to hone their skills, others can&#39;t figure out a good project. The focus of this talk is to discuss some of the issues facing new contributors to the Linux kernel who want to take a &#39;next step&#39; after a first patch and possible solutions. Attendees will come away with some practical ideas about ways to get involved with the Linux kernel community.</abstract>
<description>Many people are interested in kernel development but struggle to get involved. After making a single contribution many people don&#39;t know what to do next. Some contributors don&#39;t know how to hone their skills, others can&#39;t figure out a good project. The focus of this talk is to discuss some of the issues facing new contributors to the Linux kernel who want to take a &#39;next step&#39; after a first patch and possible solutions. Attendees will come away with some practical ideas about ways to get involved with the Linux kernel community.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='496'>labbott</person>
</persons>
</event>
<event guid='pCoFiudM455agHujbj6VeA' id='570'>
<date>2018-11-09T07:00:00-08:00</date>
<start>15:00</start>
<duration>00:50</duration>
<room>Room 3179</room>
<type>Longer Talk</type>
<language></language>
<slug>570-a-long-day-s-journey-into-backups</slug>
<title>A Long Day&#39;s Journey into Backups</title>
<subtitle></subtitle>
<track>Systems, sysadmin, ops, DevOps</track>
<abstract>This is a story of the journey taken to have effective, safe backups in customer environments.  Part history, part prescriptivism, part actual technical solutions, let&#39;s talk about the thousand solutions we tried, and what is really and truly working for the company and for me (and you!), the operations engineer.  This is a talk in three parts - the why, the what, and the future of our backups.  There will be time for questions.</abstract>
<description>This is a story of the journey taken to have effective, safe backups in customer environments.  Part history, part prescriptivism, part actual technical solutions, let&#39;s talk about the thousand solutions we tried, and what is really and truly working for the company and for me (and you!), the operations engineer.  This is a talk in three parts - the why, the what, and the future of our backups.  There will be time for questions.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='789'>Rachel Kelly</person>
</persons>
</event>
<event guid='4bsfvS0tXi9Faq2HH6jZAw' id='456'>
<date>2018-11-09T08:00:00-08:00</date>
<start>16:00</start>
<duration>00:20</duration>
<room>Room 3179</room>
<type>Shorter Talk</type>
<language></language>
<slug>456-the-intersection-of-tech-x-social-good</slug>
<title>The Intersection of Tech x Social Good</title>
<subtitle></subtitle>
<track>Education</track>
<abstract>The history of programming is filled with examples of how even the most regular developers discovered how to use their skills to transform the world. With big data, machine learning, and thousands of tutorials at every developer’s fingertips, it is easier than ever to go help causes that we care about. We’ll journey through some incredible projects that were actually very simple ideas that impacted the world, including ones that have secured democracy, allowed transparency in the pharmaceutical industry, and how they were created with all the technology they used. We&#39;ll also have a short discussion on developer ethics and what it truly means to be an engineer in today&#39;s society and what moral obligation engineers have to create for the greater good.

Then, we will learn about resources that you can use to get started on a project that you care about. I will give examples on how to get free domain names, hosting, and support for your new social good side project and how you can get involved in the social good x tech open source community.</abstract>
<description>The history of programming is filled with examples of how even the most regular developers discovered how to use their skills to transform the world. With big data, machine learning, and thousands of tutorials at every developer’s fingertips, it is easier than ever to go help causes that we care about. We’ll journey through some incredible projects that were actually very simple ideas that impacted the world, including ones that have secured democracy, allowed transparency in the pharmaceutical industry, and how they were created with all the technology they used. We&#39;ll also have a short discussion on developer ethics and what it truly means to be an engineer in today&#39;s society and what moral obligation engineers have to create for the greater good.

Then, we will learn about resources that you can use to get started on a project that you care about. I will give examples on how to get free domain names, hosting, and support for your new social good side project and how you can get involved in the social good x tech open source community.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='754'>Christina Zhu</person>
</persons>
</event>
<event guid='4-pBIwHdXoVAFeQtdEeR-w' id='575'>
<date>2018-11-09T08:30:00-08:00</date>
<start>16:30</start>
<duration>00:50</duration>
<room>Room 3179</room>
<type>Longer Talk</type>
<language></language>
<slug>575-etckeeper-revision-control-for-configuration-files</slug>
<title>etckeeper - revision control for configuration files</title>
<subtitle></subtitle>
<track>Systems, sysadmin, ops, DevOps</track>
<abstract>etckeeper tracks changes in /etc/ with version control. It ties into package management systems for automagic checkins after updates. It also records important metadata such as permissions and ownership that version control systems (VCS) usually do not track.

Use the VCS you know and let etckeeper help you with some of the oddities found in /etc/.

An imporatant feature is detecting inadvertant changes or tracking what someone (maybe even you) did late at night or early in the morning. By tracking changes, you can document them, replicate them elsewhere or even back them out.

Some important metadata such as file permissions and ownership often is not tracked by a VCS. Same for empty directories. Both metadata and empty directories in /etc/ can be crucial, so etckeeper tracks them seperately and keeps that tracking data in the VCS. etckeeper will also issue warnings about special files such as unix sockets, named pipes and hardlinks that are normally not tracked by VCSen.

Using version control on /etc/ poses several challenges. etckeeper does a great job of helping you work through them and track changes made to your operating system. The documentation also helps with secure handling of the repositories.

Attendees will learn:

* why it&#39;s important to track configuration file changes
* what special challenges configuration files present for revision control
* basic usage for etckeeper</abstract>
<description>etckeeper tracks changes in /etc/ with version control. It ties into package management systems for automagic checkins after updates. It also records important metadata such as permissions and ownership that version control systems (VCS) usually do not track.

Use the VCS you know and let etckeeper help you with some of the oddities found in /etc/.

An imporatant feature is detecting inadvertant changes or tracking what someone (maybe even you) did late at night or early in the morning. By tracking changes, you can document them, replicate them elsewhere or even back them out.

Some important metadata such as file permissions and ownership often is not tracked by a VCS. Same for empty directories. Both metadata and empty directories in /etc/ can be crucial, so etckeeper tracks them seperately and keeps that tracking data in the VCS. etckeeper will also issue warnings about special files such as unix sockets, named pipes and hardlinks that are normally not tracked by VCSen.

Using version control on /etc/ poses several challenges. etckeeper does a great job of helping you work through them and track changes made to your operating system. The documentation also helps with secure handling of the repositories.

Attendees will learn:

* why it&#39;s important to track configuration file changes
* what special challenges configuration files present for revision control
* basic usage for etckeeper</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='363'>der.hans</person>
</persons>
</event>
</room>
<room name='Room 3178'>
<event guid='hMKdwkiMtLQsaXMZmJxyag' id='562'>
<date>2018-11-09T05:00:00-08:00</date>
<start>13:00</start>
<duration>00:20</duration>
<room>Room 3178</room>
<type>Shorter Talk</type>
<language></language>
<slug>562-working-non-remote-a-guide-to-reacclimating-to-human-society</slug>
<title> Working Non-Remote: a Guide to Reacclimating to Human Society</title>
<subtitle></subtitle>
<track>People</track>
<abstract>Unpopular opinion: remote work may be one of the best &quot;perks&quot; to ever be popularized by the tech industry, but it is also one of the worst.

On one hand, it allows employers access to a more diverse pool of  employees, and employees greater schedule flexibility and the ability to customize their working conditions to better fit their needs. On the other, it presents a complex and often frustrating set of challenges not present in any other working environment. For many, the added flexibility more than makes up for the additional complications that often arise from working remote.

But what if, like many, you come to realize that working remotely just doesn’t work well for you? What next?

During this session, we’ll talk about:

- Resetting your routine to account for travel time and traditional business hours.
- Readjusting your communication style to account for in-person collaboration
- Relearning how to manage outside distractions typical to office life
- Reassessing boundaries between work and life
- Figuring out how to admit, to yourself and others, that remote work just might not be for you
</abstract>
<description>Unpopular opinion: remote work may be one of the best &quot;perks&quot; to ever be popularized by the tech industry, but it is also one of the worst.

On one hand, it allows employers access to a more diverse pool of  employees, and employees greater schedule flexibility and the ability to customize their working conditions to better fit their needs. On the other, it presents a complex and often frustrating set of challenges not present in any other working environment. For many, the added flexibility more than makes up for the additional complications that often arise from working remote.

But what if, like many, you come to realize that working remotely just doesn’t work well for you? What next?

During this session, we’ll talk about:

- Resetting your routine to account for travel time and traditional business hours.
- Readjusting your communication style to account for in-person collaboration
- Relearning how to manage outside distractions typical to office life
- Reassessing boundaries between work and life
- Figuring out how to admit, to yourself and others, that remote work just might not be for you
</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='783'>Megan Guiney</person>
</persons>
</event>
<event guid='rDnbfS2jlTWMbf62fk-JfQ' id='448'>
<date>2018-11-09T05:30:00-08:00</date>
<start>13:30</start>
<duration>00:50</duration>
<room>Room 3178</room>
<type>Longer Talk</type>
<language></language>
<slug>448-bootstrapping-understanding-an-introduction-to-reverse-engineering</slug>
<title>Bootstrapping Understanding: An Introduction to Reverse Engineering</title>
<subtitle></subtitle>
<track>Programming</track>
<abstract>Most people associate reverse engineering with software exploits and malware. But reverse engineering encompasses a broad range of tools and techniques that have application anywhere you need to understand a program without being able to read the original source. Reverse engineering is a lot like applying the scientific method: make observations, formulate a hypothesis, test, refine ... and repeat. 

In this talk, we will explore the reverse engineering process by taking the data files from an old computer game, and use reverse-engineering techniques to learn how to read them.

[Text of the presentation](http://www.muppetlabs.com/~breadbox/txt/bure.html)

[Notes from the talk](https://twitter.com/BR903/status/1061533093956206592)</abstract>
<description>Most people associate reverse engineering with software exploits and malware. But reverse engineering encompasses a broad range of tools and techniques that have application anywhere you need to understand a program without being able to read the original source. Reverse engineering is a lot like applying the scientific method: make observations, formulate a hypothesis, test, refine ... and repeat. 

In this talk, we will explore the reverse engineering process by taking the data files from an old computer game, and use reverse-engineering techniques to learn how to read them.

[Text of the presentation](http://www.muppetlabs.com/~breadbox/txt/bure.html)

[Notes from the talk](https://twitter.com/BR903/status/1061533093956206592)</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='46'>Brian Raiter</person>
</persons>
</event>
<event guid='GpC_H2OTgfpf32Lz2XoXRA' id='463'>
<date>2018-11-09T07:00:00-08:00</date>
<start>15:00</start>
<duration>00:50</duration>
<room>Room 3178</room>
<type>Longer Talk</type>
<language></language>
<slug>463-open-source-governance-the-hard-parts</slug>
<title>Open Source Governance: The Hard Parts</title>
<subtitle></subtitle>
<track>People</track>
<abstract>So you’ve released an open source project to the world, people are using it …the hard part is done, right? No, far from it. Open sourcing a project is only a fraction of the effort that will go into it over time. Come to this talk to learn about the hard parts of Open Source Governance and lessons learned from using, contributing, and governing dozens of Open Source projects. Learn how to triage and determine levels of support for issues that come into your projects (open source users are customers!). Also, learn how to handle when something goes wrong – whether it is with your own project or an upstream project two levels up from yours. Want to turn users of your project into contributors? Come hear about best practices both for finding initial contributors and keeping them engaged. Walk away knowing how to handle the hardest (and most rewarding) parts of open source governance.</abstract>
<description>So you’ve released an open source project to the world, people are using it …the hard part is done, right? No, far from it. Open sourcing a project is only a fraction of the effort that will go into it over time. Come to this talk to learn about the hard parts of Open Source Governance and lessons learned from using, contributing, and governing dozens of Open Source projects. Learn how to triage and determine levels of support for issues that come into your projects (open source users are customers!). Also, learn how to handle when something goes wrong – whether it is with your own project or an upstream project two levels up from yours. Want to turn users of your project into contributors? Come hear about best practices both for finding initial contributors and keeping them engaged. Walk away knowing how to handle the hardest (and most rewarding) parts of open source governance.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='634'>Nell Shamrell</person>
</persons>
</event>
<event guid='-C4tzTNt5nWZzFVDhqtfVA' id='486'>
<date>2018-11-09T08:00:00-08:00</date>
<start>16:00</start>
<duration>00:20</duration>
<room>Room 3178</room>
<type>Shorter Talk</type>
<language></language>
<slug>486-run-more-effective-meetings</slug>
<title>Run More Effective Meetings</title>
<subtitle></subtitle>
<track>People</track>
<abstract>Team meetings set the stage for your work as a group, but unfortunately many of us attend meetings that feel like a complete waste of time. Meetings that meander off-topic, that repeatedly drift back to the same unresolved topic, or end up turning into a monologue don&#39;t foster great team work. Once poor habits are established, it can feel difficult to reclaim a weekly wasteful meeting.

Luckily, there are ways to gently disrupt disorganized meetings. Either as the meeting convener or as a participant, you have the power to improve the meetings you attend. This talk will teach you how to set the stage for a productive meeting, how to keep a meeting on course and how to politely but firmly handle several common types of meeting derailment. The best part is that the difference is immediately noticeable. Healthy meeting habits are contagious, in the best possible way!
</abstract>
<description>Team meetings set the stage for your work as a group, but unfortunately many of us attend meetings that feel like a complete waste of time. Meetings that meander off-topic, that repeatedly drift back to the same unresolved topic, or end up turning into a monologue don&#39;t foster great team work. Once poor habits are established, it can feel difficult to reclaim a weekly wasteful meeting.

Luckily, there are ways to gently disrupt disorganized meetings. Either as the meeting convener or as a participant, you have the power to improve the meetings you attend. This talk will teach you how to set the stage for a productive meeting, how to keep a meeting on course and how to politely but firmly handle several common types of meeting derailment. The best part is that the difference is immediately noticeable. Healthy meeting habits are contagious, in the best possible way!
</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='32'>Deb Nicholson</person>
</persons>
</event>
</room>
</day>
<day date='2018-11-10' index='3'>
<room name='Theatre'>
<event guid='1DXB4LMkfkte0RBCnzc_AA' id='582'>
<date>2018-11-10T01:30:00-08:00</date>
<start>09:30</start>
<duration>00:25</duration>
<room>Theatre</room>
<type>Keynote</type>
<language></language>
<slug>582-the-democratization-of-software</slug>
<title>The Democratization of Software</title>
<subtitle></subtitle>
<track></track>
<abstract>In 1995 everything changed with the creation of the World Wide Web. Anything that could be digitized was digitized and entire industries changed. And with the digitization came tools to help everyone become a producer of digital content. From music to video, books to journalism, we pulled all the friction out of the content pipeline and democratized entire industries.

But the industry we never talk about is the one that was already digital – software. Software was democratized as well. We’ve shared software for as long as we’ve written software. By pulling the friction out of the pipeline around software and sharing it liberally through open source licensing, we’ve ended up in a completely new software industry over the past 20 years.

This talk presents the trends that got the industry to where it is, as well as ideas for the coming challenges for the next twenty years of open source software. It might be a cautionary tale.

[Slides](https://www.slideshare.net/stephenrwalli/the-democratization-of-software-seagl-2018)</abstract>
<description>In 1995 everything changed with the creation of the World Wide Web. Anything that could be digitized was digitized and entire industries changed. And with the digitization came tools to help everyone become a producer of digital content. From music to video, books to journalism, we pulled all the friction out of the content pipeline and democratized entire industries.

But the industry we never talk about is the one that was already digital – software. Software was democratized as well. We’ve shared software for as long as we’ve written software. By pulling the friction out of the pipeline around software and sharing it liberally through open source licensing, we’ve ended up in a completely new software industry over the past 20 years.

This talk presents the trends that got the industry to where it is, as well as ideas for the coming challenges for the next twenty years of open source software. It might be a cautionary tale.

[Slides](https://www.slideshare.net/stephenrwalli/the-democratization-of-software-seagl-2018)</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='576'>Stephen Walli</person>
</persons>
</event>
<event guid='YzY54aovz0pW1otVSavJYg' id='583'>
<date>2018-11-10T02:00:00-08:00</date>
<start>10:00</start>
<duration>00:25</duration>
<room>Theatre</room>
<type>Keynote</type>
<language></language>
<slug>583-making-the-mental-shift-from-system-administration-to-system-architect-team-lead</slug>
<title>Making the mental shift from System Administration to System Architect/Team Lead</title>
<subtitle></subtitle>
<track></track>
<abstract>Most of the system admins of the past started with being the only IT person and team. So the knowledge level of seeing the overall architecture and need for growth just a part of the everyday thought process. What was not really both forth was you were doing System Architecture just on small level. What happens as the team grows? You not only have you to worry about but others and their roles.
 
The mental mind shift is how do the following:

- Move from a single mindset to a multi-talented team
- How to build your team on a daily basis
- How to preserve your tech skills and continue to grow
- Are you your worst enemy?</abstract>
<description>Most of the system admins of the past started with being the only IT person and team. So the knowledge level of seeing the overall architecture and need for growth just a part of the everyday thought process. What was not really both forth was you were doing System Architecture just on small level. What happens as the team grows? You not only have you to worry about but others and their roles.
 
The mental mind shift is how do the following:

- Move from a single mindset to a multi-talented team
- How to build your team on a daily basis
- How to preserve your tech skills and continue to grow
- Are you your worst enemy?</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='803'>Tameika Reed</person>
</persons>
</event>
</room>
<room name='Room 3179'>
<event guid='6dY0kLKoS4cN9jQuIYjSLQ' id='443'>
<date>2018-11-10T02:45:00-08:00</date>
<start>10:45</start>
<duration>00:50</duration>
<room>Room 3179</room>
<type>Longer Talk</type>
<language></language>
<slug>443-php-isn-t-just-for-the-web-anymore-daemonizing-php</slug>
<title>PHP isn&#39;t just for the web anymore: Daemonizing PHP</title>
<subtitle></subtitle>
<track>Programming</track>
<abstract>A long time ago, it wasn&#39;t smart to run PHP daemons. Memory management issues made long-running processes impractical, and PHP &quot;daemons&quot; were often just frequently-restarted cron jobs. Since PHP 5, it&#39;s become more and more common to use PHP from the command line, and some are even brave enough to daemonize their PHP scripts. We&#39;ll discuss different useful ways to run PHP from the command line, and why you should be using it in your infrastructure.</abstract>
<description>A long time ago, it wasn&#39;t smart to run PHP daemons. Memory management issues made long-running processes impractical, and PHP &quot;daemons&quot; were often just frequently-restarted cron jobs. Since PHP 5, it&#39;s become more and more common to use PHP from the command line, and some are even brave enough to daemonize their PHP scripts. We&#39;ll discuss different useful ways to run PHP from the command line, and why you should be using it in your infrastructure.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='739'>Steve Meyers</person>
</persons>
</event>
<event guid='KVqNY16ZLl5p6bShCqd2cA' id='560'>
<date>2018-11-10T05:30:00-08:00</date>
<start>13:30</start>
<duration>00:50</duration>
<room>Room 3179</room>
<type>Longer Talk</type>
<language></language>
<slug>560-a-case-study-in-incrementing-a-language-s-major-version-php</slug>
<title>A case study in incrementing a language&#39;s major version: PHP</title>
<subtitle></subtitle>
<track>Programming</track>
<abstract>In 2015, the PHP project released version 7.0 of the PHP language. Doing so was
the culmination of several years of discussion and hard work to resolve what a
new major version would look like, what would be included, and most
importantly, what would be broken for existing users.

In the end, PHP 7 was released with almost no backward compatibility breaks for
well written, modern PHP 5 code. As a result, uptake of PHP 7 after two years
has been — depending on which source you use and how you measure it — between
33% and 67%.

In this talk, I&#39;ll discuss how the PHP team balanced the carrot and the stick to encourage adoption, and compare how PHP&#39;s approach to a major version bump has contrasted with other languages in the recent past.</abstract>
<description>In 2015, the PHP project released version 7.0 of the PHP language. Doing so was
the culmination of several years of discussion and hard work to resolve what a
new major version would look like, what would be included, and most
importantly, what would be broken for existing users.

In the end, PHP 7 was released with almost no backward compatibility breaks for
well written, modern PHP 5 code. As a result, uptake of PHP 7 after two years
has been — depending on which source you use and how you measure it — between
33% and 67%.

In this talk, I&#39;ll discuss how the PHP team balanced the carrot and the stick to encourage adoption, and compare how PHP&#39;s approach to a major version bump has contrasted with other languages in the recent past.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='377'>Adam Harvey</person>
</persons>
</event>
<event guid='B6ABbC3bB0Au96WFINqLEQ' id='555'>
<date>2018-11-10T07:00:00-08:00</date>
<start>15:00</start>
<duration>00:50</duration>
<room>Room 3179</room>
<type>Longer Talk</type>
<language></language>
<slug>555-you-got-chocolate-in-my-peanut-butter-net-on-mac-linux</slug>
<title>You got chocolate in my peanut butter! .NET on Mac &amp; Linux</title>
<subtitle></subtitle>
<track>Programming</track>
<abstract>For most people, the idea of .NET development brings to mind a Visual Studio window, laden with toolbars and wizards, driven by a programmer who makes just as much use of her mouse as her keyboard. The idea of learning C# is more daunting than other languages, because in addition to the language itself, it seems like you also have to learn the correct way to make use of the massive Visual Studio IDE.

I was recently very surprised, and pleased, to learn that as part of the processing of Open Sourcing .NET, Microsoft not only made it cross-platform -- it runs on Mac and Linux now, in addition to Windows -- it also added an extremely capable command line tool that completely removes the need to use Visual Studio or any othe IDE.

To prove just how capable the tooling is, in this session, I will code a .NET application, from scratch, on a Macintosh, using only Emacs and the command line. I will not touch a mouse once!

The .NET Core tooling has made a believer of me — come see for yourself just how good the new open source .NET Core is!
</abstract>
<description>For most people, the idea of .NET development brings to mind a Visual Studio window, laden with toolbars and wizards, driven by a programmer who makes just as much use of her mouse as her keyboard. The idea of learning C# is more daunting than other languages, because in addition to the language itself, it seems like you also have to learn the correct way to make use of the massive Visual Studio IDE.

I was recently very surprised, and pleased, to learn that as part of the processing of Open Sourcing .NET, Microsoft not only made it cross-platform -- it runs on Mac and Linux now, in addition to Windows -- it also added an extremely capable command line tool that completely removes the need to use Visual Studio or any othe IDE.

To prove just how capable the tooling is, in this session, I will code a .NET application, from scratch, on a Macintosh, using only Emacs and the command line. I will not touch a mouse once!

The .NET Core tooling has made a believer of me — come see for yourself just how good the new open source .NET Core is!
</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='355'>John SJ Anderson</person>
</persons>
</event>
<event guid='_ybxyjKZ2b6JePZX1nLE0Q' id='434'>
<date>2018-11-10T08:00:00-08:00</date>
<start>16:00</start>
<duration>00:20</duration>
<room>Room 3179</room>
<type>Shorter Talk</type>
<language></language>
<slug>434-an-intermediate-vocabulary-of-tech</slug>
<title>An Intermediate Vocabulary of Tech</title>
<subtitle></subtitle>
<track>Education</track>
<abstract>It is often said that the hardest problem to solve is when two people are talking about different things but believe they are talking about the same thing. As you grow in your engineering career being able communicate about problems effectively is perhaps your single most important skill. This talk exists to distill the breadth of engineering verticals into a quick hit of common vocabulary.

Developers rise through the ranks of their given area of expertise. But what happens when the front end engineer is in charge of solving problems with members of the security team, or the devops team, or the product team? The vocabulary of development is such a critical, but often overlooked, aspect of how we effectively communicate and solve problems across and within groups. It&#39;s important to learn how to talk and understand everyone you encounter in your role.

This talk aims to go through the most encountered areas of engineering. Software, DevOps, Security, Program and Product Management. Vocabulary encompasses both the main technologies in the space and the main problem concepts they deal with.</abstract>
<description>It is often said that the hardest problem to solve is when two people are talking about different things but believe they are talking about the same thing. As you grow in your engineering career being able communicate about problems effectively is perhaps your single most important skill. This talk exists to distill the breadth of engineering verticals into a quick hit of common vocabulary.

Developers rise through the ranks of their given area of expertise. But what happens when the front end engineer is in charge of solving problems with members of the security team, or the devops team, or the product team? The vocabulary of development is such a critical, but often overlooked, aspect of how we effectively communicate and solve problems across and within groups. It&#39;s important to learn how to talk and understand everyone you encounter in your role.

This talk aims to go through the most encountered areas of engineering. Software, DevOps, Security, Program and Product Management. Vocabulary encompasses both the main technologies in the space and the main problem concepts they deal with.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='735'>Laurie Barth</person>
</persons>
</event>
<event guid='DjPs3ry5vHGDB_UmysFkBw' id='485'>
<date>2018-11-10T08:30:00-08:00</date>
<start>16:30</start>
<duration>00:50</duration>
<room>Room 3179</room>
<type>Longer Talk</type>
<language></language>
<slug>485-structured-playbooks</slug>
<title>Structured Playbooks</title>
<subtitle>How to design Ansible Playbooks and applications for reusability</subtitle>
<track>Systems, sysadmin, ops, DevOps</track>
<abstract>Ansible is a powerful and flexible deployment toolkit, but that freedom without structure can often leave you swimming in a sea of playbooks that deploy very similar applications.

When building multiple applications that share structure, those applications can share a &quot;meta-playbook&quot; to deploy them - for instance, your Rails applications probably have environment configuration files, an Apache or nGINX virtual host configuration file, and a bundle of gems to be installed. If you have 3 different Rails applications, how many deployment steps are unique to each? Which variables cannot be shared between those applications?

We will walk through designing shared playbooks to reduce the number of lines in your Playbook repository, and show how this simplifies the process of writing a new Playbook for an application.</abstract>
<description>Ansible is a powerful and flexible deployment toolkit, but that freedom without structure can often leave you swimming in a sea of playbooks that deploy very similar applications.

When building multiple applications that share structure, those applications can share a &quot;meta-playbook&quot; to deploy them - for instance, your Rails applications probably have environment configuration files, an Apache or nGINX virtual host configuration file, and a bundle of gems to be installed. If you have 3 different Rails applications, how many deployment steps are unique to each? Which variables cannot be shared between those applications?

We will walk through designing shared playbooks to reduce the number of lines in your Playbook repository, and show how this simplifies the process of writing a new Playbook for an application.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='767'>Sasha Reid</person>
</persons>
</event>
</room>
<room name='Room 3184'>
<event guid='6w7xZOg8dvlPaB33xuooag' id='489'>
<date>2018-11-10T02:45:00-08:00</date>
<start>10:45</start>
<duration>00:50</duration>
<room>Room 3184</room>
<type>Longer Talk</type>
<language></language>
<slug>489-preparing-lesson-plans-teaching-yourself-training-others</slug>
<title>Preparing Lesson Plans - Teaching Yourself, Training Others</title>
<subtitle></subtitle>
<track>Education</track>
<abstract>Being a teacher for 30 years, Lesson Plans are a basic necessity before entering the classroom.  I&#39;ll explain why and how we create them.  I recently started training as a Pilates instructor for my personal growth.  When creating lesson plans, my trainer was effusive about how I had devised them.  This comes from many years of teaching - it&#39;s almost second nature for me.  In this talk, I&#39;ll explain how you can share your knowledge effectively - basically training people in the concepts that you want them to learn.  As I have discovered, you will also learn how to reinforce your own learning for new subjects by preparing lesson plans to teach others. </abstract>
<description>Being a teacher for 30 years, Lesson Plans are a basic necessity before entering the classroom.  I&#39;ll explain why and how we create them.  I recently started training as a Pilates instructor for my personal growth.  When creating lesson plans, my trainer was effusive about how I had devised them.  This comes from many years of teaching - it&#39;s almost second nature for me.  In this talk, I&#39;ll explain how you can share your knowledge effectively - basically training people in the concepts that you want them to learn.  As I have discovered, you will also learn how to reinforce your own learning for new subjects by preparing lesson plans to teach others. </description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='616'>Susan Harris</person>
</persons>
</event>
<event guid='cq27khDmdS6Tm7xWhpU51g' id='462'>
<date>2018-11-10T05:00:00-08:00</date>
<start>13:00</start>
<duration>00:20</duration>
<room>Room 3184</room>
<type>Shorter Talk</type>
<language></language>
<slug>462-how-i-automate-my-pool-pumps-with-a-raspberry-pi-and-some-open-source-software</slug>
<title>How I automate my pool pumps with a Raspberry Pi and some open-source software</title>
<subtitle></subtitle>
<track>Hardware, IoT</track>
<abstract>Most Internet-of-Things devices you can buy today tend to be completely proprietary, inflexible, and tied into some would-be data overlord&#39;s cloud. But it can be different: in this talk I will to a show-and-tell on my project to automate my swimming pool&#39;s pumps using a Raspberry Pi and some open-source software. I now can schedule and monitor what&#39;s happening with my pool from the living room couch, at a fraction of the cost of a commercial system, and without lock-in. The message of the talk: you can probably do it, too!</abstract>
<description>Most Internet-of-Things devices you can buy today tend to be completely proprietary, inflexible, and tied into some would-be data overlord&#39;s cloud. But it can be different: in this talk I will to a show-and-tell on my project to automate my swimming pool&#39;s pumps using a Raspberry Pi and some open-source software. I now can schedule and monitor what&#39;s happening with my pool from the living room couch, at a fraction of the cost of a commercial system, and without lock-in. The message of the talk: you can probably do it, too!</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='756'>Johannes Ernst</person>
</persons>
</event>
<event guid='ixh6YncCYcXR3CZG1ANtqA' id='444'>
<date>2018-11-10T05:30:00-08:00</date>
<start>13:30</start>
<duration>00:50</duration>
<room>Room 3184</room>
<type>Longer Talk</type>
<language></language>
<slug>444-how-to-learn-arduino-by-playing-with-fire</slug>
<title>How to learn Arduino by playing with fire</title>
<subtitle></subtitle>
<track>Hardware, IoT</track>
<abstract>An intro to computer science for pyromaniacs. 

My goal was to create a propane fire poofer to impress my friends. I ended up building a control system with buttons, solenoids, and LEDs, and levelling up my arduino skills along the way. 

I&#39;ll take you on my journey as I go from simple Arduino sketch to fully optimized control system. I’ll share what I learned about helpful libraries for debouncing buttons, programming LEDs and doing data management, when to use state machines, interrupts, structs, and classes, how to manage multiple files, coding tricks for saving memory, and how I finally mastered pointers - all in the service of making cooler flame effects.</abstract>
<description>An intro to computer science for pyromaniacs. 

My goal was to create a propane fire poofer to impress my friends. I ended up building a control system with buttons, solenoids, and LEDs, and levelling up my arduino skills along the way. 

I&#39;ll take you on my journey as I go from simple Arduino sketch to fully optimized control system. I’ll share what I learned about helpful libraries for debouncing buttons, programming LEDs and doing data management, when to use state machines, interrupts, structs, and classes, how to manage multiple files, coding tricks for saving memory, and how I finally mastered pointers - all in the service of making cooler flame effects.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='283'>zebular13</person>
</persons>
</event>
<event guid='JTVeoBmE39-2422eMHPUFA' id='529'>
<date>2018-11-10T07:00:00-08:00</date>
<start>15:00</start>
<duration>00:50</duration>
<room>Room 3184</room>
<type>Longer Talk</type>
<language></language>
<slug>529-exploring-security-of-iot-devices</slug>
<title>Exploring Security of IoT Devices</title>
<subtitle></subtitle>
<track>Hardware, IoT</track>
<abstract>Internet of Things devices are becoming increasingly common in our lives and in our homes. Connected sensors and controls are inexpensive and popular to buy online and in stores. Their sleek plastic shells promise a well designed package, but these devices can harbor surprising secrets.

With a 4-star rating from hundreds of reviewers on Amazon, a slick mobile app, and $99 price tag, the Reolink Argus 2 wireless camera seems to tick all the boxes for a savvy shopper. I bought one to use in my home, but after hearing horror stories about IoT devices I decided to open it up to see how it worked, and to investigate if the software was respecting my privacy and security.

This talk will share my discoveries in reverse engineering this device and explore the the implications for their design decisions. I&#39;ll go through contacting the vendor and trying to responsibly disclose my discoveries. I&#39;ll also share the resources that I&#39;ve discovered and written to fix the security problems and make it a useful, more secure device. </abstract>
<description>Internet of Things devices are becoming increasingly common in our lives and in our homes. Connected sensors and controls are inexpensive and popular to buy online and in stores. Their sleek plastic shells promise a well designed package, but these devices can harbor surprising secrets.

With a 4-star rating from hundreds of reviewers on Amazon, a slick mobile app, and $99 price tag, the Reolink Argus 2 wireless camera seems to tick all the boxes for a savvy shopper. I bought one to use in my home, but after hearing horror stories about IoT devices I decided to open it up to see how it worked, and to investigate if the software was respecting my privacy and security.

This talk will share my discoveries in reverse engineering this device and explore the the implications for their design decisions. I&#39;ll go through contacting the vendor and trying to responsibly disclose my discoveries. I&#39;ll also share the resources that I&#39;ve discovered and written to fix the security problems and make it a useful, more secure device. </description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='373'>Ben Kero</person>
</persons>
</event>
<event guid='qbb1Wdgm598D9MJsxRlk-Q' id='451'>
<date>2018-11-10T08:00:00-08:00</date>
<start>16:00</start>
<duration>00:20</duration>
<room>Room 3184</room>
<type>Shorter Talk</type>
<language></language>
<slug>451-convincing-engineers-big-business-believes-in-open-source</slug>
<title>Convincing engineers big business believes in Open Source</title>
<subtitle></subtitle>
<track>Education</track>
<abstract>My company has not always embraced open source and the ideals it espouses, and in the last few years we have endeavored to radically alter this by embracing open source contributions whole-heartedly at a company-wide level. That being said, change is hard and takes time to sink in. It is our jobs as open source advocates to spread this idea of open source as a first class citizen in the way all our software engineers think throughout the company. This talk focuses on ideas you can use to bring people along for the ride and change the hearts and minds of your coworkers. Together, we can realize our companies as an open source first companies, but it will take all of us to get there. I want to share some tips with you on how.

I will be instructing fellow open source advocates on how we can get individual contributors and people leaders alike engaged in the idea of our companies moving toward an open source first culture.</abstract>
<description>My company has not always embraced open source and the ideals it espouses, and in the last few years we have endeavored to radically alter this by embracing open source contributions whole-heartedly at a company-wide level. That being said, change is hard and takes time to sink in. It is our jobs as open source advocates to spread this idea of open source as a first class citizen in the way all our software engineers think throughout the company. This talk focuses on ideas you can use to bring people along for the ride and change the hearts and minds of your coworkers. Together, we can realize our companies as an open source first companies, but it will take all of us to get there. I want to share some tips with you on how.

I will be instructing fellow open source advocates on how we can get individual contributors and people leaders alike engaged in the idea of our companies moving toward an open source first culture.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='608'>Trevor Menagh</person>
</persons>
</event>
<event guid='FoWQZvHuDG9EOwLbop3eXA' id='468'>
<date>2018-11-10T08:30:00-08:00</date>
<start>16:30</start>
<duration>00:50</duration>
<room>Room 3184</room>
<type>Longer Talk</type>
<language></language>
<slug>468-push-it-push-it-real-good</slug>
<title>Push it (Push it Real Good)</title>
<subtitle></subtitle>
<track>Systems, sysadmin, ops, DevOps</track>
<abstract>Git. It can be intimidating if you&#39;re accustomed to other kinds of source control management. Even if you&#39;re already using it and comfortable with the basics, situations can arise where you wish you understood it better. Developers often just want to write code and tell everyone else to take a hike, but the reality is that most of us work on teams where the feature-based code we write must be integrated, tested, and ultimately released. This session will cover the most critical git concepts, basic and advanced, in a completely visualized way. At the same time, you’ll pick up git terminal commands to help you understand (or even eliminate) a git GUI you already use. Go beyond the basics to learn how to get yourself out of a git pickle, practical release management strategies, and more.</abstract>
<description>Git. It can be intimidating if you&#39;re accustomed to other kinds of source control management. Even if you&#39;re already using it and comfortable with the basics, situations can arise where you wish you understood it better. Developers often just want to write code and tell everyone else to take a hike, but the reality is that most of us work on teams where the feature-based code we write must be integrated, tested, and ultimately released. This session will cover the most critical git concepts, basic and advanced, in a completely visualized way. At the same time, you’ll pick up git terminal commands to help you understand (or even eliminate) a git GUI you already use. Go beyond the basics to learn how to get yourself out of a git pickle, practical release management strategies, and more.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='758'>Lyndsey Padget</person>
</persons>
</event>
</room>
<room name='Room 3178'>
<event guid='eHlfhxisVrNaTJxHDCpExA' id='577'>
<date>2018-11-10T02:45:00-08:00</date>
<start>10:45</start>
<duration>00:50</duration>
<room>Room 3178</room>
<type>Longer Talk</type>
<language></language>
<slug>577-what-not-to-automate</slug>
<title>What Not to Automate</title>
<subtitle></subtitle>
<track>Something different</track>
<abstract>During a talk at DevOps Days Seattle the speaker stated
&quot;Automate as much as you can&quot;. While this seems like an obvious statement at
first blush, on further inspection there are a number of exceptions to this
rule, begging the question: What shouldn&#39;t I automate? This talk will give
you a framework for deciding whether something is worth automating. We&#39;ll discuss:

* The return on investment of time to automate
* The ethical considerations of automating particular tasks, such as hiring
* Things that require humans intervention
* And more!

We&#39;ll consider this question through the lens of economics, business, ethics,
and psychology to explore the wide world of automation and it&#39;s consequences.</abstract>
<description>During a talk at DevOps Days Seattle the speaker stated
&quot;Automate as much as you can&quot;. While this seems like an obvious statement at
first blush, on further inspection there are a number of exceptions to this
rule, begging the question: What shouldn&#39;t I automate? This talk will give
you a framework for deciding whether something is worth automating. We&#39;ll discuss:

* The return on investment of time to automate
* The ethical considerations of automating particular tasks, such as hiring
* Things that require humans intervention
* And more!

We&#39;ll consider this question through the lens of economics, business, ethics,
and psychology to explore the wide world of automation and it&#39;s consequences.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='19'>Lucy Wyman</person>
</persons>
</event>
<event guid='GlGumE3tSQNErvfsr1MB3A' id='540'>
<date>2018-11-10T05:00:00-08:00</date>
<start>13:00</start>
<duration>00:20</duration>
<room>Room 3178</room>
<type>Shorter Talk</type>
<language></language>
<slug>540-no-your-github-is-not-your-resume</slug>
<title>No, Your GitHub Is Not Your Resume</title>
<subtitle></subtitle>
<track>People</track>
<abstract>You are hiring to fill a position, and you have two great candidates. One has a robust GitHub profile, and the other has no profile at all. Is this an easy choice?

You have heard that having a GitHub profile can help when job hunting. Is it true? How can you get started? What if you don’t have the time?

In this session, we will look at the implications of working in open source, from the perspectives of both the candidate and the hiring manager. Individuals will come away with an understanding of how open source participation affects their hireability, how they can get started, and what to do when active participation is challenging. Hiring managers will come away with an understanding of how to evaluate the open source work of potential candidates, how to evaluate candidates with no history, and how requiring an open source footprint creates harmful bias.</abstract>
<description>You are hiring to fill a position, and you have two great candidates. One has a robust GitHub profile, and the other has no profile at all. Is this an easy choice?

You have heard that having a GitHub profile can help when job hunting. Is it true? How can you get started? What if you don’t have the time?

In this session, we will look at the implications of working in open source, from the perspectives of both the candidate and the hiring manager. Individuals will come away with an understanding of how open source participation affects their hireability, how they can get started, and what to do when active participation is challenging. Hiring managers will come away with an understanding of how to evaluate the open source work of potential candidates, how to evaluate candidates with no history, and how requiring an open source footprint creates harmful bias.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='786'>Duane O’Brien</person>
</persons>
</event>
<event guid='MhdzdJ0OwG-3ik7ON0Dahw' id='459'>
<date>2018-11-10T05:30:00-08:00</date>
<start>13:30</start>
<duration>00:50</duration>
<room>Room 3178</room>
<type>Longer Talk</type>
<language></language>
<slug>459-documentation-is-teaching-and-teaching-is-everything</slug>
<title>Documentation is Teaching, and Teaching is Everything</title>
<subtitle></subtitle>
<track>Documentation</track>
<abstract>Everyone is a newbie at 99% of everything, so teaching is the most important and noble task of all. Creating and maintaining documentation is not easy, but it is necessary. Documentation is recording your accumulated experiences and creating your institutional memory. Documentation is building a library of knowledge, and adding to the total store of recorded human knowledge. Documentation is a primary tool for bringing new contributors up to speed efficiently. Good documentation = happy users. Teaching how to use your software reveals its flaws, and expands your own expertise.

Creating good documentation is not easy, but it is just as necessary as writing code. There are many options for creating good helpful documentation: wikis, blogs, videos, slideshows, wherever your imagination leads you. The important bit is doing _something._

Some of the elements of good documentation are:

    Concise and to the point
    Task-oriented and procedural, with examples of both correct and incorrect results
    Simple and direct: teach one thing at a time

After you have created your documentation people must be able to find it, and find what they want in it. And then someone has to maintain it.

This may all sound a little scary, like it&#39;s complicated and a lot of work. I will show you how to minimize the pain and maximize pleasant results with proven tips and tricks learned from years of experience, such as SEO tricks to help users find your documentation, efficient tools and workflow, and how to encourage contributors.</abstract>
<description>Everyone is a newbie at 99% of everything, so teaching is the most important and noble task of all. Creating and maintaining documentation is not easy, but it is necessary. Documentation is recording your accumulated experiences and creating your institutional memory. Documentation is building a library of knowledge, and adding to the total store of recorded human knowledge. Documentation is a primary tool for bringing new contributors up to speed efficiently. Good documentation = happy users. Teaching how to use your software reveals its flaws, and expands your own expertise.

Creating good documentation is not easy, but it is just as necessary as writing code. There are many options for creating good helpful documentation: wikis, blogs, videos, slideshows, wherever your imagination leads you. The important bit is doing _something._

Some of the elements of good documentation are:

    Concise and to the point
    Task-oriented and procedural, with examples of both correct and incorrect results
    Simple and direct: teach one thing at a time

After you have created your documentation people must be able to find it, and find what they want in it. And then someone has to maintain it.

This may all sound a little scary, like it&#39;s complicated and a lot of work. I will show you how to minimize the pain and maximize pleasant results with proven tips and tricks learned from years of experience, such as SEO tricks to help users find your documentation, efficient tools and workflow, and how to encourage contributors.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='743'>Carla Schroder</person>
</persons>
</event>
<event guid='FUDsU2kBq0qL70cGpIz-rQ' id='423'>
<date>2018-11-10T07:00:00-08:00</date>
<start>15:00</start>
<duration>00:50</duration>
<room>Room 3178</room>
<type>Longer Talk</type>
<language></language>
<slug>423-open-source-docops-how-open-data-kit-writes-tests-and-publishes-documentation</slug>
<title>Open Source DocOps: How Open Data Kit Writes, Tests, and Publishes Documentation</title>
<subtitle></subtitle>
<track>Documentation</track>
<abstract>Free and Open Source projects are notorious for incomplete and poorly written documentation. 

[GitHub&#39;s 2017 Open Source Survey](http://opensourcesurvey.org/2017/) found that &quot;documentation is highly valued, but often overlooked&quot; with 93% of respondents agreeing that &quot;incomplete or outdated documentation is a pervasive problem.&quot;

In attempt to solve that problem, many FOSS projects try to make doc writing &quot;easier&quot; and less formal --- using wikis, lightweight site generators, and Markdown. Some people claim that this enables &quot;non coders&quot; (that is, people who aren&#39;t familiar with command lines and versino control systems) to contribute.

This is a mistake.

Any project larger than a small utility library needs *real* documentation tools. &quot;Quick&quot; tools like wikis and Jekyll blogs contribute to documentation debt as a organizing, editing, and adding content slowly become more onerous and disconnected from the developer experience.

The solution is to treat Docs like Code, to treat your documentation like a first class product --- an engineering product. By not ignoring the lessons we&#39;ve learned about how to write, test, and deploy code together, we can get better at writing, testing, and deploying documentation together.

Additionally, far from scaring off &quot;non-coders&quot;, this approach encourages potential contributors to learn basic open source contribution skills in a less complicated, easier to understand context. (Because typos don&#39;t cause impossible to debug compilation errors, and documentation is less prone to merge conflicts.)

This talk will walk through how Open Data Kit uses the common tools, processes, and platforms of modern open source development --- git, GitHub, automated testing, continuous integration --- to produce high quality documentation and empower new open source contributors.</abstract>
<description>Free and Open Source projects are notorious for incomplete and poorly written documentation. 

[GitHub&#39;s 2017 Open Source Survey](http://opensourcesurvey.org/2017/) found that &quot;documentation is highly valued, but often overlooked&quot; with 93% of respondents agreeing that &quot;incomplete or outdated documentation is a pervasive problem.&quot;

In attempt to solve that problem, many FOSS projects try to make doc writing &quot;easier&quot; and less formal --- using wikis, lightweight site generators, and Markdown. Some people claim that this enables &quot;non coders&quot; (that is, people who aren&#39;t familiar with command lines and versino control systems) to contribute.

This is a mistake.

Any project larger than a small utility library needs *real* documentation tools. &quot;Quick&quot; tools like wikis and Jekyll blogs contribute to documentation debt as a organizing, editing, and adding content slowly become more onerous and disconnected from the developer experience.

The solution is to treat Docs like Code, to treat your documentation like a first class product --- an engineering product. By not ignoring the lessons we&#39;ve learned about how to write, test, and deploy code together, we can get better at writing, testing, and deploying documentation together.

Additionally, far from scaring off &quot;non-coders&quot;, this approach encourages potential contributors to learn basic open source contribution skills in a less complicated, easier to understand context. (Because typos don&#39;t cause impossible to debug compilation errors, and documentation is less prone to merge conflicts.)

This talk will walk through how Open Data Kit uses the common tools, processes, and platforms of modern open source development --- git, GitHub, automated testing, continuous integration --- to produce high quality documentation and empower new open source contributors.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='731'>Adam Michael Wood</person>
</persons>
</event>
<event guid='W8farygDofByU9T9iJEk7w' id='554'>
<date>2018-11-10T08:00:00-08:00</date>
<start>16:00</start>
<duration>00:20</duration>
<room>Room 3178</room>
<type>Shorter Talk</type>
<language></language>
<slug>554-accessibility-in-front-end-environments</slug>
<title>Accessibility in Front End Environments</title>
<subtitle></subtitle>
<track>Design, UX, UI, Accessibility</track>
<abstract>There are currently over 4 billion internet users world wide. With roughly 19% of the world population experiencing some kind of accessibility limitation, the need for developers who are aware of their limitations and trained in best practices for how to limit the impact those limitations have on users is more important than ever. 

In this presentation I am going to give a brief overview of some of the most common accessibility issues, what the current best practices and technology offer and some open source projects available. The talk is going to focus on user interfaces with technology.</abstract>
<description>There are currently over 4 billion internet users world wide. With roughly 19% of the world population experiencing some kind of accessibility limitation, the need for developers who are aware of their limitations and trained in best practices for how to limit the impact those limitations have on users is more important than ever. 

In this presentation I am going to give a brief overview of some of the most common accessibility issues, what the current best practices and technology offer and some open source projects available. The talk is going to focus on user interfaces with technology.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='787'>Daniel Ramsayer</person>
</persons>
</event>
<event guid='GsAecipaeacHMAYDeiP6Gw' id='475'>
<date>2018-11-10T08:30:00-08:00</date>
<start>16:30</start>
<duration>00:50</duration>
<room>Room 3178</room>
<type>Longer Talk</type>
<language></language>
<slug>475-usability-testing-in-open-source-software</slug>
<title>Usability testing in open source software</title>
<subtitle></subtitle>
<track>Design, UX, UI, Accessibility</track>
<abstract>Is your program easy to use? Generally, a program has good usability if it is easy for new users to learn, easy for them to use, and easy for them to remember when they use the program again. Usability is not the same as user experience (UX) but they are related. You may think that usability is difficult, but it only takes a little time and effort to make your program easier to use. In this talk, we will walk through how to do usability testing in open source software, and share actual usability test results from usability testing in GNOME. Attendees will learn how to easily set up and perform their own usability tests, to make their programs easier to use.</abstract>
<description>Is your program easy to use? Generally, a program has good usability if it is easy for new users to learn, easy for them to use, and easy for them to remember when they use the program again. Usability is not the same as user experience (UX) but they are related. You may think that usability is difficult, but it only takes a little time and effort to make your program easier to use. In this talk, we will walk through how to do usability testing in open source software, and share actual usability test results from usability testing in GNOME. Attendees will learn how to easily set up and perform their own usability tests, to make their programs easier to use.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='751'>Jim Hall</person>
</persons>
</event>
</room>
<room name='Room 3183'>
<event guid='UBSFe-9adNS9iN_OhmDejg' id='564'>
<date>2018-11-10T02:45:00-08:00</date>
<start>10:45</start>
<duration>00:50</duration>
<room>Room 3183</room>
<type>Longer Talk</type>
<language></language>
<slug>564-personal-threat-modelling-for-fun-and-peace-of-mind</slug>
<title>Personal Threat Modelling for Fun and Peace of Mind</title>
<subtitle></subtitle>
<track>Security, Information Security</track>
<abstract>It’s easy to see what being secure means in an enterprise setting, but what about personal security? In a world where technology and the goal posts for security are constantly changing, understanding what threats you face and what risk they pose is the first step. In this talk, I will discuss what a threat model is, and walk you through the process of making a threat model relevant to your personal circumstances. Having this model will enable you to choose mitigation actions to suit your risk profile and lifestyle. 
</abstract>
<description>It’s easy to see what being secure means in an enterprise setting, but what about personal security? In a world where technology and the goal posts for security are constantly changing, understanding what threats you face and what risk they pose is the first step. In this talk, I will discuss what a threat model is, and walk you through the process of making a threat model relevant to your personal circumstances. Having this model will enable you to choose mitigation actions to suit your risk profile and lifestyle. 
</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='350'>Tiberius Hefflin</person>
</persons>
</event>
<event guid='YN7cdEQWTrhthjO2jvByEw' id='500'>
<date>2018-11-10T05:00:00-08:00</date>
<start>13:00</start>
<duration>00:20</duration>
<room>Room 3183</room>
<type>Shorter Talk</type>
<language></language>
<slug>500-keeping-secrets-in-your-code</slug>
<title>Keeping Secrets in your Code</title>
<subtitle></subtitle>
<track>Security, Information Security</track>
<abstract>While in general it&#39;s a bad idea to add passwords and other secrets to your version control system, it&#39;s a reasonably common practice in the world of &quot;Infrastructure as Code&quot;. This talk will provide a brief introduction to Gnu Privacy Guard (gpg), and how it can be used to safely encrypt secrets only shared with a select audience.

Whether you choose to commit those secrets to your version control is up to you.</abstract>
<description>While in general it&#39;s a bad idea to add passwords and other secrets to your version control system, it&#39;s a reasonably common practice in the world of &quot;Infrastructure as Code&quot;. This talk will provide a brief introduction to Gnu Privacy Guard (gpg), and how it can be used to safely encrypt secrets only shared with a select audience.

Whether you choose to commit those secrets to your version control is up to you.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='726'>Michael Krotscheck</person>
</persons>
</event>
<event guid='XVM0scURi82j8i_J_MxD1A' id='526'>
<date>2018-11-10T05:30:00-08:00</date>
<start>13:30</start>
<duration>00:50</duration>
<room>Room 3183</room>
<type>Longer Talk</type>
<language></language>
<slug>526-everyday-use-of-gnu-guix</slug>
<title>Everyday Use of GNU Guix</title>
<subtitle></subtitle>
<track>Systems, sysadmin, ops, DevOps</track>
<abstract>VIDEO AVAILABLE: https://media.marusich.info/everyday-use-of-gnu-guix-chris-marusich-seagl-2018.webm

In this talk, I will introduce GNU Guix: a liberating, dependable, and
hackable package manager that follows the &quot;purely functional software
deployment model&quot; pioneered by Nix.

I will demonstrate some common use cases of Guix and show you how I
use it in my everyday life.  In addition, I will briefly explain the
basic idea behind the functional model and how it enables Guix to
provide useful features like the following:

- Transactional upgrades and roll-back of installed software.
- Unprivileged users can simultaneously install multiple versions of
  software.
- Transparently build from source or download pre-built binaries.
- Installed software is bootstrappable, trustable, and auditable all
  the way down to your compiler&#39;s compiler.
- Eliminates an entire class of &quot;works on my system&quot; type problems.

No prior knowledge of Guix, Nix, or the functional model is required.
When you leave this talk, I hope you will have a basic understanding
of what Guix is, how to use it, and why it will help make your life
brighter.
</abstract>
<description>VIDEO AVAILABLE: https://media.marusich.info/everyday-use-of-gnu-guix-chris-marusich-seagl-2018.webm

In this talk, I will introduce GNU Guix: a liberating, dependable, and
hackable package manager that follows the &quot;purely functional software
deployment model&quot; pioneered by Nix.

I will demonstrate some common use cases of Guix and show you how I
use it in my everyday life.  In addition, I will briefly explain the
basic idea behind the functional model and how it enables Guix to
provide useful features like the following:

- Transactional upgrades and roll-back of installed software.
- Unprivileged users can simultaneously install multiple versions of
  software.
- Transparently build from source or download pre-built binaries.
- Installed software is bootstrappable, trustable, and auditable all
  the way down to your compiler&#39;s compiler.
- Eliminates an entire class of &quot;works on my system&quot; type problems.

No prior knowledge of Guix, Nix, or the functional model is required.
When you leave this talk, I hope you will have a basic understanding
of what Guix is, how to use it, and why it will help make your life
brighter.
</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='762'>Chris Marusich</person>
</persons>
</event>
<event guid='4Xqy7nLeLLm9yXH1Juv9pQ' id='520'>
<date>2018-11-10T07:00:00-08:00</date>
<start>15:00</start>
<duration>00:50</duration>
<room>Room 3183</room>
<type>Longer Talk</type>
<language></language>
<slug>520-monitoring-and-alerting-knowing-the-unknown</slug>
<title>Monitoring and Alerting: Knowing the Unknown </title>
<subtitle></subtitle>
<track>Systems, sysadmin, ops, DevOps</track>
<abstract>Successful monitoring and alerting systems can detect all known points of failure and include alerts that will quickly escalate these problems to the appropriate parties. 

The meat of this talk will focus on addressing the problems in a system that have not been thought of specifically. What about the monsters lurking in the dark to strike when your team is out? How do you find those unknown unknowns and give your future self the tools to investigate them? We will look at the best tactics and technologies for finding those unforeseen problems and bringing them to light. 

First, I will discuss methods for discovering the most common points of failure--ideally before a product or feature goes live. Next I will briefly go over best practices for logging in a system. Next, we will discuss methods for detecting problems when all other techniques have failed. Finally I will do an overview of open source logging/alerting systems like Elasticsearch, Logstash, and Kibana (ELK) by Elastic. 

By the end of this talk attendees should:
Understand the key components of a thorough monitoring/alerting system
Gain some new techniques for catching and debugging the more elusive issues
Have some familiarity with open source logging/alerting technologies
</abstract>
<description>Successful monitoring and alerting systems can detect all known points of failure and include alerts that will quickly escalate these problems to the appropriate parties. 

The meat of this talk will focus on addressing the problems in a system that have not been thought of specifically. What about the monsters lurking in the dark to strike when your team is out? How do you find those unknown unknowns and give your future self the tools to investigate them? We will look at the best tactics and technologies for finding those unforeseen problems and bringing them to light. 

First, I will discuss methods for discovering the most common points of failure--ideally before a product or feature goes live. Next I will briefly go over best practices for logging in a system. Next, we will discuss methods for detecting problems when all other techniques have failed. Finally I will do an overview of open source logging/alerting systems like Elasticsearch, Logstash, and Kibana (ELK) by Elastic. 

By the end of this talk attendees should:
Understand the key components of a thorough monitoring/alerting system
Gain some new techniques for catching and debugging the more elusive issues
Have some familiarity with open source logging/alerting technologies
</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='746'>Amanda Sopkin</person>
</persons>
</event>
<event guid='D7qNPdNpeY1SmlwdnwZkHw' id='427'>
<date>2018-11-10T08:00:00-08:00</date>
<start>16:00</start>
<duration>00:20</duration>
<room>Room 3183</room>
<type>Shorter Talk</type>
<language></language>
<slug>427-the-impact-of-lossy-networks-on-tcp-performance</slug>
<title>The impact of lossy networks on TCP performance</title>
<subtitle></subtitle>
<track>Systems, sysadmin, ops, DevOps</track>
<abstract>TCP guarantees that bytes that go in one end of a network connection emerge at the other end in the same order.  This guarantee holds true even if the network is &quot;lossy&quot; or has jitter.  To do that, TCP has to be able to detect packets that arrive out of sequence or are lost.

In this presentation, I describe:

1. How to create a testbed to do network experiments using virtual machines.
2. How to simulate a lossy network
3. How to use system counters to measure packet loss rate.  This is how you translate the experiment into the real world.
4. Results performance degradation as a function of packet loss rate

The description, slides, software, and results will be posted somewhere so that the audience may download it.</abstract>
<description>TCP guarantees that bytes that go in one end of a network connection emerge at the other end in the same order.  This guarantee holds true even if the network is &quot;lossy&quot; or has jitter.  To do that, TCP has to be able to detect packets that arrive out of sequence or are lost.

In this presentation, I describe:

1. How to create a testbed to do network experiments using virtual machines.
2. How to simulate a lossy network
3. How to use system counters to measure packet loss rate.  This is how you translate the experiment into the real world.
4. Results performance degradation as a function of packet loss rate

The description, slides, software, and results will be posted somewhere so that the audience may download it.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='569'>Jeff Silverman</person>
</persons>
</event>
<event guid='7J_VM7p3HyctoXkU6hUcDw' id='422'>
<date>2018-11-10T08:30:00-08:00</date>
<start>16:30</start>
<duration>00:50</duration>
<room>Room 3183</room>
<type>Longer Talk</type>
<language></language>
<slug>422-the-tragedy-of-systemd</slug>
<title>The Tragedy of systemd</title>
<subtitle></subtitle>
<track>Something different</track>
<abstract>systemd is, to put it mildly, controversial. As a FreeBSD developer I decided I wanted to know why.

I delved into the history of bootstrap systems, and even the history of UNIX and other contemporary operating systems, to try and work out why something like systemd was seem as necessary, if not desirable. I also tried to work out why so many people found it so upsetting, annoying, or otherwise rage-inducing.

Join me on a journey through the bootstrap process, the history of init, the reasons why change can be scary, and the discovery of a part of your OS you may not even know existed.</abstract>
<description>systemd is, to put it mildly, controversial. As a FreeBSD developer I decided I wanted to know why.

I delved into the history of bootstrap systems, and even the history of UNIX and other contemporary operating systems, to try and work out why something like systemd was seem as necessary, if not desirable. I also tried to work out why so many people found it so upsetting, annoying, or otherwise rage-inducing.

Join me on a journey through the bootstrap process, the history of init, the reasons why change can be scary, and the discovery of a part of your OS you may not even know existed.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='564'>Benno Rice</person>
</persons>
</event>
</room>
<room name='Room 3180'>
<event guid='_4ENDsTxUhcsGB-9YVKErg' id='565'>
<date>2018-11-10T02:45:00-08:00</date>
<start>10:45</start>
<duration>00:50</duration>
<room>Room 3180</room>
<type>Longer Talk</type>
<language></language>
<slug>565-introduction-to-identity-management</slug>
<title>Introduction to Identity Management</title>
<subtitle></subtitle>
<track>Security, Information Security</track>
<abstract>You might be working on an open source project, and it seems that you will require people to sign up to use for your service. Seems easy enough, right? But, what happens when you start collecting user information? What are the implications? How do you keep the information secure? How do regulations like GDPR impact the service that you will be providing?

The top concern of many open source users is privacy, and making sure that their private and personal information and details do not get leaked, misused, or abused.

During this talk, you will learn what identity management is, what are some best practices around gathering and storing user information, and about a couple tools that you could find useful for making this job easy.

You will also learn a bit more about the General Data Protection Regulation of the European Union, which was implemented on May 25th. What information is covered under this regulation and what changes with it? Who are going to be affected?</abstract>
<description>You might be working on an open source project, and it seems that you will require people to sign up to use for your service. Seems easy enough, right? But, what happens when you start collecting user information? What are the implications? How do you keep the information secure? How do regulations like GDPR impact the service that you will be providing?

The top concern of many open source users is privacy, and making sure that their private and personal information and details do not get leaked, misused, or abused.

During this talk, you will learn what identity management is, what are some best practices around gathering and storing user information, and about a couple tools that you could find useful for making this job easy.

You will also learn a bit more about the General Data Protection Regulation of the European Union, which was implemented on May 25th. What information is covered under this regulation and what changes with it? Who are going to be affected?</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='333'>Jose Antonio Rey</person>
</persons>
</event>
<event guid='_J2js2dDnq1FSy_X8K9XNw' id='524'>
<date>2018-11-10T05:30:00-08:00</date>
<start>13:30</start>
<duration>00:50</duration>
<room>Room 3180</room>
<type>Longer Talk</type>
<language></language>
<slug>524-qubes-os-a-reasonably-secure-operating-system</slug>
<title>Qubes OS: A reasonably secure operating system</title>
<subtitle></subtitle>
<track>Security, Information Security</track>
<abstract>All operating systems, both free and non-free, are vulnerable to attacks from bad people. Just a simple action – opening random PDFs or Word/LibreOffice docs, running bash one-liners from Reddit, plugging in a cute USB stick shaped like a penguin you found on the sidewalk – and it could spell game over for your computer. Even if an attacker doesn’t gain root access to your computer, your files are still left to be damaged or stolen, and your online identity is exposed to abuse.

Qubes OS seeks to minimize that potential for damage.

Under Qubes, your machine runs a graphical desktop environment/window manager and all your other software runs in compartmentalized virtual machines, with limits on what hardware they access and how they communicate with one another. This is done in a usable manner, and you don’t have to be a virtual machine expert to get it set up!

In this talk, I will show you various features of Qubes. From opening random PDFs and Word/LibreOffice documents in disposable VMs, to managing anonymous identities, to keeping your password databases and GPG keys in offline compartmentalized virtual machines, and more! This is not a in-depth discussion of Qubes, and beginners are more than welcome!

Disclaimer: I’m not a Qubes developer. I’m just a fan. (nerdface emoji)

“If you&#39;re serious about security, Qubes OS is the best OS available today,” says famous whistleblower and activist Edward Snowden. “It&#39;s what I use, and free. Nobody does VM isolation better.”</abstract>
<description>All operating systems, both free and non-free, are vulnerable to attacks from bad people. Just a simple action – opening random PDFs or Word/LibreOffice docs, running bash one-liners from Reddit, plugging in a cute USB stick shaped like a penguin you found on the sidewalk – and it could spell game over for your computer. Even if an attacker doesn’t gain root access to your computer, your files are still left to be damaged or stolen, and your online identity is exposed to abuse.

Qubes OS seeks to minimize that potential for damage.

Under Qubes, your machine runs a graphical desktop environment/window manager and all your other software runs in compartmentalized virtual machines, with limits on what hardware they access and how they communicate with one another. This is done in a usable manner, and you don’t have to be a virtual machine expert to get it set up!

In this talk, I will show you various features of Qubes. From opening random PDFs and Word/LibreOffice documents in disposable VMs, to managing anonymous identities, to keeping your password databases and GPG keys in offline compartmentalized virtual machines, and more! This is not a in-depth discussion of Qubes, and beginners are more than welcome!

Disclaimer: I’m not a Qubes developer. I’m just a fan. (nerdface emoji)

“If you&#39;re serious about security, Qubes OS is the best OS available today,” says famous whistleblower and activist Edward Snowden. “It&#39;s what I use, and free. Nobody does VM isolation better.”</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='782'>Emmanuel Morales</person>
</persons>
</event>
<event guid='WekUzs85QsjXp_yBtNXGxw' id='465'>
<date>2018-11-10T07:00:00-08:00</date>
<start>15:00</start>
<duration>00:50</duration>
<room>Room 3180</room>
<type>Longer Talk</type>
<language></language>
<slug>465-client-side-video-editing-lessons-in-webassembly-and-ffmpeg</slug>
<title>Client Side Video Editing - Lessons in WebAssembly and FFmpeg</title>
<subtitle></subtitle>
<track>Programming</track>
<abstract>There&#39;s a lot of hype about the potentials of WebAssembly in the browser right now. It elicits hopes about everything from importing new functionalities into browser based applications, to the potential (and in some circles hoped for) death of JavaScript. This talk is for folks who are curious about the real world applications and limitations of WebAssembly as it exists today. Or perhaps for individuals who have written a thing or two using WebAssembly but are now wondering how to implement major features in more complex environments. I’d like to invite listeners to come follow along the journey of some intrepid developers as they integrate the popular FFmpeg multimedia framework into a React application. I’ll discuss the various complications in conversion, and why many WebAssembly ports are not currently as simple to use as an `npm install`. By the end of the talk, we’ll have created a road map for how to get started adding serious functionality to an application through WebAssembly. I’ll also cover how much time to budget for getting started, some potential pitfalls, and some tips and tricks for porting over large, complicated libraries. </abstract>
<description>There&#39;s a lot of hype about the potentials of WebAssembly in the browser right now. It elicits hopes about everything from importing new functionalities into browser based applications, to the potential (and in some circles hoped for) death of JavaScript. This talk is for folks who are curious about the real world applications and limitations of WebAssembly as it exists today. Or perhaps for individuals who have written a thing or two using WebAssembly but are now wondering how to implement major features in more complex environments. I’d like to invite listeners to come follow along the journey of some intrepid developers as they integrate the popular FFmpeg multimedia framework into a React application. I’ll discuss the various complications in conversion, and why many WebAssembly ports are not currently as simple to use as an `npm install`. By the end of the talk, we’ll have created a road map for how to get started adding serious functionality to an application through WebAssembly. I’ll also cover how much time to budget for getting started, some potential pitfalls, and some tips and tricks for porting over large, complicated libraries. </description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='757'>Megan Slater</person>
</persons>
</event>
<event guid='tNSpKyGYVoB1pEewrGrNRw' id='510'>
<date>2018-11-10T08:00:00-08:00</date>
<start>16:00</start>
<duration>00:20</duration>
<room>Room 3180</room>
<type>Shorter Talk</type>
<language></language>
<slug>510-take-back-your-data</slug>
<title>Take Back Your Data</title>
<subtitle></subtitle>
<track>Security, Information Security</track>
<abstract>[Slides!](https://andschwa.com/public/Take_Back_Your_Data.pdf)

This talk is aimed at those with a beginner to intermediate level of experience using technology, and falls under the category of (personal) &quot;Information Security.&quot;

In today&#39;s world, users have lost control over their personal data. A massive industry has been created by companies such as Google, Amazon, Facebook, Microsoft, and others where the product is _you_: your likes, dislikes, behaviors, interests, social circles, emails, instant messages, location, face, voice, medical problems, and anything else that is entered into a phone or computer. These companies have convinced people, often unknowingly, to give them their most personal (and valuable) data, which they sell to other companies for incredible profits. The users do not know who ends up with their data, nor how it is used, but fortunately users are becoming aware of this as a problem.

The first few minutes of this talk would cover what the problem is, and why users should care; however, I believe the majority of the audience will already want to protect their data. The rest of the talk will cover in some detail how to keep data in your own hands: switching to privacy-conscious alternatives for email, search, browsers, and messengers; blocking trackers and avoiding insecure connections; disabling operating system analytics and microphones; and using a password manager to compartmentalize login information. While this topic is incredibly broad, my talk would aim to cover the most impactful (and easiest) steps thoroughly, and follow it with references to more advanced steps. I would end with pointers to the EFF&#39;s Surveillance Self-Defense project and DuckDuckGo&#39;s privacy blog.

For steps such as installing and configuring uBlock Origin and HTTPS Everywhere in Firefox, I would do a quick demo, with a sidenote that the same can be done on Android, and that alternatives such as Privacy Badger and DuckDuckGo Privacy Essentials exist. For steps such as using a VPN, I would explain the what and why, with references to some known good providers, the caveats of their use, and the availability of WireGuard for better mobile VPN support. For steps such as switching to alternatives such as Posteo or ProtonMail, DuckDuckGo, and Signal I would only briefly cover their existence and alternatives, as a demo is not required.

The goals I would like to achieve with this talk are: (1) increase the audience&#39;s awareness of their potential data leaks; (2) enable some of the audience to take their first steps to keep their data safe; and (3) leave the audience with more tools to secure their personal information.</abstract>
<description>[Slides!](https://andschwa.com/public/Take_Back_Your_Data.pdf)

This talk is aimed at those with a beginner to intermediate level of experience using technology, and falls under the category of (personal) &quot;Information Security.&quot;

In today&#39;s world, users have lost control over their personal data. A massive industry has been created by companies such as Google, Amazon, Facebook, Microsoft, and others where the product is _you_: your likes, dislikes, behaviors, interests, social circles, emails, instant messages, location, face, voice, medical problems, and anything else that is entered into a phone or computer. These companies have convinced people, often unknowingly, to give them their most personal (and valuable) data, which they sell to other companies for incredible profits. The users do not know who ends up with their data, nor how it is used, but fortunately users are becoming aware of this as a problem.

The first few minutes of this talk would cover what the problem is, and why users should care; however, I believe the majority of the audience will already want to protect their data. The rest of the talk will cover in some detail how to keep data in your own hands: switching to privacy-conscious alternatives for email, search, browsers, and messengers; blocking trackers and avoiding insecure connections; disabling operating system analytics and microphones; and using a password manager to compartmentalize login information. While this topic is incredibly broad, my talk would aim to cover the most impactful (and easiest) steps thoroughly, and follow it with references to more advanced steps. I would end with pointers to the EFF&#39;s Surveillance Self-Defense project and DuckDuckGo&#39;s privacy blog.

For steps such as installing and configuring uBlock Origin and HTTPS Everywhere in Firefox, I would do a quick demo, with a sidenote that the same can be done on Android, and that alternatives such as Privacy Badger and DuckDuckGo Privacy Essentials exist. For steps such as using a VPN, I would explain the what and why, with references to some known good providers, the caveats of their use, and the availability of WireGuard for better mobile VPN support. For steps such as switching to alternatives such as Posteo or ProtonMail, DuckDuckGo, and Signal I would only briefly cover their existence and alternatives, as a demo is not required.

The goals I would like to achieve with this talk are: (1) increase the audience&#39;s awareness of their potential data leaks; (2) enable some of the audience to take their first steps to keep their data safe; and (3) leave the audience with more tools to secure their personal information.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='430'>Andy Schwartzmeyer</person>
</persons>
</event>
<event guid='9vpjeJImMBuvPMWYsl99PQ' id='523'>
<date>2018-11-10T08:30:00-08:00</date>
<start>16:30</start>
<duration>00:50</duration>
<room>Room 3180</room>
<type>Longer Talk</type>
<language></language>
<slug>523-robust-image-resizing</slug>
<title>Robust image resizing</title>
<subtitle></subtitle>
<track>Programming</track>
<abstract>If your application handles images you&#39;ve probably written something to crop and resize them. It&#39;s simple enough to execute ImageMagick with the appropriate flags, but is that sufficient?

In this talk we will:

* Explore common pitfalls of naive image resizing implementations
    * Native binary versioning differences (which version of ImageMagick am I using?)
    * Uncapped RAM usage
    * EXIF orientation issues
    * ICC color profile support
* Compare performance of different image processing tools
    * ImageMagick
    * GraphicsMagick
    * VIPS
* Create an AWS Lambda image resize function
    * Lets us bound RAM utilization per request
    * Includes known versions of native dependencies</abstract>
<description>If your application handles images you&#39;ve probably written something to crop and resize them. It&#39;s simple enough to execute ImageMagick with the appropriate flags, but is that sufficient?

In this talk we will:

* Explore common pitfalls of naive image resizing implementations
    * Native binary versioning differences (which version of ImageMagick am I using?)
    * Uncapped RAM usage
    * EXIF orientation issues
    * ICC color profile support
* Compare performance of different image processing tools
    * ImageMagick
    * GraphicsMagick
    * VIPS
* Create an AWS Lambda image resize function
    * Lets us bound RAM utilization per request
    * Includes known versions of native dependencies</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='615'>James Cooper</person>
</persons>
</event>
</room>
<room name='Expo Hall'>
<event guid='l6OBen0B2AI-7-4yY71fGQ' id='584'>
<date>2018-11-10T06:20:00-08:00</date>
<start>14:20</start>
<duration>00:40</duration>
<room>Expo Hall</room>
<type>TeaGL Tea Time</type>
<language></language>
<slug>584-teagl-tea-time-at-seagl</slug>
<title>TeaGL: Tea Time at SeaGL</title>
<subtitle></subtitle>
<track></track>
<abstract>This year we&#39;re pleased to introduce TeaGL, the SeaGL Tea Swap!

If there&#39;s any tea you particularly enjoy, bring it along to SeaGL on Saturday and bring enough for a few other people. Share your tea with the SeaGL community and try some interesting teas brought by others.

Black, green, white, herbal, whatever! All teas are welcome at TeaGL.

The sharing happens all day, so bring your tea to the expo hall in the morning on Saturday. We&#39;ve also dedicated the Saturday afternoon break as Tea Time so all tea lovers (or simply tea curious) can get together in the expo hall, visit with our sponsors, and have a nice cuppa.</abstract>
<description>This year we&#39;re pleased to introduce TeaGL, the SeaGL Tea Swap!

If there&#39;s any tea you particularly enjoy, bring it along to SeaGL on Saturday and bring enough for a few other people. Share your tea with the SeaGL community and try some interesting teas brought by others.

Black, green, white, herbal, whatever! All teas are welcome at TeaGL.

The sharing happens all day, so bring your tea to the expo hall in the morning on Saturday. We&#39;ve also dedicated the Saturday afternoon break as Tea Time so all tea lovers (or simply tea curious) can get together in the expo hall, visit with our sponsors, and have a nice cuppa.</description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='189'>expohall</person>
</persons>
</event>
</room>
<room name='Silver Cloud Inn'>
<event guid='Ipk6gSrJf7jmGZKrBX05cg' id='586'>
<date>2018-11-10T10:00:00-08:00</date>
<start>18:00</start>
<duration>04:00</duration>
<room>Silver Cloud Inn</room>
<type>Evening Reception</type>
<language></language>
<slug>586-conference-reception</slug>
<title>Conference Reception</title>
<subtitle>At the Silver Cloud</subtitle>
<track></track>
<abstract>The conference reception will include lightning talks, snacks, drinks -- both alcoholic and non-alcoholic and networking and relaxing with your fellow conference attendees. There will be a few door prizes and some gushing about our amazing volunteers. This event is all-ages, although consumers of alcoholic beverages should bring ID.  </abstract>
<description>The conference reception will include lightning talks, snacks, drinks -- both alcoholic and non-alcoholic and networking and relaxing with your fellow conference attendees. There will be a few door prizes and some gushing about our amazing volunteers. This event is all-ages, although consumers of alcoholic beverages should bring ID.  </description>
<recording>
<license />
<optout>false</optout>
</recording>
<persons>
<person id='9'>Adam Monsen</person>
</persons>
</event>
</room>
</day>
</schedule>
