The number of WordCamps (volunteer-organized WordPress conferences) has nearly doubled since 2011. Find out how we’ve improved the WordCamp attendee experience while at the same time improving the experience of our volunteer organizers, through a combination of institutional support and community involvement, plus what problems we hope to solve in the years to come.

Imagine a place where Ruby meets Music, its called MAGIC LAND.
Music is not a lot different from programming. In this talk we will see how.
I will talk about this amazing piece of open-source software called SonicPi. SonicPi is a new kind of musical instrument. Think about it, you write code to make music. And it gets even better, code is written in a ruby DSL. Also I will talk about notes, samples, synth and other musical things SonicPi lets us do it.
Don't worry if do not get these terms. When I started, I did not either. But at the end of the talk, you will know how to make music.

Making your website accessible for users with disabilities isn’t flashy, but it’s necessary. Websites built for universal access benefit all users, not just users with a disability. They’re also more SEO friendly, and are generally built to be more user friendly. From generating increased revenue, to providing better access to services, the benefits of developing accessible websites are real and measurable.

The era of "general-purpose programming languages" is nearing its end. The cost of building a programming language and integrating it with other languages has fallen significantly, but our approach to building programming languages has not changed substantially in decades. The consequence is an enormous financial cost paid, in terms of real dollars as well as in hours of programmer effort. The solution is not yet another "better" general-purpose language but rather a platform that prioritizes a collaborating assortment of specialized languages that together perform well in a specific context: an ensemble of programming languages.

ClojureScript is a fun, productive language that compiles to JavaScript. Though its syntax is a different its functional immutable nature lets you be productive when developing complex web applications.

To be successful in photography and API design, you must first understand the constraints of the medium, both technical and non-technical. Learning how to work within constraints and finding your own style are critical to being a successful photographer and API designer.

A modern application has a lot of passwords and keys floating around. Encryption keys, database passwords, and API credentials; often typed in to text files and forgotten. Fortunately a new wave of tools are emerging to help manage, update, and audit these secrets. Come learn how to avoid being the next TechCrunch headline.

A “black box” test sends input to your program and tests the output. But a networked application has I/O at two ends: the API and the network. A black box test can’t validate it, especially its error-handling. But a “black pipe” test can! Such a test talks to your code over the network at the same time as it tests the API. I’ll present a handy library for Black Pipe tests of MongoDB apps and advise you when to use it. I want you to write a library like it for your favorite DB, so we can all test our programs better!

I transitioned from writing software in imperative, object-oriented (OO) programming languages to doing functional programming (FP) full-time, and you can do it, too! In this talk, I'll make a case for FP in the corporate development environment, cover some cases where common FP language features substitute for design patterns and OOP structure, and provide some examples of translating traditional OO design patterns into functional code.

One measure of health in open source projects is a growing contributor community. In 1975, Fred Brooks published The Mythical Man-Month, in which he noted that adding manpower to projects slows the release of software. If Brooks’ Law holds true, are growing open source projects doomed to fail? Or can we reconcile the ideas that more contributors are both beneficial and detrimental?

If you're dying to stick it to the man, or just looking to make extra money on the side, this talk is for you. We'll explore ways you can leverage the most popular CMS on the planet to start or grow an online business.

Prototypes are problem-solving tools. They help your team pinpoint problems with your product more clearly and earlier in the design and development process.
Building your prototype in code has several advantages over wireframes, mockups, paper prototypes, or even InVison prototypes. They easily allow you to iterate through different solutions before you find what works.

Built mostly in Java, Cassandra is a powerful open source NoSQL database, based on the model of a partitioned row store. This talk will provide general use cases for Cassandra, explain Cassandra’s architecture and its benefits, feature tools for accessing and administering Cassandra, and demonstrate how to integrate Cassandra with existing Java applications.

Depending on what sector we come from, the words “community organizing/management” might invoke images of canvassing with flyers and clipboards or moderating online forums and high-fiving code contributors. Regardless, when we coordinate volunteers, email program participants, and chat with community members via social media, we are ultimately organizing and developing community. Whether your supporters are contributing content, volunteering, participating in forum discussions, or engaging on social media, you can play an important community management role.

