Apache Allura (the technology behind the SourceForge developer platform) is looking for Google Summer of Code students. You can read the blog post about this HERE, and read more about what’s involved in the process in the wiki.
SourceForge projects in the Google Summer of Code
Congratulations to the 35 36 SourceForge projects (Looks like I left GNSS-SDR off of the list!) which were selected to participate in the 2013 Google Summer of Code. That’s 22.5% 23.2% of the 155 projects selected overall (up from 18% last year). We’re really looking forward to what they accomplish in the coming months.
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.
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.
Blender
Blender is the free open source 3D content creation suite, available for all major operating systems under the GNU General Public License.
Boost C++ Libraries
Boost provides free portable peer-reviewed C++ libraries. The emphasis is on portable libraries which work well with the C++ Standard Library. See http://www.boost.org
BRL-CAD
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.
BuildBot
Buildbot is a system to automate the compile/test cycle required by most software projects. Buildbot is no longer hosted on SourceForge. See http://buildbot.net for links and documentation, and http://github.com/buildbot for the source.
Django
A high-level Python Web framework that encourages rapid development and clean, MVC design. Includes a template system, object-relational mapper and a framework for dynamically creating admin interfaces.
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.
GNSS-SDR
An open source software-defined Global Navigation Satellite Systems (GNSS) receiver written in C++ and based on the GNU Radio framework.
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.
LyX – The Document Processor
LyX is a document processor that encourages an approach to writing based on the structure of your documents (WYSIWYM) and not simply their appearance (WYSIWYG).
MacPorts
The MacPorts Project is an open-source community initiative to design an easy-to-use system for compiling, installing, and upgrading either command-line, X11 or Aqua based open-source software on the Mac OS X operating system.
MLton
MLton is a whole-program optimizing Standard ML compiler.
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. https://moodle.org/
OGRE (O-O Graphics Rendering Engine)
An efficient, object-oriented hardware accelerated 3D engine. It abstracts the differences between APIs and platforms and allows scene-oriented coding through an easy to use object model. Adaptable to multiple scene types (indoor, outdoor, whatever)
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.
OWASP Source Code Center
The Open Web Application Security Project (OWASP) software and documentation repository.
PaGMO / PyGMO
A C++ / Python platform to easily perform parallel computations of optimisation tasks (global and local) via the asynchronous generalized island model. Many state of the art optimization algorithms are included together with an extended set of optimization problems. A common interface is provided to other optimization frameworks/algorithms such as NLOPT, SciPy, SNOPT, IPOPT, GSL
phpBB
phpBB is the world’s leading Open Source flat style discussion forum software. It includes all the features you expect to find in today’s top of the line software.
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 columns, execute any SQL statement, manage indexes on columns.
Pidgin
See http://pidgin.im/about/ for more information. 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+. Finch is a command line instant messaging program. It also lets you log in to accounts on multiple chat network simultaneously, and it is compatible with the same chat networks as Pidgin. It is written in C and makes heavy use of GLib and ncurses.
RoboComp
RoboComp is a robotics framework providing a set of open-source, distributed, real-time robotic and artificial vision software components and the necessary tools to create and manage them.
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.
Simple DirectMedia Layer
This project is an unoffcial and partial mirror of the SDL site. It only contains freely downloadable SDL materials. You can reach the official one at http://www.libsdl.org.
SimpleCV
SimpleCV is a python framework for creating a more human readable programming interface to OpenCV.
Steel Bank Common Lisp
A high performance Common Lisp compiler. In addition to standard ANSI Common Lisp, it provides an interactive environment including an a debugger, a statistical profiler, a code coverage tool, and many other extensions.
SuperTuxKart
SuperTuxKart is a kart racing game featuring Tux and friends. It is a fun-racer game, focusing on fun and ease of play.
Scaffold Hunter
Scaffold Hunter is a JAVA-based software tool for the analysis of structure-related biochemical data. It enables generation of and navigation in a scaffold tree hierarchy annotated with various data.
TYPO3 Content Management Framework
TYPO3 is an enterprise class Web CMS written in PHP/MySQL. It’s designed to be extended with custom written backend modules and frontend libraries for special functionality. It has very powerful integration of image manipulation.
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.
Wireshark
Wireshark is a powerful network protocol analyzer developed by an international team of networking experts. It runs on UNIX, OS X and Windows. (Looking for Ethereal? You’re in the right place. We switched names in May 2006 due to trademark issues.)
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 .
XBMC Media Center
XBMC Media Center is a free cross-platform media player software and entertainment system application framework for Linux, Mac, and Windows. XBMC is capable of playing back and streaming all popular video, audio, and picture formats out-of-the-box.
XWiki
XWiki is the next generation enterprise wiki, a feature rich tool that is secure, easy to use and more organized. At the same time it’s a light and powerful development platform that allows you to customize the wiki to your specific needs.
Worldforge and GSoC
The WorldForge project is “A Complete Gaming System for Massively Multiplayer Online Roleplaying.” Also, it’s one of the SourceForge projects that participated in the Google Summer of Code this year. Erik Ogenvik, one of the developers on the project, wrote to me about their summer, and what they learned in the experience.
Rich: Congratulations on a successful completion of the Google Summer of Code. Could you give us an overview of what your project is?
Erik: Worldforge is a project aimed at providing tools for building virtual worlds. We provide server, clients, protocols, utilities and assets for making it possible to easily creating and experiencing multi user virtual worlds. All of our work is released under free software licenses.
The main focus of the project currently is on the “Ember” client, and the “Cyphesis” server.
It should also be mentioned that we acted as a umbrella project for both the CEGUI and the Ryzom project. CEGUI is a GUI library, often used in games. Ryzom is a MMORPG project.
Rich: What did your students work on this summer? How much did they get accomplished?
Erik: Worldforge had three students, two working on the Ember client and one working on the Cyphesis server. I mentored the two working on Ember, as that’s my main area of responsibility. Both Ember students worked on improving graphical performance.
Arjun Kumar implemented a system in Ember for automatic graphical adjustments. Here’s a video of the final result. He successfully completed the task which implements a system whereby graphical detail is automatically adjusted so that a smooth framerate is kept. The system is fully functional but will need some tweaking in order to provide a smooth experience as possible. The aim is to make it non intrusive enough so that the user won’t really notice it, except through a smooth frame rate.
Péter Szücs added support to Ember for an extensive geometry level of detail system. Here’s an older video from halfway through the program. The system allows for both detailed as well as automatic LOD generation for arbitrary meshes. All LOD generation happens on a thread separate from the main rendering one. It’s fully implemented and functional, already merged into the main branch. Combined with Arjun’s work it becomes even more powerful, as it allows for much larger scenes without making the client grind to a halt.
gsoc2012/worldforge: Automatic mesh Lod management system from sajty on Vimeo.
Rich: What did you learn in the process of running a GSoC project? Would you do anything different next time?
Erik: This is our fifth year participating in the program and we have by now a pretty solid way of working which we’ve found to be very successful. Both in getting students to produce high quality work and learn from it in the process, but also in making sure that they feel welcome in the project. In general, the main lesson we quickly learned is the value of communication, communication and communication (I feel I need to stress that!). For one, the value of having multiple communication channels. Make sure there’s always more than one way for the mentors and students to reach each others. However, by far the most valuable routine is to mandate daily SCRUM like reports for each student. Each morning each student sends me a report of what they did the day before, what they plan to do during the day and any impediments they can foresee. And I give feedback in return. In our experience this single regiment makes a huge difference in making sure that the student feels part of the project and confident that their mentor is putting time into helping them.
Rich: What advice would you give to other projects considering applying for GSoC next summer?
Erik: My main advice to other projects considering to apply is to make sure that they’ve set up multiple and redundant channels for communications. Mail server, chat rooms, IM accounts and so on. But also ways of communication about the code. We ourselves use Github, and reap huge benefits from the ability to directly comment on individual commits. This greatly eases the flow when discussing implementations.
I would also advise projects to put some kind of required test in place for submitting applications. Earlier years we had trouble with too many flippant or spammy applications. Nowadays we require that students first complete a trivial task (fixing a compilation and a runtime error) in order to consider their applications. This dramatically cut down on the number of uninteresting applications.
Rich: What advice would you give to students considering applying for GSoC?
Erik: For any student, consider what a community project is looking for. We want to see independent, mature and helpful students. Sharing knowledge, being proactive and reading instructions are positive traits. Remember that the mentors will often be overwhelmed with questions, so the ability to phrase your questions in an efficient way (and of course not asking about things that should be obvious) is valued. Start discussing or submit your application early on, so that any mentors can give feedback. Never submit at the last minute; all applications usually go through revisions and you need to have time to allow for that.
SimpleCV and the Google Summer of Code
Rich: The last few weeks I’ve done several interviews with project that participated in the Google Summer of Code. A few days ago, I spoke with Anthony Oliver and and Katherine Scott from the SimpleCV project. They told me a little bit about their experience, and also gave some advice to other projects that might be interested in doing this next year.
If you’d like to have your project featured on the SourceForge podcast, just drop me a note and we’ll schedule something.
If the embedded audio player below doesn’t work for you, you can download the audio in mp3 or ogg formats.
You can subscribe to this, and future podcasts, in iTunes or elsewhere, at http://feeds.feedburner.com/sourceforge/podcasts, and it’s also listed in the iTunes store.
Rich: Give us an intro to your project. What does your project do?
Katherine: SimpleCV is an Open Source Python library for doing computer vision stuff. So, we make it quick and easy to do basic image processing, like, find bar codes, look at the color of something, find faces … all these really basic tasks we make it really quick, like one line of Python to get it done. And we use this technology to do lots of more complicated things for manufacturers.
Rich: How many students did you have?
Katherine: We started with four, and then we lost one pretty early on, so we had three.
Rich: What kind of things did you have your students doing this summer?
Katherine: We’re fairly new. We’ve been around for about a year … a little over a year. And we still have lots and lots of functionality that we need to start getting fleshed out. The students did everything from projects that they wanted to do, like we had one doing tracking, we had another one working on a mobile app, and then we had another one that was working on stereo vision and some of the tools that you use do to stereo vision. And then we would throw other tickets, other problems that we would have out there for them.
Rich: For somebody completely unschooled in this, like myself, it seems to me that it would be hard to find a student that had the necessary knowledge to get involved in this. Where do these students come from?
Anthony: They basically just flocked to us. One of the students that we had didn’t really have a background in computer vision. We were actually quite surprised with the amount of feedback and applications we actually got for the program. We had, I think it was 85 applications.
Katherine: This stuff is hard, but it’s not outside the domain of what they would do if they were at the end of their undergraduate career or starting out as graduate students. These are all things I did in grad school, more or less, and, you throw them a couple papers, you old their hand, and you tell them, hey, look, go be autodidactic. We’re not asking you to do anything new, we’re just asking you to do something that’s kind of hard. So go figure out how to do hard stuff. That’s how you become a professional engineer, right, is go solve hard problems.
Rich: What did you learn in this process? If I have a project, and I’m interested in doing a Google Summer of Code next year, what did you learn? What did you do right? What did you do wrong? What will you do differently next year?
Anthony: I was a 2007 SoC student, so I had a little bit of experience. I was involved with Drupal, which an Open Source content management system. So I had a little bit of experience of how that interaction works. One thing we didn’t plan for was the overwhelming … like I said in the beginning … so many applications. We didn’t plan … we just figured maybe a few people will apply, and I don’t think we were prepared to handle the amount of questions and submissions and people hunting us down on our private emails to get involved with the project. I think next year it’ll be a little more planning ahead for that sort of thing, and defining what projects we’re looking for – we left it a little open-ended this year.
Rich: Do you think that the students will remain involved in the project after they’re done with their assignment? And did you, in fact, remain involved in Drupal once you were done with yours?
Anthony: Yeah, actually, I did Drupal stuff for quite a while. I actually was able to get a job and it actually opened quite a few doors or opportunities for me. And I would say, yeah, that the students seem to be … seemed to have a good time, and I think they learned a lot. I can let Kat comment some more.
Katherine: It was, generally, great. I think my hardest problem was, I would have really like to have the kids around, physically being there. It actually worked out, them being remote, I think, pretty well, but there’s sometimes, especially with computer vision, and graphics, where you just want to grab a piece of paper and say, well, here’s the math, or let’s draw a picture of what’s going on, and work through them. And that’s as much a thing that, I think, would help them, as it would help us. But other than that, I thought if the kids can figure out how to work remotely, that’s a huge skill. And it’s not something you learn in school, either. And it’s something that’s really valuable once they get out in the real world, is how do you interact with the community? How do you interact with technical partners that may be across the globe, literally.
Rich: And how did you solve that? Did you use Google Talk, or did you use phone calls, or what?
Katherine: Generally none of the audio … we only played with the audio for a little while. We’re all engineers. None of us are really big phone people, I think. So, it was basically, hang out on IRC. We have chat all day. So, as soon as you have a problem, let me know, and, I’d rally them together two or three times a week, and say, well, what’d you do yesterday? What are you doing tomorrow? What are your problems? What did you find was cool? Just run down the normal stuff you would have at, say, a standup meeting.
Rich: So far as the end-of-program metrics go, do you mark these projects as success? Do you feel that everyone passed?
Anthony: Yes. Most definitely.
Katherine: Yes, absolutely. I think that the goals kind of change, right? But we got enough out of it, in terms of the library. But my larger metric is, do you think the kids are better off now than they were when they started, and I think the answer is certainly yes. I think they learned a ton, which is really almost more important than them completing their goals, if they got a lot out of it.
Anthony: They all went above and beyond what we asked of them. They helped out on things like the forums, and solving issues in the issue queue that wasn’t even part of their scope for the summer project. A lot of times, too, if there was bugs and stuff we could toss them to them, and they would actually turn them around pretty quick and get things fixed, which I was pretty surprised that someone not really too involved with the project … they got up to speed pretty quick. It turned out pretty good. They were already asking if they could apply next year. So I’m thinking that they’ll try to stick around with the project, and I hope that’s the case, and I hope that they pass the word along that the Summer of Code was a good program for them, too.
Katherine: Yeah, it’s an incredible program. It really is a great thing that Google’s doing.
Rich: Thanks so much for talking with me about this, and good luck with SimpleCV.
Anthony: Thanks, Rich.
Katherine: Thank you.
phpMyAdmin and the Google Summer of Code
In our continuing series, I had the opportunity to ask Marc Delisle about his project’s experience with the Google Summer of Code.
Rich: Give us an overview of what your project is.
Marc: phpMyAdmin is a web interface for MySQL and Drizzle databases.
Rich: What was your student’s assignment?
Marc: After fourteen years of existence, our code base has grown in many directions and it was time for some refactoring. The two projects I mentored were about refactoring some of the sub-systems inside phpMyAdmin.
Another of our mentors was supervising a student whose project was to remove the usage of HTML frames from the interface.
Rich: Was the assignment completed to your satisfaction?
Marc: Yes, but for one of my projects, testing was incomplete; also, some bugs
have been logged and will need care before this code is released.
Rich: When can we expect to see the fruits of the summer’s work in a released version?
Marc: We usually produce a version with the merged code, about five months
after GSoC.
Rich: Would you participate in GSoC again?
Marc: Sure; this was our fifth year.
Rich: What advice can you give to a project interested in GSoC for next year?
Marc: We have developed wiki pages explaining the selection process and a student guide; this is really important for would-be participants. Also, we only accept students who have contributed some code before.
