Showing posts with label FOSS. Show all posts
Showing posts with label FOSS. Show all posts

Sunday, February 23, 2020

[GSoC] Framing your questions correctly

There may be some shortcomings in open-source documentation. Feel free to seek help from the mentors. But make sure to give your best effort on finding them yourself first. Sometimes, they are there. Just you could not find it. Sometimes, the mentors have already provided the link to the documentation as an answer to another student in the mailing list or Slack. Make sure to go through the previous messages.

A serious turn off for me, when a student cannot find something - but they present it as a failure of the organization or the mentors. 

For example,
"How can I run your software? Your project lacks an installation guide!!". 

This is an actual message I received (paraphrased).

Such messages come across quite arrogant. Especially when the documentation is indeed there -- linked from the home page. The student just missed it! That's completely fine when a student fails to notice documentation and seeks assistance in locating it, except for the tone of the student in these messages (as if they found a huge shortcoming in the project).

The right way to frame this question without giving some attitude:
"Somehow I couldn't find the install instructions. Any help?"

I think GSoC students (actually any software engineering undergrad) need some training in communication skills. Not my responsibility as a GSoC mentor to teach communication skills to the GSoC candidates, especially in the application period when we are bombarded with candidates with a diverse range. Some great. Some so-so.

Being polite in your communication with the open-source community and the potential mentors helps a lot, especially in a competitive program such as GSoC. We want to find kind and pleasant people to work with. Not ones with an attitude. :)

Saturday, November 2, 2019

Universities as mentoring organizations

A fraction of the session participants.
(Photo by akram9)
We had several exciting unconference sessions and talks at the Google Summer of Code Mentor Summit 2019. I proposed and coordinated the unconference session titled "Universities as mentoring organizations," the Sunday 20th of October 9:00 - 10:00 a.m., at the room "Studio-2" of Mariott Munich. We had around 25 active participants from multiple organizations, representing several universities from countries including the USA, Russia, Germany, and Brazil. We also had mentors from umbrella organizations such as CBioPortal, which are based mainly on universities and research labs. Later on the same day, I coordinated a session on "The great proposals" at "Studio-3" from 2:30 - 3:30 p.m.
 
The session notes are recorded in the GSoC notes. Find all the sessions with their notes linked here. In this post, I elaborate on the session "Universities as mentoring organizations" again for a wider audience. These notes are from the thoughts of the mentors from the communities involved in the discussion, and they will reflect the communities involved. Discussions are grouped under topics, rather than by the person who discussed it in detail.


Administrative Challenges from the Universities
The discussions started interactively with self-introductions from the participating mentors and their mentoring organizations. Tiago and Frederico represented their mentoring organization, which is a university in Brazil. They noted the challenges in convincing the university administration to join the GSoC and then accepting payments from Google. Their organization was the first Brazilian university to become a GSoC mentoring organization. The university administration was expecting documents from Google in Brazilian Portuguese to consider them official. The universities expected the supporting documents could come from one of Google's Brazil offices rather than from Mountain View to make the language requirement met. This expectation created some translation requirements, and these cause some additional burden on the GSoC organization administrators. We hope that such issues would be sorted out from the universities, potentially with some help from Google, so that there would be more participation from International (i.e., non-English-speaking) universities as mentoring organizations.

GSoC Students Help Ph.D. Research
There were several observations on how GSoC students help with the implementation of research ideas. Several Ph.D. implementation works remain closed due to implementations with significant technical debt. Support from GSoC helps make the code more readable and reusable, and thus support open science and open-source contributions from the research universities. Hence GSoC students help with the host universities' research open-source. Stephanie from UC Santa Cruz stressed how GSoC helped their Ph.D. and postdoc researchers. She mentioned how the undergrad GSoC students worked with their researchers, and this was a mutually benefitting task. No one felt mentoring as a burden. Instead, they saw it as a way to build their communities. She highlighted that promoting GSoC across the departments would be easy by stressing how the GSoC students help with implementation over the summer, paid by Google. There were observations on developing projects that are helpful to Ph.D. research work. For instance, there are projects that need to get done, but the mentor (Ph.D. student) doesn’t want to do it themselves. GSoC students can be more motivated to do such implementation work, even with little scientific or research impact.

Motivating students into GSoC
Philipp and Karlheinz represented the University of Munich. They highlighted that their Ph.D. students work as GSoC mentors. However, they also stressed that it is hard to motivate students from their university to join GSoC as students due to summer holidays overlapping with the GSoC timeframe. Students do go off on a well-deserved vacation rather than taking a summer internship. Furthermore, there were observations that there are several university open source projects that are not connected to or well-received by general open-source software communities. GSoC is indeed bridging this gap, making the code quality better. I (Pradeeban from EmoryBMI - Emory University, Department of Biomedical Informatics) mentioned how we motivate our students to join GSoC while discouraging them from joining our university/department as their mentoring organization. This is mainly because we want them to build new collaborations. Collaborations inside the university or department do not require a GSoC.

GSoC in professional life
The impact of GSoC is long-lasting. Some of us found our postdoc advisors and employers through GSoC. So GSoC works as a recruiting platform for mentors as well. Furthermore, it fosters international collaborations between universities. We had research papers as outcomes of the GSoC. Nikita from a Russian university stressed the importance of GSoC and similar programs in the students' careers. Sebastian Diaz from Harvard highlighted the misalignment of university projects and open source.  While challenging, programs such as GSoC help fill this gap. Tobias highlights that their target students mostly include Ph.D. students, as they are more suited to work on the proposed projects, involving significant research component. GSoC also helps them get more funding for full-time developers, as it is considered a full-time job for the students.

