opensource.google.com

Menu

Who’s New in Google Summer of Code: Part 3

Friday, June 17, 2011


This is the third in our series of posts this summer featuring some of the organizations participating in their first Google Summer of Code. The organizations explain their project and the tasks the students will be working on this summer.
Atomic.Blue is all about gaming, roleplaying and building complex engines. One thing that we learned is that building a mmorpg with open source and free resources is nearly impossible, but we are visionary or blind enough to work on it anyway! A virtual world like PlaneShift has all the elements of a massive entertainment production, including music, sound, settings, artificial intelligence, 3D programming, shaders, server side and client side programming, networking, drawings and 3D models, history, data mining and more.

Google Summer of Code will allow us to attack some of the core features that really need some improvements, including the combat system, the UI, the sounds and the artificial intelligence for our tribes. In particular, on the tribes we want monsters to be able to create villages and dungeons by themselves based on the resources they find. Players will be able to interact with the tribes and decide if they want to help the tribe grow or attack it. We expect a big leap forward thanks to this summer of coding. But there is more to do and if you want to see a free mmorpg, join the fun and contact us!

By Luca Pancallo, PlaneShift founder and project lead

----------

Buildbot is a distributed continuous-integration framework written in Python with Twisted Python. The software is very flexible, and we have a wide variety of users - from small testing systems for open source projects to very large build, test, deployment, and release automation systems. We have two students this year. One is working on adding the notion of a "user" to Buildbot, so that it can correlate the author of a commit with an IRC nickname or an email address and report build results back. The other student is working on simplifying some of the more complex behaviors in Buildbot like checking out the source code to build or test, and consolidating the implementation of that behavior in the master process.

By Dustin Mitchell, BuildBot Organization Administrator

----------

All of us at Universal Subtitles want to give a big welcome to our two Google Summer of Code students, Misha Amashukeli and Rohan Jain. They are working on two related projects: Universal Subtitles browser extensions and a system for requesting subtitles from other users. Together, these two features will bring us a big step closer to our vision of making subtitles and volunteer subtitle creation ubiquitous.

With the Firefox, Chrome, and Internet Explorer extensions Misha is working on, you’ll be able to enable Universal Subtitles on every video you see. Rohan’s work will let you request subtitles from other users when you need them, and get notified when other users need your help.

Misha is in Tbilisi, Georgia and he’s quitting his job at an insurance company because he’d rather work on free and open source web applications (awesome). Rohan is a software developer and open source enthusiast from Jaipur, India who likes coding in Python/Django and who’s been a solid participant in our project since the Google Summer of Code application process began. They were both at the top of a long list of really great Google Summer of Code applicants, so thanks and good luck to everyone else who applied. We were allotted only two slots, so it was hard to choose! Some of the applicants have decided to pursue internships with us this summer outside of the Google Summer of Code program.

By Holmes Wilson, Universal Subtitles Organization Administrator

These are just a few of the 50 new organizations participating in Google Summer of Code this year. Please check back next Friday when we highlight 3 more new organizations. For a complete list of the 175 organizations participating in the Google Summer of Code please visit our program site.

By Stephanie Taylor, Open Source Programs

Pseudolocalization to Catch i18n Errors Early

Wednesday, June 15, 2011

Internationalization
(often abbreviated i18n) is the process of making an application localizable for users in different locales, while localization (often abbreviated L10n) is the process of actually localizing an application for a particular locale. In today’s globally connected world, it is rare that an application does not need to support users in many different locales.

Pseudolocalization is the automated generation of fake translations of a program's localizable messages. Using the program in a pseudolocale generated in this manner facilitates finding bugs and weaknesses in the program's internationalization. Google has been using this technique internally for some time, and has now released an open-source Java library to provide this functionality at http://code.google.com/p/pseudolocalization-tool/.

Take a look at the following screenshot and see if you can spot the internationalization problems:

