opensource.google.com

Menu

Posts from September 2009

Talking RSS Reader for Android

Wednesday, September 30, 2009

Keeping informed in a fast moving world can be a challenge. What if you could use those moments when your body is busy but your mind is idle to catch up on the news? That's how I decided that I would get my Android phone to read the news to me, out loud. This is doubly useful for me, because I am blind.

The Talking RSS Reader application reads articles out loud using text-to-speech. The text of the sentence currently being spoken is colored on the screen. Speech and text scrolling are synchronized. The touchscreen buttons to skip articles are right at the bottom corners of the screen, where your fingers can find them on their own. Menus and dialogs are also spoken out, so that you can "star" an item or choose a different RSS feed without ever having to look at your phone.

The application integrates with the Google Reader service, which means that articles read on your phone need not be shown to you again when you use Google Reader on another device.

It is my hope that drivers, joggers and commuters will find this a helpful tool for keeping up with the news that concerns them.

The source code for the application is available on Google code, so that anyone wanting to develop a useful talking application for Android will benefit from what I learned. If you'd like to send feedback or have questions, drop by our discussion list. Happy hearing!

SIP Communicator's Summer of Code Adventures: Part One

Tuesday, September 29, 2009

So, here we are: we have just completed our third Google Summer of Code™. Despite the nostalgia that has settled in after the end of the summer, we are all feeling very, very happy about how things went this year. While observing my fellow mentors, who are busy integrating our students' contributions into our code base, I am tempted to reminisce about our three year history with the program and the lessons we've learned.

First of all however, a quick history of our participation: Our adventures started in 2007 when we were accepted into the program for the first time. I can still remember jumping all around the room when I saw SIP Communicator's name in the list of accepted organizations. Back then we were a brand new project and this acceptance was a tremendous recognition. As it turned out later, it made a great difference in terms of popularity, credibility, and bringing new contributors both directly and, above all, indirectly.

Our first summer went exceptionally well. First of all, we had a decent number of applications, 87 to be precise, and by decent I mean not too much for the available mentors to handle and yet enough for us to have a wide choice of candidates. We received funding for eight student projects, which, as it turned out later, was also just right. At the end of the summer we had 7 successful students. During the months following Google Summer of Code 2007, we integrated virtually all the work that came out of it. We also voted and accepted two of the students as permanent committers.

Then came 2008. Once again we were all rejoicing in anticipation of a productive summer. This time we had 187 candidates and were received funding for 20 student projects. At that point, however, we started realizing how big a number 20 is and we got a bit scared. We were afraid that would be too many students for us to handle so we decided to only take 15 and let other projects mentor the additional five. It turned out later that 15 was still a bit too many - more on that later. The summer went pretty well and a lot of work got done. Once again we voted and accepted two of the students as permanent contributors and only had a single failing student at the end of the season.

This leads us to 2009, and boy was this year a good year! I can now safely say that this has probably been our best participation so far. We received a staggering number of applications: 203 to be precise. We only had around 15 mentors so it took us quite some time to go through all of them. Once we were done with the evaluations we requested 12 student projects but played it safe and decided to go with only ten, leaving the rest of the funding for other student projects. Once again, it was a really great summer. We are still in the process of integrating all the contributions and it will probably take us a few months before we are done. Even at this point, with about 30% of the work in our repository, we have already voted and accepted 2 of the students as permanent committers with probably two or three more to come in the the following months. Hip Hip ... Hoorray!!!

Here's an in-depth look at some of our 2009 projects:

Growl Notifications, and Next Generation Sparkle Updates

Egidijus Jankauska from the United Kingdom has implemented a native popup notification for the MacOS X version of SIP Communicator. It makes use of the Growl notification daemon through a new implementation of the Java bindings of the Growl API. For that purpose, Egidijus has implemented a dynamic library using Java Native Interfaces, a set of Java interfaces, and the corresponding implementations for SIP Communicator. The new born library can of course be used in other projects and this implementation has already been integrated in our source trunk.

