Posts from February 2010

Report from XMMS2Con

Thursday, February 25, 2010

The XMMS2 Team Hard at Work
Photo by Sébastien Cevey

Last weekend I arranged and participated in the first XMMS2Con. For those not familiar with XMMS2, it's a cross-platform Free software media player software suite that allows you to play audio files, manage your music libraries and more. Usually we do our yearly meetup at FOSDEM, but this year it wasn't possible for a couple of us to join, so I entertained the idea of a special meetup. We got a lot of things done and a lot of code merged.

First of all, we released the latest version of XMMS2, 0.7 DrNo, even before the Con started. This release was way overdue; in fact, it was nearly a year since our last release, 0.6 DrMattDestruction. We had a few reasons for the delay of the release — I think most of the people in the team are starting to feel the effects of their "real life." Some have become parents, others have been busy with work, school and other activities that have to take precedence over our love for hacking. But as always, when we get together and get to it, we get a lot of work done. I think I am not the only one to feel a bit energized and to come away with a lot of ideas that would be cool to see realized.

The most discussed topic on Saturday was GenIPC. What is GenIPC you might ask yourself? Well if you have been around and tried to write any XMMS2 bindings at any point you know that it involves a lot of manual labour for wrapping all the functions the server implements. GenIPC makes that effort less difficult. Our plan is to have the IPC definition in a XML file, which can then be used to generate the code for each binding. One of the benefits of this approach is that it will be easier to add new functions to all bindings. The other great benefit is that it will be easier to implement native bindings for all languages, since you only need to write the serialization and the code generator and the rest will be taken care of for you. Tilman Sauerbeck has done some great work with GenIPC and the server side of it was merged directly after the DrNo request. On Saturday Tilman, Anders Waldenborg and Henrik Gustafsson discussed a lot of improvements for GenIPC in order to allow for function overloading and default arguments. This work is now well under way and I hope to see it in the master branch pretty soon, since I want to convert native Qt4 bindings to GenIPC and also finish my Objective-C bindings.

The next big project that Sebastien Cevey and Daniel Svensson looked at was S4. S4 is our homegrown database backend that is supposed to replace the SQLite backend we have now. S4 was developed by Sivert Berg as a Google Summer of Code™ 2009 project. The rationale behind S4 is that we horribly misuse the SQL part of SQLite and force our datamodel into it. This mismatch leads to bad performance, lot of code overhead and so on. S4 solves this by introducing a datamodel that fits our use case a lot better. Preliminary tests show that S4 is a lot faster when you have a lot of entries in the database, in fact the only time it's slower is when you do advanced queries that use regex matching and that's slow almost everywhere. We will probably do some reworking so that we don't use regex, but rather globbing as we had with SQLite. I hope to see S4 merged soon.

We also discussed our participation in Google Summer of Code for 2010 and everyone was really looking forward to it. We discussed a lot of ideas that we could have propose as student projects and I think we have some really cool and interesting ideas coming up for 2010.

Thanks to everyone that came out. I had a great time organizing it and I am more than willing to do it again. I also want to make sure to thank Purple Scout AB for hosting us and Google for the fantastic Google Summer of Code program, that not only gives us cool code and good students but also money to spend on things like XMMS2Con.

RTEMS and Google Summer of Code 2009

Friday, February 19, 2010

The RTEMS Project had 6 students accepted for Google Summer of Code™ 2009, with one additional student that was funded through the donation that Google gives to mentoring organizations in conjunction with a donation from OAR Corporation. We were extremely pleased with our students' results and their interaction with other projects, each other, and the community.

Xi Yang's project was to provide more RTEMS Board Support Packages (BSPs) that run on the free Skyeye simulator and to improve testing capabilities when using Skyeye. RTEMS uses Skyeye to test as well as GCC on ARM targets. Xi also implemented an LCD framebuffer driver for use with RTEMS.