The free/open source software movement is over thirty years old, and has gone through a number of changes in that time, spawning projects large and small (including OpenConferenceWare, which runs this site!). If Free Software is the first generation, and Open Source is the second, current efforts toward creating an inclusive and sustainable world make up a third generation that we can start to form into a broader plan.

Long ago, in the early ages of computerdom, a language was formed from the primordial fires of Tartarus. The language would bind the spells of textual strings and forever control them: The Regular Expression.
How about an interactive workshop for acolytes who wish to command this strong magic?

Okay, so now it's time for the really fun part: We've removed the duplicate rows from the log, now we need to only show the rows that contain something that *looks like* an IP address.
To do this we'll use a search pattern. These patterns are written in Regular Expressions or RegEx. Like so many other tools in Linux they're immensely powerful but either don't work at all or go haywire with a single incorrect character. Let's write one that looks for a cluster of numbers, then a period, then another cluster of numbers.

Getting people to agree to things is sometimes hard. But implementing consensus with computers is harder. And distributed consensus with computers is ​_really_​ hard. How do we do it? One answer: the distributed consensus algorithm known as _Raft_.

I've been making a documentary film about accessibility for almost a year now. What I've realized is that film is fundamentally hard to access. Let's talk about what that means for culture, creators, and consumers.

Good engineers write good code, but the best engineers raise the skills of their junior colleagues, too. If you're a senior engineer, you must learn to mentor new hires. Besides, great mentors are critical to the careers of women and minorities in tech. I have failed at mentoring, then succeeded. Learn from me and march to mentorship triumph.

As open source software developers and community maintainers, fostering an inclusive community and giving contributors the tools they need to succeed is incredibly important, but not always easy. This is especially true when you have a complex distributed codebase and contributors without a background in software development. Through our attempts to enable our contributors we’ve encountered many challenges and iterated on many solutions with varying levels of success. Our hope is that by sharing the stories of our successes and failures, as well as the lessons we learned, we can help other community maintainers lower the barrier to entry for contributors.

If you're caught in a job or a project where you simply can't convince your colleagues or organization to treat you with respect, it often feels like you're in a maze with no clear way out. (Un)fortunately, you're not alone. There's no universal solution to navigating a toxic or abusive workplace, but there's power in finding a theoretical context, sharing our stories, and learning from each other. Come learn about the options of voice, loyalty, and exit, and hear the stories of others who have had to make hard choices.

Julia Nguyen leads if me, an app to share mental health experiences with loved ones. In doing so, she has explored her insecurities with mental illness, learned how to engage diverse contributors, and developed better software practices with Ruby on Rails and JavaScript. She’ll share the lessons she has learned from transforming a passion project into an open source project.
Inclusion takes on many forms in an open source project, including supporting contributors from all types of backgrounds, being empathetic to their project goals, and trusting them to take lead. As a mental health project, if me must also accommodate its contributors who face their own mental health challenges. All open source projects should do the same. Managing people is just as important as managing technical contributions in software.

Ever had an open source project and wanted to figure out how to get funding for it? In this talk we'll discuss different funding methods, what angel's look for in open source companies, and potential funding options in Portland.

Money is a common worry, inside the open source community and out, but we often feel uncomfortable discussing it. We’ll talk about why that is and how our social norms around money impact who participates in open source and how they do so. The heart of this talk will be a series of case studies based on interviews with community members covering various economic models for open source, including worker co-ops, grant-funded and academic projects, for-profit business models, crowdfunding campaigns, and all-volunteer projects. We’ll explore the sustainability of each model as well as how they deal with the social pressures outlined in the first part of the talk.

I gave a similar talk at LibrePlanet 2015 and would like to reprise it with updated information on the current state of FOSS for Cultural Heritage. I'd like to discuss how to get involved with FOSS projects that are related to the Cultural Heritage space and what kinds of projects currently exist. I'll end the session by talking about what kinds of projects could and should exist as well as community building and awareness in FOSS for Cultural Heritage Organizations.

Large commercial websites rely on the "network effect" to keep users from exploring alternatives. Putting contributions under an open license can break this effect. This talk will explore hacks to give users control over the content they contribute to commercial websites.

Open source has moved from experimental to mainstream in the past 10 years, but has definitely changed the landscape in the last 15 years. Because of that, we have a few generations of people within the broader ecosystem, and they probably have no idea that all of these communities exist, much less the fact that there's a whole ocean of a open source technology industry out there.