Some common problems in localizing applications are:
  • Non-localizable text A program may have hard-coded text in the program source itself, or parts of messages may come from other non-localized sources (such as from a database), or there could be bugs in finding and using localized messages. The accents pseudolocalization method helps identify these problems by replacing US-ASCII characters with accented or otherwise modified versions, while still remaining readable. That way, if you see unaccented text, you know that text will not be localized for real locales either.
  • Combining separately translated sentences or paragraphs A program may “piece together” complete sentences/paragraphs from smaller translated strings. This is a problem since some locales may require that parts of the sentence/paragraph be reordered, or the translation may depend on the context of what else appears in the sentence. The brackets pseudolocalization method adds [ and ] around each translated string to clearly show translation boundaries. If you see a sentence/paragraph broken up into multiple bracketed pieces, you know it is likely to be impossible to translate well for some locales.
  • User interface elements don’t give sufficient space for translated text Some languages, such as German, frequently have translations that are much longer than the original message. If the user interface does not allow sufficient room for such languages, parts of it may appear wrapped, truncated, or have unsightly scrollbars in such locales. If the developer only tests with the original language, the developer may not discover these problems until late in the development cycle. The expander pseudolocalization method addresses this by making all the strings longer. Looking at the resulting pseudolocale will allow the developer to find such problems long before real translations are available and without requiring knowledge of other languages.
  • Improperly “mirrored” user interfaces in right-to-left locales Some languages like Arabic and Hebrew are written right-to-left. A user interface in a right-to-left (RTL) language needs to be laid out in a mirror image of a left-to-right layout. The only way to tell if this has been done properly is to try the user interface in an RTL locale. However, using a real RTL language is problematic both because translations are unlikely to be available until late in the development cycle and because few developers might be able to read any RTL languages.
Using untranslated LTR messages in an RTL user interface is problematic because it masks real problems and creates apparent problems where none actually exist. Just setting dir="rtl" on the HTML element of an otherwise-English UI produces something like this:
Note how some of the punctuation is misplaced and not mirrored, the radio buttons are a mess, and the order of the menu items isn’t mirrored. None of these happen to be real problems -- they will disappear when the English strings are replaced with real translations.

The solution is the fakebidi pseudolocalization method, which takes the original source text and adds Unicode characters to it to make it behave just like real RTL text while remaining readable (though backwards).
We find the most useful combinations of pseudolocalization methods to be accents/expander/brackets for finding general internationalization problems, and fakebidi for finding RTL-related problems. We use BCP47 variant subtags to identify locale names that get pseudolocalized translations: psaccent (as in en-psaccent) gets the accents/expander/brackets pseudolocalization, and psbidi (as in ar-psbidi) gets fakebidi. Note that for psbidi, using a real RTL language subtag is recommended since that will trigger RTL handling in most libraries/frameworks without any modifications. We hope to get these variant tags accepted as standard.

We have taken the sample application from above and run its translatable text through psaccent and psbidi pseudolocalization. Now take a look and see how much more easily internationalization problems can be identified:

Note that three problems have been revealed by the use of psaccent:
  • the space provided is insufficient for longer translations
  • “Add Contact” is split across two messages making it difficult to translate correctly
  • the button text has not been translated
We can fix those problems, then check for Bidi problems by using psbidi:
Notice this doesn’t introduce problems that aren’t there like the earlier example, but it does show that the Help menu item does not float to the left side of the window as it should.

Initially, this is just a library for use with other tools. We plan to write a command-line tool for taking message sources and producing fake translations of them. In addition, we are in the process of integrating this library with GWT, so GWT users can take advantage of it just by inheriting one module.

In summary, pseudolocalization is useful for finding internationalization problems early in the development process and enabling the developer to fix them before wasting money on translations that may have to be changed to fix the problems anyway. We hope you will use this library to help make your application usable by more people, and we welcome contributions and discussions at https://groups.google.com/forum/#!forum/pseudolocalization-tool.

By John A. Tamplin, Software Engineer

Who’s New in Google Summer of Code: Part 2

Friday, June 10, 2011


This is the second in our series of posts this summer highlighting a few of the organizations participating in their first Google Summer of Code. The organizations give a brief description of their project and the tasks the students will be working on this summer.

