Shauna Gordon-McKeon's favorites

Open Source Bridge 2016

Favorite sessions for this user

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.

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.

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.

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?

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.

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.

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?

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.

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.

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.

Favorite proposals for this user

Despite all the attention and buzz, Machine learning(ML) is woefully overlooked in the community of free and open source technology. In this presentation, I will examine the still prevalent proprietary legacy of ML, introduce the current open source stack of ML development and applications, and evaluate new proprietary attempts entering ML. Then, I will share with you the strategy recipes that we may need, in a battle to keep the booming field of ML free and open source.

What if U.S. federal agencies decided to reuse and contribute to open source software projects built by other agencies, since agencies often have similar technology problems to solve? And what if they hired technical writers with open source community experience to write documentation for these projects? That would be pretty cool. Also, that’s my work. I'm part of 18F, a digital services consulting team within and for the federal government, and all of our work is open source.

Open Source Bridge 2015

Favorite sessions for this user

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

Pair programming is a great way to collaborate on code and to share new ideas and techniques, but the social dynamics can be challenging. In this session, we'll talk about what works and what doesn't, and practice some techniques for better pairing!

This session will talk about how to integrate mentoring into all the different layers of an open source project. This involves a change in the whole community which treats new contributors with respect, knowing they have something valuable to contribute to the project.

Let’s talk about the work we want to do, the work we have to do, and how we might create systems that don’t continue to force bad choices between building community, technical work, and diversity activism.

We each have many critical facets to our identity-- race, gender, sexuality, class, health, and family background are just a handful of examples-- and the interaction between them can shape our lives more than any one factor alone. In this panel discussion, learn about intersectionality, and what the experiences of those living at the crossroads of different minority identities can teach us about what it takes to create a truly inclusive open source community.

Asynchronous I/O frameworks like Node, Twisted, Tornado, and Python 3.4’s new “asyncio” can efficiently scale past tens of thousands of concurrent connections. But async coding with callbacks is painful and error-prone. Programmers increasingly use coroutines in place of callbacks to get the best of both worlds: efficiency plus a natural and robust coding style. I’ll explain how asyncio’s coroutines work. They are built using Python generators, the “yield from” statement, and the Future and Task classes. You will gain a deep understanding of this miraculous new programming idiom in the Python standard library.

The Internet runs the world; it connects our devices, powers our businesses, and even talks to our thermostats. But how does it all happen? We will follow an adventurous young web browser from the moment a hapless user presses "enter" and witness the trials and tribulations of many packets. Ride alongside the most fearsome syscalls as we learn how the Internet works!

You already know how to use “git status”, “git push”, and “git add” for your personal projects. You know how to work on a team project with git version control. How do you achieve the next level of git mastery and fix mistakes? We’ll cover how to set up your git environment for a productive workflow, different ways to undo your mistakes in git, and finally, how to use the IPython notebook to automate an entire git workflow.

I have explored weird corners of HTTP -- malformed requests that try to trick a site admin into clicking spam links in 404 logs, an API that responds to POST but not GET, and more. In this talk I'll walk you through those (using Python, netcat, and other tools you might have lying around the house).

People from marginalized communities struggle to break into tech, clawing our way through a racist, sexist, classist, ableist system only to be fired, quit or just suffer in misery. I’ll explore what it really takes to create a workplace that is truly welcoming of everyone.

Public Lab is a two-part project -- an attempt at large-scale community environmental monitoring, AND a massively distributed R&D lab for inventing new monitoring techniques and equipment. The community has grown a lot over the past five years, and we are here to share stories of -- and welcome you to -- an emerging FOSS culture that spans hardware, software, data, community organizing, and advocacy.

Last year the Ascend Project was announced, then in the fall the first pilot took place in Portland. This year we'll report back on how it went, hear from participants, and break down what worked and what could be changed for future versions of this type of program. You'll definitely come away with some ideas for your next learning event, code school, or sponsored training.

Open culture communities are passionate, dedicated backed by people. What happens when those people need to change their roles within the community? I've played varied roles in open culture communities through the years. In this talk I'll go over what worked well and what I wish I had approached in a different way when my role needed to change.

