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.
Have you ever wanted to vanquish a dragon with your bare hands? First step is making a world where you can. In this talk, I'll give you the blueprints for my Python text adventure engine, as well as some recipes for making things in a text-only world.
Learn about the moving pieces of Mapbox GL, an open source framework for rendering beautiful maps based on OpenStreetMap-based data on Android and iOS. Find out what goes into making completely configurable world maps that are always up to date and always available in your pocket.
Search can be as simple as returning a word or part of word based on character similarity. LIKE and wildcard matches can be sufficient, but can only account for character or string matching, and fail on misspelled words or names. Phonetic algorithms can help us find matches for misspellings and typo'd user data.
@AlysonIndrunas RT @Bali_Maha's wonderful beautiful thoughtful #fedwiki succinct summary "it is a new approach to looking at knowledge we construct together"
What circumstances allow volunteer projects to flourish? This talk covers three examples in Debian, diving deep into the questions like whose permission is required, what technical background is needed, and more, to highlight lessons of that can help any open source community organize its activities to empower volunteers.
The word monad is all around us. I've heard long explanations of it that seem to over complicate it or make it intimidating. At Hacker School one of my goals was to learn some category theory, and understand the beast. I finally got it, and it wasn't so bad. I wanted to explain monads in a way that would not intimidate people and that would so some solid examples so if they felt like i had before, I might be able to help.
A job hunt can be a demoralizing and dehumanizing process, but there are a lot of things which you can do to make it more productive and less stressful.
I learned to design circuits in Eagle because at the time there were no good, free, open source alternatives but I would argue that's changed. Let's talk about why KiCAD might be the CAD program you're looking for and do a whirlwind tour of the current state of KiCAD tools and community.
While only a handful of social networks like Dreamwidth and Quirell explicitly prioritize diversity, there are plenty of lessons to learn about what to do — and what not to do — from Facebook, Twitter, and others. Best practices include counter-oppressive politics, embedded in the community guidelines and norms; and the right tools, technologies, and policies. This session will look at what does and doesn't work in a variety of online environments.
Language input for mobile devices has always been a challenge on how to provide intuitive experience along with the easy of type. One approach towards that end is predictive text input. But predictions are as good as the wordlist that it gets generated from. Often it becomes a much harder problem to implement the same approach for localized languages like Hindi,Bengali (India, Bangladesh) and languages that require IME to type effectively. One approach is to learn from users typing preference and improve the dictionary weight-age to improve prediction. This talk will discuss upon how this can be implemented in Firefox OS and how the same approach can be used for openweb apps universally without locking in to any specific language. We also will briefly discuss how it manages to improve localized language predictions and the challenges some transliteration system faces along with how we can tackle them.
Elegance is an aesthetic experience. It’s about perfectly conforming to a set of imperfect standards, meeting a need with no extraneous lines or rough edges. Elegance in code is the result of a mysterious process, just as elegance in nature is— in the case of nature, the process is evolution
Project fear, not dissimilar to imposter syndrome, tends to affect all project leaders at some point (or many points) in their career. This session will tackle project fear by fully defining it, investigating its roots, noting its symptoms, and ultimately discussing a number of successful coping mechanisms.
In the past few years, GitHub has become the most widely used platform for managing open source projects, thanks to the ease it provides for submitting and accepting pull requests. However, GitHub's issue tracker is not as full featured as more venerable bug trackers such as Bugzilla, and it is not as easy to use for organizations which have a large number of casual contributors. Come hear how one organization coped with the sudden loss of their Bugzilla database by restructuring their tracking workflow to use GitHub's built-in issue management features, as well as implementing API hooks to provide missing functionality.
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.
Your public library can be one of your best allies for creating, distributing, and promoting Open Source ideas and projects. They want to help - they just need to know how.
Are you curious about contributing to Open Source but don't know where to start? Learn how we became Open Source contributors, most recently with Outreach Program internships with Humanitarian OpenStreetMap Team (HOT) and Mozilla. Come learn how you can get started too.
Software is made of bugs, yet software is controlling a growing part of our physical world. As bugs and security holes become potentially life-threatening, what can we do to make our software worthy of the trust we're placing in it?
Take quadcopters, for example. Toy vehicles are not just in specialty hobby shops but even in supermarkets; sports stadiums and the White House are trying to find ways to keep them out; and everyone from agriculture startups to Amazon wants to use them commercially. Quadcopters are becoming safety and security critical systems, but how are we going to make them truly safe and secure?
I'll present SMACCMPilot, a BSD-licensed high-assurance quadcopter autopilot, and the new tools and technologies that make it feasible to trust a large piece of software.
Our personal identity is core to how we perceive ourselves and wish to be seen. All too often, however, applications, databases, and user interfaces are not designed to fully support the diversity of personal and social identities expressed throughout the world.
At MongoDB we write open source database drivers in ten programming languages. Ideally, all behave the same. We also help developers in the MongoDB community replicate our libraries’ behavior in even more (and more exotic) languages. How can we herd these cats along the same track? For years we failed, but we’ve recently gained momentum on standardizing our libraries. Testable, machine-readable specs prove which code conforms and which does not.
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.
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.
Community Public what? This session will introduce the Community Public Offering - the vehicle for securities crowdfunding enabled by Oregon law this January (2015).
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.
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.
You've probably heard about "robot jounalism" - computers writing finance and sports stories. Well, there's just one teensy little problem with robots writing finance and sports stories: investors and fantasy sports gamers don't want the data turned into text! They want their data raw, right and fast. They need clean, timely data to make objective decisions using tried-and-true statistical methodologies. So I'm not going to talk about robot journalism - I'm going to talk about fantasy sports: getting the data, analyzing it and using statistical decision-making tools to enhance the probability of winning.
One of the biggest challenges of building distributed systems is dealing with failure. In this talk we'll explore how distributed systems fail and then once we're good and scared, we'll cover a number of approaches and tools to help you deal with failure.
If you want to understand probability better (and you should), this is the talk for you.
When our code is slow, performance gains can often difficult to obtain. Our ideas of where to focus our attention are often wrong. pprof has become my go to tool, and it's easy to see why. Together we'll learn how to understand pprof's output to help us zero in on the parts of our code that need the most love.
Renaming yourself is never easy. In Santa Clara County in the State of California, to file a petition to change one's name costs over $400, and may take six months or more. Then one must change one's name (and possibly one's gender marker) on the dozens of sites and services one uses.
On many sites, that's easy, I go to preferences and edit my name.
But then the site addresses me as "Mr. Emma Humphries," oh really?
Other systems will correctly greet me as "Emma" when I log in. But still call me by $DEAD_NAME when they send an email.
This brings us to the first best practice:
When I change my name in one place, change it in all the places.
Contributing to open-source projects without worrying about making a living? What sounds like a dream could become a reality with the institution of an economic concept called basic income. The idea is currently being debated in numerous countries. This talk will introduce the concept and outline the possible benefits of basic income for the open source community.
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.
Minecraft is an incredibly popular game with developers. I'll give a brief tour of opportunities to practice your craft in the Minecraft world and walkthrough some tutorials using popular open source projects.
We have ethical responsibilities when coding. We're able to extract remarkably precise intuitions about an individual. But do we have a right to know what they didn't consent to share, even when they willingly shared the data that leads us there? How do we mitigate against unintended outcomes? In this talk, we'll learn how to build in systematic empathy, integrate practices for examining how our code might harm individuals, and net consequences that can be better for everyone.
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 talk is a deep dive into considerations for Identity Architecture for online communities. It's most specifically applications for political action, civic engagement, or virtual nations. I'll talk about pragmatic solutions for voter verification using the state voter registration database, schemes for peer to peer authentication, offline/online identification, Impartial Identity Architecture to control conflict, and more. The discussion is high level and appropriate for beginners, but there will be links to code and big ideas.
Discover new worlds in Super Mario Brothers even the creators never saw!
Dogfooding—using your own products—is nice, but is it sufficient to produce good design for people who aren’t you? Our familiarity with our projects and their quirks makes us poor substitutes for users in the wild. So just who are these users, and how do you incorporate them into design and development?
In this workshop, we'll explore user experience design and research strategies that will help you design for people who aren’t you.
Want to make a static site or blog, but not sure where to start? Tired of using Wordpress and looking for something better? This talk will get into the nitty-gritty details of how Jekyll and Pelican -- two popular static site generators -- work, and explain how to choose which is best for your project. Using examples you can clone from github, we'll cover the pros and cons of both SSGs, discuss things that neither does well, and give you a better idea of how to get your site up and running (with an open source tool!).
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.
Being a great developer is much more than technical know-how. Empathy, communication, and reason are at least as important, but are undervalued in our industry. We'll examine the impact these skills can have and how to apply them to our work.
This talk will go over importing, exploring, and exporting your data, and common issues you may encounter.
What makes a successful project? It's not only a solid idea, firm execution and attention to the numbers. It's also successfully building working relationships between community members. This presentation will explore how one of Wikimedia Philippines' biggest projects was successful in large part to how the organization engaged its participants, and ultimately how they have come to be part of the wider Filipino Wikimedia community.
For too long, computers have been shut out of the red-hot music-to-listen-to-while-relaxing-in-the-bathtub genre. Today, that all changes. Our smooth-jazz-as-a-service startup is primed to disrupt this stale industry. All we need is a little Ruby and we'll make automated musical magic.
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!
Identifying and discouraging negative self-talk is a simple thing, but it can have a huge impact on your community in a positive way. It increases self-confidence, improves morale, and generally results in happier, more productive community participants. This, in turn, will make you happy.
What happens when we tell stories? How do we tell stories about the technology we build, why do some stories get told over others? How do we talk about our successes, and how do we not talk about our failures? Whose stories get heard: how do women, people of color, disabled people, and “non-technical” workers get left out of the stories we hear? In this talk, I'll explore the role of storytelling in technology, and share what I've found about telling better stories.
So, you're responsible for a growing an open source community and you want to ensure it's a friendly place for newcomers and old-timers alike. You want to make sure everyone feels welcome and has access to a variety of events (both on and offline) with content that meets the needs of all of your user base from beginner to advanced. This talk will...
How do we track ourselves and what does it mean for the places we live? What mapping tools can help us to quickly understand the data we're collecting?
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).
It’s a basic principle of testing that minimizing dependencies will make you happier, faster, and more productive.
But what happens when you can’t?
Micropub is an emerging open API standard that is used to create posts on your own domain using third-party apps. Web apps and mobile apps can use Micropub to post notes, photos, bookmarks and many other kinds of posts to your own website, similar to using a Twitter client to post to your Twitter account.
Even in an email list, moderation isn't limited to setting the entire email list to require approval before messages are posted. You can create rules which reflect the culture you'd like to see, and call attention to ways that the community differs from that culture. You can point out when a particular post doesn't fit with that culture -- publicly or privately, whichever you think will do the most good. You can point out when a particular post exemplifies something great about the culture. You can point out particular rules that everyone needs to keep abiding by, without calling out a specific post. If a specific person, or a specific handful of people, have trouble with the rules, you could put them in particular on moderated posting for some time. If someone keeps breaking the rules, that person is a good candidate for being removed entirely. There are limits to what the rest of the community and the moderators should have to deal with, even though your project may choose to keep that as a last resort.
Sometimes the problem can be solved by redirection. If the main email list is getting cluttered with off-topic posts, consider a just-for-fun or off-topic side list to divert threads to once they wander off code and into sports, kittens, beer, or knitting. It's easier to say "You shouldn't do that here" than "You shouldn't do that, period"; it's even easier to say "You shouldn't do that here, but it would be great right over there." And most of us could use a sports, kittens, beer, or knitting break every now and then.
After 15 years or so working as a programmer I made two big changes in my job: first I became a manager, then I started working with college students to help them learn to code. This is a personal story of why that has been some of the most challenging and rewarding work I've ever done.
Learn about the journey of creating Wake, a modern programming language
When giving workshops or presenting online tutorials, it's frequently the case that the system setup can take longer than the actual learning exercises. Using Docker to provide a learning sandbox solves this problem while avoiding changing the learner's system in potentially destructive ways.
A beginner-focused overview of the particulars and pitfalls of the command line and several common shells, with a focus on improving developer workflows, exposing common default tools, implementing useful open-source tools, and inserting emoji into prompts (pretty much the best part of customizing the terminal).
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.
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.
If you've always wanted to play around with D3 or Julia, or both, this talk will get you up to speed very quickly. Using web performance data as the vehicle, and an aim to extract meaningful information from it, we will explore both Julia and D3 and come up with some fun visualizations that may not be possible using only one of these tools.
Accessibility, diversity, and open source holding itself accountable to its own standards of what it means to be an open community.
Programmers gripe that we have two kinds of programming languages: the ones we write in for fun, and the ones we write in because we have to. We may enjoy coding that weekend project in Agda, but we have to leave that smile behind on Monday morning when we go back to Java or C++.
But is that really the case? Or can we find a way of bringing the expressiveness, the rigor, or the fun of our favorite languages into our day jobs?
Open Source organizations and projects are driven by the strength of its community. We have often seen but how big communities fall because of wrong ways of handling it or mismanagements. My talk will be around the lines of how a community leader or manager can take a few extra responsibilities to keep a community healthy.
You approach the legacy codebase with trepidation. If the vine-draped entrance and collapsing roof weren't enough warning, traces of previous explorers before you lie scattered about, caught in bizarre traps and oubliettes. What next, snakes?!
Since 2010, OpenHatch has been running workshops at college campuses, teaching undergrads how to get involved in open source. In 2015, we expect to reach over 500 students through 25 events. This talk presents how we've the scaled program over the years, how we've evolved our curriculum, and how you can get involved.
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.
User research doesn't have to be time-consuming, elaborate, or performed by a UX professional. If you're willing to talk to a few strangers, you can do user research. In this presentation, I'll talk about how to do lightweight research on any product or topic, no matter what your background and training are. I'll focus on the most effective tools for quick research, and some of the common pitfalls for novice researchers.
Twitter is the world’s most popular platform which enables users to create and share ideas and information instantly, without barriers. In order to fulfill this mission, it has to provide language support for every person seamlessly. This talk will walk through Twitter’s open source language libraries, internationalization and localization standards and technologies.
Crowdfunding has become big business for companies like Kickstarter and Patreon. This 'corporate crowdfunding tax' can sometimes burden small projects. Is it time to kick commercial crowdfunding to the curb? Let's share new strategies for DIY marketing and funding project online with Open Source tools
Have you ever not made a much-needed change because you were afraid of breaking something? Caution is wise, but too much fear can leave even the most agile of software organizations with a crippling aversion to change. This talk will discuss what makes us scared, why it hurts us, and my experiences helping a team I managed get rid of some of our fears.
How can Open Source Software projects attract minorities? Come to learn practical strategies to implement your diversity goals into actionable outreach efforts. We will describe ways to tap into minority STEM communities that exist both online and in meatspace. The former include Tweet chats and hashtags used by people of color who are enthusiasts of science (like #BLACKandSTEM) and tech (like #LATISM). The live events include annual conferences of minority students and professionals such as the Richard Tapia Celebration of Diversity in Computing.
Open source makes writing and publishing much easier both online and in print — provided you know what tools to use. This talk covers those tools (from LaTeX to WordPress) and how to choose between them.
What do you do if you see something that needs change in your organization. How do you "say something" for your "see something"? What are the benefits and drawbacks of even minor whistleblowing?
The collective knowledge base of an organization can be difficult to crack. Some things have "always been done that way" but no one knows why. This talk will help to expose those undocumented corners of your project, and give you tools for writing process documentation for new contributors using lessons from Not-For-Profit organizations.
Robocallers are very annoying. Even when the Do Not Call list works, it doesn't cover all robo callers. This talk is about combining Asterisk (an open source PBX) running on a BeagleBone and some inexpensive hardware to really stop these annoying callers.
Workflow and tools to make Docker work the way it should, in production and in development
Your weakness just might be your greatest strength.
Security folk generally talk about how the Internet of Things is bad for security, but it also brings new sensors and connected devices that could co-operate in new and interesting ways. Could we use internet things to enhance security?
Version control is a necessary piece of the open source community and git has an unfortunately steep learning curve.
Here is what I have learned from teaching git to beginners, so you don’t have to make the same mistakes.
There are some myths around Science - it's boring, useless, difficult. Many of them are heard while we are young, and many people tend to take then for the entire life. Science is very important, specially on Computer Science and Engineering, for building the basis of our logical thinking.
Did you know that every so often, a minute lasts 61 seconds? If that sounds like something that might break some software, you'd be right! In this talk, we'll discuss the common ways that time is implemented in a number of libraries you probably depend on, how these representations can fall short of giving us a complete picture of what time it is, and what we can do about this state of affairs.
Open source has a long history of reimplementing, and reverse engineering proprietary tools. This talk will integrate the tools needed to reverse engineer into stories of how it has been done before.
Come learn about open science and the tools available for modern scientific research.
When you're trying to make sense of an surprising software crash or an unexpected test failure, knowing your way around a stack trace can make the difference between bewildered frustration and finding a root cause.
With high profile breaches in open source projects, the issue of security has become one of great import to many people. But many projects, especially smaller ones, are intimidated by the idea of a security audit. This talk will discuss ways for smaller projects to experiment, learn, and even have fun improving their security. No PhDs in security required!
What do you do when your project is so old that technology has changed around you? (Or, how do you future-proof a project that you've just started so that when it gets that old, you'll be ready?) Come hear a case study of Dreamwidth Studios, a fifteen-year-old web app with a codebase consisting of a quarter million lines of legacy Perl and a mission to modernize ... if it doesn't break everything.
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.
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.
DNA testing has become the "gold standard" of forensics, but linking an item of evidence to a person of interest isn't always clear cut. New open source tools allow DNA analysts to give statistical weight to evidentiary profiles that were previously unusable, letting juries weigh the evidence for themselves. This talk will discuss my lab's validation and implementation of the Lab Retriever software package for probabilistic genotyping.
Many embedded systems contain design flaws that could lead to exploitable vulnerabilities. In order to discover such flaws, hackers and engineers use a specific set of tools. In this session, Joe will discuss his favorite open source hardware hacking and reverse engineering tools, including those that monitor/decode digital communications, extract firmware, inject/spoof data, and identify/connect to debug interfaces.
When Geocities shut down, it did much more than delete a bunch of obnoxious dancing baby GIFs and Limp Bizkit MIDI files. It deleted the ability for people to easily create web sites, and learn how to be in complete control of the content and presentation they provide to their audience. To the economically and socially disenfranchised, it was a disaster that prevented countless people from learning programming. So we brought it back, and open sourced the entire thing (including our financial data). Leave your nostalgia at the door - let us show you our efforts to pave a better future for tech startups, the tech community, and the future of the web itself.
Grab a scalpel as we put Ruby on the table to look at this lovely language's internals. We'll start with class inheritance and method lookup, and then explore the mysterious eigenclass and how it fits in. We'll use our newfound knowledge to turn children into zombies, meet unexpected vampires, and make our own Ruby mutants. Okay, so maybe it won't be too spooky, but you'll come away having a better understanding of Ruby objects and their internals (and braaaains!).
Learn how meeting invites work and some crazy other ideas for distributed protocols built on email.
Software freedom advocates sometimes believe a myth of "trickle-down technology" — that open collaboration and freedom for programmers will somehow lead to more free and open technology for the rest of society. To build technology that truly empowers most people, we need more non-programmers actively involved in development.
I'll share my story of how I started as a music teacher and became the co-founder of an ambitious Free/Libre/Open project. We'll discus lessons about outreach to others like me.
Mental disorders are the largest contributor to disease burden in North America, but the developer community and those who employ us are afraid to face the problem head-on. In this talk, we'll examine the state of mental health awareness in the developer workplace, why most developers feel it isn't safe to talk about mental health, and what we can do to change the culture and save lives.
We all know about Twitter and IRC bots, but with about 4/5 of people worldwide without smartphones SMS has the potential to reach those left behind the digital divide. We will discuss the various methods for developing an SMS bot, the legal and ethical implications of doing so, and we will build an SMS bot live.