Archive: Projects 2011 | Projects 2012 |
The association runs projects to get hands on experience in the defined scope of education. These projects must have a defined scope and discussion beforehand. They should produce in a) a result that is usable in practice and b) an experience report or case study.
In 2011 the following projects were completed. Projects often cover the area of several modules of study. They are sorted below based on their primary module.
Project management in Open Source projects faces a number of challenges and differences from project management within companies that produce commercial software.
A wiki is a collection of linked articles, that may be edited in a version safe manner. Refactoring is a term from the field of software engineering. It refers to restructuring a program to improve maintenance and extensibility.
Faiumoni e. V. has its roots in the free software project Arianne and still cooperates with it closely. Over the years, Arianne has created a collection of articles on the topcis of software engineering and database design. This project reworked this collection into study material.
We took the following approach: As a first step, the existing articles were checked to see whether they were up-to-date. Then those articles were structured, categories and inter article references were added. Based on this preparatory work, topics were selected, which have been worked into study material in accordance with our concept of education.
Software engineering projects aim to provide an understanding of requirements and design for concepts to meet them. The provide the ground on which programming projects build up on.
The interactive, incremental approach to software-development was used in real world project, in order to create a website for the association.
The project started with an analysis phase, in which thee use cases and target groups were described: Guest, who more or less randomly visit the website; people who are interested, editors and members.
In the next step the domain requirements, such as multi language support and printability, were collected. As a result, it became obvious that the website has to consist of three areas: The main area contains the study material, and may be edited by anyone. A small area, which contains official information such as the legal contact, may be read by anyone but edits are only allowed by specific people. And the last area is only accessible by members. It contains information on the account balance and invoices.
During the design phases, it was decided to base the website on the Stendhal-Webframework and to include further Free Software components such as CKEditor and LightOpenid.
The hands down work was done in the programming phase: The implementation was done in a number of small steps. Each of those steps was shared and discussed during early stages. Therefore it became apparent quickly, that there are trusted editors without a formal membership status. Therefore those roles need to be divided.
After each programming step, the intermediate results were tested. This allowed to identify and fix bugs and imprecise requirements at an early stage.
Game Design is closely related to Software engineering. It, however, focuses on the concepts behind games instead of software in general.
The project defined a ranking algorithm for the best players in a role playing game. A simple approach of ranking players by experience points is limit by a level cap. So all players that reached that cap had the exact same score. Therefore this project analysed alternatives and developed a mathematical formula as described in the announcement.
Three months later the impact of the change was analysed revealing a major issue. It was fixed by adding a logarithm to the formula.
Beside the conceptual and mathmetical skills this projects also practices communication with users, as for example, people dropping in ranking would not receive the changes well.
The programming projects are about implementing concepts developed in the software engineering or game design modules. Programming projects should produce documentation and how-to articles in addition to the writen computer code.
JavaScript is a programming language for client-side interactive web pages. Although JavaScript is a relatively old programming language, the most common web browsers did not start to support the translation of JavaScript into machine code until 2010. This results in a significant performance enhancement, which allows even complex applications to be implemented in JavaScript. As mobile devices - smartphones and tablets - become ever more popular, JavaScript is becoming more and more important.
This project provides a framework for bandwidth-optimized client-server communication, originally written for Java clients, which has now been ported to JavaScript. An important requirement of the project was that Web (JavaScript) clients and traditional Java clients could communicate with each other via the same server.
You can find the result in the branch perception_json of the Marauroa repository. In order to verify the successful outcome of the project and to identify problems, a very simple Stendhal-Client was implemented.
If operating a software system 24 hours a day and 7 days a week is required, know how in system-maintanence and organizing support will be required. For obvious reasons this is not a realistic goal for a small association. But we are trying to get close to this objective.
With the advances in computer technology, systems tend to outgrow their hardware after a couple of years. Moving a complex system with a huge database to a new server often requires a considerable amount of downtime which is undesirable for systems that are in production use for 24 hours a day, 7 days a week.
In June 2011 the association rented a new server because its software projects exceeded the capacity of the old one. It would have been perfectly fine to take the services offered by the association offline for about 14 days as the association does not have any contracts to fulfil and is not aiming for profit.
This opportunity, however, was used to apply gained knowledge about database replication and advanced backup technologies in practice. The server move project migrated the website, Wiki, Stendhal server, IRC bots and other components to new computer hardware. As mentioned above a simple approach would have taken about 14 days because the database is huge. This project managed to do the move with only two windows of downtime for about one hour each. The details about the preparation, unexpected drawbacks and workarounds are documented in a case study.
IPv6 is the next version of the Internet Protocol. It has a number of small features, but is widely known for a much larger address pool. At the beginning of the year 2011 the Internet Authority for assigning names and numbers ICANN handed out the last remaining address blocks to the regional authorities.
As part of this project, the association server was connected to the IPv6 Internet. A "Dual Stack" approach was used, so the server keeps it old address. It is now reachable via both versions of the Internet Protocol.
We created a talk (in German) about our experiances.