Contract and collaboration testing are the future of testing microservices, but in many languages, few or no tools are available to facilitate this process. Rambo is a new Ruby tool that generates contract tests from API documentation.

Most developer have worked with relational DBs like MySQL or PostgreSQL, but for many use cases they aren't the best option. Graph databases have a simpler, more powerful model for handling complex related data. In this talk we'll work with Neo4j to explore the advantages of graph DBs. Attendees will learn the graph model, how graph DBs let you do things that are practically impossible with SQL, and the best options for integrating one into your application -- new or existing.

Bring your stiff shoulders, sore wrists, tight hips, aching back, and busy mind and explore how Yoga can help bring you relief, rest, and focus. Leave with ideas on how to incorporate 5 minutes of practice into your busy day to care for your body and mind.
This class is accessible to all levels of ability.

When you run an online service, you always hope you won't have to deal with abuse. But it's inevitable, and many situations aren't clear-cut as you might wish. Some examples of abuse are obvious, but this talk explores the grey areas and messy questions: what content should you consider a violation of your Terms of Service, and how do you handle it when it's reported to you?

Like many young Muggles of the early 00's, I dreamed of receiving my Hogwarts letter. But re-reading the series with an eye toward learning lessons about creating a positive learning environment, it's clear that Hogwarts School of Witchcraft and Wizardry contains some unfortunate lessons in what NOT to do. When it comes to crafting an environment that encourages asking questions, fosters cooperation, and ensuring the success of its developers -- I mean, wizards -- we can learn a lot from the mistakes of the Hogwarts faculty. In this magical talk, you'll learn how to be a better mentor and help your workplace become a place where your junior developers can flourish.

Running a tech non-profit, especially in open source, is a lot of work. So much work, in fact, that in my six years as part of Wikimedia Philippines, I will admit to one of my biggest secrets: I have run my organization into the ground. Luckily for us, however, we've been really fortunate to be able to rebuild the organization from the ground up. Here's some of the lessons we've learned over the course of that process, and how you can avoid making the mistakes we made as you either form or build your own organization.

Protocol design is about tradeoffs, and if you pick the wrong tradeoff, you may regret it for a very long time. Any time you have one part of a program talk to another part of a program, you have a protocol. In this talk, we'll dig into the details of how WebSockets work and what decisions the designers made.

I intend to introduce Neural Networks as a very simple concept. This can be achieved with Google's newest open-source library in Python called Tensorflow. I want to dispel the myth that Neural Networks are hard to understand and implement. I also want to introduce the current state of Neural Networks as they are continually changing the landscape of visual recognition and natural language processing.

Replacing legacy code is a challenge on every front, from managing stakeholder expectations to tackling the technical work. Thoughtful preparation and a pocket full of tools can make the experience a little less painful.

Getting people started is easy. Sustaining people through is not. Let's talk about the ways the Open Source community can help people beyond the beginning steps, in the context of public library programming and staff development.

"The tests pass on my machine." "Wait, it was working a minute ago." "Oh, that test is flaky sometimes." Unpredictable tests are toxic for our productivity. They undermine confidence in our code. They encourage us to wallpaper over the immediate problem, rather than fixing the underlying cause.
In this presentation, we'll talk about a chief cause of flaky tests: leaky global state.

Machine learning and especially convolutional neural networks are on the rise. With the sheer limitless amount of data and cheap computation power, neural networks can now solve problems which have been fairly complex in the past. Cole and Hannes will demonstrate how you implement a convolutional neural network with a few lines of Python code to classify images, recognize voices or understand texts.

Open Source Foundations start in a variety of ways. Often they begin organically to fill a need after a person or small group aims to "scratch an itch" and then needs an organization behind it. Some of these organizations can appear to happen out of nowhere. Other organizations are birthed from careful planning and intentional formation. There are still others that are a combination of the two. Different methods can create powerful impact, but some of the challenges are different. This talk with compare and contrast the ways foundations are formed and the advantages of different approaches.

Interested in becoming a contributor to open source projects? In this talk, I'm going to show you the technical aspects involved in working with git and GitHub to prepare and submit contributions, and then working with project maintainers to get them merged.