LanguageTool is one of the very few open source style and grammar checkers. It tries to find errors in a text that a spell checker cannot find. This works by matching the text against pattern rules. If there's a rule for the error, it can be found, if there is no such rule, then it can not be found. There's also the risk that a pattern rule matches text which is actually correct, so the user would get a false alarm. This is where our two student projects come in: one project will be adding more rules by reusing rules from other open source grammar checkers, the second student will develop a way for us to test rules that are still in development against a large amount of text. This way we can fix the false alarms before a release.

By Daniel Naber, Organization Administrator for LanguageTool

----------

The 'Computational Science and Engineering at TU Wien' project develops software for the simulation of a plethora of physical phenomena. Example applications range from fluid dynamics, to the propagation of high frequency waves and electronic devices such as lasers and transistors, to the mechanical stability of human bones.

Our students will be working on the following: Cristina Precup will design a constructive solid geometry input file format that allows users to conveniently specify two-dimensional geometries using boolean operation on primitives such as circles and rectangles. Our second student, Jorge Rodriguez, will investigate a convenient approach to parallelize the volume meshing step for meshes of considerable size. Markus Wagner, our third student, will work on using graphics processing units (GPUs) to accelerate solving the large systems of equations that describe certain physical phenomena.

By Karl Rupp, Organization Administrator for Computational Science and Engineering at Tu Wien

----------

Learning Unlimited works with over 900 college student volunteers to create educational programs for over 6000 middle and high school students across the US. Our programs invite pre-college students to choose between hundreds of topics like quantum mechanics, urban design, Shakespeare, or street drumming and create an environment where it is socially acceptable to share your excitement about learning. Our open source software automates a lot of the processes for running these programs so that college students can focus on making an awesome weekend for younger students.

We are mentoring two promising students sponsored by Google Summer of Code. Jordan Moldow joins us from MIT, home of the oldest and largest LU chapter; he will be implementing a new student registration system that is easier to use and gives directors more flexibility in implementing application and lottery processes. Jordan is also planning to improve our application's data viewing and export capabilities. Vishal Dugar, from the Birlani Institute of Technology and Science in Pilani, India, has joined us to implement a custom forms builder. This system will act somewhat like Google Forms, but with backend storage in dynamically generated Django models and the ability to link form fields with model fields in the existing schema. These contributions should substantially enhance the ability of our volunteers to coordinate and support unique educational events at a growing number of universities.

By Daniel Zaharopol, Organization Administrator for Learning Unlimited

These are just a few of the new organizations participating in the Google Summer of Code this year. Please check back next Friday when we showcase additional new organizations. For a complete list of the 175 organizations participating in the Google Summer of Code please visit our program site.

By Stephanie Taylor, Open Source Programs

YouTube and Creative Commons: raising the bar on user creativity

Monday, June 6, 2011

Have you ever been in the process of creating a video and just needed that one perfect clip to make it pop? Maybe you were creating your own music video and needed an aerial video of Los Angeles at night to spice it up. Unless you had a helicopter, a pretty powerful camera and some fierce editing skills, this would have been a big challenge. Now, look no further than the Creative Commons library accessible through YouTube Video Editor to make this happen. Creative Commons provides a simple way to license and use creative works.

You can now access an ever-expanding library of Creative Commons videos to edit and incorporate into your own projects. To find a video, just search in the YouTube search bar or from within the YouTube Video Editor. We’re working with organizations like C-SPAN, Public.Resource.org, Voice of America, Al Jazeera and others, so that over 10,000 Creative Commons videos are available for your creative use.

To get started, visit youtube.com/editor and select the CC tab:


Any video you create using Creative Commons content will automatically show the source videos’ titles underneath the video player:



As part of the launch of Creative Commons licensing on YouTube, you’ll also be able to mark any or all of your videos with the Creative Commons CC-BY license that lets others share and remix your work, so long as they give you credit. To mark your video with the Creative Commons license, select ‘Creative Commons Attribution license’ on the upload page or on the Video Description page:


