Posts from November 2012

Friday, November 30, 2012

SWIG is a software development tool that connects programs written in C/C++ with a variety of high-level programming languages.These so called ‘target languages’ vary enormously. The most popular being the scripting languages Python, Perl, Ruby, PHP & Tcl and the strongly typed languages, Java & C#. The full list of target languages also includes various Scheme and Common Lisp languages as well as XML.

This year was SWIG's third Google Summer of Code, and out of our five students, four completed the program successfully with valuable additions to SWIG base.

Dmitry Kabak worked on SWIG internals to parse the source code documentation comments within the C/C++ header files and use them to document the target language wrapper classes/functions. Dmitry's efforts complemented the existing support added in Google Summer of Code 2008. In summary, all previously known bugs have been fixed and original source code for comment translation re-factored to improve performance and maintainability. Parsing of C/C++ source code has been improved, so that every declaration/definition can now be commented. Translation of Doxygen tags to Javadoc and Python docstrings has been improved and corresponding regression tests have been implemented. The work can be tried out on the branch gsoc2012-doxygen.

Leif Middelschulte worked on C module for SWIG. Initially this project was supposed to be about implementing missing support for "advanced" C++ features because this module was thought to already be in very good shape. Unfortunately, this was not the case so Leif's task was changed to achieve at least a minimal level of module functionality which he accomplished. Leif also rationalized and documented the use of C typemaps and more generally improved documentation and testing support. Finally, the generated C bindings were made more type-safe to disallow passing objects of different types without so much as a warning from the compiler. Leif's Google Summer of Code work can be accessed in the subversion branch gsoc2012-c.

Neha Narang worked on a JavaScript module for SWIG, particularly addressing the JavaScript Core engine. Based on the prototypical work of Ashish Sharma and Oliver Buchtala, Neha implemented basic features: global functions and variables, classes, single inheritance, constants, enums, exception handling. She added 12 common examples and started the test-suite, currently having 32 tests. Additionally, Neha created detailed documentation describing design rationale and module usage. The module is in good shape but more tasks are left to complement the test-suite and add director support. Neha's work in Google Summer of Code is available in the branch gsoc2012-javascript.

Swati Sharma spent her summer working on the Objective C module for SWIG. SWIG had an initial support for generating Objective C wrappers over C++ which was added in Google Summer of Code 2009. These wrappers will be used to make C/C++ objects available to MacOS X, iPhone, and iPad applications. Swati’s goal for the summer was to have a cleaner implementation over the existing source code and get the code ready to merge into trunk. Swati finished close to the goal with almost completely rewritten, clean implementation. Much of the source code is new and fixes a lot of rough edges. We now have a more comprehensive set of typemaps for Objective- C and C++ type conversions. Almost 90% of the test-suite works and a number of new runtime tests have been added. Makefiles have been reorganized and the structure of the generated code re-designed to equally support Apple’s cocoa framework on Macos x and GNUStep on Linux/ Windows. Swati is very keen to add more features in coming months, especially the director support, support for clang, and updated module documentation. Swati’s work can be accessed in the branch gsoc2012-objc.

We would like to thank Google for sponsoring the Google Summer of Code. A special thanks to all the mentors for their hard work and William Fulton, the co-administrator, for his guidance and support.

Monday, November 26, 2012

… and Go! The Google Code-in 2012 contest has officially started! If you are a 13-17 year old pre-university (high school) student interested in computer science who would like to learn more about open source software development while earning cool prizes, sign up on our program site today. Students have the opportunity to select tasks from 5 categories (coding, documentation/training, quality assurance, research/outreach and user interface) that are designed by 10 open source organizations that will provide mentors for the students. Students earn certificates, t-shirts and Grand Prize Winners will win a trip for themselves and a parent or legal guardian to Google’s Mountain View California campus in 2013. Each of the 10 open source organizations will choose 2 of the 5 students that complete the most tasks with their organization as their Grand Prize Winners for a total of 20 Grand Prize Winners for Google Code-in 2012- that’s twice as many Grand Prize Winners as last year!

Last year, 542 students from 56 countries competed in the contest: this year you could be one of the students from around the world learning new skills and making new friends by experiencing the awesome world of open source development.

Tuesday, November 20, 2012

Every time you send a text, check a webpage or post a status update, you’re using open source software. The Internet is made of open source. But have you ever created any yourself? With the Google Code-in contest, pre-university students (13-17 years old) can learn more and create open source software that people all over the world can use—and win cool prizes along the way.

Starting Monday, November 26 and for the following 50 days, contest participants will work on fun online tasks for 10 different open source organizations. Possible challenges include documentation, marketing outreach, software coding, user experience research and more.

Participants earn points for each task they successfully complete and can earn prizes like T-shirts and certificates of completion. This year we’re doubling the number of grand prize winners to 20 talented students, who will win a trip to Google’s headquarters in Mountain View, Calif. They’ll spend a day getting a tour of the “Googleplex,” meeting and talking with Google engineers, plus enjoy another full day exploring San Francisco and other surprises.

Some of the 2011 Google Code-in Grand Prize Winners by the Golden Gate Bridge

Last year, 542 students from 56 countries and 360 schools completed 3,054 tasks during the eight-week contest. This year we want to encourage even more students to participate in the contest and learn about open source development. If you’d like to sign up, please review our Frequently Asked Questions and the contest rules on our program site. You can also watch our screencast, check out some sample tasks from last year’s contest and join our discussion list for any other questions. For details on important dates for the contest, see the timeline. You can register for your account on the program site when the contest opens on Monday, November 26 at 9:00am PST.

