Distributed Source Control systems in FLOSS communities

Git logoThe final instance of the posts about the different tools used by an open source community is the core and most important part. After all software is usually ran by code. And code is what gives developers the upper hand in using the final liberties of the free software rights. The right to modify it’s code.

So how does people modify it’s code? Well there are some standard tools that allow to keep track of all the modifications of the code. These systems are called differently but you can identify SCM, or DSCM which enable developers to perform ‘commits’ on the code and keep a version of those modifications.

Here is an example, lets assume this story is being modified by 3 developers: john, patric and bob:

When I was little I had a pony.

John comes and add:

When I was little I had a pony, the pony was named katy.

John has created a new version of the story, however the previous version still exist and patric can compare the new version to the old one. The tool used here is called, diff for differential:

Ver #01 – – When I was little I had a pony.

Ver #02 ++ When I was little I had a pony, the pony was named katy.

Patric can see here where has this been modified. He can apply corrections to it by renaming the pony katy to Katy for example, and Bob could eventually see the version 02 to the new 03 version, or 03 to 01 and see how it’s different.

Code in software behave like this except it also take into account the history of the files and folders itself.

A DSCM system will usually have plugins to connect it to the web. This makes it easier for people to see and learn how the version management take place. If you ever been in sourceforge, google code, or any big open source development project you will be able to see this systems.

More to it, the DSCM could be connected with mailing lists and provide email notifications on any change happening on the source tree (what lives in the DSCM system).

Programers more involved with things like Github can be more related with how these source trees work, and how branches, and forks, take place. Github is a service tha provides some kind of social media withing the plain Git vesion control features as well as insert an Issue tracker to it.

Here comes a big difference in development, usually Git projects tend to be more distributed, while other versions of DSCM systems like Subversion, or CVS were monolitical. The difference is simple, while the code resides on your computer as well as on the system everytime you do a checkout, in git the changes are handled in a more distributed fashion as opposed to the earlier systems. This is why Git right now is the premier and favorite control.

However not all projects use git, and for the ones that don’t usually there was a level between been a commiter and being a casual programer doing some ‘hit n run‘ code. Meaning a random patch, but don’t expect to contribute again. These ‘hit n run’ programers usually couldnt submit their patch to the source tree, so a different system was used in that case. The issue tracker.

The issue tracker serves for creating and keep a track of issues, whenever is usability, documentation, testing and yes, programming bugs. A programmer that found a bug and fix it on it’s own, but holds no attachment to the project, will use the Issue tracker to report the bug and also attach a PATCH. This is the bit of code that was modified and is up for the team of developers to integrate it back into the source tree.

In a community there was a criteria to upgrade casual developers to commiters when they scored a certain ammount of succesful patches, and some other protocols were met (like signing a license code agreement) so the project can legally stand about the status of the code.

Commiters usually were required a gpg key to be able to sign their code, and be able to be approved by the DSCM system, otherwise the commit was rejected. This is also a key component of the FLOSS developer. More information could be found on their wiki stating each step of the way on becoming a contributor, but for the most part. The cycle is similar on all projects.

Advertisement

Learning about communities

Through my experience with developers and open source experts, I found something very curious. In the end, all I have seen are power users. Usually the computer enthusiast is divided by developers and users, however there are so called developers, but they are really users of a language. But (at least in public) they are only users of a language, their open source expertise as far as using Linux as their developer platform doesn’t exceed to the contribution part on not just their favorite language (which will probably be done on a different language) but to other projects built on that language.

The sad reality is that open source enthusiast don’t always grab the concept of a community. Usually community becomes something that is more socially accepted as a user group, even their blogs usually focus on new libraries, technologies and modules to use. Rarely is about a project community where gyrate around a source tree, with a product that is compiled and released on a scheduled manner.

So, for example, Big Joe who is a great FLOSS advocate and use PHP-MySQL for all it’s clients and do it on his GNU/Linux servers and wears a Ubuntu t-shirt and give advices on why everyone should use Linux. He has even gave talks about PHP development techniques, security on the language and gives the green light to trying new modules and frameworks for its development.