Another student, Santosh Vattam worked on improving the Object Coverage of our test suites for a core part of RTEMS. Our initial coverage reports were generated for the SPARC/ERC32 using the closed source simulator TSIM. Santosh and I, his mentor, addressed cases which appeared to be test suite deficiencies while apparent simulator anomalies were passed on to Xi. During this, an obscure bug in RTEMS was uncovered and Xi and I worked together via chat to solve it. At the end of the summer, 3 SPARC and 2 ARM configurations were either at 100% or very close.

Santosh's project was a tie-in to the work of Roxana Leontie. Roxana operated under the same rules as Google Summer of Code but worked outside of the program. Her project was updating the Nano-X RTEMS port and providing a new RTEMS framebuffer device interface, and her first succesful demonstration was running the Nano-X Minesweeper program on RTEMS. As Roxanna progressed, Xi updated his LCD framebuffer driver to match her new interface.

Aanjhan Ranganathan's project was to provide a generic interface for RTEMS applications to use the Memory Management Hardware Unit available in most recent embedded processors for memory protection. His major tasks included studying the PowerPC MMU hardware architecture implementation and behavior, to propose a multi-level API design within the scope of RTEMS infrastructure. Most of the above tasks have been accomplished successfully and tested, but a lot of scope for further work exists.

Josh Switnick had a project which suffered from those unexpected "challenges" that make software development interesting. His project was to port RTEMS to the 8-bit AVR, as RTEMS had previously only been ported to 16- and 32-bit architectures. Mentors worked with Josh to produce a cross-toolset built with AVR specific libc support ported from AVR-LIBC to newlib, and to build the free AVR simulator simulavrxx. Josh produced a working port and is continuing to work to tidy up the loose ends.

Lucian Cocan's project was to continue the 2008 Google Summer of Code project of Real-Time trace. Lucian's initial work was to package the work into something that is suitable for a user. The tool was modelled on the command line tool, libtool, as it provided a simple yet consistent interface for the user. Lucian successfully produced traces for a number of the sample programs plus the example priority inheritance capture engine example.

JiSheng Zhang's project was to implement run-time dynamically loading relocatable object files or libraries into RTEMS, which is based on the IEEE Std 1003.1-2004 API (dlfcn.h) interface. Jisheng completed the basic functions of elf loader after the midterm, then he worked on figuring out how to get the dependencies included in the RTEMS kernel. Currently two tools are supported, i386 and sparc, and Jisheng is continuing to work on add other architecture support such as m68k, power pc, mips, and arm etc.

You can read my full report about our 2009 Google Summer of Code experience on the RTEMS wiki.

By Joel Sherrill, RTEMS Maintainer and Google Summer of Code mentor

Open-sourcing Living Stories

Wednesday, February 17, 2010

For the past two months, small teams of reporters and editors from the New York Times and Washington Post have been experimenting with Living Stories, a new format for covering news on the web. Using this technology platform, we can capture hundreds of developments as events unfold on a single dynamic page so that readers have many ways to easily digest the information. Living Stories has helped the Times enlighten readers on such subjects as global warming, the Afghanistan war, the N.F.L. playoffs and executive compensation. The Post has used it to report on health care reform, the Redskins' season and the overhaul of the D.C. school system.

Since we launched this proof-of-concept test on Google Labs in December, 75% of people who sent us feedback said they preferred the Living Stories format to the traditional online news article. Users also spent a significant amount of time exploring stories. This tells us there's a strong appetite for great journalism displayed in a compelling way.

In addition to the positive input from visitors, we've also heard from publishers interested in telling their own stories through the format. So we think it's time for the next stage of this experiment: releasing Living Stories more broadly to see what you can do with it. Today we're open-sourcing the code so all developers can build their own Living Story pages. (Here's the open-source documentation for technical details; read our Google News Help Forum to ask and answer general support questions.) Now that we're shifting into this public phase of the experiment, the Times and the Post are going to wind down their work on the version hosted on Google Labs. We'd like to thank them for embarking on this stage of the project with us. We're looking forward to continuing to work with them, and many other publishers, on Living Stories as well as other projects that help to advance how news is presented online.