You can learn more about Creative Commons on YouTube at our help center, and remember that all content must still follow the rules in our Copyright Center.

We’re excited to see what you come up with!

Stace Peterson, Software Engineer

(This is a cross post from the Official YouTube Blog)

Who’s New in Google Summer of Code: Part 1

Friday, June 3, 2011



This year we are excited to have 50 organizations participating in their first Google Summer of Code. We asked each of these new organizations to contribute a short description of their project for a series of posts we’ll be running this summer, beginning today.
HelenOS
For some years, we have been developing a microkernel-based multiserver
operating system, which is not quite like the other fish in the pond. HelenOS is designed with hardware portability in mind, so it runs on many different processor architectures, such as SPARC and Itanium to name a few. At the same time, HelenOS is not quite like Unix, which both gives us freedom to design our interfaces as we please and also represents a substantial limitation to what software can be directly added to HelenOS without major modifications.

We are very excited about our acceptance to this year's Google Summer of Code, because through the program, we were given a chance to take our locally popular academic project much further. Two of our three accepted students are from universities with previously zero exposure to HelenOS.

This year, we have a couple of student projects that aim to make the usability gap mentioned above a lot smaller by porting binutils and pcc to HelenOS while enhancing our standard C library in parallel. Having a functional toolchain will take us two steps closer to becoming self-hosting one day. Our third project is focused on improving our FAT file system server and adding support for its many commonly used variants.

By Jakub Jermar, HelenOS Orginazation Administrator

----------

illumos is the fully open community fork of the OpenSolaris operating system.

Our goal is to foster open development of technologies for the 21st century while building on a 20 year heritage, but free from the oversight of a single corporate entity and the resulting challenges thereof.

We're thrilled to be part of the 2011 Google Summer of Code, and to have two talented students on board. Harshit Jain is integrating GRUB 2 as our boot loader and Shashank Karkare is rewriting our Perl system tools in C. We also offer mentorship open to anyone through our illumos Students program.

By Albert Lee, illumos Organization Administrator


----------

The Freeseer project was created to make recording video extremely easy. It's primary goal was to make recording large conferences with many talks possible on a frugal budget and ensure recordings are high quality. Since its birth in late 2008, Freeseer has evolved to do a very good job of recording talks, presentations, demos, and other video with an intuitive interface and is continuing to mature and develop. We have practical goals for 2011:

1) Improve installation. We want to make Freeseer available on Windows, Linux, MacOS, and *BSD. We want the install experience to be very easy so we've recently been putting work into packaging and thinking about how to simplify software management challenges to get our prerequisites installed on Windows.
2) Live streaming. We want to make sharing content as easy live as it is with recorded videos.
3) We've been approached by organizations that need a solution such as Freeseer to record lectures, meetings, presentations, and so forth. They need features like automatic recording in a given room according to a schedule, automatic uploading of video files after they are recorded, robust and scalable hosting they can count on and voice over IP support so remote participants can participate in the conversation. They are also interested in securing the video feed so it cannot be intercepted or tampered with and a CLI so that one operator could potentially run Freeseer in multiple rooms simultaneously and reduce labor costs.
4) Additional goals we're working on include fancier formats for the video such as adding picture-in-picture support for dual video sources, side by side video, support for an automatic timer based switch between multiple video sources, watermarks/headers/logos, and more.

For Google Summer of Code, our students are working on projects that enable the above goals. Felipe Vieira Falcão is working on adding a shell/command line interface for Freeseer. This enables scheduling, automation, and remote operators. Mathieu Hubbard is working on video uploading capabilities which will make uploading videos automatic after they are recorded and making manual upload much easier.

By Andrew Ross, Freeseer Orginization Administrator

These are just a few of the new organizations participating in the Google Summer of Code this year. We will highlight more organizations next Friday, stay tuned! You can see a complete list of the 175 organizations participating in the Google Summer of Code on our program site.

By Stephanie Taylor, Open Source Programs
.