Best Students Join the Universities
Aadi, a high school student from India, observed how the best students like to work with the universities that function as GSoC mentoring organizations, as this helps them with their future graduate studies and research. The observation is that the mentors from such organizations are professors and experienced researchers from the universities. This is also a mutually beneficial relationship - universities as mentoring organizations get to have the best students. Indeed, a win-win. I joined OMII-UK as a student in 2010 and Emory BMI in 2014 and 2015 (2016 onward as a mentor and then joined 2018 as an employee, and 2019 a postdoc). My interest for OMII-UK was driven by the fact that the EPCC research team from Edinburgh University was part of OMII-UK, where I worked with them on their OGSA-DAI platform for GSoC 2010.

Why not enough open-source from universities?
Arav Singhal, a student from Rice University, stressed he prefers more open-source development in his university. We agreed that a large number of research teams keep their source closed until their paper is published. Even after that, when the code is made public, most of the time, the code is not reusable, as it is usually developed as a prototype with little attention to code readability and engineering best practices. GSoC helps fix this by building up coding skill sets in the students.

Small open source presence in a country
Deniz is from Turkey. He was a GCI student in ScoReLab (an open-source community originated from the University of Colombo, Sri Lanka). He highlighted how Turkey has a small open-source presence. The lack of local open-source communities makes motivating students to join GSoC harder. The challenge starts with introducing open-source and then GSoC, among the potential students. It is essential to create larger local open source communities to build a diverse expanding FOSS contribution.

Universities/Entities collaborating as a single mentoring organization
Werner highlighted the collaboration between multiple universities as a mentoring organization. He observes that sometimes, organizations do not make it explicit enough that the organization is a research department or a collaboration of such entities. Ino from cBioPortal highlighted how hospitals and research institutes collaborate under cBioPortal for the GSoC. He also noted the positive outcomes, including peer-reviewed publications. Mentioning GSoC in CV - both as a student and a mentor - is rewarding. There were suggestions on including open source software development in university curriculums.


Starting a new GSoC organization
Akram, a researcher from the University of Tennessee (Dept. of Bioinformatics), helped his department apply and get selected as a mentoring organization as a new (i.e., first-time) GSoC organization when he moved to the current university as a postdoc from another university. He observes that the GSoC has indeed resulted in peer-reviewed journal publications. He stressed the importance of open source for university. There seems to be a common observation that receiving funding from Google (or any similar company) becomes harder due to the university regulations. We discussed how to start as a mentoring organization. We need to have precise project ideas. Of course, having established open source projects would be a big plus. However, there are also concerns about having mentors and retaining them. How to grow our mentoring community beyond the walls of the department/university? GSoC students-turning-mentors can be a solution. We also need to be clear on the bioinformatics side on what can be open source, as we deal with sensitive health data.

Recruiting Mentors
One challenge to address is how to leverage more departments/mentors from the university. Some of us view it as building the community. This requires a significant effort from the organization administrator, to convince the fellow faculty, postdocs, researchers, and staff to be GSoC mentors. Sometimes, it is faster just to do the development ourselves, rather than mentoring a student to do it. However, such mentoring can be a rewarding experience for early career researchers. We all agreed that GSoC was a productive use of our time and not overhead. We also need a "mentor pool." Projects should have back-up mentors and an active co-mentors. This helps with avoiding mentor burn-out, ensuring successful completion of GSoC.

GSoC as a funding mechanism
Some view GSoC projects as a way to fund implementation activities that other funding entities won’t financially support. For instance, development is often seen as not novel. Therefore, complete implementation and maintenance efforts do not receive sufficient funding from the funding agents. However, such maintenance and incremental developments are crucial for the usability of the project. GSoC helps improve the usability and maintenance of the code.


Did we miss anything? Also, did I fail to include any crucial aspects discussed in the session? Please share your thoughts on this topic as comments.

Wednesday, September 11, 2019

Younger Siblings of GSoC

There is a younger version of GSoC aiming at school students (age 13 - 17). Format is different. It is more of a contest of several small tasks. I mentored once for Haiku OS. If you feel bored during the weekends now that the GSoC is over, consideer to apply to be an organization. ;)
https://opensource.googleblog.com/2019/03/reflecting-on-google-code-in-2018.html


and another interesting one that happens in October. https://hacktoberfest.digitalocean.com/faq
HacktoberfestHacktoberfest
Open source is changing the world – one pull request at a time.(209 kB)

^ The format is simple. Organizations register with their github profile and tag a few issues as "Hacktoberfest". Then students can pick up and resolve those issues with PRs. The student who completed 4 PRs receive a tshirt.

and a December version of it - https://24pullrequests.com/

24pullrequests.com24pullrequests.com
24 Pull Requests is a yearly initiative to encourage contributors around the world to send 24 pull requests between December 1st and December 24th.(44 kB)


.. and if you want to give yourself or someone else a certificate, here is the tool that Google/GSoC uses - https://github.com/google/certificate-maker
google/certificate-maker
An experimental tool for turning HTML templates into PDF files.
Stars
68
Language
JavaScript
<https://github.com/google/certificate-maker|google/certificate-maker>google/certificate-maker | Jan 30th | Added by GitHub

Wednesday, May 24, 2017

GSoC Regional Groups

This is the time of new students in GSoC. There have been some interests and discussions around GSoC regional groups in the GSoC mailing list.