Egidijus has also updated our package update system on MacOS X. It was based on Sparkle 1.1, and Egidijus has provided the necessary patches and documentation to switch to Sparkle 1.5b6. This work has also been integrated in our source trunk.

Egidijus has since been voted as a committer and is now part of our developer team!


Software Updates Using Sparkle and Popup Notifications Using Growl

Hush-hush Chats with Off The Record (OTR) Messaging

George Politis
from Greece worked on extending SIP Communicator with Off The Record (OTR) message encryption. OTR provides encryption, authentication, deniability, and strong forward secrecy. Until now SIP Communicator did not have any text message encryption and our chats were often unprotected. George started with the implementation of our own Open Source native java OTR library, which can also be used in other projects. George also implemented all the message transformation functionalities and the GUI necessary for us to integrate OTR support in SIP Communicator. It is already implemented in many of the other popular instant messengers such as Kopete, Pidgin, Adium, mICQ, Miranda, and Trillian. SIP Communicator is now able to carry out encrypted communications with other SIP Communicator clients and the aforementioned messengers.

George's implementation has already been integrated in our source trunk and George has achieved committer status for SIP Communicator with a strong approval of our community.


An OTR Session with SIP Communicator

Storing Chat History and Contact Lists in a Database

Ajay Chhatwal from India was in charge of implementing a Database system to allow us to store all chats in a database instead of XML files. Ajay has studied many database systems, produced a comprehensive comparative evaluation on them and suggested a winner that would best suit our use case. He has then implemented a database service and a backend to provide a working database service to all the components of SIP Communicator, after which he worked on a transition mechanism that would allow transferring XML files from the old implementation into the new database system.

Once he completed his work on the history modules - yes, he still had time to hack before the end of the summer - Ajay has also coded a new version of the contact list service which now also uses the database service.

We're hoping to vote Ajay in as a committer soon.

Recognizing and displaying remote user agents

This one was worked on by Brett Geren from the United States. The project consisted of retrieving the names of the applications that our buddies are using when chatting with us, and showing the application icons to the user. In order to accomplish this task, Brett first completed extensive research determining which of the protocols we support in SIP Communicator actually deliver such information and how they transport it.

He then defined the interfaces necessary for a new user agent module and implemented the feature for MSN, IRC and XMPP. During the second half of the program, he worked on the user interface that actually displays the remote client icon and allows users to configure the behaviour of the user-agent plugin. He also completed tests with a long list of known clients in order to confirm the way they are publishing their client name and to make sure that SIP Communicator was working with them as expected.

Ed. Note: This post is the first installment from the SIP Communicator project on their participation in the Google Summer of Code program. Look forward to even more information on their 2009 student projects and some in-depth details on lessons learned on this blog next week. Stay tuned!

Get Started in Free and Open Source at Ohio LinuxFest

Tuesday, September 22, 2009

The Open Source Programs Office's Cat Allman will be in Columbus, Ohio this weekend for the seventh annual Ohio LinuxFest, which runs from September 25th - 27th. Cat will be speaking on Saturday the 26th about "Getting Started in Free and Open Source," which will cover the basics of participating, choosing a project, joining a community, and more. Both newbies and veterans will gain insights about the issues that Open Source newcomers face.

This will be Cat's second time attending Ohio LinuxFest. She notes, "I was so impressed by the conference in '07 that I'm really honored to get to speak there." If you missed meeting Cat last time, this is your chance to hear her talk, introduce yourself, and ask questions in person.

Come see Cat talk and get started in FOSS!

Notes from Oregon State University Open Source Lab

Monday, September 21, 2009

Many Open Source projects grow too large for free services such as Google Code Project Hosting and SourceForge.net, or simply have infrastructure needs that cannot be met by those services. Where can projects turn if they need a stable hosting environment but can't get by with the offerings available at other free hosting providers? Many projects turn to the Oregon State University Open Source Lab (OSUOSL). The OSUOSL hosts many of the world's most well-known Open Source projects and foundations, including Drupal, the Linux Foundation, the Apache Software Foundation, and many more.