Yet Big Joe, however, has never imagine on even getting in touch with the people at PHP.net, has never even compiled the source code of the language, or know how to. He doesn’t even know who build what part of the language. In his head, he might even ridicule the idea of taking time off his clients to dedicate in such a task, as the language is good enough, for his needs.

When confronted, Big Joe admits that his knowledge of PHP would be useless that looking at the source tree is based on another language, C. However given his big and deep knowledge of PHP, he should be able to look elsewhere where PHP is proven to be the language of choice, a project like Drupal, which is a very popular CMS could present somewhere where he should feel more competent to work upon. The Drupal source code is in fact made out of pure PHP code, many hundred of lines of code.

Big Joe now has 2 problems, how will he be able to read all that source code? And where should he start?

Maybe Big Joe would feel Drupal is a waaaay too big of a bone to chew on. So he has other options. Sourceforge has hundred of projects of different size to contribute to. Projects like DokuWiki, or even lesser known projects that could use his help.

So Big Joe found his project where he can read up easily and contribute with his magnificent PHP skills. However there is another problem, Big Joe also doesnt know how to start. And here is where the real learning needs to happen. For all his years of apt-get install and tar -xzvf or unzip -r modules and libraries. He would now need to learn some base new technology.

ImageFirst one will help him communicate with developers, and will prove to be the most used and is called mailman. This help him keep in touch with the whole team of developers, however he will also see other users as he subscribe to the commit list which automagically email him all the changes to the code.

mediawikiThe next piece of technology is the wiki, where most of the documentation to get started, as well as some design pointers are already documented on these places. Is important that he check its out while joining the community to avoid being outcast from acting far from the status quo.

GITFinally the big and more developer-like piece is the code repository where the commits and builds he do himself should be commited and approved. Big Joe will found a new family of activities including:

  • QA, test new patches from others and give follow up.
  • Managing branches, in git this could become an all day task if the project get busy.
  • Verify bugs, evaluating bug reports and finding the issue is another big developer task.
  • Building, having cyclical builds and maintaining the successful build is another task that give some sense of stability, coding bugs might raise some flags, that something somewhere is not really working.
  • Documenting, as a user documentation is important, however as a developer, a good technical documentation can help people do their work more efficiently.

Big Joe found that contributing isn’t as hard as he thought initially, and now he has become someone with a say in a real free software project. Now Big Joe will dedicate some time to encourage people to step into this level of contribution, and maybe he could get his USER group into a real developer group and do cool stuff like a bug hunt, or a development spring.

Big Joe is very well networked withing the community and can now have some real hold on not just promoting FLOSS but actually being part of producing floss.

 

Trip to Quito

Trip to Ecuador was quite intereting with most of the time being available to have a walk and meet new people, the thing thtat got me about Quito is how similar it looks to Mexico city — without all the smog that is. With similar street marts and warnings we spent some good chatting and meals regarding the local free software community and how it’s needed to deliver the services on top of OpenOffice.org. Likewise we also need some kind of refocus on the way software is created and improved.

A revelation that I had was explaining how the communities had been missconstructed. Which, instead of focusing on the product they actually went on to focus on other things such as the marketing, licenses and location. So a name such as “Local community of free software” it will be around a locality and also a name. I suggested a different approach to it and instead of girating around name or locality to girate around a product.

So having a product, it will actually encourage most of the community to girate around a body of work. This gives communities a better structure such as maintenance tasks, documentation, quality assurance, testing, and of course improvements.

How does improvements come around? Well this is a different dynamcis on community, usually there is so much work than is really difficult space to complain and to provoke flamewars. At least these will be more technical and provide a more product driven testing. So you will have a different branch with one solution and another with another. The best will be integrated into the code tree. 
So the goal of the trip was to do a training and I think we did a good job. The client was please with the performance althought negotiations in the end went a bit rocky. I would have liked to provide a good framework of flexibility. One thing that I think we could have improved is definitly better preparation. Set up the system and also comply with the way that the tasks would be handled in the future.

Right now we discussed about new opportunities for doing business in the current situation. We would be able to offer extra training focused in OpenOffice.org itself. Here is where I think we could generate some revenue as soon as possible, this of course have some dependancies such as if the way the trainning will be focused as a third party or as maybe a fourth party to the end client. 
I still got some thoughts on how we can position ourselves to be the most valuable to our client while at the same time building a cash flow to funnel it back to OpenOffice.org.