The regional groups serve a purpose. They discuss country-specific issues, such as issue/delays in receiving the packages in certain countries, taxation in India, local meetups in different countries or regions, or discussions in your local languages (for example, discussions in Chinese in wechat China group).Many countries have their own group. If your country had little to no participation in the past, there is a possibility to have groups covering a larger regions. For example, the group for Africa: https://groups.google.com/d/forum/gsoc-africa

You will need to do a Google search to find your local groups.

I understand some emails may be uninteresting for the audience. But pls avoid sending an email saying "can we pls stop this discussion? It is annoying to me" First you are contributing to the noise by such an email. Second, usually it comes across rude. So avoid sending them unless you are one of the moderators.

A worse case I noticed was an email I noticed asking to stop the discussions on what IM to use. The sender decided to create a separate email thread to express his point. Usually the emails are organized nicely into threads. Avoid creating new threads to express your opinion. Use the same thread. That will avoid too much distraction. If someone is not interested in that particular topic, they may ignore or mute the topic.

Feel free to join or ignore any country or regional GSoC groups. They were typically created by past-students like us. You are not obliged to join them, though they are usually very welcoming to their local students (and are more tolerant to noise).

If you are from Sri Lanka, feel free to join the Google Sri Lanka Google group. It seems to be very passive in recent years though. 

I believe there is a separate Google group managed by GSoC admins to announce the meetups formally to the GSoC admins and others - google-soc-meetups@googlegroups.com I did not see much activity in that group.

Good luck with your GSoC and related meetups.
 

Saturday, March 5, 2016

Joining your "company" as a student in GSoC

This is another commonly asked question from the potential GSoC students. Basically they are currently an intern in a company, while still being a student in an accredited university. Good for them that their company is accepted as an open source mentoring organization in GSoC. Now they can choose to apply for the GSoC as a student.

If they are still interns during the GSoC, obviously they will be illegible to participate in the GSoC, as it requires full-time commitment. However, if they just concluded their internship, they may be able to apply depending on when they completed their previous employment/internship with that company with respective to the GSoC timeline. This is something the GSoC administrators should confirm.

Given below is taken from a long reply I sent to a student who asked a similar question in the GSoC public mailing list, regarding the potential to join his employer once more through GSoC as an intern:

Even if the GSoC rules do not prevent you from applying, there are many factors that you and your company should consider. You are currently an intern there, and as a company, you may instead communicate with them and let them know your interest to continue internship with them outside the GSoC frame.

I do not know how the mentors of your company would think. However, if I were a mentor from such a company, I would avoid finding a local intern once more through GSoC - it is like losing a great opportunity - a slot to find more contributors long-term. It also undermines the vision of the GSoC to enable remote collaboration globally among the students and the open source organizations.

Now, as a student, you also should consider the positives and negatives of choosing the same company. It certainly won't look really good in your CV if your GSoC was from the same company, compared to working for an organization remotely (that probably you found from the GSoC). You will also lose the great opportunity of working with other organizations and open source cultures. Moreover, you may also lose the opportunity to have the taste of GSoC (remote meetings, sending patches, working remotely with volunteers and professors, finding further opportunities, helping an open source organization and become a committer).

So if you think the company would be interested in hiring you again, you should rather communicate your interest to the company in extending your internship - as you are quite interested in their projects and technology. As long as GSoC is considered, I would encourage you to find other organizations - there are 180 - all of them are fantastic, and may offer similar projects to your current company's technologies.

Friday, November 27, 2015

The Third OpenDaylight Lisboa Meetup

This time we had the OpenDaylight Lisboa meetup at FCUL, Lisbon. We had a productive discussion, and I learned a lot from the fellow researchers at FCUL. Given below is the introductory presentation slides I prepared for the meetup.
 

Saturday, June 30, 2012

Self help is..

So we have completed the first half of the year 2012, and have just reached the second half of it. Mid-year resolutions anyone? I am not much into the new year resolutions. Except for the resolutions I made in the year 2004 and 2010, no new year resolution went as I planned. But I rather prefer resolutions to be made on a random day!
Spending time effectively with computer has always been in the top among my resolutions. 

1) Contributing more to the open source, during free time.
This will mostly be open source development, but also will include blogging, community interaction, and evangelization. I will surely be more aggressive with this.

If you are into software development, open source projects give you a second life. I would encourage you to contribute. Blogging or creating a positive online presence would suit for everyone. One can be completely or partially anonymous online, will contributing positively to the world knowledge.

2) Spending time effectively online.
I am fine with reading new stuff which are totally unrelated, or listening to some music of an artist that I didn't heard of, before. However, my focus is to limit wasting time idling.

3) Learning something new.
I recently started learning Chinese from the Internet. Guess that was a failed attempt. Why? I didn't have a proper reason to back my motivation to learn Chinese up. I will focus to learn Portuguese instead. Anyway with my failed attempt to learn Chinese, I still have learned a few interesting facts of Chinese.


4) No L4 activities for any reason
As discussed by Stephen Covey, the L4 activities are the tasks that are neither important nor urgent. Spending time on them is a waste of time. Let's use the time for some L2 activities instead (not urgent, but important tasks)!

Facing the problem and trying to solve it instead of finding distractions to run away from it might be the ideal solution for this. If that is something difficult to achieve, and if there is a real need to keep you distracted from the issue, I recommend getting involved in other healthy activities instead. When we get even a mild fever, we seek the assistance of medicine and the doctors. We always tend to underestimate the health of the mind. We always take leaves for physical illness, whilst silently ignoring the wounds of the heart. If you ask me, taking a leave for being depressed is perfectly fine. As I might have mentioned somewhere before too, it is an ill-condition of the mind. Mental health is equally or even more important than that of physical.

