SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
Open Source in
Real Life
Kenneth Geisshirt
kgeisshirt
geisshirt@gmail.com
kneth
Agenda
● About me 😎
● What is open source?
● How to contribute
● Distributed teams
About me
● 25+ years as open source user, advocate and contributor
● Former co-author of Linux - friheden til at vælge
● Current maintainer of SegFault Handler (small node.js
package)
● Casually contributing to JavaScript projects
● Paid developer working on open source MongoDB/Realm
SDKs (but also closed source products)
What is open source?
Four basic freedoms
● You can redistribute the software and its source code
● You can redistribute modifications and derived work
● Anybody can use the software
● You can use the software for any purpose
The license has to be compliant with Open Source
Definition1
Emphasis is on programmers’ freedom
1
https://opensource.org/osd
Why open source?
● Learn a new skill (programming language, framework, …)
● Solve a problem and share the solution
● Supporter of software freedom
● Build up a portfolio
○ Useful for students
○ And when applying for a new job
GotCredit, https://bit.ly/32u0408
How to
contribute
Pure projects
● Typically founded by an individual or small group with a goal
● Successful projects form foundations
● They have core team (or committers)
○ Companies hire core member to work on projects
● Often seen as a meritocracy
Examples:
● The Linux kernel (1991)
● Apache (1995)
● Postgres (1996)
● Node.js (2009) Angeline Veeneman, https://bit.ly/2P3dVGJ
Casual contributions
Many contributors only submit a small patch once
Typical workflow:
● You are using an open source project
● You find a bug, and it is easy to fix
● You create a patch/pull request with the fix
● Your patch is accepted
Take over maintainership
A project become stalled when maintainer
● Lost interest in the project
● Has no time to work on the project
● Don’t need the project anymore
No formal procedure for taking over
● Maintainer can ask for help
● You can gently suggest that you want to take over
Marco Verch, https://bit.ly/2MU8APr
Company projects
Many reason for companies to sponsor projects:
● Drive adoption of main product
● Software is not the core product
○ Hardware
○ Services
○ Part of the infrastructure
Examples:
● React and React Native (Facebook)
● Retrofit, okhttp, etc. (Square)
● CUPS (Apple)
Brick Broadcasting, https://bit.ly/32rmgI9
Not only code
You can contribute to open source in other ways:
● Learn a piece of software well and answer questions (Github, Stack Overflow,
etc.)
● Help a non-technical friend
● Make a video
● Write documentation
● Organize meetups
● Speak at conferences
txmx2, https://bit.ly/32GOIpm
Licenses
Examples:
● MIT: Permissive license with clause about retaining license
● Apache v2: Permissive license with clause about patents and trademarks
● GPL v2: Copyleft license with rights to run, study and modify
● GPL v3: Like GPL v2 with restrictive patent rights
Open source is all about the license
● Permissive: does not describe how to
distribute
● Copyleft: requires that source code is
distributed
Keith Robinson, https://bit.ly/2J2zfZ4
The dark side
Open source contributors are mostly well-educated, white males
● Bad behavior, sexism, homophobia, and racism contradict the advocated
freedom rights
● Linus Torvalds took time off in 2018
● Richard Stallman forced to step down
Cloud providers and websites
● Sell software-as-a-service
● But don’t contribute or sponsor
Chris Isherwood, https://bit.ly/32wWsKM
Distributed
teams
Time zones and culture
My co-workers are in Copenhagen, Sofia, Bucharest, Aarhus, Dublin, London, New
York and San Francisco
People’s values are the same but with subtle differences
Meet regularly at the same physical location
Cake and humor are good ice-breakers
United Way of Lower Midland, https://bit.ly/33NUMwF
Tools
● Version control
○ Currently git is the most popular
○ Github, Gitlab, Bitbucket or self-hosted
○ Public and private repositories
● Issue tracking and project management
○ Github issues, Jira
○ Github extensions (Zenhub, …)
● Real-time chat
○ Slack, IRC
● Document sharing
○ Google Docs, plan text files in git
● Email is still useful
● CI to automate testing!
Code reviews
Code reviews don’t find mistakes or error
Use code reviews to get a updated view of
the code base
Ed Schipul, https://bit.ly/2o0STNQ
Tips for reviewers:
● Assume that your coworkers are smart and have good intentions
● Don’t correct people but give suggestions
● Review soon so you don’t block your coworkers
Open Source is
not a spectator
sport
J. Albert Bowden II, https://bit.ly/2qt0cPh
Learn more
● Open Source Initiative - https://opensource.org/
● The Cathedral and the Bazaar. E.S. Raymond. O’Reilly Media, 1999.
○ http://www.catb.org/~esr/writings/cathedral-bazaar/
● Når nørder bliver filosofiske. K. Geisshirt. Alt om DATA, 4/2001.
● Hvad er fri software? K. Geisshirt. Alt om DATA, 12/2019.
● Open Sources: Voices from the Open Source Revolution. O’Reilly Media, 1999.
○ https://www.oreilly.com/openbook/opensources/book/
● How to choose a license: https://choosealicense.com/