Google, through its Open Source Programs Office, has been one of the strongest supporters of the OSUOSL by providing multiple large donations which help the OSUOSL provide world-class hosting to many Open Source projects. With these contributions, the OSUOSL has been able to expand its data center and provide jobs for many student system administrators. Student employees at the Lab work closely with hosted projects to setup, maintain, and optimize hosted services. OSUOSL is able to provide system administration services and expertise so that projects don't need to worry about the trouble of running a server and can instead dedicate time to improving their open source project.



Snapshot taken from http://larch.osuosl.org/ftpmap/

Over the last year, thanks to funding from Google and other supporters, the OSUOSL has been able to expand many of its services
  • The three OSUOSL FTP mirrors have been upgraded, and space doubled to 6TB per server

  • The data center in Corvallis, OR has expanded in size to allow for future growth

  • Data center power and cooling have both been increased to meet future demand
All of these improvements have allowed the OSUOSL to take on new hosted partners including Cacti, Fedora, OpenMRS, Parrot, RPM, and Sugar Labs. To continue to provide such a world-class hosting infrastructure for Open Source projects, the OSUOSL needs your help. For more information on OSUOSL donation programs and to find out how you can help support the Open Source Lab, please see http://osuosl.org/donate.

Endless Summer in Atlanta

Thursday, September 17, 2009

Celebrating Software Free Day at Atlanta Linux Fest? Should you happen to find yourself in Georgia's capital this Saturday, please stop in hear our very own Ellen Ko deliver a talk on Endless Summer: Create Your Own Program Based on Google Summer of Code™. Ellen will be covering topics from marketing to motivating a developer community, with a special emphasis on lessons she's personally learned during her first year as the program's coordinator. You can also get your questions about the program answered and meet up with fellow Google Summer of Code participants during an evening Birds of a Feather Session. We hope to see you there!

Spritify with SpriteMe

Wednesday, September 16, 2009

Using CSS sprites makes web pages faster, but they can take hours to create. Neophytes to this advanced performance optimization technique face the daunting challenge of trying to grasp the logic needed to convert their existing web page's background images into a spritified tribute to web performance. The bar shouldn't be so high.

SpriteMe is an open source project that helps web developers create sprites in a matter of minutes rather than hours. Its main features are:
  • finds background images

  • groups images into sprites

  • generates the sprite image

  • recomputes CSS background-positions

  • injects the sprite into the current page

SpriteMe is a JavaScript bookmarklet, so it runs in all major browsers. It converts the web page to use sprites while you watch, making it easy to verify that the visual layout is preserved. It lets you drag-and-drop to re-arrange the sprite suggestions any way you want. Or, you can adopt all of SpriteMe's suggestions with one click on the "make all" button. When it's done spriting, simply save the sprite image(s) to your server and integrate the modified CSS into your stylesheets. Try the tutorial to see SpriteMe in action.

Happy spriting!



Report from the Gov 2.0 Summit

Tuesday, September 15, 2009

Clearly designed as a conference to start but certainly not finish the conversation, last week's Gov 2.0 Summit assembled an impressive cast of presenters and interviewers. Key White House decision makers, government innovators and industry enthusiasts took the stage and lined the hallways for three days.

Having spent the last five years focusing on helping government adopt Open Source software and its collaboration model, my radar was tuned for explicit mentions / inclusions / endorsements of Open Source software. It appeared that leveraging Open Source software to solve some of the thornier technology problems challenging government (think healthcare and public safety interoperability) had been more implied than expressed in recent months. For the wider community looking for more signs of game change, the event provided plenty of evidence that Open Source is clearly at play.

Paul Rademacher, Google and AllForGood.org, Brian Behlendorf, White House Consultant and Leonard Lin, CodeforAmerica.org