In coming months we're going to look into creating software tools that make Living Stories even easier to use for news organizations. Until then, we can't wait to see what fascinating works of journalism developers, reporters and editors, working together, create using the open-sourced Living Stories code.

TYPO3's first Google Summer of Code

Tuesday, February 9, 2010

TYPO3 mentor Ingo Renner and Google Summer of Code Program Manager Leslie Hawthorn
Photo by Olivier Dobberkau

TYPO3 is an enterprise class Content Management System with a 10 year history, originating in Denmark and enjoying popularity in Europe and gaining ground in Asia, Africa, and the Americas. In March 2009, the TYPO3 community was amazed when our project was accepted into Google Summer of Code™ – TYPO3's first time ever participating in the program. For our first Google Summer of Code, TYPO3 got four student slots assigned. On the one hand this number was very good for a first time mentoring organization but on the other hand it was hard to pick only four students from a lot of promising applications. So as to not show bias between the two major branches, two students were assigned to each development team. We wanted to treat the TYPO3 community and newcomers equally as well so two students were chosen from within the community and two students were newcomers to the project.

Here is an overview of our students' Google Summer of Code projects:

Translation Server

Student: Andriy Kushnarov, Mentor: Ingo Renner

The first project was centered around providing a better infrastructure for translators. TYPO3's backend interface is available in 49 languages but the existing translation server had some limitations which this project aimed to resolve. First up, the most severe limitation was that people wanting to contribute to the translation of the user interface strings would need to obtain a backend login to the translation server, and information on how to do that and the fact that a translation server exists was quite hidden. Other limitations affected the translation process itself by not allowing multiple suggestions for translations or targeting different versions of the CMS where labels might have changed.

Andriy was given the task of revamping the translation server to be open to everyone without needing any additional user account besides the existing account. The new translation server should allow everyone to make suggestions for translations and vote for existing suggestions so that chief translators would simply have to accept a well voted suggestion. Technically the translation server was supposed to be based on Extbase to be future proof. This however also resulted in being a challenge because Extbase itself was constantly changing because it was still in development itself. In the end the new translation server is not ready yet but the TYPO3 community learned a lot in terms of what we need to look for when finishing this project. It's a great start but there's still some way to go before the existing translation server can be replaced. Andriy and other TYPO3 community members have already signaled that they're going to keep contributing towards that goal.

Extbase Kickstarter

Student: Ingmar Schlecht, Mentor: Jochen Rau

The second TYPO3 4.x project was about creating a new kickstarter. As with the translation server, a predecessor already existed but something new was needed. In this case it was not because the existing solution was bad, but because the new kickstarter needed to complement the new Extbase MVC framework instead of the aging plugin base classes.

As with the old kickstarter, the aim was to create an extension that itself would allow to create new extensions by selecting and configuring extension components through a graphical user interface in TYPO3 itself. In the end the kickstarter will allow generation of Extbase extensions with frontend plugins, backend modules, database tables with their according models, and services.

The user interface is based on the Yahoo UI WireIt library, which enables domain modeling in a nice interface with boxes representing models and their properties and wires representing the relations between those model objects. The code generating part is completely based on Extbase itself, which means that the code generated actually comes out of Fluid templates, which can easily be adopted for future Extbase versions for example.

Generally, the project is about 70% done towards a first fully working version (yet with a reduced feature set compared to the old kickstarter). In the mean time, a number of people have shown interest in helping to further develop the Extbase kickstarter, and have already joined the project, with some of them even having done first commits already.

Improved FLOW3 Security Framework

Student: Andreas Förthner, Mentor: Robert Lemke

