You are currently browsing the monthly archive for April 2010.
On Saturday 17th April 2010 the Graduate Development Community held an event called “OpenSource Jumpstart 2010” at IBM‘s Southbank location. The event was aimed at giving people experience with real Open Source development and to meet leading developers in an informal and stimulating environment. It was a full day event which lasted from around 9am and finished about 6pm.
The event kicked off with an informal introduction by Barry Cranford, who welcomed all the enthusiastic students, helpful mentors and friendly project committers together into a large conference room enlightened by the early morning sun. Zoe Slattery then gave a breakdown of the day’s schedule followed by a brief explanation of what Open Source Software is and why people get involved with committing to projects.
Ben Evans than asked each project committer to come to the front and give a short clarification about their project, what programming language it was based around and what likely tasks were available for students. The open-source projects with committers who were able to make it to the event included:
- Apache Aries project is delivering a set of plug able Java components enabling an enterprise OSGi application programming model. This includes implementations and extensions of application-focused specifications defined by the OSGi Alliance Enterprise Expert Group (EEG) and an assembly format for multi-bundle applications, for deployment to a variety of OSGi based run-times.
- Apache Harmony project is a compatible, independent implementation of Java developed under the open-source Apache License. Development is community-driven with contributions from IBM, Intel, Google, academic institutions and individuals. The Java SE 5 API is now nearly 100% complete, and Java 6 is currently at 96% completeness.
- Apache Tomcat is an open source software implementation of the Java Servlet and JavaServer Pages technologies. Apache Tomcat powers numerous large-scale, mission-critical web applications across a diverse range of industries and organizations.
- Apache Tuscany provides an open-source services infrastructure for constructing Service Oriented Architecture (SOA) based solutions from heterogeneous and distributed services. To make the implementation and deployment of services straightforward Apache Tuscany is based on the widely supported Service Component Architecture (SCA) specification currently being standardized at OASIS.
- Apache Wookie is a Java server application that allows you to upload and deploy widgets for your applications; widgets can not only include all the usual kinds of mini-applications, badges, and gadgets, but also fully collaborative applications such as chats, quizzes, and games. Wookie is based on the W3C Widgets specification, but widgets can also be included that use extended APIs such as Google Wave Gadgets and OpenSocial.
- Citrine is a Java web application which can be used to configure, manage and monitor the running of various tasks (typically, but not limited to, shell scripts). It can be thought of as GUI replacement for cron with extra functionality. Citrine is used extensively at Last.fm as a centralized cron with e-mail notifications for scheduling recurring tasks.
- Ikasan Enterprise Integration Platform addresses the problem domain most commonly known as Enterprise Application Integration (EAI) to provide bullet proof integration solutions based on architected open standards for the integration of applications in the financial sector. The Ikasan Enterprise Integration Platform addresses this domain as commoditized configurable solutions focused on users rather than simply providing another development framework.
- Impala is a dynamic module framework for Java-based web applications, based on the Spring Framework. With a focus on simplicity and productivity, Impala radically transforms application development using Spring and all the usual related technologies. With its powerful dynamic reloading capability, Impala dramatically reduces build/deploy/test cycles, allowing you to spend more time coding and less time waiting for your application to reload.
- PHP is a widely used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.
Once the project presentations were complete, students were given small post-it notes to write down their top 3 projects that they were most interested in working on for the day. The mentors and organizers then arranged the students into groups for each project, ensuring that each group had at least 3 students.
Zoe Slattery noted earlier on about Google Summer of Code (GSOC) which is a global program that offers student developers stipends to write code for various open source software projects. However, the introduction to open source at GSOC usually takes about 2 weeks, where as the organizers for this event were hoping to get everyone initialized with OSS by the end of the day. Ambitious? Maybe, however it really is not that difficult to get into OSS and gathering from the feedback everyone was able to learn the basics and get into an OSS project without too much difficulty.
With the students assigned to different groups to work on a specific project for the day, the mentors began to roam around helping students out with anything, whether it was a simple IDE shortcut question or something a little more advanced like helping setup maven, the mentors were happy to help and they did a brilliant job at it. Each project committer was able to successfully help out and mentor the students with getting them setup and helping to contribute to their open source project.
The students cracked on with finding and fixing bugs, writing documentation, creating tests and implementing new features to the open source projects. Students were gleefully happy and enthusiastically excited when they squashed their first official bug. At that moment, I realized how special this event was to students. OSS is not something you should ignore, it will change your life and for the better. You will become a better programmer, documenter, tester or even project manager if you get involved with an open source project. There is a place for everyone in OSS and you don’t need to have the best technical expertise to get involved. You will not get reprimanded, punished or anything like that for bad code, the other project committers will review what you submit and offer helpful advice and changes for you to learn from. Do not feel intimidated by large projects or complex code; you do not even need to know everything about a project to help out. Some students only needed to focus on one function within one class to squash their first bug, I’m sure some well-known committers to some of the biggest open source projects have never looked at each class let alone each function within their own project.
The project committers did a fantastic job with providing the right tools and knowledge to students so that they were able to help with bug patching, documentation, or even bug finding. It was extremely helpful to be able to not only speak directly to a project committer but to also get educated and mentored by them, this in turn allowed the students to gain confidence with working on their chosen open source project because if they had any difficulty, questions or concerns they were able to easily ask their project committer for answers.
Throughout the day lots of hacking, coding, documentation writing, questions, jokes and networking was achieved. Lunch was provided by the IBM Innovation Centre in Hursley, a selection of sandwiches, chocolates, crisps and drinks were available, perfect for the warm sunny day, although we were all indoors coding our brains out.
As the conclusion to the event dawned upon us, we were told to stop and head back to the conference room for an evaluation of the day’s event. Each group was asked to give a short presentation about what they achieved, learned and what they found good or bad about the day. Each speaker bravely stood up and spoke at the front describing how much they enjoyed working together, how awesome their project committer was and what bugs they squashed, what documentation they wrote and what features they implemented.
A colossal number of 16 bugs were squashed over the various projects, and a great amount of documentation was written as well as some fabulous created widgets. This was an incredible achievement to be accomplished by the students at the event. Well done to everyone!
With the announcement of this stunning performance by everyone, Martijn Verburg then gave a concise ending to the day’s event and announced the bar! Overall an amazing day with some awesome people, a lot of experience, knowledge, confidence and inspiration was gained throughout the attendees; not just the students, but even the mentors and project committers too!
Most of us headed for the bar as we were so excited about what we achieved we just wanted to continue talking about it all. During the networking and drinking, I came across a student who did not have much experience with Java, he studies C# so he was hesitant prior the event thinking that he would not learn much or be able to help out with anything, as most projects were Java based. However, he was able to get grips with one project and even helped out with bug patching, he later informed me that he is enthusiastic about learning Java because of the event, brilliant! You do not need to get tied down to one language, you should learn the right tools for the right job and sometimes the right tool is a different language.
On behalf of the Organizers to the Graduate Development Community, we would like to say a huge thank you to everyone! Students, mentors, project committers and IBM (for providing the food and venue).
We hope that each student who attended the event continues their involvement with the open source project they worked on during the day or at least finds another open source project to get involved with.
A Definition of Open Source
- Everyone can download and use the software as-is for any purpose they like, without any royalty or license payments1.
- Everyone can study the source code and make changes if they like2.
- Everyone can give the software to anyone they like3 – with or without changes (but you can’t take credit for things you didn’t write, and you have to provide source code and the same rights as you received).
Notice that the above definition leads to a situation where for practical purposes, Open Source software can be made available without charge – because even if the original developer asked for money (eg to cover the cost of bandwidth) then anyone who downloaded it, could redistribute it free of charge.
Free Software versus Open Source Software
However, the other viewpoint chooses to emphasise the user’s intellectual freedoms to use and modify the software as they see fit. Many people in this part of the movement prefer the term ‘Free Software’ to ‘Open Source’ for this reason.
“When we call software ‘free’, we mean that it respects the users’ essential freedoms: the freedom to run it, to study and change it, and to redistribute copies with or without changes. This is a matter of freedom, not price, so think of ‘free speech’, not ‘free beer’.” – Richard Stallman
The term “Free Software” view holds that it’s not simply the access to the source code and lack of a price tag on the code which matters – the freedoms of the user of the software are seen as a major point of principle and central to the entire development practice.
Free Software and Open Source Software are two schools of thought which share many common goals, but which have different philosophies and emphasis. Despite these difference in approaches, however, virtually all software which is Open Source is also Free, and for practical purposes, all Free Software is Open Source.
More importantly, most of the time this distinction does not matter to the majority of people who use and develop Open Source or Free Software. The different philosophical approaches that individual developers take do not usually matter in terms of their ability and willingness to work together – people with very different views on the underlying philosophy can and do work very effectively on the same project, to the same goals.
How does this fit into the modern software industry?
These days virtually all companies will use F/OSS for at least some of their software needs, and F/OSS is contained in a very large number of consumer devices, such as wireless routers and HD televisions from major manufacturers.
F/OSS has become a major presence in the software world and is now widely used in all sectors of the industry, particularly to provide infrastructure solutions or libraries to build upon.
What are some examples of Open Source / Free Software?
The important thing to note here is that when F/OSS provides a platform on which to run other code (the business applications), then the source code for the business applications doesnot usually need to be released. For example, just because PHP is Free Software, does not mean that the source code to Facebook (and every other web application which uses PHP) needs to be available.
How does Open Source / Free Development work?
In addition to the source code, projects will usually produce official releases, on whatever timescale they deem appropriate.
Individual developers can then join the project, by joining the project forums (eg mailing lists, bug trackers, etc) and getting up to speed and then starting to participate. This participation can take a number of forms – not just coding tasks. For example, developers who can write good tests or lucid project documents are in demand in virtually all large Open Source projects. Discussions about design and direction of the project will take place on the project mailing list, and people are welcome to contribute – although as with most projects a developer’s experience and standing in the community will be a factor in how seriously their views are taken.
Developers will usually tackle the tasks which interest them the most, although this can lead to duplication of effort, as several people may choose to start attacking the same interesting-seeming problem. Sometimes developers who are new to the project will ask experienced devs what would be good starter tasks – and this can be a good way to get into a new project.
These open and decentralised approaches to development make it a very different environment from that found in many commercial workplaces. This is to be expected as the typical Open Source developer is not directly compensated (in material terms) for the work they do.
The primary reasons that developers have for being involved in Free or Open Software are very varied – but common motivations include:
- Recognition by one’s peers
- Satisfaction of scratching a personal “development itch”
- Learning a new language / technology area
- Contributing to one’s community
- Opportunity to work with and learn from a greater range of people
If you are interested in finding out more about the subject please visit: http://en.wikipedia.org/wiki/Open_source