The Google-hosted reception Monday evening packed the public space at their headquarters on New York Avenue. The event was attended by private industry, publicists and social media converts, non-profit and Open Source community leadership and government attendees and offered a nice opportunity to mix it up after a day of the Gov 2.0 Expo Showcase I sadly missed. Some of the sessions however are video-archived on the web.

Lifting off in a small flurry of debate over the right hash tag for the Gov2.0 Summit, the two day Gov2.0 Summit opened with the and energy and grin of Aneesh Chopra, Federal Chief Technology Officer. Chopra earned a reputation for creative collaboration with industry in his prior role as the Secretary of Technology for the Commonwealth of Virginia and brings the same to the federal scene. Virginia's extensive use of Open Source and open collaboration, as well as that of former D.C. CTO — now Federal Chief Information Officer Vivek Kundra, is well known.

The conference brought attendees through a whirlwind tour of recent innovation in government IT: data transparency projects like Apps for Democracy and resulting mash-ups and visualization as inexpensive and "dirty" Open Source solutions to real problems. Open Source and its exceptional benefits of open standards and interoperability were highlighted in many presentations.

Conference highlights:
  • Beth Noveck provided the most comprehensive picture of what progress had been made by the new administration and its policy road map.

  • Best of Show for Crowd-Rallying: Carl Malamud discussed the need to make judiciary information — data and hearings — truly public in a day where “public” means “on the Internet.” In his speech designed in part for an audience not in the room, his closing comment asserted government operating systems should be Open Sourced brought the crowd to resounding applause.

  • Favorite Projects: Anything visualized — and most frequently enabled by Open Source.

  • Killer App: All things Geo-spatial.

  • Significant Announcement: The General Services Administration (GSA) will begin experimenting with the use of OpenID to manage identity on government web sites.


David Recordon, OpenID Foundation Board of Directors

For the seasoned government attendees, there was in reality not a great deal of new information to be had. That was, in fact, good news; as one government manager shared with me, social media tools like Twitter and GovLoop have made it much easier to stay in touch with what other agencies are up to, plus the 2009 Federal IT Strategy has been broadly distributed and much discussed internally.

The White House will release its new Open Government Directive in a few weeks and will set federal agency wheels in motion. Implementation will be challenging and require the philosophy of change to shift into gear. Industry and government seem to agree that the next non-trivial challenge to technology innovation will be procurement reform.

Ed. Note: Post updated to correct caption.

Tasty New Google Summer of Code Stats

Thursday, September 10, 2009

It's time for more tasty statistics about Google Summer of Code 2005 - 2009. After much crunching and gathering, we have added the 2009 Accepted Students by School data to our published statistics page. Here are some highlights...

* We had a total of 591 schools represented this year, including 199 new schools, and a small but interesting number of "distance learning" schools. (These make tabulation interesting. If the student is studying remotely should the school, a.k.a the place of study, be the country where the school is - or where the student is?) This brings our total numbers of schools represented during the 5 years of the GSoC program to 1382.

* The 591 schools in 2009 are in a total of 81 countries, including seven countries that have not participated in past years. These include Kazakhstan with two participating students, and the following new countries with one participating student each: Comoros, Dominican Republic, Iceland, Moldavia, Morocco, Nigeria.

* For all you anxious alumni out there, here's the good part - which school has the most number of students participating. University of Moratuwa in Sri Lanka continues to dominate the field with 22 students accepted.

Top 10 Schools in 2009 by # of Accepted Students

Sri Lanka - University of Moratuwa - 22
Brazil - University of Campinas / UNICAMP - 12
China - Graduate University of Chinese Academy of Sciences - 11
Romania - Polytechnic University Of Bucharest - 11
Poland - Gdansk University of Technology - 10
Austria - Vienna University of Technology - 9
India - Birla Institute of Technology and Science Pilani, Goa campus - 9
Sweden - Royal Institute of Technology - 9
India - Institute of Technology, Banaras Hindu University - 8
Singapore - National University of Singapore - 8