Contenu connexe

Tendances

LXDE Google Summer of Code 2009
LXDE Google Summer of Code 2009LXDE Google Summer of Code 2009
LXDE Google Summer of Code 2009Mario B.
 
Doxygen - Source Code Documentation Generator Tool
Doxygen -  Source Code Documentation Generator ToolDoxygen -  Source Code Documentation Generator Tool
Doxygen - Source Code Documentation Generator ToolGuo Albert
 
How to Git and Github | Hands on workshop
How to Git and Github | Hands on workshopHow to Git and Github | Hands on workshop
How to Git and Github | Hands on workshopPavitraBhagat
 
[scala.by] Launching new application fast
[scala.by] Launching new application fast[scala.by] Launching new application fast
[scala.by] Launching new application fastDenis Karpenko
 
ViennaTalk: A Formal Method Environment on Pharo
ViennaTalk: A Formal Method Environment on PharoViennaTalk: A Formal Method Environment on Pharo
ViennaTalk: A Formal Method Environment on PharoESUG
 
Last Month in PHP - June through Mid-July 2017
Last Month in PHP - June through Mid-July 2017Last Month in PHP - June through Mid-July 2017
Last Month in PHP - June through Mid-July 2017Eric Poe
 
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
ATO 2014 - So You Think You Know 'Go'? The Go Programming LanguageATO 2014 - So You Think You Know 'Go'? The Go Programming Language
ATO 2014 - So You Think You Know 'Go'? The Go Programming LanguageJohn Potocny
 
DT2014-15 S01: Digital Toolbox
DT2014-15 S01: Digital ToolboxDT2014-15 S01: Digital Toolbox
DT2014-15 S01: Digital ToolboxCarlos Cámara
 
Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)Igalia
 
Why you should care about Go (Golang)
Why you should care about Go (Golang)Why you should care about Go (Golang)
Why you should care about Go (Golang)Aaron Schlesinger
 
Let's Build an Open Source Library Together
Let's Build an Open Source Library TogetherLet's Build an Open Source Library Together
Let's Build an Open Source Library TogetherKevin Bluer
 

Tendances (15)

LXDE Google Summer of Code 2009
LXDE Google Summer of Code 2009LXDE Google Summer of Code 2009
LXDE Google Summer of Code 2009
 
Go lang
Go langGo lang
Go lang
 
Doxygen
DoxygenDoxygen
Doxygen
 
Doxygen - Source Code Documentation Generator Tool
Doxygen -  Source Code Documentation Generator ToolDoxygen -  Source Code Documentation Generator Tool
Doxygen - Source Code Documentation Generator Tool
 
Golang
GolangGolang
Golang
 
How to Git and Github | Hands on workshop
How to Git and Github | Hands on workshopHow to Git and Github | Hands on workshop
How to Git and Github | Hands on workshop
 
[scala.by] Launching new application fast
[scala.by] Launching new application fast[scala.by] Launching new application fast
[scala.by] Launching new application fast
 
ViennaTalk: A Formal Method Environment on Pharo
ViennaTalk: A Formal Method Environment on PharoViennaTalk: A Formal Method Environment on Pharo
ViennaTalk: A Formal Method Environment on Pharo
 