FLISOL is not about tech is about people

I am a geek, techie, hax0r, hipster, otaku, gamer, freaker, lurker, coder? When I talk with my family usually they never know what I am talking about. They can’t care less if there was a major fork between OpenOffice.org and LibreOffice or that Nokia had dump the Meego project. Facebook and even Google dont really mean much and the youtube new sensation is as alien to them as some thing that exist but can’t be that important.

However this time I am doing an event that is not target to me or the people from my target. The challenge is to get people like me to build an event for people like my parents, all over the country and the rest of the continent.

So one thing is how can we entice the regular non-geeks to a tech event. One thing that we need to understand is that even thought everyone uses technology, most people are bored by it.

They see it as the future, but really they believe themselves about belonging to the past. This feeling is commonly seen on adults but is odd when it comes from kids.

However thsis cause the opposite effect, most kids don’t really think about technology as something that require a lot of thought. So they take the technology for granted and feeling a bit old school when thinking about generating such technology.

Sure we all use technology, technology for our phones, our computers, our ATM, at school and even to pay our taxes. However the more you see people embrace technology they are also more turned off by the idea of developing such technology. At the same time, there is a more social context to technology that are making more people trying to get into e-business. Creating your iphone app, your iphone app and your web 2.0. However, where does free software enters into this. A contrarian driver such as freedom and sharing knowledge become less popular as they dont really catch the idea of sharing is good.

FLOSS is not only about products but communities

The free software environment consist on several people that put time and efforts into developing a solution that can be efficient and used by people looking for that need. This is an important concept that people coming into free software need to understand.

Many users are well trainned consumers that know how to negotiate with companies and get the best value out of products. However the commercial environment which they are used to is slightly different from the environment in the free software ecosystem. It consist not only of a company and service executives puting time into satisfying a costumer. It’s more about an open group looking for people to help out on the software.

Some people might relate more with a activism movement where each member is a valued part of the whole. However users that come to an open source product from a consumer perspective might result in a bit of out of place behavior. This causes some projects to be seen equally with a company developed product. Not to say that this will be necesarilly bad but usually the demands fall short since they expect a company to go and fix it, as opposed to be more constructive with it.

Community

This is usually result in the Hey I got an idea, as opposed to I submitted a patch to your code. Granted not everyone is a developer and sometimes is not really about code itself. Things like, I fixed some typos on your documentation, might do the trick.

Big projects are usually proud of their work as a whole, so they might usually have sites devoted to the community. Communities like Gnome, Mozilla, KDE, Apache, OpenOffice.org and others, will host sites about their people and their developers. Here is a rather old flyer from the OpenOffice.org community that was done during one of the global conferences.

Meet_nl_l10n_cip_people_part_ii_final

Having a healthy FLOSS environment things like community need to be understood across the board. Communities themselves need to value to a better light than just their product. That way regular users will have a more present sense of who the contributors are and what are the standard way to interact with them. This is a matter of processes as well as transparency so that users understand the shift and can switch from a regular consumer to a potential contributor.

How To: Founding an Open Source Software Center at a University

Education_open_university_2

Raising open source awareness in any organization is a very important, and sometimes difficult, task. Particularly important is open source awareness among college students. These are the engineers and computer scientists of the next generation who will be able to usher these modern practices into their workplace. This article discusses the process that was used to form the Rensselaer Center for Open Source (RCOS), a very successful open source center at Rensselaer Polytechnic Institute (RPI).

The goal of an open source center is to engage students eager to change the world by developing innovations that could lead to next-generation open source platforms. The center should provide a creative, intellectual and entrepreneurial outlet for students to use the latest open source software platforms to develop applications that solve societal problems. Moreover, the center helps to provide a rich undergraduate experience by offering hands-on experience that positions students as tomorrow’s global citizens and leaders.

We have distilled our experience to a list of items that are necessary (but not necessarily sufficient) for the success of such a center:

1) Gather 20-40 eager undergraduate and graduate students committed to practicing and progressing open source software and ideology. This can be done using the normal student club channels, including advertising in the campus newspaper and listing the organization in any available student activities lists.