And for comparison:

Top 10 Schools 2005 - 2009 by # of Accepted Students


Sri Lanka - University of Moratuwa - 79
Brazil - University of Campinas / UNICAMP - 37
Canada - University of Toronto - 34
Austria - Vienna University of Technology - 31
China - Graduate University of Chinese Academy of Sciences - 30
United States - University of Illinois at Urbana-Champaign - 28
Poland - Wroclaw University of Technology - 27
Hungary - Budapest University of Technology and Economics - 21
Canada - Carleton University - 21
Romania - Alexandru Ioan Cuza University of Iasi - 20


We hope you find these numbers to be of interest - there's lots more to see online.

Here's where we ask for the readers help: as you review the list of schools, please keep your eyes open for any duplicates, misspelling or missing institutions. We did our best, but as you can imagine, the report represents a bunch of small bites of data, we had more than several languages to parse, and we always try to respect each student's wishes as to how their school is designated. If you find something that looks wrong to you, especially in the 2009 data, please let us know in the comments section so we can take a look and correct as needed.


Endless Summer of Code ... Google Style

Wednesday, September 9, 2009

While many students might be spending their summers backpacking around Europe, working at an investment bank, or catching up on their studies, our Google Summer of Code™  2009 students Udai Gupta and Johan Hilding were helping to transform technology in the fight against global poverty through their work with the Grameen Foundation, a global organization working to end poverty through microfinance and other initiatives to strengthen local business and social institutions. Udai and Johan recently concluded their projects with the Mifos Initiative, an Open Source information technology platform built by the Grameen Foundation to help microfinance institutions more effectively deliver financial services to the poor.  Sponsored and provided a stipend by Google, they spent their entire summer making stellar contributions to advance testing and quality assurance in the Mifos platform, improving the quality of our software for our customers and making it easier for developers around the world to contribute code to our platform.

Udai, a recent Bachelor’s of Technology recipient from the LNM Institute of Information Technology India and Johan, a second year-student attending the Kungliga Tekniska Högskolan (KTH)  in Stockholm, Sweden, both applied to the Mifos Initiative to learn about testing, agile development, and pair programming all while helping to deliver a flexible technology solution to the microfinance industry.  Lead by their mentors, Jeff Brewster from the Grameen Technology Center in Seattle, Washington, USA and Adam Monsen, working remotely out of Minnesota, they collaborated across the globe with our entire community of microfinance practitioners and technology professionals.  

With their work stretching across so many time zones and physical and cultural borders, at times it was challenging for Johan and Udai to work while being so far away.  Technology like Google Groups, IRC, Skype, and TokBox were instrumental in bridging the communication divide; yet, it was the steadfast commitment and passion to work late into the night that made successful collaboration possible.  

Through Google’s commitment to the Open Source community, the Grameen Foundation has been able to utilize Udai and Johan's skills to make enormous contributions to the Mifos Initiative.  Udai’s major accomplishments throughout the summer included standardizing the naming conventions of our unit and integration tests, making these tests run independently of one another and optimizing the MySQL database to improve overall performance of these tests. His efforts helped lay the foundation for greater modularity in Mifos which will allow our community to build new functionality more effectively, enabling microfinance institutions to release new products and pioneer new technologies like mobile banking to serve the poor.  

Udai Gupta

At the same time, Johan helped to triple the number of acceptance tests in Mifos, allowing us to do more frequent releases with the assurance that no code is breaking. His improvements to the acceptance test infrastructure from making drop-down boxes language independent, to making tests run in different locales are a huge value-add to our international customer base. His work will be utilized significantly as the Mifos team delivers an Arabic version of Mifos in their upcoming release.  

Johan Hilding

