include OpenHack
author = Presenter.new(:buren)
slides = OpenSource::Slides.new
wait until author.ready?
author.present(slides) do |slide|
print slide
any_questions? if slide.last?
endhttp://jacobburenstam.com/openhack-open-source
Guide | Empower | Connect
jacobburenstam.com/openhack-open-source
Have you contributed to Open source?
Open source? No Not yet.. A bit A lotDo you use open source?
Yes No- Personal opinions, not the opinions of my employer.
- YMMV - Your mileage may vary)
- IANAL - I'm not a lawyer
- Open source tinkerer
- Useless code enthusiast
- Co-Founder and CTO at Just Arrived
github.com/buren/openhack-open-source
P.S We're hiring
- Active in open source for over 5 years
- Contributed to >30 OSS projects
- Open source libs/projects of my own
- Just Arrived is by far the largest π
- Android TV, Hackathon winner @ Google
- "Read automatic captions and use NLP to link various topics to Wikipedia, Maps, IMDB etc"
- Just Arrived got started at OpenHack!
- What is open source?
- Licenses, MIT, GPL etc π
- Richard Stallman & Linus Torvalds

What is open source?- Licenses, MIT, GPL etc π
- Richard Stallman & Linus Torvalds

What is open source?Licenses, MIT, GPL etc π- Richard Stallman & Linus Torvalds

Completely different views on open source. Even though both are considered open source "heroes".
I didn't want code, I wanted comments. - Linus Torvalds
If you use a proprietary program, you're defenceless. - Richard Stallman
What is open source?Licenses, MIT, GPL etc πRichard Stallman & Linus Torvalds
- Open source companies π’
- Sentry (sentry.io)
- Just Arrived
- Discourse
- Neo4J
- ...
- Open source risks? π
- The case of hacking Instagram
- https://exfiltrated.com/research-Instagram-RCE.php
- AWS/Slack tokens
- Sentry (sentry.io)
- Just Arrived
- Discourse
- Neo4J
- ...
Open source companies π’- Open source risks? π
- The case of hacking Instagram
- https://exfiltrated.com/research-Instagram-RCE.php
- AWS/Slack tokens
- The case of hacking Instagram
- https://exfiltrated.com/research-Instagram-RCE.php
- AWS/Slack tokens
Open source companies π’Open source risks? π
- Why are all these developers giving away their code? π±
- Hobbyist, Hackers, Tinkerers
- Curiosity
- Its fun and unexpected stuff happens!
- Writing a brainfuck interpreter in a 20-day-old language
- Archiving certain USGOV sites in response to Trump
- Hobbyist, Hackers, Tinkerers
- Curiosity
π»
Professors were scared that the Trump administration would withdraw funding for certain gov-sites.
They started mass-archiving sites to the Internet Archive.
github.com/buren/wayback_archiver
venturebeat.com: 200TB gov-data backed up to Internet Archive
- Modern open source
- Google (TensorFlow, Kubernetes, Angular, ...)
- Facebook (React, HHVM, jest, ...) and what about their patent-clause?
- Microsoft, yes Microsoft.. (dotnet, vscode, TypeScript, ..)
- Could open source be used in new places?
- Outside of software?
- Open source banks? governments?
- Why aren't governments institutions open sourcing their code???
- WHY?!?#!@#^! πͺ
- Google (TensorFlow, Kubernetes, Angular, ...)
- Facebook (React, HHVM, jest, ...) and what about their patent-clause?
- Microsoft, yes Microsoft.. (dotnet, vscode, TypeScript, ..)
Modern open source- Could open source be used in new places?
- Outside of software?
- Open source banks? governments?
- Why aren't governments institutions open sourcing their code???
- WHY?!?#!@#^! πͺ
- Open source banks? governments?
- Why aren't governments institutions open sourcing their code???
- WHY?!?#!@#^! πͺ
- Outside of software?
Modern open sourceCould open source be used in new places?
- How can I get started contributing?
- Contributing to a OSS project
- Building a OSS project
- Contributing to a OSS project
- Start small
- Read some old pull requests and issues
- Validate that your change is needed
- Be nice π
- Spend time on writing good issues and pull requests
- Building a OSS project
- Build something yourselves
- Being a maintainer can be hard
- People are not always nice
Remember the code from the first slide?
include OpenHack
author = Presenter.new(:buren)
slides = OpenSource::Slides.new
wait until author.ready?
author.present(slides) do |slide|
print slide
any_questions? if slide.last?
endDEADLINE = Time.new(2017, 6, 3, 14, 30, 0).freeze
module OpenHack;end
module OpenHack::OpenSource;end
String.class_eval { define_method(:last?) { false } }
NilClass.class_eval { define_method(:last?) { true } }
define_method(:wait) { puts 'Still not ready..';sleep 3 }
define_method(:any_questions?) { puts 'Any questions?' }
define_method(:feedback) { puts 'Feedback?' }
class OpenHack::Presenter < Struct.new(:name)
define_method(:ready?) { Time.now >= DEADLINE }
def present(slides); slides.to_a.each { |slide| yield(slide) };end
end
class OpenHack::OpenSource::Slides
define_method(:initialize) { @slides = File.read('slides.md').split('---') }
define_method(:to_a) { @slides + [nil] }
endThis actually makes the previous code work ![]()
Guide | Empower | Connect
We're hiring π»
Guide | Empower | Connect
<script src="js/libs/jquery.js"></script> <script src="https://www.google.com/jsapi"></script> <script src="js/libs/chartkick.js"></script> <script src="js/log.js"></script> <script src="js/resize-hack.js"></script> <script> PollerConfig = { url: 'https://throwawaypoll.herokuapp.com' }; </script> <script src="js/poller.js"></script> <script src="js/poller-dom.js"></script> <script> PollerConfig = { url: 'https://throwawaypoll.herokuapp.com' }; </script>