This is the first of two TYPO3 5.0 / FLOW3 projects. Andreas had already worked on FLOW3's security framework before as the main developer which was why he was chosen to carry on this task during the summer. Meanwhile he also got elected as co-leader of the TYPO3 security team.

To make the security framework usable in real life applications various functionalities are required. For example many authentication mechanisms need to be provided to integrate FLOW3 applications flawlessly with existing infrastructures. A general goal is to provide a transparent security framework, which supports the developer as much as possible in writing secure web applications without needing to be security specialist.

At the beginning of the project it was not possible to have information that would survive a page request, so that the first task was to create a mechanism to allow information being persisted for the time of a session, which is essential for user authentication.

>After the session persistence scope for information was in place the next task was to create an user account infrastructure so that actual users could be created and use the previously created authentication mechanism to log in to some kind of management backend.

Other than that general improvements to the authentication framework have been made and a lot of unit tests have been created for all new code. All the code created is already merged into the FLOW3 framework.

Versioning for the TYPO3 Content Repository

Student: Tamas Ilsinszki, Mentor: Karsten Dambekalns

The second FLOW3 project also had the second TYPO3 newcomer assigned as student. The project had a challenging and complex goal in that Tom needed to dig into the JSR-283 specification first, then walk through the existing code to produce a plan. The optimistic goal of having versioning working by the end of the summer was not hit, but given the circumstances (e.g. the fact the content repository as a whole is still in rather heavy development) the result was fine.

When the work started in a separate SVN branch there were some small quality issues, but Tom was quick at picking up our coding guidelines and test requirements. He produced code that enables some features crucial to implementing versioning in the content repository, and while they have not yet been merged into the main branch that will be done this spring.

Feel free to download the code if you are interested in learning more about our students' projects.

Out with the old, in with the new!

Monday, February 8, 2010

Apache members, committers and contributors descend on the Google headquarters in Mountain View, enjoying a rare chance to get together face-to-face, and getting some really great work done!

January 25th and 26th saw the oldest project at the Apache Software Foundation join forces with one of the newer Incubator podlings for a fantastic hackathon. More than twenty developers from the two projects met at Google for two days of hacking, learning, collaboration, and fun!

Members of the Apache HTTP Server team worked side-by-side with committers to the Traffic Server podling, on everything from documentation formats to getting code to build on new platforms!

The HTTP Server team finalized and released Apache HTTP Server 2.3.5-alpha, the newest version of the ever-popular web server. We also worked on tidying up our download page, and wrote up the CHANGES file and announcement texts for the release of 1.3.42. This is the final release of Apache HTTP Server version 1.3, which has now reached end of life.

Some of the issues and action items that needed to be addressed before Traffic Server can do its first release at the Apache Software Foundation

The Traffic Server podling team was even busier! The following are just some of the things they managed to do over the two days:
  • Finalized the issues that need to be addressed for the first Traffic Server release at Apache (v2.0).
  • Worked on migrating the last remnants of Yahoo! specific code into the Apache repository.
  • Patched the existing code to build on OS X.
  • Gave several interesting presentations, including a discussion of a number of changes in the pipeline for v2.2, the current "dev" branch.
  • Cross-signed developers' GPG keys with several ASF members, to broaden the web-of-trust for code-signing of Traffic Server releases.
On behalf of the Apache Software Foundation, the Apache HTTP Server Project, and the Traffic Server Podling, it's my pleasure to offer Google a huge vote of thanks for their support!

Noirin Shirley, Vice President, Apache Software Foundation; Technical Writer, Google

Camping Out with KDE

Friday, February 5, 2010

This year, the second annual Camp KDE was held from January 15-22nd. It was graciously hosted by the Department of Computer Science and Engineering at the University of California in San Diego. Camp KDE is the young North American counterpart to Akademy, the main annual KDE developer and user conference.

The conference consisted of two days of general presentations; half a day of more in-depth technical presentations; half a day of training on CMake, CTest and CDash; a day trip; a day of general Qt training; and a day of Qt embedded training. The full schedule, with abstracts, is available now. Slides will soon be available here, and videos will be following shortly on and YouTube.

