Wednesday, January 22, 2014

Joining the Project

The bulk of this post will be reflecting about my experiences when joining the Galaxy project and the rest will be reflections upon readings that will be elaborated upon whence the time comes.

The first thing I did when joining the Galaxy project was sign up for two mailing lists: Galaxy-Dev and Galaxy-Commit. There are other mailing lists that they have, like Galaxy-User and Galaxy-France. Galaxy-User is for users to submit questions and problems that arise when using the Galaxy software (so a Stack Overflow-ish schematic) and Galaxy-France is for French-speaking users only, it seems.

I've been receiving emails a few days relating to problems people have had when developing with Galaxy (such as meshing issues that don't make sense) and emails relating to features that people are working on or proposing. The community seems to be extremely active as I have a new email every 30 minutes or so from a user that is committing or asking about a change.

For example, there was a thread where a user was questioning whether or not numpy and scipy were included in the Galaxy suite or whether it can be incorporated. Swiftly, a developer responded with a quick description on how to add modules that require dependencies such as numpy and scipy. There is a flag that can be flipped that pretty much says "If you want to use this tool, you need to have this installed - and it can be installed through Galaxy like this." A link here shows how this is marked up in XML.

Quick refresher: Each tool within Galaxy has an XML markup and a scripted backend (typically python). Having the dependencies in XML will force users to recognize that more needs to happen or at least just let the user know, if they desire, that there are other dependencies being utilized.

Additionally, I am making an effort to join the Galaxy IRC. The Galaxy IRC is on the irc.freenode.net server and the channel name is #galaxyproject. So after perusing different pieces of irc software I ended up landing on using xchat. I was trying to download a different irc client, but I hit an installation issue with two different irc clients and it turned out that Mint came packaged with xchat already so I just hopped onto it. It was trivial to connect to freenode and then joining the #galaxyproject chatroom. After sitting in the chat for about 15 minutes there wasn't any activity but there were 24 other people in the chat so if I had a question, I'm sure there would have been a quick response.

This was all done after perusing this irc how-to site and this irc tutorial site.

Furthermore, this response is reflecting upon Chapter 3 of Teaching Open Source. This goes perfectly hand-in-hand with what I am currently doing in joining Galaxy. The first things brought up are the issues of community and getting accustomed and comfortable with said community. Right away with Galaxy, I saw that one of their email lists is entirely for French speakers. This does mean that the primary language of Galaxy developers is English, but there is probably going to be a strong divide - say a French developer is working on what I am working on, then there is probably a pretty slim chance I will know before it's too late. So that is something I will have to tackle.

The book makes a mention of the idea of "synthetic third culture." Really this means that the culmination of people from different cultures starts to dismantle the individual cultural identity of the users and, thus, a synthetic culture starts to arise, especially as those from more and more different cultures join the community. This makes sense as individualistic culture at this point is not really relevant to the others and new humor, phrases, etc. will arise with collaborators that communicate at a high volume. It could almost be described as a postulate because of how close it seems to common sense.

And next, this is broken down into "Qualities of a Community" - this is really just a "what makes up this synthetic culture?" section. So the qualities are:
Focus - What is the actual interest of the community? Not the broad goal, but the main effort of the software (i.e. the main focus)
Maturity and History - This almost speaks for itself - newer projects have newer, younger communities that will have to undergo different experiences in regard to development speed and releasing where older projects have older communities that may have plateaued with a stable product release and are really just working on maintenance (though this still doesn't have to be the case)
Type of Openness - How open is their source? Is there core software kept under wraps with open peripherals that allow for interaction (almost api-like)? How old is the latest source? Is it even possible for anyone and everyone to contribute?
Commercial Ties - Sponsors are important to consider because their funding can steer the direction of a project. Sponsors aid by giving funds, technology, legal protection, people, etc.
Subgroups - Is the community one fluid being or is it broken down into several, key subgroups?
Skills - A community's skills depend on the skills of the individuals in a community - self-explanatory.
Mentoring and Training - Some communities will train newer members and get them to a point where they can catch up and start contributing meaningfully.

The chapter further discusses communication in various forms:
Synchronous - Live concurrent
Includes instant messaging (and IRC) and forms of audio chats (like Mumble or Teamspeak).
Asynchronous - Non-simultaneous
Includes email, wikis, etc.

This segues perfectly into the section on Wikis. I have discussed my team's wiki in the past and it is being developed to explain to people what open source software we are working with, what we will be contributing, and what that really entails in the grand scheme of the open source project. The rest of the open source teaching chapter focused on topics I have already broken down when considering my own project (IRCs and mailing lists). In the following week I, and the rest of my group, will be checking out the bugtrackers within Galaxy - I bring this up because that is what the end of the third chapter refers to.

Music listened to while blogging: Childish Gambino

No comments:

Post a Comment