When the engineering team at MongoDB pushes a commit, we have to test it on every platform and configuration that we support. This adds up to hundreds of hours of tests for each commit. In order to make this process efficient, we built Evergreen, an in-house continuous integration tool and leveraged new technologies, such as Go and dynamic host allocation, to streamline the process to minutes. This talk will show you how we parallelize our tests and how you can apply these techniques to your next project!

Several years ago, there was an architectural paradigm shift toward "micro-services" and away from the "monolithic" application stack. A micro-service architecture comes with scalability and replaceability, among others, but is it worth the time and effort to build it? Is it worth debugging API calls gone wrong? If you're thinking about making this move, have already started, or have already deployed to production, this is an ideal venue to see what others are doing with micro-services.

The lure of asynchronous programming is that it will make your application run faster and your code simpler to reason about. So we have our wonderfully efficient non-blocking app; how do we check that it's delivering the goods performance wise?

Many people identify their gender in many ways. So why do we build systems to capture accurate gender information with a dropdown that only lists “male” and “female”?
This talk covers why you might want to consider alternative ways of selecting gender for your users, a brief overview of the current best practices, the case study of the decisions I made when creating my open source project Gender Amender (a library you can help work on right now!), and why more work needs to be done. I'd also like to facilitate a short discussion during the time slot, so that we can share varied perspectives on how to improve the entire process of gender collection, and articulate the lenses through which we can and should view gender (e.g. “what are some other data structures we could use to capture gender identity information?”).

Open hardware is just getting off the ground. What is the path from where we are today to a world in which open hardware is as ubiquitous as open software? This talk lays out a roadmap, recounts the milestones already achieved, describes the milestones that are within sight, and predicts the milestones yet to come.

This talk will cover the fascinating things happening in the open source diabetes tech (D Tech) space (think the Glucosio Project and Nightscout Project) and will emphasize the importance of open source in improving the health outcomes of people with diabetes.

This talk will discuss how a closed loop in education—across all grade levels and disciplines—contributes to the stagnation of a profession and how an open source approach and platform is necessary to break the inward cycle of our current pedagogy. It will also show examples of collaboration in the creation of curricula leading to the generation of new, innovative pedagogy and review current methods for educators to open source and call for new methods and platforms to aid educators.

The state of Georgia runs its web publishing platform using Drupal. This was the first open source implementation handled by any state at an enterprise level. Within a period of one year, the state needed to build a Drupal based platform and migrate 55 websites with new interface designs. This talk addresses the costs benefits Georgia saved by implementing open source and showcases some of the challenges and wins the state experienced while moving to open source.

Agent-based modeling is a technique used to explore both complexity and emergence by simulating individual actors and their actions inside of a system. Think of systems such as the traffic in the city or financial markets where one actor can have an effect on the decisions of others until the system’s direction changes its course. During this survey, you will gain an understanding of open source software available in a variety of languages and how to get started quickly.

Ever concatenated strings in your code? Did those strings include any kind of structured syntax? Then your code might be vulnerable to injection. What does that mean? I will show you the common patterns of injection that occur, what their impact might be, and how to avoid them.

All the cool kids are doing it, but is it possible to have too much of a good thing? I'll present some thoughts about things you can actually measure to decide if you've gone off the deep end with microservices.

For every average person that finds your product what they want, there is a person outside that average that wants to use your product. They might even be able to use your product, if there was a way to make it work for them. Outliers are useful for your design, if you harness them properly.

Your mission, should you choose to accept it, is to support an application built on an older framework. What would you do if changing the code broke everything? The application functionality is too large to be replaced in one release. What can you do? You can bootstrap it, replacing the application in sections as time allows. When all functionality is replaced, you can put your new codebase into a newer framework or a standalone application.

What are regular expressions, what are they useful for, and why are they so hard to read? We'll learn what regular expressions are good for, how to make our own regular expressions, and how to make our regular expressions friendly and readable (yes it's possible... sometimes).

Inspired by security and privacy research in operating systems, we'll be discussing possible ways to redesign privacy models so that all users can have fine-grained control over both visibility of their content and how others can interact with it.