Professor Philip Bourne gives the first keynote on open data

Things started off on Saturday with a keynote by Professor Philip Bourne of UCSD. Professor Bourne gave an absorbing and thought-provoking discussion of the the importance of open access to data in the academic world, drawing parallels between open data and open source. He discussed the business of academic publishing and the difficulty of sustaining such a closed, pay-for-play model in light of the millions of research papers published each year, as well as the increased difficulty of sorting through this enormity of information when the data is closed. These issues prompted him to create SciVee, a Web 2.0 site that allows users to view, annotate and tag research documents, slides, presentations, lectures and posters, as well as annotate add their own content. All content is freely available, and ratings and comments allow visitors to help the community find the best and most useful information.

Of particular note during Saturday afternoon's talks was Alexandra Leisse and Till Adam's presentation on career opportunities in Free and Open Source software (FOSS). These two have been well-known in the KDE community for many years, but what most of us didn't know is that Alexandra had been a professional and well-regarded opera singer and Till a rock star before both of them found careers using and supporting FOSS. The idea that you can take your interest in FOSS and turn it into a career is a wonderful and important thing to remember.

Till Adam was a German rock god before finding a career in FOSS

On Sunday the excellent presentations continued, kicked off with a keynote from Frank Karlitschek. Frank discussed the now-ubiquitous concept of the cloud and KDE's role in it. KDE's wide array of technologies such as cross-platform frameworks, network transparency through kioslaves, Akonadi, Nepomuk and the upcoming Silk, combined with our online-hungry community, positions it nicely to act as the user interface both for local computing and online services. Frank called for the KDE community to adopt a forward-thinking perspective, keeping this kind of online interaction in mind while ensuring that our high level of local functionality remains for those that do not have access to constant or high-speed Internet links.

The boys from Brazil mean business.

Monday's talks were a little more technical and finished in the early afternoon. With the talks over, conference attendees were left impressed by the high quality of the presentations we had seen over the past two and a half days. We went straight into CMake/CTest/CDash training, given by Marcus Hanwell and provided by Kitware. As Marcus talked we saw our last sun of the conference (entirely coincidentally!). The rest of the conference sunny Southern California failed us and left us with rain, rain and more rain.

Tuesday was the day trip. We went to Stone Brewery, producer of some of the country's most well-respected ales. Due to the downpour we canceled our plans to follow up the brewery tour with a trip to the world-famous San Diego Zoo, and instead had a nice group lunch at the brewery's bistro. In the afternoon we took shelter back at the event space (where electricity, chairs, tables and wireless were in plentiful supply) and hacked and talked. Some of us took a trip to famous Fry's Electronics, where nobody left empty-handed and some with loaded arms.

Wednesday was a full day of Qt training given by Till Adam and provided by KDAB. The large amount of time allowed multiple topics to be covered, which allowed some of the more difficult concepts to be explained and studied.

Thursday, Katrina Niolet of KDAB gave her fellow KDABians an instructional day of Qt Embedded training, and invited the rest of us to join if we wished (we did!). For most of us this was the first time we had ever laid a finger on a framebuffer. There was a lot of information to remember, but with many of us interested in programming for mobile devices, it was a great experience overall.

When we weren't training and hacking those last few days, we did slip in some fun times despite the rain. Restaurants were aplenty and lots of great food was consumed. Movies were watched, beers were drunk, karaoke was sung and general camaraderie was enjoyed. A few times our mascot Konqui and his female friend Katie even dropped by to surprise us!

Konqui prepares a sneak attack on the unwary Katie!

On our final night, those that remained went out for a group dinner at El Torito, where the special on margaritas made our choice of libations easy. It was a great end to a great conference, and a huge thanks to Google for helping to make it happen!

by Jeff Mitchell, Camp KDE organizer

