Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The power of contributing to open source projects

The power of contributing to open source projects

Umar Saidu Auna

June 26, 2021

More Decks by Umar Saidu Auna

Other Decks in Technology


  1. Hello world! I AM UMAR SAIDU AUNA I am here

    because I love open source and a tech community organizer. Software Engineer @gidimo You can find me on twitter: @umarauna 2
  2. HISTORY ▪ The term Open Source was adopted by a

    group of people held at Palo Alto, California. "Open Source Summit" organized in April 1998 by technology publisher Tim O'Reilly. 4
  3. HISTORY ▪ The concept of free sharing of technological information

    existed long before computers. ▪ Similar to open standards, researchers with access to Advanced Research Projects Agency Network (ARPANET) used a process called Request for Comments to develop telecommunication network protocols which led to the birth of the INTERNET in 1969 5
  4. OPEN SOURCE ▪ “Open source" refers to something people can

    modify and share because its design is accessible public wide. ▪ Open Source technology can be defined as Computer Software for which the source code is made available under a copyright License(GPL), enabling anyone from anywhere to copy, modify and redistribute the source code without paying any fees. 7
  5. OPEN SOURCE ▪ “Open Source” is a software- licensing model

    where the source code of the software is typically made available royalty-free to the users of the software, under terms allowing redistribution, modification and addition, though often with certain restrictions. 8
  6. ADVANTAGE ▪ Easier to customize ▪ You can modify the

    software to your specific needs – there’s a lot of control and eventually satisfaction . ▪ The availability of the source code and the right to modify it is very important. ▪ Global collaboration with skilled developers. ▪ Core software is free. ▪ Encourages hands on. 10
  7. ADVANTAGE ▪ Learning - a newbie programmer with at least

    one year of solid programming education (even if it’s self-taught learning), contributing to an open source project can be one way to learn programming faster. 11
  8. DISADVANTAGE ▪ some Open Source projects stall and die -

    programmers just lose interest with being involved or they become fraught with infighting; arresting further development. ▪ It is sometimes difficult to know that a project exist, and its current status. ▪ Can lack software support and/or resources (documentations, communities, etc.) 13
  9. DISADVANTAGE ▪ Lack of time to really learn the software.

    ▪ May lack the manpower to support the software. ▪ Vulnerabilities - Although having an open system means that there are many people identifying bugs and fixing them, it also means that malicious users can potentially view it and exploit any vulnerabilities. 14
  10. ▪ GNU General Public License (GPL) ▪ The Apache License

    ▪ Microsoft Public Licenses (Ms-PL) ▪ Berkeley Software Distribution (BSD) ▪ Common Development and Distribution License (CDDL) ▪ Eclipse Public License (EPL) ▪ MIT License 16
  11. GNU General Public License (GPL) GPL is a copyleft license.

    This means that any software that is written based on any GPL component must be released as open source. The result is that any software that uses any GPL open source component (regardless of its percentage in the entire code) is required to release its full source code and all of the rights to modify and distribute the entire code. 17
  12. The Apache License The Apache License allows you to freely

    use, modify, and distribute any Apache licensed product. However, while doing so, you’re required to follow the terms of the Apache License. 18
  13. Microsoft Public Licenses (Ms-PL) The Microsoft Public License is a

    free and open source software license released by Microsoft, which wrote it for its projects that were released as open source. You are free to reproduce and distribute original or derivative works of any software licensed under the Ms- PL license. However, you may not use any contributors’ name, logo, or trademarks when you do so the author is not liable if the code doesn’t work well in some cases. 19
  14. Berkeley Software Distribution (BSD) The BSD License lets you freely

    modify and distribute your software’s code in the source or binary format as long as you retain a copy of the copyright notice, list of conditions, and the disclaimer. 20
  15. Common Development and Distribution License (CDDL) CDDL is an open

    source license published by Sun Microsystems to replace the Sun Public License (SPL). You’re free to reproduce and distribute any original or derivative works of any software licensed under the CDDL. However, you must not remove or make any changes to any copyright, patent or trademark notices contained in the software. You must also retain any notices of licensing or any descriptive text giving attribution to any contributor or the initial developer. 21
  16. Eclipse Public License (EPL) The EPL license is a copyleft

    license. If you modify an EPL’ed component and distribute it in the source code form as part of your program, you’re required to disclose the modified code under the EPL. If you distribute such a program in its object code form, you’re required to state that the source code can be made available to the recipient upon request. You’re also required to share the method for requesting the source code. 22
  17. MIT License 23 Basically, you can do whatever you want

    with software licensed under the MIT license — as long as you add a copy of the original MIT license and copyright notice to it. The MIT License is very simple, short and to the point, which is why it has such a high adoption rate among developers, although some avoid it because it doesn’t expressly grant patent rights. Commercial organizations often prefer it because of its “no strings attached” nature.
  18. EXAMPLES ▪ Linux operating system kernel – substitutes for proprietary

    UNIX. ▪ (Apache Web Server (web server for UNIX systems. ▪ My SQL Structured Query Language – competes with Oracle 25
  19. Application 7-Zip Eclipse GIMP Chromium Blender Mozilla Firefox Open Office

    Operating System Android Linux FreeBSD ReactOS Haiku FreeDOS Programing Langauge Kotlin Perl PHP Python Ruby PHDL Prolog
  20. OPEN SOURCE VS. CLOSED SOURCE ▪ Open-source software is based

    on the idea that the user cannot only view but also can change the source code of the existing application based on the requirements. ▪ Closed-source software contains the source code which is hidden to prevent the user either viewing or changing the code. It is a kind of proprietary software. (Microsoft office, Adobe photoshop). It can be accessed only by paying or meeting certain requirements. 28

    ▪ Stability ▪ Access and broad rights to source code ▪ Access to skilled community of developers 30
  22. MAJOR ORGANIZATIONS ▪ Free Software Foundation ▪ www.fsf.org ▪ Grew

    out of GNU community ▪ Promoters of GNU Public License (GPL) ▪ Approves Licenses as “Free Software” 31
  23. MAJOR ORGANIZATIONS ▪ Open Source Initiative ▪ www.opensource.org ▪ Grew

    out of disagreements with GNU/FSF ▪ Less dogmatic / more practical ▪ Approves Licenses as “Open Source” 32
  24. COMPANIES USING OPEN SOURCE ▪ Google ▪ Amazon ▪ Facebook

    ▪ Twitter ▪ and others were built with open source 33
  25. OPPORTUNITIES ▪ It offers practical accessibility to a product's source

    , so that You can know how the program works. ▪ This evolves through community cooperation which is composed of individual programmers and companies. Many of these individuals programmers who start an open source project usually end up as large companies with open source programs. 35
  26. BENEFITS OF OPEN SOURCE Security - the more people who

    can see and test a set of code, the more likely any flaws will be caught and fixed quickly. Quality - It is more likely to be better quality software package as it created by thousands of developers. Customizability - business users can take a piece of open source software and tweak it to suit their needs. Since the code is open, it's simply a matter of modifying it to add the functionality they want. 36
  27. OPPORTUNITIES Participate in Hacktoberfest. -> Free Swags Google Summer of

    Code (GSoC) - for schools MLH(Major League Hacking ) Fellowship Google Season of Docs (GSoD) 24pullrequests.com Google Hash Code github.com/trending 37
  28. COMMUNITY OR COMMERCIAL ▪ Run by individuals, universities, research groups,

    etc. ▪ Comes out of finding “common cause” ▪ Can have commercial providers ▪ Linux, Apache, Mozilla, PostgreSQL, uPortal, Sakai, Kuali ▪ Run by a company ▪ Build a community ▪ Marketing via downloads ▪ De facto provider of all value- added services ▪ MySQL, Alfresco, Zimbra, ▪ SugarCRM, Compiere 40

    Conversation ▪ Use the Software ▪ Report Bugs ▪ Contribute Fixes ▪ Write an Example Application ▪ Start Your Own Project 41
  30. WHO USES OPEN SOURCE Almost everyone! ▪ Federal and state

    governments ▪ Colleges and universities ▪ Major corporations ▪ Small businesses ▪ Non-profit organizations ▪ Hobbyists 43
  31. BEYOND SOFTWARE Open source is not only a way to

    develop and license computer software, but also a way means expressing a willingness to share, collaborating with others in ways that are transparent. Its committed to play an active role in improving the world. 44

    isn't reliable or supported. ▪ Making a software open source, anyone can change it. ▪ The open source license is too liberal. ▪ If you make your software open source, volunteer coders will fix all of your problem for free ▪ Open source is is always more (or less) secure. ▪ Always has worse documentation 46
  33. Tools i build/Contributed to Open Source ▪ Build carousel image

    slider library (kotlin) https://github.com/UmarAuna/Carousel-Kotlin-Image-Slider ▪ Build Devfest North Central App 2018 https://github.com/UmarAuna/DevFest-North-App ▪ Contributed to Covid-19 APP https://github.com/rizmaulana/kotlin-mvvm-covid19 47