Posts from March 2012

Friday, March 30, 2012

At Google, we put a lot of energy into helping localize the world’s information to make it more useful to more people. It’s not just about localizing our own products -- we want to provide tools that make it easy for translators and developers around the world to localize their own apps and content. Google Translator Toolkit is our online translation tool for amateur and professional translators -- it’s built on Google Translate and supports more than 100,000 language pairs.

This week, the Translator Toolkit team has launched support for four new translation-related file formats:•Android Resource (.xml)•Application Resource Bundle (.arb)•Chrome Extension (.json)•GNU gettext-based (.po)

With these new file formats, you can use Translator Toolkit to localize your apps and other products and content much more quickly and easily.

For example, to translate your Android application, go into the res/values directory and upload strings.xml into Translator Toolkit -- Translator Toolkit will now automatically translate it. You can then share your translations with amateur or professional translators, who can localize the text using Translator Toolkit’s WYSIWYG online editor.

When you’re finished, you can export your translated application and store it in a locale-specific directory in Android. Voilà -- easy localization! 翻译起来太方便了!

In addition, we’ve made the Translator Toolkit interface more intuitive for these new file formats so users can translate faster and more accurately. For example, you can turn on ‘Customized colors’ so translators can annotate the edited segments, ‘Number of characters in the segment’ to make sure the text doesn’t run too long (very important for mobile devices), and ‘Synchronized scrolling’ so you can scroll the original and translated text at the same time, which makes navigation much easier.

With these new file formats and UI features, along with the file formats we already support (.aea, .srt, .html), we hope Translator Toolkit can help you reach more users around the world.

When you’re ready, give Google Translator Toolkit a try and suggest any improvements you’d like to see so we can work on making it even better.

Wednesday, March 28, 2012

In November 2009 Google announced the Go project, a new open source programming language. Since then more than 200 outside contributors have made thousands of contributions to the code, tests, and documentation. The open source community has been essential to Go's success.

It is a great pleasure to announce today that the Go project has reached a stable point we are calling Go version 1, or Go 1 for short. Go 1 is the result of months of work refining the specification, improving the implementation, enhancing portability and re-working and adjusting the standards library. Go 1 offers compatibility for future growth: programs written to the Go 1 specification will work dependably for years to come even as Go continues to develop.

The benefits of Go 1 are also available to Google App Engine developers, as Go 1 is now the standard Go runtime on Google App Engine.

Go 1 is a consistent, portable, dependable base upon which to build programs, projects, and businesses. To learn more about Go 1, hear what the gophers have to say at the Go blog. For more information about Go in general, visit golang.org, which has documentation, references, articles, and even an interactive tour of the language.

Monday, March 26, 2012

It's only Spring Break for most college students, but summer vacation will be here before you know it. Instead of getting stuck babysitting your little sister or mowing your neighbor's lawn, apply for Google Summer of Code and spend the summer of 2012 earning money writing code for open source projects.

Google Summer of Code is a global program that gives university students a stipend to write code for open source projects over a three month period. Accepted students are paired with a mentor from the participating projects, gaining exposure to real-world software development and the opportunity for future employment in areas related to their academic pursuits. Best of all, more source code is created and released for the use and benefit of all.

For the past ten days, interested students have had the opportunity to review the ideas pages for this year’s 180 accepted projects and research which projects they would like to contribute to this year. We hope all interested students will apply! Submit your proposal to the mentoring organizations via the Google Summer of Codeprogram website from today through Friday, April 6 at 19:00 UTC.

Google Summer of Code is a highly competitive program with a limited number of spots. Students should consult the Google Summer of Codestudent manual for suggestions on how to write a quality proposal that will grab the attention of the mentoring organizations. Multiple proposals are allowed but we highly recommend focusing on quality over quantity. The mentoring organizations have many proposals to review, so it is important to follow each organization’s specific guidelines or templates and we advise you to submit your proposal early so you can receive timely feedback.

Good luck to all the open source coders out there, and remember to submit your proposals early—you only have until April 6!

To learn more about Google Summer of Code, tune in to the Google Students page on Google+ next Monday, April 2nd at 3:30 pm PDT for a Hangout on Air with Open Source Programs Manager Chris DiBona. He'll be talking about Google Summer of Code with other members from the Open Source team at Google. Submit your questions about the program between now and next Monday using the hashtag #gsochangout, and Chris and the Open Source team will answer them live during the Hangout On Air.

Friday, March 23, 2012