Life's a Beach: Google Summer of Code and the Abelian Sandpile Model

Thursday, February 4, 2010

The Abelian Sandpile Model (ASM) is a mathematical model of a pile of sand developed by physicists around 1990 to exemplify self-organized criticality, a phenomenon conjecturally ubiquitous in nature. Roughly, self-organized criticality describes a system that naturally evolves into a barely-stable non-equilibrium condition, where the instability is characterized by scale invariance. The Gutenberg-Richter law in geophysics and Zipf's law in linguistics are often cited as real-world examples. More recently, the ASM has been shown to have connections to algebraic geometry, combinatorics, and number theory.

The ASM starts with a graph having a finite number of vertices and edges. One is allowed to place grains of sand on each vertex. If there is enough sand on a vertex, the vertex is allowed to "fire", sending a grain of sand along each out-going edge to its neighboring vertices. These vertices, in turn, may then have enough sand to fire, etc., creating an avalanche. One often designates a "sink" vertex that only absorbs sand. In this case, if each vertex has a edge-path to the sink, any configuration of sand put on the graph will, after a sequence of firings, eventually stabilize. This stable state is independent of the order of the firings.

For his Google Summer of Code™ project, working in consultation with experts in the field, Bryan Head created a state-of-the art Java program to visualize and analyze the ASM. His program includes: a flexible graph editing environment for the creation of sandpiles on arbitrary weighted digraphs; multiple visualization modes in two- and three-dimensions using OpenGL; and an interface to the free open-source mathematical software, Sage, in particular with David Perkinson's Sage Sandpiles software.

This codebase has attracted significant interest from the sandpiles community. Bryan's visualizations are helping researchers develop better mathematical models.

If you are interested in sandpiles, you can download Bryan's program or learn more about ASM.

GNOME.Asia Summit News

Monday, February 1, 2010

The GNOME.Asia Summit 2009 was held at Quang Trung Software City in Ho Chi Minh City (Saigon), Vietnam this past November. The event attracted more than 1,000 participants from 14 countries including Cambodia, China, France, Germany, Hong Kong, Singapore, Taiwan and the United States. 79 speakers — 34 from outside of Vietnam — held 109 talks, presentations and panels, and the slides are available for download. The event was supported by 138 volunteers, nearly 100 of whom were women. The combined number of all participants was 1465, with 60% women attendees. The organizing committee is very proud that our conference was such a welcoming event for women in the Open Source community.

GNOME.Asia 2009 was the first community event of its kind in Vietnam. The engagement of large, multinational companies like our sponsor Google, as well as many local companies, reflects the increasing importance of Free and Open Source solutions for businesses in Asia. The event was exceptionally well-covered in the Vietnamese media; all major media outlets, including three TV stations, covered the event.

In addition to hacker space for GNOME core projects, the summit offered meet-up opportunities for related Free and Open Source projects. 255 people participated in our Linux course, which was organized in cooperation with Ubuntu Vietnam. A Saigon Mapping Party was organized by the OpenStreetMap Community together with local companies. OpenOffice and OpenSolaris were community partners. Local groups including Saigonlug, Java Vietnam, Vithon (Python), Mekong Open Source Club (MOSS), LXDE and BKIT supported the organization and set-up of the event. Education partners included Saigontech and the University of Pedagogy.

Looking Forward to the 2010 Summit

The work for GNOME.Asia 2010 is starting already. The call for a new location will be published in the upcoming weeks. A good potential spot is Taiwan, where there is interest and where the summit could be co-hosted with local events. Singapore could be a good location for a future event. Locally one of the major goals after the GNOME.Asia Summit is to use the momentum to foster development for the GNOME project, as well as Free and Open Source software in general. Our post-event goals include creating meeting and education labs that can function as hackerspaces for local groups to promote FOSS and GNOME. We hope that groups interested in helping coordinate GNOME.Asia will answer the call for location and volunteers when it is published, so keep an eye on our website for details.