With Google Summer of Code 2009 now complete, Johan, like the majority of the more than 1000 students who contributed to one of 150 different projects, will be returning to his studies at KTH in Sweden.  However, for Udai this marks the beginning of a new path for him as he will be moving to Bangalore, India for the next 12 months to continue contributing to Mifos and supporting one of its leading customers, Grameen Koota.  The Grameen Foundation hopes to participate in future instances of Google Summer of Code and we invited all folks interested to join our community at www.mifos.org/developers. You too can help to change poverty one line of code at a time!

Ogg Theora Book Sprint

Thursday, September 3, 2009




What's the best way to spend a summer week in Berlin? Writing a manual about Ogg Theora of course...at least that was the opinion of 6 dedicated souls brought together by FLOSS Manuals with the help of Google's Open Source Team.

The event is another in the growing body of FLOSS Manuals Book Sprints, kicked off by our first meeting to write a manual for Inkscape. The aim of these sprints is to write a book in 5 days. Actually, we have done it it in shorter time – in February of this year we wrote a 260 page manual introducing newbies to the Command Line in 2 days. Though created quickly, these books are extremely well written texts: comprehensive, readable, and complete.

For a long time we have been wanting to add to the available material on how to use Ogg Theora – the premier free video codec. Waiting until now to do it turned out to be very fortuitous as Firefox 3.5 was released just weeks before and hence Theora has been given a very recent boost with native support via the HTML5 video tag. As it happens a lot of the technologies supporting Theora have come to recent maturity. Only a few months ago it was hard to find a simple GUI editor for Theora video but now PiTiVi can manage simple editing very easily and smoothly and the development track looks very good. Theora also has great subtitling support, either through embedded subtitles or using an extension to JQuery javascript libraries. Streaming is looking good also with the fantastic Theora Streaming Studio and you can get grubby on the command line with a whole host of mature tools for manipulating and analyzing Theora files. There is more of course, much more, but the point being that we were very happy to have the opportunity to gather some Theora junkies in one spot for a week and write a book on all the cool stuff you can do with Theora video.

A 220 page manual in 5 days - not bad. And it's all free, libre and gratis. Some of the material is also now being translated by the FLOSS Manuals Finnish community, and we hope more translations will follow.

Present at the sprint was myself (Adam Hyde, founder of FLOSS Manuals), Jan Gerber (ffmpeg2theora developer), Jörn Seger (Ogg Tools developer), Holmes Wilson (FSF Campaigns manager) and Theora geeks Susanne Lang and David Kühling. A few popped in remotely to help out, for which we are always grateful – notably Silvia Pfeiffer and Ogg K.

In the end we have free documentation that you can read online, download as a PDF, or log in and improve. It's also available in dead tree format for those who'd like it on their shelf.

Many thanks to Google for supporting this, and also to the Berlin Sommercamp for inviting us to include this sprint as part of their event.

Eclipse Day at the Googleplex 2009


After months of anticipation, we finally put on Eclipse Day at the Googleplex, 2009. This event was hosted by the Google Open Source Programs Office, and really, they did a great job. Seriously big thanks to Chris DiBona, Shawn Pearce, Leslie Hawthorn, Cat Allman and Ellen Ko, who put together a fantastic program. I must also thank Ian Skerrett and Lynn Gayowski of the Eclipse Foundation for all the work they did putting together such a solid program. Ian actually sat right next to me while we were listening to one of the final talks "Google Plugin for Eclipse: Not Just for Newbies Anymore" given by my Google colleague, Miguel Méndez. Miguel demonstrated how the Google Plugin for Eclipse deals with launch configurations. I was drooling.

We had a full house of guests that came to hear about Eclipse: modeling, DSLs, OSGi, Android, and Eclipse in enterprise environments: Google, eBay and NASA. In fact, my teammate, Terry Parker, and I gave the keynote presentation, titled "Eclipse in the Enterprise: Lessons from Google" which was a glimpse into what it takes to support all the people at Google who build applications with Eclipse.

Thanks to everyone who came. It was a pleasure meeting all of you.

You can check out the talk abstracts and slides, or check out the videos below. Happy hacking!



















.