Last Month in PHP - June through Mid-July 2017
Last Month in PHP - June through Mid-July 2017Last Month in PHP - June through Mid-July 2017
Last Month in PHP - June through Mid-July 2017
 
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
ATO 2014 - So You Think You Know 'Go'? The Go Programming LanguageATO 2014 - So You Think You Know 'Go'? The Go Programming Language
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
 
DT2014-15 S01: Digital Toolbox
DT2014-15 S01: Digital ToolboxDT2014-15 S01: Digital Toolbox
DT2014-15 S01: Digital Toolbox
 
Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)
 
Why you should care about Go (Golang)
Why you should care about Go (Golang)Why you should care about Go (Golang)
Why you should care about Go (Golang)
 
iRail at hack democracy
iRail at hack democracyiRail at hack democracy
iRail at hack democracy
 
Let's Build an Open Source Library Together
Let's Build an Open Source Library TogetherLet's Build an Open Source Library Together
Let's Build an Open Source Library Together
 

Similaire à Open Source in Real Life

BUD17-TR01: Philosophy of Open Source
BUD17-TR01: Philosophy of Open SourceBUD17-TR01: Philosophy of Open Source
BUD17-TR01: Philosophy of Open SourceLinaro
 
Philosophy of Open Source - SFO17-TR01
Philosophy of Open Source - SFO17-TR01Philosophy of Open Source - SFO17-TR01
Philosophy of Open Source - SFO17-TR01Linaro
 
Leading an open source project as a startup
Leading an open source project as a startupLeading an open source project as a startup
Leading an open source project as a startupNicolas Garnier
 
Leading An Open Source Project As A Startup
Leading An Open Source Project As A StartupLeading An Open Source Project As A Startup
Leading An Open Source Project As A StartupMailjet
 
DockerCon US 2016 - Scaling Open Source operations
DockerCon US 2016 - Scaling Open Source operationsDockerCon US 2016 - Scaling Open Source operations
DockerCon US 2016 - Scaling Open Source operationsArnaud Porterie
 
Open source, What | Why | How
Open source, What | Why | How Open source, What | Why | How
Open source, What | Why | How Nikhil Agrawal
 
Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4aspyker
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupChris Aniszczyk
 
What's a Pull Request (Contributing to Open Source) - Brad Wood
What's a Pull Request (Contributing to Open Source) - Brad WoodWhat's a Pull Request (Contributing to Open Source) - Brad Wood
What's a Pull Request (Contributing to Open Source) - Brad WoodOrtus Solutions, Corp
 
Large drupal site builds a workshop for sxsw interactive - march 17, 2015
Large drupal site builds   a workshop for sxsw interactive - march 17, 2015Large drupal site builds   a workshop for sxsw interactive - march 17, 2015
Large drupal site builds a workshop for sxsw interactive - march 17, 2015rgristroph
 
Open Source Product Management
Open Source Product ManagementOpen Source Product Management
Open Source Product ManagementDanny Rosen
 
Michael Widenius
Michael WideniusMichael Widenius
Michael WideniusCodeFest
 
Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceAll Things Open
 
Software Engineering Primer
Software Engineering PrimerSoftware Engineering Primer
Software Engineering PrimerGeorg Buske
 
Life in CSE.pptx
Life in CSE.pptxLife in CSE.pptx
Life in CSE.pptxVedVekhande
 
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...WSO2
 
Gsoc2012 checklist
Gsoc2012 checklistGsoc2012 checklist
Gsoc2012 checklistDavid Bain
 

Similaire à Open Source in Real Life (20)

Let's talk FOSS!
Let's talk FOSS!Let's talk FOSS!
Let's talk FOSS!
 
BUD17-TR01: Philosophy of Open Source
BUD17-TR01: Philosophy of Open SourceBUD17-TR01: Philosophy of Open Source
BUD17-TR01: Philosophy of Open Source
 
Philosophy of Open Source - SFO17-TR01
Philosophy of Open Source - SFO17-TR01Philosophy of Open Source - SFO17-TR01
Philosophy of Open Source - SFO17-TR01
 
Leading an open source project as a startup
Leading an open source project as a startupLeading an open source project as a startup
Leading an open source project as a startup
 