Virus? There’s an app for that. Malware? There’s an app for that. Social engineering? It's a little more complicated. These techniques, used by hackers to gather information on their target, are hard to combat without education - so why don’t we talk about them more often? Aimed at the average user who could be targeted by such an attack, this talk discusses the tools of social engineering, how it can be combated and why so many companies fail in preparing their employees for such an attack.

"Agent Sparkle, you have been recruited as a security expert to use your skills to protect the kingdom of Project Rainbow. You might not feel qualified yet, but Project Rainbow has great faith in your ability to learn." Web security is perhaps one of most fun types of computer security to master: exploits can be constructed quickly and without many tools. But sadly, while there are many tutorials, they simply don't have enough rainbows and sparkles and the practice exploits tend to focus on the basics without flourishes. Project Sparkle is a set of "training missions" designed to make learning web security more kid-friendly, but we think the audience of Open Source Bridge will also enjoy exploiting the web to add more rainbows and sparkles!

What do a fistbump emoji, Mandarin Chinese, and rocket ships have in common? They're all represented with entries in Unicode, the biggest, baddest, and most widely-used open standard. In this talk, we'll explore the messy and conflicting ideas that humans call "text", and how we represent those ideas in software.

The W3C Social Web Working Group has been developing standards to make it easier to build social applications in the open web. In this talk, you'll get an overview of the various specifications in development, (Activity Streams 2, Webmention, Micropub, and ActivityPub), to help you learn how each applies to the social web.

It’s time for a new approach to software, one that embraces differences (not just tolerates them), and sees diversity as a strength. The industry is primed for change, and there are huge opportunities to do better by valuing emotion, intuition, compassion, purpose, empowerment, sustainability, and social justice. This highly-interactive session includes discussions of current “best practices” and emerging ideas from projects that have focused heavily on diversity, issues and problems in today’s environment, imagining how things could be different, and figuring out concrete steps to make it happen.

How to support your support team
1. Pay your support staff a living wage. There are many reasons why you should pay your support staff a living wage, including reduced stress and higher quality work. We don’t expect support staff to be paid on par with engineering, but they should receive the same benefits & perks as engineers.
2. Listen to your support team. Your support team has valuable, data-backed insights about your customers’ pain points. Prioritize support needs in terms of product improvements.
3. Support your colleagues’ career ambitions. Some people who work in support are interested in becoming engineers. You can encourage this by giving them time to learn coding or work on projects during work hours, or paying for educational materials or tech conferences. Respect the fact that not everyone wants to be an engineer as well. Support should be a viable career path in its own right.

In this talk, we'll examine the pressure in the tech industry to participate in work-related extracurriculars like side projects and meetups. We'll analyze where these expectations come from, what they're actually getting at, and talk about ideas for progressing in our careers without losing sight of the things in life that make us happy outside of work.

Social media has tremendous power to enrich our lives - but social media services are largely controlled by private companies. An alternative is to replace centralized services with federated protocols. HTTP and email are examples of federated protocols that demonstrate that federation not only works, but can thrive and give rise to cultures and technologies that the protocol authors never imagined. Poodle is a prototype that I hope will bring those qualities to social media.

Open source (like many fields) rewards people who are confident and even a bit pushy. So we give talks encouraging folk to get over imposter syndrome, lean in, say yes to more things. But self-improvement shouldn't focus only on our most vulnerable members, but also our most powerful. So let's talk not about saying yes, but about hearing no. Learning to take no for an answer can transform efforts such as security, diversity and mentoring where we have few experts or volunteers and great need. Let's talk about accepting "defeat" with grace, and how to take "no" for an answer while still moving forwards.

While the increased use of technology has in some ways improved the lives of those with disabilities, there is a gap that still needs to be filled. Uncaptioned or poorly captioned videos leave the deaf and hard of hearing community out of the loop, untagged photos leave blind users unaware of integral information, and poorly coded webpages are too much of a hassle for individuals using screen readers.
But what if this was this was different? What if we thought about all of the potential users of our technology and developed programs intentionally allowing access for everyone? How could we make a programmer’s work truly inclusive, truly open to everyone?
Experiential learning often provides those ‘a ha!’ moments, so together we’ll enjoy some mis-captioned videos, have a ‘listen-along’ to what a screen reader sounds like when a page is not coded correctly, and take a look at the end users’ experience when software is not programmed with a disabled audience in mind. Then, we’ll talk about what we can do to improve the current offerings and answer, “what next?”