Finally, our Open Source Programs team will be hosting a Hangout on Air on the Google Education page November 26 at 2:00pm PST to discuss the details of the Google Code-in contest and answer any questions.

We hope you’ll spend your winter (or summer, for our friends in the southern hemisphere) learning about the ins and outs of open source development through hands-on experience. Ready...set...

Congratulations to the eight students who made it through the summer of 2012, our seventh year participating in Google Summer of Code. The students all accomplished a great deal, and many of them are working to improve their projects to benefit the Wikimedia community beyond the initial goals of their summer project.

Ankur Anand worked on integrating Flickr upload and geolocation into UploadWizard. Ankur made it easier for Wikimedia contributors to contribute media files and metadata. You can read his wrap-up as we anticipate the merge of his code into the main UploadWizard codebase.

Harry Burt worked on TranslateSvg (“Bringing the translation revolution to Wikimedia Commons”). When his work is complete and deployed, we will more easily be able to use a single picture or animation in different language wikis. See this image of the anatomy of a human kidney, for example; it has a description in eight languages, so it benefits multiple language Wikipedias (e.g., Spanish and Russian). Harry aims to allow contributors to localize the text embedded within vector files (SVGs); you can watch a demo video, try out the test site, or just read Harry’s wrap-up post.

Akshay Chugh worked on a convention/conference extension for MediaWiki. Wikimedia conferences like Wikimania often use MediaWiki to help organize their conferences, but it takes a lot of custom programming. Akshay created the beta of an extension that a webmaster could install to provide conference-related features automatically. See his wrap-up post.

Ashish Dubey worked on real time collaboration in the upcoming Visual Editor (you may have seen “real-time collaborative editing” in tools like Etherpad and Google Docs). Ashish has implemented a collaboration server and other features (see his wrap-up post) and has achieved real-time “spectation,” in which readers can see an editor’s changes in real time.

Ashish is working on the architecture that will support real-time collaboration.

Platonides worked on a desktop application for mass-uploading files to Wikimedia Commons. The application will eventually make it much easier for participants in upload campaigns like Wiki Loves Monuments to upload their photos (and it’ll work on Windows, Linux, and Mac OS).

As further progress happens, we’ll update our page about past Google Summer of Code students. Congratulations again to the students and their mentors. And thanks to volunteer Greg Varnum, who helped me administer this year’s Google Summer of Code, and to all the staffers and volunteers who helped students learn our ways.

By Sumana Harihareswara, Engineering Community Manager and Organization Administrator for Wikimedia Foundation

Monday, November 12, 2012

We are thrilled to announce the 10 open source organizations that will mentor students for the Google Code-in 2012, a contest introducing 13-17 year old students to open source development. Each organization will design tasks for students to work on and even though the contest begins November 26 you can now view a preliminary task list for each organization by clicking on their name below. The organizations will be busy adding more tasks to their lists in the coming weeks.

Wednesday, November 7, 2012

Mixxx is free and open source DJ software that gives you everything you need to perform live mixes. With millions of downloads yearly and a comprehensive set of professional features, Mixxx is driving increased competition in the DJ software industry. Google Summer of Code season is always an exciting time of the year for the Mixxx team and 2012 was no exception. This is our fifth year in Google Summer of Code and we had four stellar students -- Max Linke, Matthew Mikolay, Scott Stewart, and Varun Jewalikar.

Since Mixxx is a cross-platform, performance-critical and heavily multi-threaded C++ application it can often be a daunting task for Google Summer of Code students to get acclimated to the codebase and begin contributing. This year's crop of students hit the ground running and Max, Varun, and Matthew had nearly finished their proposed projects by the time the summer started! We had to come up with extensions and follow-on projects to keep them busy.

Varun Jewalikar, from Spain, added a harmonic mixing framework to Mixxx. This highly requested feature allows DJs to see the harmonic key of songs that they are mixing and adjust the pitch in real-time so that songs are harmonically compatible. By the start of the summer Varun had already integrated 3 open source key detection libraries into Mixxx so that we could see which one worked best. He spent the rest of the summer building the pitch-adjustment feature, integration and polish.

Scott Stewart, from the USA, spent the summer revamping our Auto-DJ algorithm in Mixxx to support more advanced transitions allowing DJs to take even more breaks.

Matthew Mikolay, also from the USA, finished his project of adding a vinyl-passthrough mode to allow DJs to seamlessly switch between DJing with vinyl timecode records and their vinyl collection on the fly within the first few weeks of the summer! He spent the rest of the summer building a modular compressor into Mixxx's audio processing engine. This prevents distortion and clipping while allowing a higher dynamic range of audio in the mix.

Last but not least, Max Linke, from Germany, completed his official project before Google Summer of Code even started! He added a preview deck which allows DJs to preview a track before loading it into a real deck or sampler. For the rest of the summer Max was a solid contributor of fixes to our library system and worked on adding support for multiple library folders, improving our library scanner, and more.

In addition to their projects, the group fixed a bunch of bugs and their fixes are about to ship in our latest major release, Mixxx 1.11. We were extremely pleased with our students' progress this summer and can't wait to see what they come up with next.

Mixxx 1.10.1 with the Deere skin

Mixxx has been significantly shaped by Google Summer of Code. Two out of our four mentors this summer were previous Google Summer of Code students and Mixxx's current lead developer (yours truly) joined the project as a Google Summer of Code student in 2008. We are very grateful to Google for continuing to provide this incredible program for getting students involved in open source software.

By RJ Ryan, Mixxx Lead Developer and Google Summer of Code Organization Administrator