On March 15th about 30 students participated in the Google Summer of Code info session held at Fusolab in Rome, Italy by Ninux.org. Some of the students were well known in the local community and have been participating in the development of open source software, while others were excited to start working on open source. There's always a first time to work on open source software development and we think Google Summer of Code is the best occasion to do it! A few of the students were slightly concerned about the overlap between the program and their exams in July but the mentors explained that with careful and realistic planning delivering a successful project is definitely achievable.

Photo taken by Federico Capoano

Ninux.org is an Italian wireless community whose primary goal is to build a community of skilled people that participate in building open and decentralized wireless networks in the Italian peninsula for experimental purposes. For us the Google Summer of Code has been a great way to attract new promising and talented minds in our community. Many of the students that participated in previous years are still contributing, hacking and experimenting with new technologies with us.

We hope to contribute in forming the new generation that will push forward the open source philosophy applied to real life in our country. We believe the open source philosophy is the best approach in solving many of the issues in our society, so we put effort in applying it not only to software, but also to all our other activities. Collaborate, teach, learn and share. The Future is Now!

Thursday, March 22, 2012

Earlier this month I was honored to attend the ACM Special Interest Group on Computer Science Education (SIGCSE) conference held in Raleigh, North Carolina with 1,300 other attendees. The conference attracts a dynamic and diverse group of students, educators, academics, and industry professionals who are all working toward stronger computer science education. This year’s theme “Teaching, Learning, and Collaborating” drove the discussions to topics such as classroom presentation technologies, on-line collaboration tools, new educational techniques, as well as acquiring hands-on experience with new hardware and software (including software development environments).

On Thursday evening I hosted a Birds of a Feather (BoF) session on Google Summer of Code and Google Code-in where we talked about both programs in depth and gave everyone in attendance more information in the form of flyers as well as directing them to our website. I encouraged everyone to either apply to be a student in Google Summer of Code or spread the word to students they knew that might be interested in open source software development. People streamed in and out during our session so we were able to get the word out to quite a few people at the conference.

Below is a picture of a few of our attendees at the end of the session.

All the people I met or spoke to were inspiring: they all were very interested in participating and spreading the word about our programs and about technology and computer science. We may have encouraged some of the students to apply to the programs, especially the Google Summer of Code which starts in a couple of weeks!

After the study concluded we posted a YouTube playlist with each participant’s session. We went through each video and wrote down problems that each participant faced along with direct quotes, then consolidated and grouped these together by issue area. This document was posted on Drupal.org and members of the Drupal community have been filing issue reports to work on fixing specific problems.

While we learned about a lot of specific interface-level problems, we also saw broad trends that called for a higher-level analysis. We witnessed new users feeling confused, overwhelmed, uncertain and unaware of Drupal’s capabilities. Becky and I set to work preparing a summary of our findings. Out of the data, four layers of usability issues emerged:

Conceptual: Most problems that new users encounter boil down to a missing understanding of how Drupal works, particularly the interaction between content, content types, and fields.

Flow: While trying to complete tasks, new users frequently felt lost inside Drupal because they couldn’t tell what they were looking at, how they got there, or where they were supposed to go next.

Terminology: Drupal is filled with terminology that just doesn’t make sense to new users.

Interface: New users don’t trust Drupal because many interfaces are not intuitive.

We are excited for discussion in the Drupal community about how to best tackle the problems outlined in these layers. You can find our complete analysis in this report.

New users from our study did have some positive impressions of Drupal as well. Once they understood how it works, they were impressed by the power and extensibility that Drupal offers. This study also demonstrated that Drupal 7 brought significant usability improvements over Drupal 6, particularly with the ease of user interaction with administrative tools and the Views creation wizard.

We are excited by the success of this study. We look forward to engaging the Drupal community in discussion at DrupalCon Denver during our core conversation, and we are confident that by working together as a community, we can shape Drupal to be more supportive and helpful for new users.

Tuesday, March 20, 2012

ChromeDriver is a tool for testing websites with Google Chrome that implements the open source WebDriver wire protocol so it can easily be integrated with an existing WebDriver test suite. For those who aren't familiar with WebDriver, you may want to refer to our initial post about the project. Simply put, WebDriver presents an object-based API for automating the web from a real users perspective, such as clicking elements on a page and typing into text fields.

The WebDriver API is available for many popular browsers. Each browser has its own driver, with ChromeDriver, of course, supporting the WebDriver API for Google Chrome. Unlike other drivers which are maintained by the open source Selenium/WebDriver team, ChromeDriver is developed by Chromium, the open source project that Google Chrome is based on.

