Tag Archives: gsoc

Unknown Horizons and the Google Summer of Code

I spoke this week with Thomas Kinnen of the Unknown Horizons project, which participated in the Google Summer of Code this year.

Rich: Tell me briefly about your project, and what it does.

Thomas: Unknown Horizons is a 2D realtime strategy simulation with an emphasis on economy and city building. The idea is to build a settlement on an island and expand your small settlement to a strong and wealthy colony, collect taxes and supply your inhabitants with valuable goods. You strive to increase your power with a well balanced economy and with strategic trade and diplomacy. Anyone familiar with Anno 1602 or any of its sequels will surely be familiar with the concept. The great Anno series served as a great source of motivation and inspirational example for our project.

Rich: What were your GSoC students working on this summer, and were they successful?

Thomas: We applied to GSoC together with our graphics engine FIFE (www.fifengine.net) and received three slots. One slot went to FIFE and two to Unknown Horizons, same as last year. The student working for FIFE worked on integrating different GUI toolkits with the engine, for example librocket and ce:gui. He did a great job and easily passed the final evaluations.

On Unknown Horizon’s side one student worked on enhancing the multiplayer mode and one worked on extending our current AI to use the games combat features. Our student working on the combat AI did a great job and easily passed the final evaluations. His work has already been merged into the main line of development.

Sadly we had to fail our student working on enhancing the multiplayer mode at the midterm. Failing one of our students was probably one of, if not the, most difficult decisions we ever had to make with the team. In the end we think we made the right decision, as the project was not working out as good as we had wished. The learning we take away as a team is that we will have to talk to the students even earlier in a very clear way (“You will fail if you don’t do/change x,y,z”). A lot of feedback that we felt should have been pretty clear turned out to maybe be not as clear to the student as we had thought. Nonetheless, we were also not very happy with the performance as we didn’t feel an improvement on the students side during the first part of GSoC and his mentor felt that his input was not being taken into account. As I already said, it was a very difficult decision we had to make and it was not taken lightly.

Rich: What would you tell other projects that are considering GSoC for next summer? Was it worth it?

Thomas: Do it! I think it has been a great experience this and last year. It greatly helped to improve our project and we gathered a few new contributers through GSoC, which is what really counts. Do not take GSoC lightly though, it will take a lot of your organizations time. Every mentor should be willing to invest at least 10 hours every week during the entirety of the project — that’s a lot of time! Nonetheless it will be rewarding for the mentor, the student and the organization if everything turns out well and even if it doesn’t you will probably learn a lot in the process.

Rich: What did you learn through this process? What did your student learn through this process?

Thomas: I already talked a bit about the problem of having to fail a student, but let me also give some tips on how to successfully engage the student into the team by telling you what we do to integrate our students into the community and keep the communication going. At Unknown Horizons most of our communication is held through IRC, not mailing lists or forums. We have a weekly meeting in which we require every student to give a short update on what the student has been working on the entire week. This helps the entire team stay in the loop on the student’s progress and allows the student to gather feedback and opinions from the team on the student’s ideas and thoughts. Secondly we require our students to give a daily (not weekly!) short report to the mentor. This report includes three things:

1) What has the student been working on and accomplished yesterday
2) What has he planned to work on next
3) What are the students blockers and problems, where does he need feedback/help quickly.

This helps the mentor stay up-to-date easily on what their student is doing and allows the student to request in a simple and non formal way. As a mentor I’ve always found this really helpful. Don’t mistake this for direct communication via IRC or any other direct channel though. It is more of an add-on and the mentor should make sure to talk with the student on a regular basis (e.g. at least once a day).

Rich: What will you do differently next year?

Thomas: Be even more thorough on the selection process, although we already require every candidate to deliver at least one patch, so that we can see if he is capable of performing the task in the way he claims to be able to. Also as explained above, we’ll try to be even more direct with giving negative feedback, if it has to be done. Other than that, I think we are setup pretty well and will most probably apply for GSoC again next year.

CMU Sphinx and the Google Summer of Code

18% of all Google Summer of Code projects were SourceForge projects. One of those projects was the CMU Sphinx project. I asked them about their experience with the GSoC, and what their students were working on this year.

