Here's a rundown of some of the talks at Oscon 2017. Some slides are available here.
Creating and sharing datasets for social impact using child welfare data (Vida Williams, The Axis Partners Inc.)
- Many issues (like climate change) don't become issues until someone discovers a trend in data, so data scientists have an obligation to act on their discoveries.
- Williams recommends data.world for finding and sharing cleaned public data sets.
- The main sources of revenue for open source projects are licensing, donations and advertising.
- Licensing can be a one-time cost or subscription, but should always include continued support from the project's maintainers. Donations are useful for big projects (like Wikipedia) and new projects, but are not good for developing new features in older projects.
- Project maintainers have a responsibility to build a positive community and to be proactive in answering questions and resolving issues.
- We expect self-driving cars to be fast, safe and efficient, but many people bring up the "trolley problem" when discussing ethics of self-driving cars.
- Imagine you're in a self-driving car on a cliff face; you're going very fast and a child leaps out of nowhere. The car is unable to come to a stop in time; should the car hit the child and save the passenger, or hurl itself off the cliff to save the child, but sacrifice the passenger? (Keep in mind that consumers are not willing to purchase a product that will sacrifice their lives).
- Now imagine that the car is driving at a slower pace. A child leaps out and the car is able to stop in time, but all the other cars behind you must stop as well. How many passengers need to be inconvenienced to justify running the child over?
- It's much easier to create self-driving trucks than it is to create self-driving cars, because the majority of a truck's path is hundreds of miles of highways without traffic conditions. But replacing truck drivers with machines would put 1.2 million people out of work.
- The creation of self-driving vehicles would also create new jobs, but the skills of a truck driver are non-transferrable. As we create machines and automation for more jobs, it becomes increasingly important to have cheap and accessible continuing education so that people who become unemployed because of technological advances are able to work again.
- Because of technological advances, some people have become not just unemployed, but also unemployable. In the future, when the majority of jobs are replaced by machines, what would society look like when humans are unemployable?
From 15 to 250: Scaling a distributed, open source engineering team (Suyog Rai and Michael Basnight, Elastic)
Background: Elastic has almost 500 employees and 250 engineers in 32 countries.
- Open calendar invites: All open meetings are posted in the dev calendar and anyone is free to drop in and listen.
- When a team doesn't have an office, Slack becomes the hallway/water cooler.
- The team gathers twice a year for an engineering all-hands meeting and bonding event.
- New Knowledge identified language patterns of conservative and alt-right Twitter users using word vectors and identified which words are used in similar ways, and tracked those accounts' posting activity throughout the election cycle.
- There's some controversial language and imagery in the presentation, feel free to browse the slides here.
- Slides here.
- Identify the browsers that your users use the most with Google Analytics, etc.
- Lewis recommends using Selenium Grid for cross-browser testing.
- Waiting for elements to load
- sleep(10) → sleep for 10 seconds ('implicit wait')
- sleep(loadEvent, 10) → sleep until the event occurs, up to 10 seconds ("explicit wait")
- The second method is preferred because you use the minimum amount of time.
- Slides here.
- Especially in a distributed team, you need to make the effort to make a human connection with your team.
- With a distributed team, your communication needs to defy space (geographical location) and time (timezones). Each communication method has trade-offs:
Method | Latency | Amount of information communicated | Cost |
---|---|---|---|
High | High | Medium | |
IM | Low | Low | Low |
Video chat | Low | Medium | Medium |
Face-to-face | Low | High | High |