Besides a new ChromeDriver release this past week, we wanted to share info about a new website dedicated to the project: http://code.google.com/p/chromedriver. This site will serve as the central location for all things relating to ChromeDriver. You can use the new site to:

ChromeDriver works with the current stable, beta, and dev versions of Google Chrome. Older versions of Google Chrome are not supported and are not guaranteed to be compatible with ChromeDriver. Consult the release wiki for more information on our release and support policy.

Monday, March 19, 2012

FreedroidRPG is an open-source role playing game that has been around for a few years, written by a dedicated small team. The project participated in the Google Summer of Code program in both 2010 and 2011 with a total of 7 students over the two years, and we set out to offer the best possible learning experience for our students. Our goals were twofold: we wanted to acquire new, regular contributors, and we wanted to share our passion for writing a free software game. Our participation in Google Summer of Code was quite a success and taught us a lot about how to make newcomers feel welcome and encourage them to speak their mind and contribute.

Mentoring students requires a lot of time and patience, so your project participants have to be ready to invest a significant amount of time. As with all investments, it may or may not turn out to be “profitable” - many people are attracted to game development but after they’ve taken part they realize that it’s not as easy as they thought. As a result, it is to be expected that not every student will be a good match for your project - not all students will stay after the program ends. Our advice to mentors is to define precisely what the goals of the project’s participation in Google Summer of Code are. Only when you know what you want can you accurately drive your project in the right direction.

This year, we made the decision not to apply to Google Summer of Code for a couple of reasons. The first is that we feel that other organizations deserve their turn and after two summers and a presentation at FOSDEM’12, FreedroidRPG appears to be quite a relevant open source game, and others should be given a chance to acquire the kind of success that we’ve had. The second is that the mentors have spent the last two years investing their time mentoring students and did not have much chance to actually write any computer code. We like free software a lot which is why we don’t wish to stop writing code and spend all of our time mentoring students. So in 2012 we will be taking care of our own passion for code, hopefully coming back in future years to Google Summer of Code with exciting new project ideas and top-level mentors!

We believe that video games are a great way to discover the world of computer programming because it is appealing to so many of us. At FOSDEM’12, I made a presentation in the games developer room aimed at showing a few of the technical problems that we face every day when writing FreedroidRPG. Hopefully the video can help the readers understand why I love writing games so much.

By Arthur Huillet, FreedroidRPG lead developer and Google Summer of Code mentor/org admin

Below is the testimony from Alexander Solovets, one of our students from Google Summer of Code 2010. He worked on a project called “random dungeon generation”, and I’ll let him explain what it was and how he feels about Google Summer of Code.

I heard about Google Summer of Code for the first time two years ago. I was finishing my senior year at university and was looking for a summer occupation. After reading the announcement of Google Summer of Code I thought it would be great: there was no need to relocate, I could work on open-source projects and solve real problems all in the same role. I started reading articles describing the experience that students had in previous years. There was a lot to read, but the most helpful advice I learned was that the odds of being selected and successfully completing your project is much higher if you are really interested in the project and organization as a whole. That is how I met Freedroid.

This organization had an ideal combination of algorithms and game development, two things I like a lot. I took a brief look at other organizations and when the time came I applied to FreedroidRPG. Several months earlier a classmate of mine had shown me the NetHack game, which carried me away for a long period (and I still play it from time to time today). The most exciting feature in NetHack was the randomness of all kinds: you would never know what to expect after the next door. I was amazed to see that FreedroidRPG proposed a project called “random dungeon generation” and right then and there I decided that no one but I would work on this project!

I began collaborating with the organization while working on my application document. I tried to elaborate on several parts: project decomposition on sub-tasks, time schedule, algorithms description. My would-be mentor asked potential participants to complete small tasks of their choice in order to confirm their ability to work with the code, a common practise among free software organizations. There was also a technical interview over IRC which is a bit unusual for Google Summer of Code and is not strictly required, but it was very interesting for me and very helpful as it turned out. Generally speaking, the student selection process varies a lot and depends on the organization.

When I started to work on my project random levels where quite simple, as you can see in the screenshot below.

It was tedious for players to roam within the dungeons so the aim of my project was to make it more clear and I used various techniques in order to do this. First, I split some of the dungeon rooms with a bit of empty space so they did not look adjacent anymore. Next, I made themed rooms that contained various types of objects. Finally, I turned some rooms into corridors so the level did not just look like a bunch of cells. The final look is illustrated below.