Leading An Open Source Project As A Startup
Leading An Open Source Project As A StartupLeading An Open Source Project As A Startup
Leading An Open Source Project As A Startup
 
DockerCon US 2016 - Scaling Open Source operations
DockerCon US 2016 - Scaling Open Source operationsDockerCon US 2016 - Scaling Open Source operations
DockerCon US 2016 - Scaling Open Source operations
 
Open source, What | Why | How
Open source, What | Why | How Open source, What | Why | How
Open source, What | Why | How
 
Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO Group
 
What's a Pull Request (Contributing to Open Source) - Brad Wood
What's a Pull Request (Contributing to Open Source) - Brad WoodWhat's a Pull Request (Contributing to Open Source) - Brad Wood
What's a Pull Request (Contributing to Open Source) - Brad Wood
 
Large drupal site builds a workshop for sxsw interactive - march 17, 2015
Large drupal site builds   a workshop for sxsw interactive - march 17, 2015Large drupal site builds   a workshop for sxsw interactive - march 17, 2015
Large drupal site builds a workshop for sxsw interactive - march 17, 2015
 
Brad wood -_whats_a_pull_request
Brad wood -_whats_a_pull_requestBrad wood -_whats_a_pull_request
Brad wood -_whats_a_pull_request
 
Brad wood -_whats_a_pull_request
Brad wood -_whats_a_pull_requestBrad wood -_whats_a_pull_request
Brad wood -_whats_a_pull_request
 
Open Source Product Management
Open Source Product ManagementOpen Source Product Management
Open Source Product Management
 
Michael Widenius
Michael WideniusMichael Widenius
Michael Widenius
 
Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open Source
 
Software Engineering Primer
Software Engineering PrimerSoftware Engineering Primer
Software Engineering Primer
 
Life in CSE.pptx
Life in CSE.pptxLife in CSE.pptx
Life in CSE.pptx
 
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...
 
Gsoc2012 checklist
Gsoc2012 checklistGsoc2012 checklist
Gsoc2012 checklist
 

Plus de Kenneth Geisshirt

Building parsers in JavaScript
Building parsers in JavaScriptBuilding parsers in JavaScript
Building parsers in JavaScriptKenneth Geisshirt
 
Building mobile apps with Realm for React Native
Building mobile apps with Realm for React NativeBuilding mobile apps with Realm for React Native
Building mobile apps with Realm for React NativeKenneth Geisshirt
 
Tales from the dark side: developing SDKs at scale
Tales from the dark side: developing SDKs at scaleTales from the dark side: developing SDKs at scale
Tales from the dark side: developing SDKs at scaleKenneth Geisshirt
 
Unleash your inner console cowboy
Unleash your inner console cowboyUnleash your inner console cowboy
Unleash your inner console cowboyKenneth Geisshirt
 
Tips and tricks for building high performance android apps using native code
Tips and tricks for building high performance android apps using native codeTips and tricks for building high performance android apps using native code
Tips and tricks for building high performance android apps using native codeKenneth Geisshirt
 
Is the database a solved problem?
Is the database a solved problem?Is the database a solved problem?
Is the database a solved problem?Kenneth Geisshirt
 
Unleash your inner console cowboy
Unleash your inner console cowboyUnleash your inner console cowboy
Unleash your inner console cowboyKenneth Geisshirt
 
Building High Performance Android Applications in Java and C++
Building High Performance Android Applications in Java and C++Building High Performance Android Applications in Java and C++
Building High Performance Android Applications in Java and C++Kenneth Geisshirt
 
Unleash your inner console cowboy
Unleash your inner console cowboyUnleash your inner console cowboy
Unleash your inner console cowboyKenneth Geisshirt
 
Naturvidenskabsfestival 2012
Naturvidenskabsfestival 2012Naturvidenskabsfestival 2012
Naturvidenskabsfestival 2012Kenneth Geisshirt
 
Hadoop - the data scientist's toolbox
Hadoop - the data scientist's toolboxHadoop - the data scientist's toolbox
Hadoop - the data scientist's toolboxKenneth Geisshirt
 
