KEMBAR78
Open Source in Real Life | PDF
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/

Open Source in Real Life

  • 1.
    Open Source in RealLife 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 opensource? 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
  • 6.
  • 7.
    Pure projects ● Typicallyfounded 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 contributorsonly 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 Aproject 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 reasonfor 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 Youcan 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: Permissivelicense 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 Opensource 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
  • 14.
  • 15.
    Time zones andculture 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 reviewsdon’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 nota spectator sport J. Albert Bowden II, https://bit.ly/2qt0cPh
  • 19.
    Learn more ● OpenSource 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/