The last part of my project was devoted to the brand new random level types - random open areas. Though I initially marked it as an extra project in my plan (a “bonus” project), I managed to complete it before the summer was over. Along with dungeons there are open levels in the game mostly containing natural objects: why can’t we have those be random as well? For generating these levels types I used a fractals-based approach yielding natural looking areas based on an initial shape that is preserved. On the following screenshot you can see how a random level can be generated with a shape describing a path:

Apart from the priceless experience in learning how to write free software, there was another positive element in my participation to Google Summer of Code: I significantly improved my English. The reason was my strict mentor who was adamant on having me correct the grammar mistakes in my code comments as well as in regular chat conversations. I believe I do not have to insist on the importance of English in the field of software development. Finally, I think that the experience and the title of Google Summer of Code student substantially helped me find a full-time job after graduation. I had two on-site interviews with one of the world’s most famous corporations and finally got a great offer from a local company. I wish every student developer had the opportunity to be a Google Summer of Code student at least once.

Friday, March 16, 2012

We are pleased to announce the mentoring organizations that have been accepted for this year’s Google Summer of Code program. After reviewing 406 applications, we have chosen 180 open source projects, of which 41 are new to Google Summer of Code. You can visit our Google Summer of Code 2012 program website for a complete list of the accepted projects.

Students wishing to apply for Google Summer of Code will have the next 10 days to learn more about the accepted projects before student applications open on Monday, March 26, 2012 at 19:00 UTC.

Students will want to pay close attention to the Ideas Pages for the organizations they wish to work with over the summer and consider how they would like to contribute to the project. Some of the most successful proposals have been completely new ideas submitted by students, so if you don’t see a project that appeals to you, don’t be afraid to suggest something. Organizations have listed points of contact on their Ideas Page so that students can contact the organization directly to submit a new proposal. All organizations list their preferred method of communication on the organization homepage, available on the Google Summer of Code program website. Please see our Frequently Asked Questions page for more information.

Congratulations to all of our future mentoring organizations! We look forward to working with all of you during this exciting 8th year of Google Summer of Code!

Wednesday, March 14, 2012

Networks are everywhere: email systems, financial transaction systems and gene-protein interaction networks are just a few examples. Gephi began as a university student project four years ago and has quickly become an open source software leader in the visualization and analysis of large networks. It is an important contribution to the ecosystem of tools used by researchers and big data analysts to explore and extract value from the deluge of relational data and disseminate a better understanding for people to think about a “connected” world.

Gephi is a “Photoshop” for such data: designed to make data navigation and manipulation easy, it covers the entire process from data importing to aesthetics refinements and communication. Users interact with the visualization and manipulate structures, shapes and colors to reveal the properties of complex and messy data. The goal is to help data analysts make hypotheses and intuitively discover patterns or errors in large data collections.

Our success was made much faster thanks to the Google Summer of Code. The timing of our acceptance into our first Google Summer of Code in 2009 was perfect: we were at the point where we could make the project really open in the way our infrastructure could scale code, and our human organization was ready to welcome contributors. Participating in the program gave us a boost of fame helping us promote the project and created an international community for Gephi.

We met many people and learned a lot, but this is the most important lesson to share: though students are paid stipends for their work during the program, money should not be the first incentive. To encourage students to stick with the project, we talk with each of them to find their deeper motivations in working on Gephi and try and develop a win-win situation. And it works! Many of the students continue to contribute to the project for at least a few months after the end of the Google Summer of Code program, and others have gone on to become members of our team.

We recognize this long-term investment by promoting their work, like André Panisson who released a plug-in in 2010, which connects Gephi to a graph stream and visualizes it in real-time. André made this amazing video of the Egyptian Revolution on Twitter, when he monitored the hashtag #jan25. More recently, Martin Škurla presented his work at FOSDEM 2012 and talked about his plug-in which connects Gephi to the graph database Neo4j. He started his project during the Google Summer of Code 2010 and continued his work until the release. We really appreciated the effort, so the Gephi Consortium and Neo Technologies Inc. paid his expenses to attend the conference. Finally, I must talk about Eduardo Ramos, who we rejected as a student two years ago for Google Summer of Code but who was so motivated that he decided to contribute to Gephi anyway, becoming one of the project leaders, a Google Summer of Code mentor... and a friend!

To learn more about Gephi, watch our madness screencast and view our previous Google Summer of Code projects here. Want to apply for Gephi? Join us on the forum.

By Sébastien Heymann, co-founder of the Gephi project and Google Summer of Code administrator

Monday, March 12, 2012

