Practice track

How do you get a project to work? Show us how to write the script, run the business, debug the code, and raise the funding. Share your most effective projects.
From the beginner to the advanced level, we’re looking for tips, tutorials, best practices, and collaborative development sessions. Share what you know about your favorite tools, programming languages, development techniques, and business practices. Example topics from the past include Learn Tech Management in 45 Minutes and Hands-on Virtualization with Ganeti.

Proposals for this track

* 100 Days of Creativity

People often claim you can't schedule creativity, or blithely claim anyone can learn to be creative, without actually consistently doing it themselves. In this talk, Aaron Parecki will describe how (and why) he decided to take on not one, but two 100-day projects: creating 100 pieces of music, as well as making 100 IndieWeb improvements for 100 days in a row. Aaron will show how he was able to stay focused, prioritize, as well as the challenges he encountered along the way.
Practice 2017-03-31 23:17:53 +0000
Aaron Parecki

* A roundtable on leadership and management

Last year we had a great unsession on leadership and management. I would love to have that conversation again. As we all grow and experiment with leadership, how can we best learn from each other and raise each other up.
Practice 2017-03-30 20:13:48 +0000
Trevor Lalish-Menagh

* Advanced filtering on your API endpoints with SQLAlchemy and FIQL

How robust is the filtering of your API? Let's delve into how a string of text can become a set of instructions to the API on exactly what records should be returned.
Practice 2017-03-15 17:08:07 +0000
Serge Domkowski

* Ansible 101

Wanna use an easy-to-learn automation platform? Of course you do. And I say "automation platform" rather than "configuration management" because Ansible isn't just about configuration.
Practice 2017-03-30 14:53:01 +0000
Josh Berkus

* Be(come) a Mentor! Help Others Succeed!

There is always something new to learn in technology. We are always experts in one and beginners in another field. In order to learn successfully it’s important to have a mentor but it’s equally important to learn how to be a good mentor.
Practice 2017-03-22 11:07:03 +0000
Anna Ossowski

* Build a real-time data pipeline with Apache Kafka

Get your hands dirty with Apache Kafka building a simplistic streaming application that ingests data, performs transformations on it, and exposes it through APIs
Practice 2017-04-08 20:01:11 +0000
michael schoenfelder

* Coding as a Filthy Casual

I’ve been coding with Python since I was 6. I don’t take it very seriously, and I don’t do amazing things with it. And that’s an important perspective to have, to not get too caught up with work.
Practice 2017-04-06 23:13:43 +0000
Sebastian Waterhouse

* Contacts to Connections: CRM funneling for FLOSS projects

As an organization or project grows, it often becomes hard to keep track of the various community members, donors, and volunteers who are connected. The answer to this is the often used sales tool, a contact relationship manager (CRM). Lets look at a non-sales focused tool, CiviCRM and see how it can be combined with Discourse and various Drupal forms to create a contact funnel.
Practice 2017-03-27 21:48:19 +0000
Wm Salt Hale

* Containerized Clustered Postgres

Interested in clustered or sharded PostgreSQL, but daunted by challenges of testing and deployment for multiple PostgreSQL nodes? Container infrastructure tools will make things much easier for you, and we'll show you how.
Practice 2017-03-30 15:30:45 +0000
Josh Berkus

* Design Automata: The DevOps Approach To User Interface Design

How-To-Create rapid, reusable, web-based User Interface design prototypes with Open Source tools and Creative Commons licensed assets
Practice 2017-03-31 11:48:31 +0000
Skyler Reed

* Effective Presentations Using Applied Logical Fallacies

For many novice speakers, especially technical speakers, the hardest part of presenting is not figuring out what to put in but what to leave out. But what works for an academic paper doesn't work in a 10 minute presentation, and you risk boring your audience long before you manage to convince them of anything. This talk is intended to be a fun (and perhaps a bit silly) look at the science and the art of being convincing. I will cover how logical fallacies are used in propaganda, lying, and how you can use them to get your point across quickly. And don't worry, we'll also talk about how to do this ethically!
Practice 2017-04-10 04:52:02 +0000
Terri Oda