It's good to know if a bug is a regression, and if I want to mark a bug as a regression, there's a keyword for that. (searches on regression keyword.)
But there's also a whiteboard tag for that (searches on whiteboard tags containing 'regression'.) Oh dear, and let me unique that out and there's how many ways to say "this is a regression."
If you're a release manager, how do you find out what bugs may be regressions and that you want to follow up on with your engineering leads?

The Open Source and Free Software community is no longer simply a patchwork of hobbyist communities. Our change and growth brought many advantages, but some disadvantages too. We now operate in a microcosm not unlike the larger USA and international political climates. Hear the story of how it operates from an political insider.

Emoji is taking over the Web! We will look at how the phenomenon of Emoji has taken the Web by storm, explore how people are using Emoji on their favorite platforms and implications. We will also examine how these online platforms are benefiting from Emoji.

Documenting REST APIs isn't easy, and we need practical tips and tricks for keeping docs in sync with design and implementation. This talk explores some different but related ways to accomplish the goals of user-friendly, always up-to-date API docs.

This talk explores dimensions of care work and best practices for acknowledging and understanding care work in technology teams, and makes the business case for considering all involved with building and maintaining technologies in strategy and planning. I explore ways in which to track the hidden costs of care work, and build a discourse of sustainability and inclusion around care work in technology companies.

People are already tired of the over-promise of IoT - the slew of marginally useful products, the overly confusing and crowded developer space, and endless examples of how to turn an LED on and off.
Take a break, step back from the crowd, and come learn how to solve real human problems with that old phone that's collecting dust on your shelf.

Have you heard about type theory and always wanted to understand the principles behind it, but always thought it was too complicated since it has a lot of Lambda Calculus and algebras? This talk will approach these concepts in a friendly way.

A lot of people enjoy contributing to Open Source projects. And Open Source projects love contributions. And yet I keep seeing newcomers struggling to contribute and project maintainers struggling to find contributors. What’s the catch?
There is a gap. A gap between the desire to contribute to a community and the ability to find one. A gap between what contributions are welcome, and what people think is wanted. A gap between what people wish they could contribute, but don’t know how, or are afraid to try.
In this talk, I’ll share our learning from building the Hoodie Community, which is recognized as one of the most Open Source’s most diverse and inclusive.

In the early years of easily distributable software, technical writers and the documentation that they produced were a crucial part of the software development process. Why? What kinds of contributions did they make, and what might their close cooperation with the programmers of their day teach us about how to manage open source projects better today?

We program today in a rich environment, but that wasn't always the case. We celebrate the pioneers of programming languages: Grace Hopper (COBOL), John Backus (FORTRAN), John McCarthy (LISP), Kenneth Iverson (APL) and Peter Naur (ALGOL). But there was a time before programming languages. How did people program back then? I'll show you!

What if your next hire could make your team faster, help create a more inclusive and diverse environment, be easy to find, and be super excited to work with you?
These people are not unicorns, they're junior developers. Most teams just don't know how to bring them on and get these benefits. Whether you're in a startup, consultancy, or a BigCo, with a few tips and processes, any team can learn how to grow new developers.

Think of a shibboleth as a proverbial line in the sand that determines who belongs and who is an outsider. There are a lot of arbitrary shibboleths in programming. Text editors (emacs vs. vim vs. sublime), paradigms (object-oriented vs. functional), languages (everyone vs Java), type systems, are all topics of… to put it lightly, “vigorous conversation.” In set theory terms, the developer community does not do enough to encourage seeing different developer groups as unions instead of intersections. To a newcomer, this situation sets up too much of a danger of alienation. If someone makes fun of the language that you use to learn how to code, then you’re less likely to want to keep learning.

How do you deal with a free software project that has been ongoing for many years? What happens when the original designers moved on long ago and even the elders don’t have all the answers? This session will examine how to work with existing precedents to drive evolution of the project.

What goes into making a helpful bug report, if you're not even given access to the repository? Why should you, the user, report bugs? How do you navigate a series of gatekeepers who don't want to acknowledge your bugs? How do you maintain a good relationship with people in charge of a project that's screwing up your whole life?