5) Mixing the stuff up!
I often have felt sorry for the people who do routine tasks as jobs, which doesn't involve creative thinking or some change from a predefined agenda. Though this relates to the clerical jobs, call centers, or the jobs where bulk of employees are considered a cheap labour carrying forward the order of a big-guy. In late years with the rise of IT, many concerns were risen considering the fact that programmers are considered the same. Human nature is to avoid repetition of uninteresting tasks, with the exception of something that is addictive. An addict may find something interesting, which may not be for others. Someone often gets addicted to something, when he wants to be distracted from his mainstream life. The addiction can be the excessive use of alcohol, drugs, porn, or whatever. Addiction provides a short-term relief from the pain and the pressure of the real life (let's call it the first life). It leads to a feeling of guilty, inefficiency, and low self esteem. This vicious cycle continues. However, mild-addictions such as addiction to music or movies may not be harmful at all. 

A random improvement or attending to a random L2 event is always fun.

6) Listening to myself
I am going to be a good listener of myself. :D

Saturday, April 28, 2012

Apache Meetup, Kandy: Community Matters!

Yesterday (28th April, 10 a.m. - 4.30 p.m.) we had an Apache Meetup at the Engineering Faculty of the University of Peradeniya. It was an excellent event, which followed the recent Apache BarCamp, Colombo. I presented how to build a new open source community for the audience. The presentation was titled, "Community Matters!!!111" and was based on "Community Matters," the GSoC Mentor Summit discussion that I coordinated.


Friday, March 16, 2012

Google Summer of Code (The best of both the worlds)

Month of March is so special to me. I was introduced to two great open source projects in March, 2009 (AbiWord) and 2010 (OGSA-DAI).. ♥

Not everyone gets a chance to live........ a second life!
Now, the beauty of open source projects come into play that it gives you a chance to work on something that you are really interested in, in your own way. But not many of us get time to dedicate to an open source project due to our other commitments and as we are busy with our regular work, study, and related activities. The Google Summer of Code (GSoC) gives the best of both the worlds.

Why GSoC?
GSoC is an annual program from Google for the university students of age 18 and more. You will be coding for your preferred open source organization for 3 months. Google coordinates and awards the successful participants. Though open source organizations are run mostly by volunteer developers, Google pays the students with 5000 USD along with a certificate, an awesome t-shirt, and gifts! Hence you can focus entirely on the program during the 3 months time.

3 milestones. 
  • Getting Accepted (500 USD)
  • Mid-Evaluations (2250 USD)
  • Final Evaluations (2250 USD)

Some statistics of 2011
  • 175 Organizations
  • 2096 mentors and co-mentors.
Submitted
  • 3,731 students, from 97 countries.
  • 5,651 proposals.
Accepted
  • 1115 students/projects
  • 68 countries.
  • 595 universities.

The success rate is pretty high!
Last year, more than 90% of the students passed the mid evaluations, where around 88% passed the final evaluations. The high success rate is because, the mentors and the organization are with the student to provide him assistance and guidance, whenever is needed. 

The passion towards open source and the desire to be an outstanding student are considered to be the major reasons for a student to participate in the Google Summer of Code. Not to mention, while earning the money for the summer.

A computer with the Internet connection, knowledge and experience in the domain, and the motivation are the required to participate. Of course, you should really be interested in contributing to the particular open source organization.

Don't forget to check the


Before you begin..
  • Google Summer of Code is all about being Open Source.
    • Get your basics and motives right.
  • Netiquettes.
  • Sign up to the lists.
  • Join the relevant channel(s).

Technologies
  • Version Control Systems
    • SVN, CVS, GIT, Mercurial, ..
  • Build Tools
    • Ant, Maven, ..
  • IDEs (Integrated Development Environments)
    • IntelliJ IDEA, Eclipse, ..
    • Microsoft Visual Studio, Anjuta, ..
  • Issue Tracker
    • Bugzilla, Jira, Trac, ..

Communicating with the team..
.. and the mentor, over the Internet..
  • Mailing Lists
    • Dev, User, Commit lists, sub-groups, ..
  • Internet Relay Chat (IRC)
  • Issue Tracker
  • Forums and wiki
  • Blogs
  • Skype, Personal Mails, gtalk, conference calls, .. [with the mentors, if that is preferred.]

Network Etiquettes
  • Be Specific and clear.
  • Research (google.. ;)) before asking.
  • Be helpful to others.
  • Be ethical; respect.
  • NO CAPS! (UNLESS YOU ARE SHOUTING!)
  • Don't take messages personally.
  • Dn't snd ur sms msgs to thrds or lsts.

Proper Addressing..over the lists/irc/..
  • Address the devs and users properly.
    • First Name or Preferred calling name.
    • NO Sir, Madam, bro, sis, pal..
      • Even if you know them, personally.
    • No Mr., Dr., or Prof. either.
  • Be gender neutral.
    • “Folks” over “Guys and Girls”.
  • Not too personal.
    • Use “Hi”, instead of “Dear”.

