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

Software Development: The Open Source Way

Software Development: The Open Source Way

A talk at IIIT-D Delhi describing my FOSS Journey, my experience at GSoC working on an Open Event framework for FOSSASIA

Arnav Gupta

July 06, 2015
Tweet

More Decks by Arnav Gupta

Other Decks in Technology

Transcript

  1. Software Development
    The Open Source Way

    View Slide

  2. A little bit about myself

    View Slide

  3. whoami
    ● Final year EEE @ DTU, Software Developer at heart
    ● Contributor to Android, CyanogenMod, Arduino
    IDE
    ● GSoC 2015 Student Developer @ FOSSASIA
    ● Winner @ GSF Hacks 2014, Androidathon 2015
    ● Organiser, coDelhi, DTU’s first Hackathon
    ● Speaker @ DroidCon ‘14, MODS ‘14
    ● Organiser/Speaker @ GDG New Delhi

    View Slide

  4. git log --oneline
    2009: hacked maymyindia roadpilot
    2010: learnt php/js while building own website
    2011: started hacking around with Android
    2012: ported Xperia S firmware to X10
    2013: CM device maintainer for 15 Xperias
    2014: Contributions to AOSP, CM, Micromax
    2015: Selected for GSoC, learning webstack

    View Slide

  5. Why I like FOSS
    ● Free as in gratis (almost always)
    ● Free to modify, to suit my needs
    ● Support base, community, Q/A sites, forums
    ● Can look at the source and learn
    ● Can fix bugs on my own, and do good for the world ;)
    ● Can add my own features, and contribute back

    View Slide

  6. What OSS means to me ?
    ● Learning to collaborate with 1000’s of devs
    ● Learning good coding practices
    ● Cleaner code, as everyone will look at it
    ● Work on real projects that the world uses
    ● Shoulder to shoulder with great developers
    ● Learning how large systems work

    View Slide

  7. My Open Source journey

    View Slide

  8. Brush with Linux
    ● Got to know about Linux in 7th grade.
    ● Was excited to know an OS other than Windows can
    exist
    ● Became a permanent Linux user by 9th grade, had
    far more features on a 700MB CD than a 9GB DVD
    of Windows
    ● The ease of use, and the major updates every 6
    months made me <3 FOSS

    View Slide

  9. Using more OSS Apps
    ● Used more FOSS apps like VLC, Audacity,
    Firefox, 7-zip, Notepad++
    ● Used Wordpress and Drupal
    ● Initially mostly because they were gratis
    ● Later, because more plugins and faster
    updates

    View Slide

  10. First contributions - CM
    ● Interested in the Android OS hacking scene after getting
    my first Android phone
    ● Soon realised the whole Android OS source was open
    and anyone can modify and compile
    ● XDA-Developers - one huge resource to learn how to
    start building the android source code.
    ● Learnt about CM, a modified version of Android.
    Started building CM for my Xperia.
    ● Learnt Java and C++ largely by reading others’ code

    View Slide

  11. Rules of the Game
    ● CM journey taught semantics of FOSS world.
    ● Importance of authorship, licenses, copyrights and
    copylefts
    ● Learning git, and then gerrit. The initial shock of your
    code being reviewed :P
    ● Delving deep into version control, and it’s importance in
    the FOSS world.
    ● Understanding more about how the community drives a
    FOSS project.

    View Slide

  12. Spreading out - own projects
    ● A github account was always exciting. Getting green
    dots was always an accomplishment.
    ● Started creating small websites and apps as personal
    projects. Used Github always. Felt special about sharing
    code with the world. Also github was convenient.
    ● Some projects became popular - a tool to modify
    kernels, a multi-touch library for Android, a custom
    kernel for Xperia phones

    View Slide

  13. Getting addicted
    ● OS contributions became an obsession.
    ● Started electronics projects. Felt Arduino IDE lacked
    some features, became a contributor.
    ● Contributed to many Android libraries, GNOME
    plugins, almost anything I used personally and found
    bugs or features lacking.

    View Slide

  14. Accolades and recognition
    ● Invited to speak at -
    ○ OSDConf ‘14 at JIIT, Delhi
    ○ Mobile Developer Summit ‘14 @ IISc Bangalore
    ○ DroidCon India ‘14, Bangalore
    ● People using and contributing back to my personal
    projects on github
    ● Started an OSS Special Interest Group at DTU
    ● Selected for GSoC 2015

    View Slide

  15. My GSoC journey

    View Slide

  16. A funny fiasco - 2014
    ● Applied last year for a Debian project
    ● Porting Debian to Android. Related to
    something I was doing for last 2 years.
    ● The project was scrapped because of lack of
    mentors a week before deadline.

    View Slide

  17. Luck by chance - 2015
    ● FOSSASIA had a project - “Open Event”
    ● Basic idea : Android and Webapp templates that any
    conference/seminar events can use to generate
    microapps for their event.
    ● Co-incidentally had worked on a similar idea -
    “Eventful” - autogenerate apps for events for non-tech-
    savvy organisers, as a personal project.
    ● Selected, and an awesome experience so far.

    View Slide

  18. GSoC with FOSSASIA
    ● FOSSASIA : Largest OSS organisation in Asia.
    ● Privilege to work under awesome mentors, for eg, Mario
    Behling - founder of Lubuntu.
    ● Learning to work remotely as a team. Scrum updates,
    synchronisation mails etc.
    ● Opportunity to move out of known domain
    (Android/Java/Systems) and learn the web stack, and
    create webapp in Angular JS.

    View Slide

  19. How to contribute to FOSS

    View Slide

  20. Use FOSS
    ● One simple and sureshot way to get involved is to switch
    to an OS that's FOSS. You'll automatically use >90%
    FOSS Apps
    ● Linux often requires you to delve into shell, or build
    your packages. Instructions are simple, but you start
    getting the feel of compilation/configuration.
    ● You might have the itch to fix or add parts of an app
    you're using. If you're using Open Source apps, you just
    might, because you can

    View Slide

  21. Go beyond just coding
    ● Try to start building 'products' instead of 'programs'.
    ● A software or an app is a product. It needs icons and
    design.
    ● You need to test, get it working everywhere. Make it
    'installable'
    ● Your code needs to be documented so that you, or
    others can read it later.
    ● Open Source is largely about 'developing' and 'coding' is
    maybe 10% of it.

    View Slide