Rich: Give us a brief overview of your project. (Yes, I know, I’ve interviewed you guys before, but some of our readers might not have caught that.)

Evandro: CMU Sphinx is a speech recognition project. It provides all the components needed to build a speech recognition system, with a license that allows for commercial use. The project started as a research project at Carnegie Mellon University. It became an open source project around the year 2000, always hosted by SourceForge.net.

Rich: What were your student(s) working on for this year’s GSoC?

Evandro: CMU Sphinx had several students during this year’s GSoC. The successful projects dealt with pronunciation evaluation, grapheme to phoneme conversion, and enlarging in-domain data automatically.

Pronunciation evaluation answers the question about how good a person’t pronunciation is, compared to the language’s standard. It is useful, for example, in automating language learning or assessing reading skills. Grapheme to phoneme conversion is the task where we find how a word is pronounced from the word’s spelling, i.e. what is the sequence of phonemes that gets pronounced when a native speaker utters that word? Enlarging in-domain data automatically is useful when building a language model. A language model is the knowledge base used by a speech recognition that assigns a probability to any possible sequences of words in a language.

Rich: What did you learn from the process? What would you do differently next year?

Evandro: For the students, it is a fantastic learning opportunity. They interact directly with people who have been working in the area for years, in some cases who’ve had the experience of creating successful companies etc. I would not be surprised if the students ended up the Summer being hired by their mentors’ companies.

On the other hand, working from a distance inherently has some major difficulties, and the communication channels have to be well used. If you imagine, for comparison’s sake, a situation where the student would be working directly with the mentor, in the same office. A lot more could be accomplished, just because the interaction would be much easier.

Interaction by e-mail/IM ends up being somewhat impersonal. Ideally, a face-to-face meeting would be great, but this is quite impractical. The next best thing is periodic video conference calls, using Google Plus Hangouts or Skype. Hearing the other person and seeing their face really does wonders for the interaction.

Rich: What advice can you give to other projects considering GSoC for next year?

Evandro: GSoC is great for the project, as it gets new people involved. Mentoring students brings a lot of satisfaction, but also demands time and effort. Having a good plan, so the students don’t spend too much time “learning the ropes” but can get productive work done as quickly as possible makes everyone happy.

Pandora FMS and GSoC

August 13th was the the “soft pencils down” date for the Google Summer of Code, with a hard end date of August 24th. So I contacted the SourceForge projects that were involved, to see how their summer went.

Some of them are still hard at it, and expect to go all the way up to the hard end date, but a few were ready to talk about how great their summer was.

I heard from Sancho Lerena of the Pandora FMS project, who told me that the summer went very well.

Give us an overview of what your project is.

Pandora FMS is an all-purpose monitoring system, but very oriented to big sites ( > 1000 nodes). It’s very very flexible and able to get information from almost any kind of source, and produce useful reports, alerts, graphs, etc.

What was your student’s assignment?

We try to use the student time in small and isolated tasks, or subprojects. We have three students and put each of them in different tasks, so they get interaction only with other developers in the project. They have been evolving a event viewer for Android and the Android agent, adding some features and increasing the usability and stability. Our other student has developed (from scratch) a Chrome and Firefox extension to show monitoring events by using our Web API.

Was the assignment completed to your satisfaction?

VERY satisfied.

When can we expect to see the fruits of the summer’s work in a released version?

Of course, all of three subjects has been produced useful code and will be used for next version, probably even before, because all of them are using interfaces and/or API compatible with current version, so, in a few weeks probably we’ll release something. All of this time they have been working with our SVN server, on Sourceforge, of course 😉

Would you participate in GSoC again?

Will be a pleasure.

What advice can you give to a project interested in GSoC for next year?

Try to locate small parts of the project, something which don’t require learning a full API, a full architecture or Database design. Do a “roadmap” based on isolated subtasks, so if you there are any delays, you can remove some points, but have something functional at the end. If you plan five subtasks, but at the end you get only three, but these three are OK – you’ve got something to evolve and do more things in the future.