Mailing lists
  • Post only to the relevant list.
  • Check the mail archives first.
    • To avoid getting RTFW/RTFM responses.
  • Avoid HTML mails.
    • Most of the mail servers do not like it. For eg, all the html mails posted to abiword mailing lists are dropped by the mail server. Make sure to turn off the html or rich text mail feature in your email program. It is by default HTML/RTF mail in the web mail like Gmail/Yahoo. Make them send plain text email.
  • No [URGENT]/[IMPORTANT] tags.
  • No unnecessary attachments.
  • No Cross Posting.
    • Stick to the proper mailing list only.
  • Don't hijack threads.
  • Don't post off-topic.

IRC Etiquettes
  • Be an observer first.
  • Refer to others using their irc nick.
    • Whenever my irc nick is mentioned, I get a pop up message from my irc client such as pidgin.
  • Don't expect immediate replies; wait.
  • Don't post bulk of text into irc.
  • Avoid these common mistakes.

Find a mentoring organization..
  • Have a look at the list of GSoC2011.
    • Since the list of this year hasn't been selected yet.
  • 175 Last year!
  • New Organizations.
  • Google as the mentoring organization.
  • Introduce GSoC to an organization (Sounds Smart!).

Find THE right project..    
Once you have found the right organization(s), that matches your interest and expertise, you have to go through the ideas list (e.g: the project ideas of AbiWord).

