SoK

My Journey in Open Source

One can raise an argument saying “is the competitions like GSoC and Outreachy , really helpful to open source or do they just create short term contributors who will only contribute for the monetary gain?” Being a constant open source contributor in various projects and organisations I have seen the same. I have seen students who only contribute having the monetary gain in mind and seen them disappear when they are not selected, or the program finishes. But everybody isn’t like that. These programs just create the opportunity and provide that extra push you need to step on board.

I also started my journey in open source from a program like that. Few years back (in 2014), I wanted to start contributing to Open source and I saw that GSoC is a good opportunity. So I start searching for projects and organisations which align my interests. Wikimedia foundation was one of my top choices. I whole heartedly support their mission of making knowledge open to anyone who desires it. Wikipedia has taught me lot of things. It was time to give back. When I was searching through their projects list I found out about Wikimedia labs sub community and their project on improving documentation for the new comers. Wikimedia Labs provides a platform to host wikipedia related bots by community members. I found it very interesting and matches my abilities in technical documentation nicely. Since it was not a coding project it wasn’t listed in GSoC projects, but it was listed under FOSS OPW (now Outreachy) projects. That is when I found about FOSS OPW.

FOSS OPW (now Outreachy) is a GSoC like program which helps people from underrepresented groups such as women, cis, trans, gender queer people, to get involved in open source. It doesn’t limit your contributions only to code. You can find projects in documentation, design, marketing apart from coding. So whatever is your passion, you can find a role in open source.

Wikimedia is a very welcoming community to new comers. It taught me most of the things I know about the open source and open culture. My mentor was Andrew Boggot. My initial task was to review the main page and getting started page in Wikimedia Labs wiki . Since I was new to the community and the wiki, the task was ideal for me. They wanted the perspective of a new comer so that they can improve it to make new comers more welcoming. Then they asked me for a demonstration of the main page and the changes it needed  as a follow up task. By the time I completed these tasks I was pretty much comfortable with Wikimedia labs platform. Then I prepared my proposal for Outreachy which got accepted upon submission.

My job was to improve the documentation of Wikimedia labs to make new comers’ lives and the existing contributors’ lives easy. One of the significant contributions is to make the documentation of every project (bot) hosted in Wikipedia Labs complete and easily queryable. In that way new comers can easily get an idea about what projects are open for contributions and what projects are finished. It also helped the administrators to identify the status of each project for administrative operations. My progress report and final summary can be accessed from here. After the project ended, I continued to contribute to the other sub communities as a Wikidata item editor, Media wiki translator, etc.

Ending my FOSS OPW internship with Wikimedia didn’t ended my enthusiasm to contribute to open source. That is when I found about Season of KDE (SoK).  It differs from most of the open source programs since it doesn’t offer money. Since I wasn’t in open source for money, it suited me well. It was also open to other disciplines apart from coding as well. The project which caught my eye was “Theme Designing for Pairs”. What I had to do is design different themes for the KDE-Edu project “Pairs”. You can read all about it here.

Meanwhile I was selected as a scholar in “Learn IT, Girl” first edition. It is a global mentorship program where a scholar is matched with a mentor to learn a programming language from the scratch and do an open source project. My project was “Expense Splitter”. It is a platform developed from Ruby to make the splitting money easy among your friends. When we go out with friends and buy something to eat or drink, usually one person pays for all and others pay him/her back immediately or later. Expense splitter track these expenses and allows the creditor to send the notifications to debtors. It will help you manage your debts and settlements. I was able to successfully finish the project and pass the program. Not only that my project has been selected as one of the best projects and added to their showcase. In future I expect it to expand to Android and iOS platforms so that the expenses can be recorded immediately since you have your phone with you always. After having an awesome experience in the first edition, I volunteered to be in the organising committee for the second edition and also selected as a mentor so that I can give back what I learnt during the first edition and what I already knew.

My most constant and significant contribution to open source lies with Systers. Systers is an Anita Borg Institute Community whose objective is to improve the female participation in tech and allow them a safe heaven through systers mailing list. In the open source perspective, systers is an umbrella organisation for GSoC. It has some of their own projects and some of the collaborative projects with Peace Corps and Mailman. The project I contribute to is “PCSA – Peace Corps Safety App”. Peace Corps aims to provide a compassionate and supportive respond to all the volunteers who have been sexually assaulted. PCSA mobile app supports this initiative by letting the Peace Corps Volunteers to report and gain information on Peace Corps Safety and Security procedures. The Android version of the PCSA started with GSoC 2015 where I was one of the mentors of the project. After the GSoC we proceeded with the app implementation with the counter contributors. We also participated in GCI (Google Code In) 2015. For GSoC 2016, we started the iOS version and a web front end for the app. I am currently the lead mentor of the PCSA-Android for GSoC 2016. Throughout the project lifetime, I have been the primary maintainer of the repository. My responsibilities included reviewing and validating issues, reviewing and merging pull requests and project management. I also maintain the project wiki.

Maintaining an open source repository comes up with lot of challenges. Handling traffic, determining what’s best for the project, maintaining a positive community sense are few of them. It is hard to reject a pull request which is not needed for the project, although its author has put a significant effort in that. You should be technically sound to reply the arguments the authors put forward in justifying their choices in code reviews. You need to have a good up to dated knowledge base on the technical side of the project, in this case Android.  Hence, the impact of this project to my future goal of being a good mobile developer is invaluable.

My activities in GitHub: https://github.com/sandarumk?tab=activity

I also enjoy writing and giving advice about GSoC and starting in Open Source. Check my Quora profile here. I am also one of the most viewed writers in “GSoC” and “Open Source Projects”. If you have any problems or need tips feel free to contact me. I will be more than happy to help.