We had good luck, and two of the students (one from Spain, and other from UK) were near our main office, so we organized a small meeting at the beginning, That was useful to meet people and talk about what we all expected – much better than an IRC Meeting. With the other student, from Singapore, gtalk was the best tool to keep updated on progress and give tips.

18% of Google Summer of Code projects are SourceForge projects!


As no doubt you’re already aware, the Google Summer of Code is an annual event where students can work on Open Source projects, and Google throws in a little money to help both the project and the student.

This year, 180 projects were accepted, and we’re delighted and very proud to report that 32 of those projects were SourceForge projects, for a total of 18% of the whole.

SourceForge projects featured in the list are shown below. If we somehow overlooked your project, please be sure to let us know (communityteam@sourceforge.net).

  • Apertium: machine translation toolbox

    Apertium is a toolbox to build open-source shallow-transfer machine translation systems, especially suitable for related language pairs: it includes the engine, maintenance tools, and open linguistic data for several language pairs.

  • ASCEND modelling environment

    ASCEND is a modelling environment and solver for large or small systems of non-linear equations, for use in engineering, thermodynamics, chemistry, physics, mathematics and biology. Solvers for both steady and dynamic (NLA & DAE) problems, are provid

  • Battle for Wesnoth

    The Battle for Wesnoth is a Free, turn-based tactical strategy game with a high fantasy theme, featuring both single-player, and online/hotseat multiplayer combat. Fight a desperate battle to reclaim the throne of Wesnoth, or take hand in any number of other adventures…


    BRL-CAD is a powerful cross-platform constructive solid geometry solid modeling system that includes an interactive geometry editor, ray-tracing for rendering & geometric analyses, network distributed framebuffer support, image & signal-processing tools.

  • DBpedia Spotlight

    DBpedia Spotlight is a tool for annotating mentions of DBpedia resources in natural language text.

  • CMU Sphinx

    CMUSphinx is a speaker-independent large vocabulary continuous speech recognizer released under BSD style license. It is also a collection of open source tools and resources that allows researchers and developers to build speech recognition systems.

  • DocBook

    Home for the DocBook XSL stylesheets and more

  • The Freenet Project

    Development of a Java application designed to allow the free flow of information and ideas on the Internet without fear of censorship of any kind.

  • Generic Model Organism Database Project

    GMOD is a set of interoperable open source software components for visualizing, annotating, and managing biological data. See http://gmod.org for more.

  • Grassroots DICOM

    Grassroots DiCoM is a C++ library for DICOM medical files. It is wrapped to Python, C#, Java and PHP. It supports RAW, JPEG, J2K, JPEG-LS, RLE and deflated. It supports SCU network operations (C-ECHO, C-FIND, C-STORE, C-MOVE). Part 3/6 are XML files.

  • Inkscape

    A Linux, Windows & OSX vector graphics editor (SVG format) featuring transparency, gradients, node editing, pattern fills, PNG export, and more. Aiming for capabilities similar to Illustrator, CorelDraw, Visio, etc.

  • JBoss Community

    Community driven projects featuring the latest innovations for cutting edge apps. Our flagship project JBoss AS is the leading Open Source, standards-compliant, Java EE based application server implemented in 100% Pure Java.

  • IBM Jikes Compiler for the Java Language

    JikesTM is a compiler for the JavaTM language. The Jikes project strives for strict adherence to the Java Language and Java Virtual Machine Specifications. Jikes’ most popular feature is it’s extremely fast compile speed.

  • Moodle

    Moodle is a Course Management System (CMS), also known as a Learning Management System (LMS) or a Virtual Learning Environment (VLE). It is a Free web application that educators can use to create effective online learning sites. http://moodle.org/

  • Open Computer Vision Library

    The Open Computer Vision Library has > 500 algorithms, documentation and sample code for real time computer vision. Tutorial documentation is in O’Reilly Book: Learning OpenCV http://www.amazon.com/Learning-OpenCV-Computer-Vision-Library/dp/0596516134

  • OpenMRS

    OpenMRS is a community-developed, open source, enterprise electronic medical record system. Our mission is to improve health care delivery in resource-constrained environments by coordinating a global community to creates and support this software.

  • OpenNMS

    An Enterprise-Grade Network Management Application Platform that is 100% Free and Open Source Software.

  • PacketFence

    A network access control (NAC) system featuring a captive-portal for registration and remediation, wired and wireless management, 802.1X support, isolation of devices, integration with IDS; it can be used to secure networks from small to large.

  • Pandora FMS: Flexible Monitoring System

    Pandora FMS is a performance & availability monitoring system, ready for big environments. It uses agents for local monitoring and can do several kinds of remote network monitoring (SNMP v3, TCP checks, remote WMI probes…) Agents works on Linux, Windows, AIX, HP-UX, Solaris and BSD systems.

    Highly scalable (up to 2000 nodes with one single server), completely web-driven and a multitenant interface. It has a very flexible ACL system and a lot of graphical reports and user-defined control screens.

  • phpMyAdmin

    phpMyAdmin is a tool written in PHP intended to handle the administration of MySQL over the Web. Currently it can create and drop databases, create/drop/alter tables, delete/edit/add fields, execute any SQL statement, manage keys on fields.

  • Pidgin

    Pidgin is an instant messaging program which lets you log in to accounts on multiple chat networks simultaneously. It runs on Windows, Linux, and other UNIX operating systems. Pidgin is compatible with the following chat networks out of the box: AIM, ICQ, Google Talk, Jabber/XMPP, MSN Messenger, Yahoo!, Bonjour, Gadu-Gadu, IRC, MXit, Novell GroupWise Messenger, Lotus Sametime, SILC, SIMPLE, MySpaceIM, and Zephyr. It is written in C and makes heavy use of GLib and GTK+.

  • Scribus

    Scribus is an open-source program that brings professional page layout to Linux/Unix, MacOS X, OS/2 and Windows. Scribus supports professional features, such as CMYK color, spot color, separations, ICC color and robust commercial grade PDF.

  • ScummVM

    ScummVM is a cross-platform interpreter for several point-and-click adventure engines. This includes all SCUMM-based adventures by LucasArts, Simon the Sorcerer 1&2 by AdventureSoft, Beneath a Steel Sky and Broken Sword 1&2 by Revolution, and many more.

  • SimpleCV

    SimpleCV is a python framework for creating a more human readable programming interface to OpenCV.

  • Stellarium

    Stellarium renders 3D photo-realistic skies in real time with OpenGL. It displays stars, constellations, planets, nebulae and others things like ground, landscape, atmosphere, etc.

  • SWIG

    SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. SWIG is used with different types of target languages including common scripting languages such as Perl, PHP, Python, Tcl and Ruby. The list of supported languages also includes non-scripting languages such as C#, Common Lisp (CLISP, Allegro CL, CFFI, UFFI), D, Go language, Java, Lua, Modula-3, OCAML, Octave and R. Also several interpreted and compiled Scheme implementations (Guile, MzScheme/Racket, Chicken) are supported. SWIG is most commonly used to create high-level interpreted or compiled programming environments, user interfaces, and as a tool for testing and prototyping C/C++ software. SWIG is typically used to parse C/C++ interfaces and generate the ‘glue code’ required for the above target languages to call into the C/C++ code. SWIG can also export its parse tree in the form of XML and Lisp s-expressions.

  • Gambit

    A library of tools for doing computation in game theory.

  • Tianocore

    TianoCore is a portal to various open source projects which support UEFI firmware and application development.

  • umit

    UMIT is the new nmap frontend, intended to be cross plataform, easy to use, fast and highly customizable. This project is developed with Python and PyGTK and run with minimal dependencies.

  • Unknown Horizons

    Unknown Horizons is a 2D realtime strategy simulation with an emphasis on economy and city building. Expand your small settlement to a strong and wealthy colony and supply your inhabitants with valuable goods.

  • Wine Is Not an Emulator

    Wine is an Open Source implementation of the Windows API on top of X and Unix. Wine provides both a development toolkit for porting Windows sources to Unix and a program loader, allowing many unmodified Windows binaries to run on x86-based Unixes.

  • WorldForge

    Worldforge is a project aimed at developing “A Complete Gaming System for Massively Multiplayer Online Roleplaying.” More information is available at www.worldforge.org .