2) While a student club is better than nothing, they are often not officially recognized by universities. To make the open source center more official, gather a small team (around 3) of dedicated faculty members. They will share the burden of not only keeping the center on track and organized, but will also serve as liaisons to the university. The lead faculty advisor of RCOS reports to the Dean of Undergraduate Education to keep him informed of the activities of the center. With help from the students, the advisors maintain the center website, review project proposals, and facilitate student peer group meetings and discussions. As another example, by cooperating with the Web Technology Group student club, a free and open source digital signage project, Concerto, was born and became widely used at RPI and elsewhere.

3) Write reasonable proposals to funding agencies, alumni, and companies who may be interested in open source. This funding can support some student projects, as well as purchase any necessary
equipment.

4) Get the center’s faculty advisors or local corporate scientists to teach a course each year on open software practices. The course at RPI was featured here. This course should cover more formal aspects of open source, including licensing, meritocracy economics, and other software practices. This course not only provides a formal introduction to open source, but also provides another source of students for the open source center.

5) Interact with the local state and city government and involve students in projects to help the community. This will provide a good source of projects for students as well as good publicity for the center. For example, an RCOS student worked with a local fire department to create a fire department management system to allow them to digitally maintain records they had been maintaining on paper. This in turn allowed the department to focus more on their true responsibilities rather than filling out paper work.

6) Maintain a dashboard of student projects. This allows an outside observer to quickly see the types of projects the group is working on, and the quality of the work they are capable of.

7) Gain support from the university administration, including the registrar, the library, the computing center, and academic departments. This mutually beneficial relationship is exemplified in the cooperation that was necessary to complete the Course Scheduler project. This project pulls the latest course offerings from the university and allows students to create their ideal course schedules within the constraints of the course offering schedule.

8) Students learn most from their peers. To encourage this, we provide a virtual community space (a chat room) where students can ask for help, share their expertise, and bounce ideas off of each other. The immediate responses in this type of setting are always very well-received.

9) Provide opportunities for the students to listen to external speakers. By providing greater exposure, students will begin to network, leading to internships as well as other exciting opportunities like Google Summer of Code.

10 ) Select a small group of senior students to be peer mentors who will provide guidance and feedback to other students. These peer mentors will also come up with new project ideas and provide valuable support to the faculty advisers.

11) Provide some sort of refreshment (pizza, cookies, etc.) during meetings. Like it or not, food attracts students! While we would hope the students would be motivated on their own, if it takes a little bit
of encouragement to get them into the room, that’s OK. Once they are there, the conversation and ideas will start to flow.

We hope that the above items provide a good starting point for other universities to start a similar center to RCOS. We are happy to further share our experience by answering any questions you may have. Just email rpiopensource@gmail.com, and good luck with your new open source center.

Original Source [OpenSource.com]

FISL 10 – Day 1

Media_httpphotoshakfb_hhfqe

BrOffice team
The first day started with me on the air on my way to Sao Paolo, departing from Mexico city at midnight I arrived to Sao Paolo at 11am, just in time to get on the flight into Porto Alegre.When I arrived to the city I was lucky to find it easy to arrive into the conference even before arriving to the hotel. The conference was great, I was able to chat with Knut from Qt and was a great small chat. I also got into the OOo boot which help me managing my lougage and suite.I got to chat with many people but not as much as before since they mostly speak portuguese. I have manage pretty good to know my way around people, however still feel like they dont understand what I say when I speak.I went to one conference where I met back with one government official from Sao Paolo, Marconi, who recognized me instantly and I was pretty surprised. Since I got on the afternoon, I couldnt attend to most of the talks, however they were enough. My only problem is that I havent found many governments or companies from out of state which would be my main target.At night I had some issues finding my hotel but eventually got to it and enjoy a good rest, which I was so tired I couldnt go to the Bar.

Development models on social FLOSS

Listening to TLLTS they presented a developer that is a dentist. He also had a great horror story on vertical software providers that keep their costumers hijacked. The story basically mentions on how the administration of the office relies 100% on these software to archieve their patient data, yet they are locked out of their data.

Once that is on however, there are some cool stuff on ways communities could organized themselves and foster their own tools. What we basically need is a better structured developer enterprise that can focus on the development on custom software. Software that won’t break the Bank of their costumers and that caan help the floss development as a whole.