The shift to microservice and distributed architectures has made software products more flexible and scalable-- and a lot more complex. With so many moving parts, ephemeral conditions and the spectre of partial failure, it can be much more difficult to pinpoint how and why things break. Learn how Logstash, Elasticsearch and Kibana can be used to monitor healthy systems and investigate issues as they pop up, and what we can do outside of software to improve our process of problem-solving.

In this talk, I will describe how Universal Web Design principles can be easily applied to new or existing sites, how these principles will improve your users’ experience, and how Universal Web Design will save you time and money.

We'll take a whirlwind tour of the theory behind what computers do. We'll start with counting on our fingers and end with an explanation of why there are some problems where the laws of physics say "no, a computer can never do this". No mathematical background necessary.

LocalWiki, a very friendly and inclusive cousin of Wikipedia, is a project hosting region-specific open-content wikis where a community can write about local topics in as much detail as they like. I've had a ton of fun with this recently, and I'd like to explain to you why you might like it too! We can work on some first edits together.

As much as the personal is political, the old-fashioned political still is too, and companies and individuals made rich by the tech industry and by open source software have been making increasingly direct monetary incursions into U.S. politics. Let's take a look at what policies & politicians our bosses, investors, users and contributors are buying at the local and state levels, with a specific focus on current changes in education policy and future moves in law enforcement.

Favorite proposals for this user

Let's say you want your freedom-valuing software community to be wildly successful - with lots of user demand, a viable way that people can make money from their work if they want to, a heavily international audience, and lots of young people interested. What happens if you get what you want? I'll explain cultural context from the iOS jailbreaking community that can serve as some interesting early warning signs of problems that could happen in open source.

A lot can happen online, but sometimes you’ve just got to have face-to-face meetings with groups of clients or co-workers. They can be great! Or they can be a great big waste of time. This rapid fire presentation will take you through 15 tools you can use to get everyone focused at the beginning of your meeting, inspire creative collaboration during it, and make sure everyone goes home feeling good about what happened.

Has Open Source sold out? Has the corporate world somehow managed to take over the soul of open source without anyone noticing? When did open source "projects" requiring hundreds of thousands of dollars to participate become a thing?! In this talk we'll explore this and what it means for the OSS community at large.

Let's make cryptography less cryptic. This talk would give you a peek into the fun world of ciphers and encryption mechanisms with a basic understanding of the hard problems of mathematics behind the magic.

Moving a language forward in backward incompatible ways is often necessary, but can be hard on users. In this talk, I'll compare and contrast approaches used to support older code bases in different languages, and look at what works and what doesn't.

“When we relate and share knowledge authentically, this places us in a state of grace, a state of 'win-win' harmony with all others, and establishes trust among all.”
“The bottom line is that our government is not intelligent about how it pursues the public interest, because its decisions are not informed decisions (and its interest is generally not the public's).”
“I realized in 1988 that my life as a spy specializing in secrets was not only unproductive, it was in sharp opposition to what we actually need: full access to true information, and consequently, the ability to create Open-Source Intelligence (OSINT).”

Closed-source scientific instrumentation doesn't work for community science. It's too expensive, too precise and delicate, and can't be repaired or rebuilt easily. Open-source hardware allows for a means of creating massive deployments of sensing systems, and pulling their data outputs together. This is the wave of the future.

Open source software is awesome. It provides the tools for our jobs, our hobbies, and our dreams. And anyone can contribute!
Despite that openness, though, I hesitated for years before getting involved.

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

All I needed to do was validate a postcode, and validating non-US postcodes can be tricky, so I didn't want to write that code myself.
So I went to Google and searched on "postcode validate javascript".
The first link was to a library, and it did postcode validation!
Then I read the documentation. Postcode validation was a method. Of a form object. Not a HTML form object, but the library's form object. I'd have to import the whole framework, and rewrite my application, just to validate postcodes.
Hold on here: postcodes are strings first, and maybe form elements later. But wouldn't validating a postcode be a method on a string?

The software we build has an impact on millions of people, and while it can be empowering for many, it is often disempowering for many others. Many times we as developers don't really think through these issues, and that is really a shame because the work we do has enormous impact on people's lives, and that impact is very often in opposition to a lot of the values that we hold dear. This session will talk through some of these issues, and explain why it is so important that we think about how we affect the world, and try to frame our work in a way that meshes well with our own values.