JavaScript/Emacs integration
JavaScript/Emacs integrationJavaScript/Emacs integration
JavaScript/Emacs integrationKenneth Geisshirt
 
Introduction to JavaScript for Modern Software Development
Introduction to JavaScript for Modern Software DevelopmentIntroduction to JavaScript for Modern Software Development
Introduction to JavaScript for Modern Software DevelopmentKenneth Geisshirt
 

Plus de Kenneth Geisshirt (19)

Building parsers in JavaScript
Building parsers in JavaScriptBuilding parsers in JavaScript
Building parsers in JavaScript
 
Building mobile apps with Realm for React Native
Building mobile apps with Realm for React NativeBuilding mobile apps with Realm for React Native
Building mobile apps with Realm for React Native
 
micro:bit and JavaScript
micro:bit and JavaScriptmicro:bit and JavaScript
micro:bit and JavaScript
 
Tales from the dark side: developing SDKs at scale
Tales from the dark side: developing SDKs at scaleTales from the dark side: developing SDKs at scale
Tales from the dark side: developing SDKs at scale
 
Android things
Android thingsAndroid things
Android things
 
Node.js extensions in C++
Node.js extensions in C++Node.js extensions in C++
Node.js extensions in C++
 
Unleash your inner console cowboy
Unleash your inner console cowboyUnleash your inner console cowboy
Unleash your inner console cowboy
 
Tips and tricks for building high performance android apps using native code
Tips and tricks for building high performance android apps using native codeTips and tricks for building high performance android apps using native code
Tips and tricks for building high performance android apps using native code
 
Is the database a solved problem?
Is the database a solved problem?Is the database a solved problem?
Is the database a solved problem?
 
Unleash your inner console cowboy
Unleash your inner console cowboyUnleash your inner console cowboy
Unleash your inner console cowboy
 
Extending Node.js using C++
Extending Node.js using C++Extending Node.js using C++
Extending Node.js using C++
 
Building High Performance Android Applications in Java and C++
Building High Performance Android Applications in Java and C++Building High Performance Android Applications in Java and C++
Building High Performance Android Applications in Java and C++
 
Sociale netværk
Sociale netværkSociale netværk
Sociale netværk
 
Unleash your inner console cowboy
Unleash your inner console cowboyUnleash your inner console cowboy
Unleash your inner console cowboy
 
Naturvidenskabsfestival 2012
Naturvidenskabsfestival 2012Naturvidenskabsfestival 2012
Naturvidenskabsfestival 2012
 
Hadoop - the data scientist's toolbox
Hadoop - the data scientist's toolboxHadoop - the data scientist's toolbox
Hadoop - the data scientist's toolbox
 
JavaScript/Emacs integration
JavaScript/Emacs integrationJavaScript/Emacs integration
JavaScript/Emacs integration
 
Introduction to JavaScript for Modern Software Development
Introduction to JavaScript for Modern Software DevelopmentIntroduction to JavaScript for Modern Software Development
Introduction to JavaScript for Modern Software Development
 
Kendthed og vigtighed
Kendthed og vigtighedKendthed og vigtighed
Kendthed og vigtighed
 

Dernier

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 

Dernier (20)

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 