Given below is my portfolio:

Github: sandarumk

LinkedIn: Dinu Kumarasiri

Quora: Dinu Kumarasiri

Twitter: @sandarumk

SoK Final Report – Theme Designing for Pairs

Theme designing for pairs is my Season of KDE project, mentored by Heena Mahour. In this project i created new themes for KDE-Edu project “Game Pairs”. In SoK period I created the following themes:

Here are some screen shots of these themes in Pairs:

Fruits Theme

Fruits Theme

Vegetable Theme

Vegetable Theme

Nature Theme

Nature Theme

Stationery Theme

Stationery Theme

Leaf Structures Theme

Leaf Structures Theme

These themes will work in following game modes in “Pairs”

  • Pairs
  • Relations
  • Logic
  • Words

The most challenging part of my project is to first build and run the program. It took some time and help from KDE community to figure out issues regarding my configuration and have “Pairs” up and running in my machine.

Next step was to understand how a new theme should be added by going through the project. My mentor allowed me to do this myself rather than stating out the ways of how to do it. Adding a theme is not only about creating images and add them. It is about connecting these images to the program as well. In “Pairs” a theme is consist of set of images and a “.game” file. The “.game” file is written in xml and contain information about the images. Following is the step by step process to create and have your theme running in “Pairs”:

  1. Download KDE Pairs
  2. Extract and follow the steps in README to  build the program
  3. Run “Pairs” (After you have built and install “Pairs” you can run it by simply typing “pairs” in the terminal)
  4. When you have “Pairs” up and running, you can start creating svg images. (To create svg images, you can use software like inkscape)
  5. Create a folder in the “themes” folder in “Pairs” and add the svg images to that folder.
  6. Create a xml file “your_theme.game” and edit it following a .game file of a previous theme.
  7. Update the CMakeLists.txt file and add the following line “create_theme(your_theme)”
  8. Built and run pairs again and you will see your theme with other themes.

Another task of my project is improving documentation in KDE pairs. The user documentation for “https://userbase.kde.org/Pairs“. I even created a techbase wiki page for pairs such that other contributors can contribute to the documentation of pairs in technical side.

A very big thank you should go to my mentor Heena Mahour without whom this project will never be successful. Further more, I would like to thank KDE community who helped me through mailing list when I have issues regarding the project. Last but not least I would like to thank to the KDE SoK organizers for providing this amazing experience. I am looking forward to contribute to KDE even after this is finished.

Theme “Leaves” added to “KDE – Pairs”

“Leaves” is the newest theme I created for KDE-Pairs as a part of my ongoing project ‘Theme Designing of Pairs’. This is done under the guidance of my mentor “Heena Mahour” who initially gave the idea about leaf structures. This will only work in 3 game modes namely, pairs, relations and logic.  You can download the theme from here.

pairs-leaves-pairs pairs-leaves-logic pairs-leaves-relation

Theme ‘Stationery’ added to ‘KDE – Pairs’

As a part of my ongoing project “Adding new themes for KDE Pairs game”, a new theme ‘Stationery’ is added. The motivation behind selecting the particular theme lies on its simplicity. Stationery objects are very much familiar with pre-school children rather than other objects. Hence these stationery items can be used in the ‘Pairs’ game to develop their logical skills, rather than worrying about their familiarity with the domain.

The stationery objects I have used for this are; book, pen, pencil, paint brush, paint tube, ruler and scissor. The theme can associate four of the six game modes. They are pairs, relations, logic and words. Few screen shots of the theme will be as follows;

In 'Pairs' game mode

In ‘Pairs’ game mode

In 'Logic' game mode

In ‘Logic’ game mode

In 'Relation' game mode

In ‘Relation’ game mode

In 'Words' game mode

In ‘Words’ game mode

This theme can be downloaded from here.

More Themes Added

After adding the first theme, I was working on a theme on nature. That theme represents the basic elements in the nature such as trees, flowers and etc. Since KDE Pairs is developed for pre school children the objects represented in the themes should be familiar and educational to them. Following are some screen shots after adding the theme nature to the game. These screenshots represents the different game modes such as logic, pairs, relations and words.

Theme Nature nature-pairs nature-relations nature-words

After drawing the elements of this I started drawing for another theme which is very similar to my previous theme (Fruits). That is vegetables.

First Theme added

Today I added my first theme for Pairs. You can find that here.  In my current project “Theme Designing for Pairs” which is a project from “Season of KDE” and mentored by Heena Mahour, the main task is adding themes.

When designing a theme for a game designed for pre-school children, you can’t just draw some pictures and add. The pictures will be educational and easily identifiable. So as my first theme I designed a theme of fruits. It contain 8 fruits; apple, banana, pineapple, mango, strawberry, pairs, orange and grapes. It will support the “Pairs”, “Relations”, “Logic” and “Words” game modes. A screenshot from “Pairs” game mode will look as follows:

Screenshot from 2014-12-14 22:56:09

To create the image files in the svg format, I have used inkscape.  Even though it took some time to be familiar with its functionality first, once you draw a thing or two you get addicted to it with its cool features.

 

 

Season of KDE

Season of KDE is an outreach program hosted by KDE community. It is a similar program like “Google Summer of Code”. The current round of Season of Code started in October and hope to go until January.

I am selected for Season of KDE with the project “Theme Designing for Pairs”. My mentor is Heena Mahour. Pairs is a KDE educational project focused on preschool children. It helps stimulating memory and logic skills of children. My project will cover the following aspects of “Pairs”.

  • Creating and adding new themes
  • Improve documentation
  • Re factor code base

When I found about SoK, I was looking for opportunities to contribute to open source community. My skills in creativity, technical documentation will help me to achieve the expected results very easily.