* Failing Well

It's a fact of life--software breaks. But all is not doom and gloom. How we detect and handle errors drastically impacts the quality of both our systems and our lives. Knowing what to track, when to page, and how to find system weaknesses is critical.
Practice 2017-03-31 17:30:23 +0000
Jason Clark

* Falsehoods Programmers Believe About (Human) Languages - Common pitfalls in interface translation

Making open source software translatable is easy, right? You just take out all the strings, put them in a translation file in your git repository, and start accepting pull requests. Simple! Well, not so fast. There’s a lot more to this than meets the eye, and if you take a quick and dirty approach you’ll end up with upset translators, complaints from users, and mysteries like “what is ١٢٬٣٤٥٬٦٧٨ and why does my code want to parse that as a number?”. Thankfully, there are open source resources and libraries that can take care of these things for you.
Practice 2017-04-01 04:17:21 +0000
Roan Kattouw

* Flourishing FLOSS: Making Your Project Successful

You maintain an Open Source project but your project isn’t succeeding in the ways you want? In this talk we’ll explore the different components of an OS project & how they work together. Afterwards you’ll be well-equipped with a ideas & strategies for growing, and nourishing your OS project.
Practice 2017-03-22 11:10:58 +0000
Anna Ossowski

* Generating a static web app with GitLab Pages and securing it using OWASP

The talk will consist mainly on how to deploy a static website properly (both, in terms of usability and security) with a version control system. The audience might learn which files should be version controlled and which type of files should not be placed in the version control repository. Experience with a version control system is recommended but not mandatory.
Practice 2017-04-02 04:06:20 +0000
Shrimadhav U K

* Getting to 0.1.0: Build Management for Your Personal Project

There's a lot that goes into a great open-source repository besides the code. How do you make your project easy for a newcomer to understand? What about easy to install, to test, and to contribute to? Big projects have whole teams dedicated to building robust releases, but you're just a solo dev with a dream. Great news! You don't have to put your project on hold to study build engineering. Come learn a few simple tools that will put some professional polish on your personal project.
Practice 2017-03-27 11:23:14 +0000
Finn Ellis

* Habitat Workshop

An awesome workshop showing off how Habitat solves common application deployment and management issues.
Practice 2017-03-28 23:30:43 +0000
Eric Maxwell

* How Open Source Audiovisual Tools Help Archivists (And You Too!)

This talk will hype several "homemade" open source video tools specific to the audiovisual digital preservation field built on broadly-used existing open source tools such as FFmpeg and mediainfo. We will discuss how these communities have grown to benefit the field of archiving and how we've grown to be able to give back to the main communities.
Practice 2017-03-27 19:25:32 +0000
Ashley Blewer, Andrew Weaver

* How to Prototype and User Test: A Workshop

Prototype early and test often! Learn how to brainstorm an idea, create a simple paper prototype, and conduct some guerilla user tests.
Practice 2017-03-28 22:27:45 +0000
morgan miller

* In pursuit of happy coding

This talk is about text editors, IDEs and their evolution through the time. What does the modern day programmer prefer, the IDEs or the text editors? Also we will try to settle the war b/w 2 of the longest-lived applications, vi & emacs. Also you will hear about my favourite text editor.
Practice 2017-04-09 18:03:45 +0000
Rishi Jain

* Introduction to Infrastructure Automation

Learn how to devops successfully while automating your infrastructure.
Practice 2017-04-10 05:13:17 +0000
Jennifer Davis

* Introduction to Julia Programming

Would you like to learn a new programming language and some basketball analytics? Julia is the latest in a long line of programming languages designed for scientific computing. In Part 1 of this introduction, I'll go over the basic concepts of scientific computing and Julia. In Part 2, I'll show you how to apply these concepts and Julia to basketball analytics, using data freely available on the web.
Practice 2017-03-21 01:31:36 +0000
M Edward Borasky