Open Source in Real Life

  • 1. Open Source in Real Life Kenneth Geisshirt kgeisshirt geisshirt@gmail.com kneth
  • 2. Agenda ● About me 😎 ● What is open source? ● How to contribute ● Distributed teams
  • 3. About me ● 25+ years as open source user, advocate and contributor ● Former co-author of Linux - friheden til at vælge ● Current maintainer of SegFault Handler (small node.js package) ● Casually contributing to JavaScript projects ● Paid developer working on open source MongoDB/Realm SDKs (but also closed source products)
  • 4. What is open source? Four basic freedoms ● You can redistribute the software and its source code ● You can redistribute modifications and derived work ● Anybody can use the software ● You can use the software for any purpose The license has to be compliant with Open Source Definition1 Emphasis is on programmers’ freedom 1 https://opensource.org/osd
  • 5. Why open source? ● Learn a new skill (programming language, framework, …) ● Solve a problem and share the solution ● Supporter of software freedom ● Build up a portfolio ○ Useful for students ○ And when applying for a new job GotCredit, https://bit.ly/32u0408
  • 7. Pure projects ● Typically founded by an individual or small group with a goal ● Successful projects form foundations ● They have core team (or committers) ○ Companies hire core member to work on projects ● Often seen as a meritocracy Examples: ● The Linux kernel (1991) ● Apache (1995) ● Postgres (1996) ● Node.js (2009) Angeline Veeneman, https://bit.ly/2P3dVGJ
  • 8. Casual contributions Many contributors only submit a small patch once Typical workflow: ● You are using an open source project ● You find a bug, and it is easy to fix ● You create a patch/pull request with the fix ● Your patch is accepted
  • 9. Take over maintainership A project become stalled when maintainer ● Lost interest in the project ● Has no time to work on the project ● Don’t need the project anymore No formal procedure for taking over ● Maintainer can ask for help ● You can gently suggest that you want to take over Marco Verch, https://bit.ly/2MU8APr
  • 10. Company projects Many reason for companies to sponsor projects: ● Drive adoption of main product ● Software is not the core product ○ Hardware ○ Services ○ Part of the infrastructure Examples: ● React and React Native (Facebook) ● Retrofit, okhttp, etc. (Square) ● CUPS (Apple) Brick Broadcasting, https://bit.ly/32rmgI9
  • 11. Not only code You can contribute to open source in other ways: ● Learn a piece of software well and answer questions (Github, Stack Overflow, etc.) ● Help a non-technical friend ● Make a video ● Write documentation ● Organize meetups ● Speak at conferences txmx2, https://bit.ly/32GOIpm
  • 12. Licenses Examples: ● MIT: Permissive license with clause about retaining license ● Apache v2: Permissive license with clause about patents and trademarks ● GPL v2: Copyleft license with rights to run, study and modify ● GPL v3: Like GPL v2 with restrictive patent rights Open source is all about the license ● Permissive: does not describe how to distribute ● Copyleft: requires that source code is distributed Keith Robinson, https://bit.ly/2J2zfZ4
  • 13. The dark side Open source contributors are mostly well-educated, white males ● Bad behavior, sexism, homophobia, and racism contradict the advocated freedom rights ● Linus Torvalds took time off in 2018 ● Richard Stallman forced to step down Cloud providers and websites ● Sell software-as-a-service ● But don’t contribute or sponsor Chris Isherwood, https://bit.ly/32wWsKM
  • 15. Time zones and culture My co-workers are in Copenhagen, Sofia, Bucharest, Aarhus, Dublin, London, New York and San Francisco People’s values are the same but with subtle differences Meet regularly at the same physical location Cake and humor are good ice-breakers United Way of Lower Midland, https://bit.ly/33NUMwF
  • 16. Tools ● Version control ○ Currently git is the most popular ○ Github, Gitlab, Bitbucket or self-hosted ○ Public and private repositories ● Issue tracking and project management ○ Github issues, Jira ○ Github extensions (Zenhub, …) ● Real-time chat ○ Slack, IRC ● Document sharing ○ Google Docs, plan text files in git ● Email is still useful ● CI to automate testing!
  • 17. Code reviews Code reviews don’t find mistakes or error Use code reviews to get a updated view of the code base Ed Schipul, https://bit.ly/2o0STNQ Tips for reviewers: ● Assume that your coworkers are smart and have good intentions ● Don’t correct people but give suggestions ● Review soon so you don’t block your coworkers
  • 18. Open Source is not a spectator sport J. Albert Bowden II, https://bit.ly/2qt0cPh
  • 19. Learn more ● Open Source Initiative - https://opensource.org/ ● The Cathedral and the Bazaar. E.S. Raymond. O’Reilly Media, 1999. ○ http://www.catb.org/~esr/writings/cathedral-bazaar/ ● Når nørder bliver filosofiske. K. Geisshirt. Alt om DATA, 4/2001. ● Hvad er fri software? K. Geisshirt. Alt om DATA, 12/2019. ● Open Sources: Voices from the Open Source Revolution. O’Reilly Media, 1999. ○ https://www.oreilly.com/openbook/opensources/book/ ● How to choose a license: https://choosealicense.com/