You can even contribute to the organizations, that aren't selected this year, as most of them still welcome the student contributors. OGSA-DAI had some great project ideas, but wasn't accepted this year as a mentoring organization.
    These were the organizations that I had my summer with. The beauty of these organizations is, they are friendly and provide a great learning environment. I was able to become a committer, developer, and mentor for these organizations. I learned open source with these organizations, and they have influenced me a lot positively. Apart from the coding, we always share thoughts and literally the AbiWord and OGSA-DAI communities have given me a colorful second life, which I would love to maintain as a developer, whenever I get a free time from the "first life".

    Get to know more about the projects
    • Talk to the mentor(s) Assigned by the organization for each project idea.
    • Mailing lists and archives.
    • Issue Tracker
      • Open issues or tickets
        • New features/enhancements (RFE)
        • Bugs (easy/difficult and normal/critical)

    What makes you special?
    • Experience
      • Being a great user doesn't mean that you can be a good developer.
    • Your interests and motivation
      • Pick something you really enjoy doing.
      • Being a great developer doesn't mean that you can be a good contributor.
    • Opportunities
      • What makes you the right person?
    • Willingness to contribute to the community beyond the time frame of GSoC.
      • We want committers and long time volunteers - Not just students!


    Experience
    • Languages
      • Java, C++, C, ..
      • Not much time to learn a new language (?)
    • Prove It!
      • Patches.
      • Assist other students!!!
      • Project expertise
        • Bug reports and fixes.
        • Go through the archives, wikis, and web sites.

    Opportunities..
    • Project that matches your previous work experience.
      • Choose the right project.
    • Timezone Difference 
      • Use it effectively - Most of us prefer to work in nights too, as we have the lectures in the mornings.
    • Multiple Applications (20!)
    • Preferences! 
    • Communicate early and often.
    • Be heard, visible, responsive,  and quick!
      • Ask questions, and more importantly answer others' questions.


    Apply

    Register as a student for GSoC, as the first step. Use the project's wiki for draft proposal, if applicable. Some organizations prefer that, where some discourage it. 

    Apply on Google's melange, at the earliest possible, as you can edit it later, till the last minute. Make sure to get the mentors' opinions and improve. Check melange often for the mentors' comments and attend to them. Make sure that you subscribe to the comments on your proposal in the melange site, such that you will receive email alerts for each comment that is made by a mentor/developer on your proposal. Your proposal can only be seen by the orgnization mentors, unless you decide to make it public.

    How to impress the mentors/developers?
    • Stick to the organization's template.
    • Abstract.
    • Introduce yourself properly.
      • Focus on the relevant facts.
      • Why do you fit? Your skill sets.
      • List of the patches (if any) you have submitted.
    • Project Goals
      • Proves you got them correct.
    • Deliverables
      • Code, Documentation, test cases, ..
    • Description - can also be given along with the timeline
      • Benefits to the organization and other projects  
    • Timeline
      • Finer details - Break upto periods of 3 - 4 days.
      • Testing takes time - Don't be over-optimistic.
      • Some organizations require considerable work hrs/week (40 ?).
    • Links - References and additional details.

    After the submission..
    • Don't go invisible!
      • Evaluation is still going on.. ;)
    • You may be asked to provide additional information.
      • Patches.
      • Screenshots.
    • Start coding on your project - only if you didn't apply for multiple projects.
    • Be motivated.

    Got Selected? Community Bonding Period!!!

    Don't Panic. You have one more month, just to mingle with the developers and the code base. Mentors are there to help you! Keep touch with the developers and users. Learn the project by going through the code base and documentation such as coding styles and coding guide lines. e.g: OGSA-DAI coding guidelines. This will help you understand the project idea more. Come up with a design and start with simple hacks.

    Coding

    Finally comes the coding - the easiest task of all. Commit often, if you are given committership. In AbiWord GSoC projects are usually given a branch in the public svn, which will be merged to the trunk, upon the successful completion of the project. In OGSA-DAI, based on the project, it is either committed to the trunk directly or given a branch. These two projects give committership to the students. However, some organizations/projects do not give committer access to the students. In such cases send daily patches otherwise.

    When committing or sending the patches, make sure to include meaningful Commit messages. Get feedback from the mentor(s) on your commits or patches frequently. Keep the community updated. Committing or sending patches daily would be a good approach.

    Plan for the mid and final evaluations early, with the mentor. This will help you reach the target successfully. You might also need to revisit the project goals if required, during the milestones.



    Conclude/Continue

    Pencils Down Date - to stop the coding. Still you can refactor and improve the code, fix any last minute bugs, and work on finalizing the documentation. This is follwed by the firm pencils down date, which literally finishes the Google Summer of Code. 

    Whatever coding or related job done on your project after the firm pencils down date will not be considered part of your summer of code, and will be considered a volunteer work on the project. Get a tarball of all the diff files to submit to Google. Successful submission of the tarball along with the successful final evaluation ensure your success in the Google Summer of Code.

    Focus on becoming a committer if not already given committership. Keep contributing to your project.



    A few links
    This blog post has gone a bit longer, since I tried to include all the information in a single post. Wish you all the best.

      Friday, December 30, 2011

      Google Code-In


      The reach of Google Code-In (GCI) is relatively lower in Sri Lanka (probably in other countries too), than its sister program Google Summer of Code. One major reason can be, the age group of 13 - 17 (pre-university students) is not much into programming, over generally into computers, like the university students of 18+ do, in third world countries like Sri Lanka. However, more importantly, the word is yet to be spread, regarding GCI, I feel.

      This presentation resembles the Google Summer of Code presentation, I prepared for AbiWord/GSoC, in its style. This is based on my experience as a mentor for Haiku in Google Code-In 2011. Hence the examples used in this presentation are mostly from Haiku. I hope, this presentation will be useful to any student as an introduction to Google Code-In.

      Special thanks to Krasimir Petkov, GCI mentor (Haiku) for his valuable input at several times, in shaping this presentation up.

      An updated, GCI-2012 presentation is available here.

      Sunday, December 25, 2011

      Open Source Evangelization and the evolution of the GSoC introductory presentation

      Open Source Evangelization
      We decided to use Google Summer of Code, as a mean to evangelize open source among the university students. I have been contributing to this evangelization effort this year. On this, I have prepared a presentation and presented at the [1] Institute of Engineers, Sri Lanka (IESL), [2] the Science Faculty of the University of Peradeniya, and [4] the Engineering Faculty of the University of Peradeniya. We have also scheduled a session at [5] the Science Faculty, the University of Jaffna, the 7th of January, 2012.

      The evolution of the presentation can be found at the respective blog posts.
      [1] GSoC-2011 [35 slides / IESL. First version - 40 minutes]
      [2] GSoC 2011 and FOSS [38 slides / SET - UoP - 75 minutes]
      [3] AbiWord and Google Summer of Code - 2011 [35 slides / AbiWord Specific - 75 minutes (estimated)]
      [4] Google Summer of Code awareness session [42 slides / E-Fac - UoP - 75 minutes]
      [5] Google Summer of Code 2012 [45 Slides / Further improved. Final / Global version - 75 minutes (estimated)]

      It is interesting to find the growth of the GSoC presentation over the year. Hope my GCI presentation [28 slides / First Version - 50 minutes (estimated)] too will eventually become a presentation with a similar quality.

      Saturday, December 17, 2011

      Google Summer of Code 2012

      We are having a series of GSoC awareness sessions, including the yesterday's session we had at the University of Peradeniya, and the upcoming session at the University of Jaffna on the 7th of January, 2012. These events focus on discussing GSoC and FOSS. Attached herewith is the latest version of the presentation I prepared to introduce GSoC 2012 to the students. Feel free to download and distribute, if the slow network prevents you viewing the presentation here.

      As a mentor from the AbiWord community, I have come up with the slides based on our experience with the Google Summer of Code. This presentation is also influenced by my experience as a three time Google Summer of Code participant, with AbiWord (2011 as a mentor and 2009 as a student) and OMII-UK (2010 as a student). Special thanks to Martin Sevior and the AbiWord community for their valuable input at several times, in shaping this presentation up. 

      Make sure to have a look at the Google Summer of Code 2012 project ideas from AbiWord.

      The presentations in this blog require Shockwave Flash Plugin to display correctly. If you couldn't see it correctly, make sure you have the required plugin enabled. Feel free to drop a comment should you require further information.

      Saturday, October 29, 2011

      Community Matters!!!111

      Google Summer of Code Mentor Summit 2011
      We had several interesting unconference sessions and talks at the Google Summer of Code Mentor Summit 2011. I proposed and coordinated the unconference session titled "Community matters", the Saturday 22nd of October 1.30 - 2.30, at the room "Algiers". We had around 12 active participants from multiple organizations, representing AbiWord, Apache, and more.
       
      The session notes are recorded in the Google Summer of Code wiki, which needs the log in credentials to access. Hence I summarize the notes again for the wider audience. These notes are from the thoughts of the mentors from the communities involved in the discussion, and they might reflect the communities involved (Hence the points, may of course, disagree to each other to some extend). I represent AbiWord, and hence my views are biased towards the culture of the AbiWord community, which I consider the best of all. ;)

      What is a community 
      • People with a common purpose or goal
      • Communicating with each other
      • Contributing to achieving the goal
      • Like a big family
      • It's the most important asset in an open source organization.   
      Issues in building a community (and solutions)
      • Defining the goal(s)
        • Not everyone has the same goals, need to define them as a community
        • Each one's goal regarding the community should contribute to the community's common goal.
      • How to bring people in (making it easier to get started contributing)
        • Reducing the hassles involved
        • AbiWord: Helping or mentoring the interested newbies to start contributing to a project.
        • Apache Software Foundation: give people commit access early.
        • It's version control, we can roll it back!
        • Make the restrictions social rather than mechanical (e.g., give someone commit access, but encourage them to get the code reviewed before committing, commit only in their area, etc.)
        • Use GitHub, SourceForge, or something similar to have branches and pull requests, which makes people able to commit on their branch and collaborate with the community. Also GitHub allows people to not have to learn git. [barrier reduction]
        • Have a policy that someone cannot contribute a completely new module until they have been part of the dev community for a year first.
        • One thought: maybe you don't need that many people
        • Novice issue tags plus "office hours" in IRC - mentor new dev contributors in learning the contributing processes, with an easy issue  for the newbie, so the starting barrier would be reduced.
        • Have someone who is the "greeter" in the issue queue. If an issue waits for a given time (say 3 days) with no response, the current "greeter" at least says "Thanks". This duty rotates as people get tired of it.
        • Break tasks up into manageable chunks
      • Communications are a major challenge
        • Some people are always on IRC (coders usually), some never on IRC (designers).
        • Ban IRC for making decisions - has to happen on a mailing list (Apache Software Foundation and many other projects)
        • To make a mailing list work as the discussion tool, people have to be told "bring it to the mailing list"
        • Some people like asynchronous communication (e.g., mailing lists) rather than synchronous/real-time (irc), plus with a world-wide community, real-time meetings are not possible
        • Mailing lists are good for archives, but are slow for actual discussions
        • Get people together in person from time to time, if possible.
        • People are not located geographically close to each other.
        • IRC becomes active around the clock, if we have developers around the globe (AbiWord).
        • Language difficulties - English is not everyone's first language.
        • Localizers help on overcoming the language barriers to a project.
      • Have to make it feasible for users to provide feedback/issues
        • Depends on the type of project, whether that is difficult or hard
        • User community is where new developers come from
        • Figure out how to interact with them
        • Derby rarely uses mailing lists - they rather use the issue tracker. 
        • Many users are more familiar with the mailing lists.
        • So mailing lists help building the community healthy and friendly.
      • How to attract new members to the community
        • Marketing to attract users
          • Go to the competitive events and meet potential users there (if appropriate for project's target audience).
          • Get academics interested, then students will follow and they become part of the organization.
          • Cooperate and collaborate with the other FOSS project communities - Common code segments to be used by multiple communities.
      • Statistics
        • How many contribute x number of patches
        • Measure how well the new contributors are getting integrated as regular contributors
        • Community health: are we adding new contributors
        • Don't measure lines of code or number of patches - doesn't reflect community health
        • Measure how many contributors are contributing to a project or sub-project as a measure of its health
        • Apache foundation board will warn and/or ban projects that are not on-boarding new contributors and otherwise acting in a healthy way
      • 90/9/1 split
        • 90% of users do not communicate. 9% submit bugs and maybe a patch occasionally. 1% get really involved.
        • You can double the 9% part by greeting and other contributor support strategies. 

         P.S: The "!!!111" at the end of the title ("Community Matters!!!111") was intentional, and I put that on the session proposal too, to give it a kid's touch, who desperately wants to contribute to the FOSS communities. ;)
        • AbiWord community's blog roll - Planet AbiSource.

          Google Summer of Code Mentor Summit 2011

          Google Summer of Code Mentor Summit
          Google invites the mentors for a two day unconference over a weekend to discuss about the Google Summer of Code, the respective projects, FOSS in general, or whatever that is applicable for the set of geeks. Google Summer of Code Mentor Summit is an interesting event hosted by Google and the sessions are scheduled by the attendees themselves. Google pays for the flight and the stay for the two nights (Friday the 21st and Saturday the 22nd of Oct/2011), providing dinner with style for the two nights. The mentor summits are held at the Google Headquarters (Building 43), CA 94043, USA. The event schedule is completed only at the day of the summit, as an ideal unconference! [Have a look at the Mentor Summit 2011  schedule with the parallel unconference tracks]. 

          AbiWord at the Summit
          As a mentoring organization, AbiWord has been mentoring students for Google Summer of Code since 2006 - for 6 years consecutively, since the program was announced in 2005. In 2006, Martin Sevior represented AbiWord in the mentor summit [Read more on his experience at the mentor summit 2006]. I was, as a mentor from AbiWord for 2011, was really glad to represent AbiWord in  the summit for 2011. This was the second time, AbiWord being present at the summit. This year we had 4 students who successfully completed their summer, among the 5 who had their summer with AbiWord [Read more on my thoughts on Google Summer of Code 2011].


          Stay at California (21st - 24th, Oct 2011)
          This year, the summit was held on 22nd of October the Saturday and 23rd the Sunday. "WildPalms" and "Domain" were the hotels organized by Google for the stay for the two nights. Most of the mentors stayed at WildPalms, Sunnyvale, CA, where some of them stayed at Domain, as rooms in WildPalms filled up. 2011 was the biggest summit ever with around 360 participants, where it was around 200 last year, mentioned Carol. Wild Palms is a silent and simple hotel. It reminded me the structure of the typical hostels - but I like it. We had shuttles to and from Google. We also had shuttles connecting Domain hotel, for them to join the dinner at Wild Palms.


          Scheduling the unconference sessions
          The sessions were scheduled and held at different rooms at the Google Headquarters, in parallel tracks. Initially, everyone was given 30 seconds to introduce themselves and their session, to begin with. Each session spans for an hour. A location was picked from the available 16 rooms. Once introduced their sessions, each one writes down the proposed session in a paper, and posts that on the white boards available, which had a table drawn with "Time Intervals" against the "Location". Once everyone introduced and posted their sessions, everyone is given the option to vote for their preferred session. The voting is interesting. We move along the white board, and pick a session of interest for each time frame, and mark it with a circle. Once this is done, the circles are counted and considered a '+1', and the sessions are relocated to fit the size of the room, according to the interested audience. Some sessions had exceptionally huge preference votes, and were scheduled to be held at Tunis, which has room for 200. Other rooms fit the audience from 10 to 20.

          Community Matters!!!111
          I [my user profile in the wiki] proposed and coordinated the unconference session titled "Community matters", the Saturday 1.30 - 2.30 at "Algiers". We discussed how and why a community matters the most, how to build a community, the challenges faced, and overcoming them. The session notes can be found in the wiki [Needs credentials to access the wiki page].

          I have blogged with the session notes for the wider audience [Read "Community Matters!!!111" in this blog]. However, Google Summer of Code mentors can access the wiki to read more about the Mentor Summit 2011. All the session notes are posted to the wiki.


          From Sri Lanka
          It was a long journey to Sunnyvale from Colombo! I traveled from Colombo (CMB) to Dubai (DXB), and to Los Angeles (LAX), followed by a local flight to San Jose (SJC). A cab from San Jose to Wild Palms is relatively cheaper (~38$), than from San Francisco (SFO). SJC is known as the airport of the Silicon Valley. I stayed one more night (Sunday night), since my flight was on Monday noon 12 pm. This was my first trip to the new world (Americas). It was a great experience seeing darkness at 3 pm in the sky of the north pole.

          Mentor Summit
          The summit went really well, starting with a warm welcome from Carol Smith, at "Tunis". I got the chance to meet many folks from many organizations, and listen to their interesting and crazy experiences. Everyone had at least a single interesting experience to share, during the tea, breakfast, or lunch. 2011 was the first year for many organizations (~50) in Google Summer of Code, and (the mentors from those organizations whom I had a chat) were impressed to hear the successful involvement of AbiWord in Google Summer of Code. I met Fridrich representing LibreOffice at the summit. It was really great to meet someone whom I have talked to, over the AbiWord IRC.

          Haiku
          Meeting the Haiku community was remarkable. Haiku is an MIT licensed open source operating system inspired by BeOS. We thought of a possibility to propose a project co-mentored by AbiWord and Haiku for Google Summer of Code 2012 - "Haiku port for AbiWord". There was also a discussion on this during GSoC 2009 too, which we couldn't make it at that time. Scott from Haiku also pointed out that AbiWord used to run perfectly on Haiku during the early days (well before I joined AbiWord at 2009). We have to go back to the history of AbiWord source code and get it back to build and run, which ceased to build. As we are more into gtk, we have never looked much into this yet, I feel. The relevant discussion can be found at abiword-dev mailing list. Refer to the Haiku FAQ to learn what Haiku is and what it is not.

          Catroid
          All the 4 mentors from the project Catroid were present at the summit. They were doing interesting demos with their Catroid project running on Android, over the corridors during the breaks. It was their first year at Google Summer of Code and Catroid is really excited as a young organization to participate in Google Summer of Code. By default, Google invites two mentors from each project, along with a waiting list to allow more interested mentors in first-come-first-served. Catroid was really lucky to have everyone around! :)


          Marketing and Open Source
          An interesting session on "Marketing and Spreading the word about the project/community", followed the session "Community Matters", in the same room (Algiers). How localizers help to widen the user community was discussed. The mentor from PostgreSQL mentioned that they have allowed independent local user/dev communities to own the site in their languages (French, Japanese, ..) Social media engagement (twitter, facebook, dzone) to spread the word of the community and project releases were discussed.

          Student Salaries
          The other two sessions I attended on the first day were on "Humanitarian FOSS", with the participation from OpenMRS, Sahana, and Ushahidi, and "Student Salaries". "Student Salaries" discussed about managing the GSoC's payment. It had a few controversial suggestions followed by a healthy discussion, whether each student should be paid equally, or based on their geographical location, or by the outcomes - a final outcome of the discussion was to propose a reward for the outstanding students - may be a GSoC Student Summit. 

          Around Google
          We took a group photo with all the mentors around, at the end of the first day. We also move around the Google Campus and also visited the Google Store. A room full of chocolates from Goolge, as well as from the mentors allover the globe was awaiting us throughout the summit! ;). The welcome desk was full of Google TShirts and give aways from Google and from the mentoring organizations - specifically stickers from the organizations. I took a few photos around the Google Campus. Feel free to view them in my Facebook album.

          The Second Day
          I attended the sessions at Tunis, the second day. "Non-profit infrastructure for software freedom" with the views from Software Freedom Conservancy, Free Software Foundation, and Apache Software Foundation, gave some insights in the non-profit infrastructures. "Fund raising 101" by Cat from Google provided some basic hints on successfully getting the open source project funded.

          Wrapping Up!
          A final speech from Carol ended the summit in a vote of thanks manner. Wait - No! Mentors were asked to provide their suggestions of improvement after her talk. Some encouraging, interesting and also funny comments were thrown, with room full of laughter and applauses. One interesting and usual suggestion was to have the summit at Europe next year. "I love you guys, but, sometimes, I hate you guys," replied Carol.

          The Google Summer of Code Mentor Summit was surely a remarkable experience for everyone who attended. I would like to thank Google and Carol for organizing the Google Summer of Code as well as the summit, on behalf of the AbiWord team.