For the fifth summer in a row, the National Evolutionary Synthesis Center (NESCent)
took part in the Google Summer of Code program and introduced students to open software development in the field of evolutionary biology. NESCent is a nonprofit science center dedicated to cross-disciplinary research in evolution. During the summer eight students from the Google Summer of Code program worked remotely on a software project of their own choosing, each under the guidance of an experienced mentor.

NESCent’s 2011 Google Summer of Code students included Jan Engelhardt, Alexandru Lucian Ginsca, Sarah Hird, Peter Hoffman, Daniel Packer, Andrei-Alin Popescu, Apurv Verma, and Laurel Yohe. Their projects ranged from manipulating next-generation sequencing data for population genetic analysis, to enabling a frequently-used alignment viewer to analyze non-coding RNAs, to generating human readable text that could be integrated into the Encyclopedia of Life from ontologies containing phenotype data. As their profiles demonstrate, the students put their summer to very good use. Meet the students and learn more about their projects on our Phyloinformatics page.

Friday, March 9, 2012

Andrew Tridgell is a creator of Samba and rsync. Jeremy Allison, Samba co-creator and part of the Google Open Source Programs Office interviewed Andrew at the SambaXP 2011 conference for some quality Geek Time. The two have known each other for many years so there was plenty to talk about. Here are some highlights:

Jeremy asks Andrew how he feels as they approach 20 years of Samba. (0:38)

Jeremy asks Andrew to give highlights from his talk at Linux Conf Australia where he talked about the danger software patents pose to free software projects. (6:15)

Andrew talks about how he'd like to see a public forum for the free software community to talk about patent issues. (9:05)

Jeremy asks Andrew to discuss his transition from regular student to free software icon and how he recommends other developers get started in the free software community and become valuable contributors. (10:40)

Jeremy asks why not get started just by reading other people's code? (14:05)

Thanks to Fabian Scherschel of Sixgun Productions for operating the camera.

Wednesday, March 7, 2012

We are thrilled to announce the open sourcing release of WindowTester Pro, a solution that automates the process of GUI testing. WindowTester Pro is shipped as a Eclipse plugin and has support for Eclipse versions 3.5, 3.6 and 3.7. WindowTester Pro was previously offered by Instantiations Inc.

Using WindowTester Pro, developers can easily create tests for every GUI they create. The tests generated by WindowTester Pro are standard Java JUnit tests, thus they can be run within your Eclipse environment or they can be automated to run using Ant. Tests can be generated for SWT and Swing Java applications.

WindowTester Pro contains a recording console that captures and records keyboard clicks and mouse movements. The first step in test development is to turn on the Record feature and then work with various elements of the UI such as windows or buttons. WindowTester Pro will capture the steps taken.

Once the GUI has been exercised, the developer closes the application under test. When the application is closed, the recording is terminated and the test is generated.

Using WindowTester Pro empowers developers with testing capabilities and reduces the time required to hand-code tests. This enables developers to build quality into the product early in the process because problems are found and resolved earlier in the development cycle. WindowTester Pro can help developers and companies drastically lower both testing time and cost.

Monday, March 5, 2012

With ever-increasing demands being placed on our education system, including new skill sets that need to be taught to create a pipeline that can fill 21st century jobs, we must figure out how to make high-quality education more accessible to more people without overburdening our existing educational institutions. The Internet, and the platforms, tools and programs it enables, will surely be a part of the answer to this challenge.

Open Educational Resources (OER) are one piece of the solution. OER are teaching and learning resources that anyone can share, reuse and remix. As part of Google’s ongoing commitment to increasing access to a cost-effective, high-quality education, we’re supporting the OpenCourseWare Consortium—a collaboration of higher education institutions and associated organizations from around the world creating OER—in organizing Open Education Week 2012, which begins today.

An example of OER in action is OpenStax, a recent non-profit initiative of Rice University and Connexions to offer students free, professional quality textbooks that meet scope and sequence requirements for several courses. They believe that these books could save students over $90 million in the next five years. Non-profit isn’t the only model for open education. Flat World Knowledge has built a business around OER by providing free online access to open textbooks, then selling print-on-demand copies and supplemental materials.

We’ll be acknowledging OER week through a panel event in Washington, DC, and over on our +Google in Education page, where we’ll be posting articles, and sharing stories and interviews about the benefits of open education resources. Opening these resources to everyone can improve the quality of education while getting more out of our investments in educational resources. We hope you’ll join us in celebrating Open Education Week. Go to openeducationweek.org to learn more and get involved.

By Maggie Johnson, Director of Education and University Relations at Google