Of course we really need to understand that these acceptance could also lead to much clash between the quality of service and the closlack of understanding of the client or against the IT policies.

I wonder if we could recreate the early environment when IT industry started making inroads and became a multy billion dollar business. Basically develop a sustainable model to foster development across companies but also get the target needs from these vertical markets. Get access to VC capital, hire programmers and specialists and run with that. Finally to have the channels and marketing techniques to push their products to foreign industries.

Spanish FL(y)OSS part II

Media_httppillateunli_jodxd

Lliurex in Valencian
This post is long overdue however the things that I present in Alicante were pretty interesting. Contrasting what Malaga had, this event was much more smaller yet it was very rewarding in the sense I got the time to chat with people all around the world.Basically I want to propose projects and enterprise deals that will benefit the OOo community and the overal FLOSS adoption. These projects benefit both parties and also make the project even a bigger proposal for everybody. I digress…The conference started with a bit of dissapointing un-attendance in the sence that most of the speakers were just leaved to their own luck. Nobody pick me up from the airport nor help me with my settling around Andalucia. I didn’t had any chance to see the city beyond what my legs walked me through.  However on the other side, I got a good time relaxing and finally having a break from the constant flying. So I had the chance to take a long bath and really relax for a while. Also the fact the hotel was also a Spa hotel help me enjoy even more using some of their pillow menu.The next day was pretty good, got to meet with John Maddog from Linux International again and talk about Obama‘s win and what it could mean for the US.  After the quick meal we were ready for the event. I came in early because I really want to see the expo before people came in. I was able to see a really great set up full of wide variety of hardware. People had thin clients running the host distro — lliurex. Lliure means freedom in Valencian and this is like freedomX.So I got to talk wtih the people of many of the companies, associations an sponsors that were in the event. I got to chat about developments and innovations and how OOo will be presenting great stuff with the education project.Unfortunately I felt many of the atendees that mattered weren’t there to attend to the conference so my message might have not been correctly targeted. After my talk I sensed many people were simply users and they didn’t had the means to push an education project forward. At the same time I think that through the magic of the internet and since the talk was recorded. There is still hope for many to at least by recycling my conference through services like Slideshare.Other talks were interesting but i most say that I wasn’t attending to many of them since the education target and the fact that they were giving it in valencian really didn’t help my attention span. I rather was doing some work on my laptop about things to make O4Biz and the Education presentation more smooth.Since one of the event participants didn’t make it, I was asked to give a second talk during the conference. That meant that I would be able to give my first part of my tour presentation. The repeat of the great Open for business conference. Again I felt the audience was the best for the talk but I was happy that at least i got a recording out of this great talk which I couldn’t record at OSWC.After the conference I got the chance to talk with many of the Lliurex project including the main manager of the project Sofia Belez, who is a very kind and beautiful woman. We got to get around the option of integrating the Valencian localization into the OOo project and avoid issues during their building process. Is funny because a simple email would have done it. However they had two years talking with Sun and different entities and they have got nowhere. This means that there is still a change of culture to be made. The internet is an open platform but sometimes dealing with phisical people can prove to be a handicap. Instead of contacting developers they contact distros which don’t make software so applying changes will only fork the projects.However now that we are on the right track we can start leveraging and building upon freedom. Not however without the support of the rest of the OOo community. Is important that projects such as big as OOo we can have sustainable communication networks and protocols so that information reaches to a higher than normal spead wtihout falling into the usual pitfalls of flamewars that can stigmatize a project or initiative.

Awesome extensions poping up

So this past weeks I’ve seen a lot of new extensions showing up on the PlanetOpenOffice.org website. For either Writer or Calc, three new extensions seem pretty cool to have a look:Color2Row This extension enabels rapid coloring tablerows with different colors to selected or used areas.Alba It simplifies work with documents, containing pages with different layouts.FastMailMerge If Mailmerge is too hard, this fast mail merge allow you to simplify this process and make it easy for you. Function: picks up a list of data from a spreadsheet as a database, placing markers field in a text document, automating the printing or sending mail.All these and more here:http://extensions.services.openoffice.org/