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

37fbf83b7d45711e41e774e29fed710e?s=128

Arnav Gupta

July 06, 2015
Tweet

Transcript

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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.
  9. 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
  10. 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.
  11. 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
  12. 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.
  13. 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.
  14. 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.
  15. 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
  16. 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.