* Keepassing your credentials synced and under control

Do you use the same few passwords over and over? Is there a piece of paper with hard-to-remember ones somewhere? How about a file that lives on five different devices and is never up-to-date? Even the most secure passwords can be broken with a $5 wrench. Long forgotten websites are frequently compromised. Files can be stored in The Cloud, but is that really where such sensitive data should be?
Practice 2017-03-27 21:41:52 +0000
Wm Salt Hale

* Keeping Application Support Human

You’ve built it, now you need to keep your users happy. Doing this without sacrificing your own happiness, and those of your teammates, takes planning. The intersection of monitoring and bother-the-humans is central to team happiness. We will go over this intersection and provide ways to navigate this humanely, and make your users happy.
Practice 2017-03-28 14:42:47 +0000
Jamie Riedesel

* Kubernetes 101

So you’ve containerized your application, and now you want to deploy it scalably across a cluster. Maybe you’ve looked at Kubernetes but you can’t figure out how to use it. In one short session, we’ll teach you enough to get started.
Practice 2017-03-30 14:47:20 +0000
Josh Berkus

* Learn to Type at 250 WPM Using Open Source Tools

The Open Steno Project is dedicated to the creation of open source software, hardware, and educational materials to bring machine stenography to the masses! Want to be a speed demon typist like the court reporters you see in movies? Now you can!
Practice 2017-03-31 23:50:35 +0000
Josh Lifton

* Making your app Password-Free

Learn how to make security easy by eliminating passwords for your app entirely with magic link based authentication!
Practice 2017-03-31 16:30:16 +0000
Eric Mann

* Mapbox GL: A modern, robust, open source map renderer on web and mobile

Come learn about the open source Mapbox GL native and web map renderer, how it is designed, the open specs on which it is built, and how to use it in your projects.
Practice 2017-03-28 18:02:52 +0000
Justin Miller

* microWorking Open Workshop (microWOW): Launch Your Open Project!

Getting a project off the ground is daunting, and most of us aren’t trained in project management and community building skills. At this session, Mozilla Science Lab will help you take your project from idea to reality and give you technical, project management, and community building skills to kickstart your work.
Practice 2017-04-09 18:12:08 +0000
Danielle Robinson

* Modern Keyboarding: How to Design, Build, and Hack

See how easy and cheap it is to design and build your own ergonomic keyboard with open hardware and software.
Practice 2017-03-31 02:34:15 +0000
Micah Elliott

* No Coding Skills Required: How to Contribute to Open Source in Other Ways

You always wanted to contribute to Open Source but you don’t know how to code (yet)? Or maybe you can but you simply want to contribute in other ways? The goal of this talk is to explore how you can use your skills and contribute to Open Source in ways that don’t involve writing code.
Practice 2017-03-22 11:16:33 +0000
Anna Ossowski

* Nothing is better than the Optional type

Optional should be prohibited: it is an overreaction to a problem that already has an elegant solution.
Practice 2017-04-01 05:10:32 +0000
Michael Ernst

* Refocus: The One Stop Shop For Monitoring System Health

In this talk we will share why we decided create Refocus: our internally developed, self-service tool for monitoring computing systems. We’ll cover how it is extensible, describe its tech stack of open source components including Node.js, how it differs from other monitoring tools on the market, and how data is modeled in Refocus.
Practice 2017-03-06 18:48:13 +0000
anny he

* Reproducible Builds: Trust Building through Best Practices

Reproducible builds introduces best practices enabling bit-by-bit identical software builds. With identical builds, independent verification becomes achievable by individual developers, who are then able to publicly share those verifications to the community at large.
Practice 2017-03-31 23:02:41 +0000
Vagrant Cascadian

* Running Just the Test Cases You Need

When you're writing software, fast feedback is key. The less you have to wait for your tests to run, the sooner you'll know whether or not your code is correct. Ruby's two main test frameworks (minitest and RSpec) support several different techniques for testing only what you need for what you're currently working on, and nothing more. In this talk, we'll go through several of these practices for both frameworks, each more automated and awesome than the last.
Practice 2017-04-10 01:14:36 +0000
Ian Dees

* self.care(): Optimizing Happiness for People In Tech

People in tech are prone to working too much and all the time, for their day jobs and volunteer projects. We work nights, weekends. We neglect family, friends and hobbies. If you want to learn about SELF care and how to practice it continuously, this talk is for you!
Practice 2017-03-22 11:19:06 +0000
Anna Ossowski

* The end of array bounds errors

Stay in bounds: never suffer an array indexing error again, with tooling that allows you to express and enforce specifications (contracts).
Practice 2017-04-01 05:13:04 +0000
Michael Ernst

* The Future of the Web is Low-Tech

Learn about the unexpected use cases of your online content and the technologies available to help expand the breadth of its distribution.
Practice 2017-03-31 16:51:36 +0000
Eric Mann

* The Space Between Teams

It starts small--a manageable codebase, a tight-knit team, everyone headed the same direction. But with success comes growth, and soon it’s hard to keep track of all those teams. Problems emerge in the gaps between what one team provides and another expects. Let’s look at how New Relic has faced these growing pains.
Practice 2017-03-31 17:28:37 +0000
Jason Clark

* Translating Ancient Texts: The Nginx Parser

Find out what it took to get Certbot's Nginx parser working, which is an... exciting... tale at the intersection of programming language theory, regular expressions, formal grammars, and the utter lack of these in a fine, aged codebase.
Practice 2017-04-01 01:43:14 +0000
Erica Portnoy

* UDP, DIY, IoT, and U!

Why does the Internet of Things seem so foreign to us as web developers? What protocol do my lightbulbs use? Why does it require a $4000 investment? Learn how to use open standards like Multicast with open hardware like Arduino and familiar languages to integrate with the Things around us.
Practice 2017-04-10 06:21:13 +0000
Michael Schoonmaker

* Understanding Your Organization With Code Archaeology

Come on an expedition into the dark corners of your project's code basement, deep in that directory everyone avoids because it's filled with spiders and booby traps and two mysterious old versions of JQuery from 2012 that no one even remembers using. Instead of getting exasperated by variables called data and poor command-query separation, learn to use code archaeology as a way to understand your organization better.
Practice 2017-04-10 06:05:33 +0000
Liss McCabe

* What is a Bug?: Imagination and Failure in Complex Systems

When working in complex systems, bugs become more than just one-line errors: they become stories and histories, manifestations of time and space. How do you deal with failure - not as an unanticipated event - but as a natural and expected outcome?
Practice 2017-03-26 02:46:10 +0000
Bonnie Eisenman

* Where Am I? Build Your Own Open-Source Geocoder!

At Hack Oregon, we often need to geocode or reverse-geocode - translate an address to latitude and longitude or vice versa. There are public APIs for this, but most of them have rate limits or intellectual property constraints that impact their usefulness. So we built our own, using the Census Bureau TIGER/Line® shapefiles, PostGIS Tiger geocoder, and Docker. I'll go through the process, from downloading the data and filtering to deploying the final image.
Practice 2017-04-01 00:18:41 +0000
M Edward Borasky

* You Suck at Remote Working

Everyone is a remote worker unless you speak to nobody outside your own 4 walls.
Practice 2017-04-05 17:36:31 +0000
Jeff Holt

* zulipbot: Solving GitHub workflow limitations and more

On a large open source project like Zulip, we were starting to see major productivity problems for the project, caused by longstanding limitations in GitHub’s permissions and notifications systems. Learn how we created zulipbot, an open source GitHub workflow bot written in Node.js, that patches these limitations in GitHub’s model and how you can use it to manage your own GitHub projects and organizations.
Practice 2017-03-31 07:51:20 +0000
Joshua Pan