Posts from March 2009

Joomla! Joomla! Las Vegas!!!

Tuesday, March 31, 2009

Leslie Hawthorn of the Open Source Programs team is heading to the bright lights of Las Vegas to speak at Joomla! Day Las Vegas coming up April 3rd through April 5th, 2009. If you are interested in Joomla!, haven't had a chance to hear LH speak before, or just want to hang out with some past Google Summer of Code participants, don't miss it.

Hope to see you there.

POP and IMAP Troubleshooter

The POP and IMAP Troubleshooter is a wizard-like application that people can use to diagnose and repair problems when connecting to email service providers. It reads the configuration files of several email clients, checks them for appropriate settings, and then attempts to create a connection to the provider's servers. You can compile a generic version that allows you to connect to arbitrary servers, or a provider-specific version that can check additional constraints, such as the correct IMAP server name. Google's own binary is available from our Gmail support pages. The troubleshooter is written in C++ using Qt, and can be built for Linux, Windows, and the Mac. 

We welcome your feedback. Check out the code and join our discussion group. Happy hacking!

Reminder: Applications for Google Summer of Code™ 2009 Due Friday

Monday, March 30, 2009

We're entering the home stretch for the student application period for Google Summer of Code 2009!  With 150 Free and Open Source software projects acting as mentoring organizations this year, we have a little bit of something for everyone. Students have until Friday at 19:00 UTC to submit proposals to work on a three month coding project with a mentor from academia or industry.

If you're searching for inspiration or a bit more information while you talk about your ideas with your would-be mentors, you may be interested in the latest installment of the Code Conversations series from the Google Code Blog. We share some past success stories, tips for student applicants and a bit more about Melange, the software that powers the Google Summer of Code 2009 site. 

Ready to apply now? Take a look at our Frequently Asked Questions page and get ready to submit your proposal. As always, helpful and knowledgeable folks are hanging around in #gsoc on Freenode to answer your questions, or you can subscribe to the program discussion list for news and updates. 

Remember, all applications are due by 19:00 UTC this Friday, April 3rd. Best of luck to all our applicants!

Nixysa: Scriptable Plugins for Browsers

Nixysa is a new tool for developers who want to create scriptable plug-ins for NPAPI-supporting browsers such as Google Chrome or Mozilla Firefox. Currently, exposing significant APIs via JavaScript is a tedious and repetitive process, but Nixysa lets you declare your API with a simple Interface Description Language. It also generates all the glue code that is needed to script your classes directly from the browser. If you want to add fancy features to web browsers, you can focus on the code that enables cool functionality instead of the boilerplate glue. As a bonus, Nixysa also works with Native Client which makes it easier to create NPAPI modules, providing a secure way of running native code in the browser.

We welcome your feedback. Check out the source code and take our sample code for a test drive. We look forward to hearing from you on our project discussion list.

DrupalCon DC

Friday, March 27, 2009

Dmitri Gaskin speaking at DrupalCon DC, photo by kcolwell

Hello World! I'm Dmitri Gaskin, I'm 13 years old, and a Drupal Developer. I was a mentor for the Google Highly Open Participation™ Contest in late 2007 (I was too young to actually participate in the contest, having just turned 12), a mentor for Google Summer of Code™ in 2008 , and will return to mentor Google Summer of Code in 2009.

Drupal is a Content Management System with an awesome community behind it. I've been a member of the Drupal community for a bit over 3 years. I've written patches for Drupal core (what you get when you get when you download "Drupal") and for many modules (Drupalspeak for "add-ons"). I've built some small sites with Drupal, but I usually contribute back more that I actually use it and that's fine by me - with such an amazing community, contributing is fun.

Earlier this month, Google's Open Source team sponsored my attendance at DrupalCon DC. DrupalCon is Drupal's official twice-yearly conference. This year was amazing! With over 1400 people and over 100 sessions, it was the largest DrupalCon ever. I presented a session on jQuery and co-presented sessions on Installation Profiles and the Intro to SimpleTest. Probably the best part of the conference for me was meeting so many people in person who I had only known over IRC or in Drupal's Issue Queues.

I attended sessions on a variety of subjects, including API building, semantic web, and usability testing, among other things. I even managed to squeeze some time in to practice the piano at the University of D.C. One theme I noticed during the conference (however I was one of the first to talk about it at the conference so it may be partially my fault) was how to improve the install system of Drupal. The current system is less than ideal, so we tried to think of ways to fix it (Hint: it's not easy and we still aren't 100% sure of what the best solution is).

Overall, DrupalCon DC was a lot of fun and I'll do all I can to attend the next DrupalCon (although the dates conflict with school and I'll be going to a new school next year). I am really grateful to Google for helping to make it possible for me to attend.

Open Sourcerers at Google I/O

Thursday, March 26, 2009

In or around San Francisco on May 27-28th? If you are, why not check out Google I/O 2009, the 2nd occurrence of Google's largest developer conference. Among the many other great sessions, you can hear our very own Ben Collins-Sussman and Brian Fitzpatrick discuss Programmer Insecurity and the Genius Myth and hear their thoughts on creating happy users in their talk Do You Believe in the Users? We hope to see you there!

Spreading the Summer Love in South America

Wednesday, March 25, 2009

You may recall the recent post by Borja Sotomayor about the five Google Summer of Code™ information sessions he organized in the Chicago, USA area. Several other students and mentors are following in Borja's footsteps, and we'll be bringing you news about many of these meetups. Most recently, several former students have been busy spreading the word about the program to students at their local universities in South America.

Five former students teamed up to promote the program at the University of Campinas in Sao Paulo, Brazil. Bruno Cardoso, Bruno Dilly, Luis Felipe Strano Moraes, João Batista Correa Gomes Moreira and João Paulo Rechi Vita spoke to a packed lecture hall, showcasing the strong past participation of University of Campinas students. They also dispensed some advice about how to apply, including best practices for community interaction, and shared a bit about their past experience as students in the program. You can find more details, including pictures from the session, on João Paulo Rechi Vita's blog.

Rodrigo Lazo presents at the San Pablo Catholic University

Rodrigo Lazo arranged an information session at the San Pablo Catholic University in Arequipa, Peru. About 50 people came to the session, meaning standing room only for a few of the attendees. In addition to telling folks more about the program and how to write a successful proposal, Rodrigo also educated them about Open Source software: what it is, why people write and release Open Source code and why getting involved in the Open Source world is exciting and rewarding.

Standing room only at the information session in Arequipa, Peru

Have you hosted a Google Summer of Code information session at your local school or computer club? Are you planning to host one? Let us know! Share your plans, results and thoughts in the comments section or on the program discussion list.

PHP Quebec 2009

Tuesday, March 24, 2009

I recently attended PHP Quebec 2009. This was the seventh year of this gathering of PHP developers and though we had a new venue the conference was great as always. As one of my fellow speakers was ill, I jumped in to give the Writing PHP Extensions (PDF) talk along with Johannes Schluter. Even better, the talk on PHP - Worst Practices (PDF) was well received by the audience, with reactions to the material far more positive than I would have anticipated given that we've all engaged in these worst practices from time to time. You can also check out the slides from my third talk Objects for the Masses (PDF). On a more personal note, I was happy to hear and see that other presenters used the Google Chart API in their talks for examples.

The rest of the conference talks were luckily not completely focused on PHP 5.3. It turns out there's continued interest in the current stable platform, PHP 5.2. Folks are happy to give us core developers more time to add some new features, most notably closures , namespaces and Phar done right. Those who want to learn more about PHP 5.3 should check out Johannes' slides (PDF).

Students, Apply Now for Google Summer of Code 2009!

Monday, March 23, 2009

Students, want to gain real world software engineering experience and get paid? We are now accepting applications for Google Summer of CodeTM 2009, our global program to introduce university students to the wonderful world of Open Source development. For our fifth Summer of Code, students can choose from 150 Free and Open Source software projects, in technical areas as diverse as gaming to humanitarian efforts to operating system design. All accepted students will be paired with a mentor from academia or industry and will receive coaching in all aspects of software development over the course of their three month coding project. Successful students will receive a stipend of 4500 USD for their participation in the program.

Check out the program Frequently Asked Questions and the extensive set of resources for student applicants on the program wiki, then talk to your prospective mentors about your ideas. Each mentoring organization has provided an ideas list to help get your creative juices flowing and learn more about what the project needs. Our mentors are also very excited to hear from students who have their own plans for improving their code bases, so let their ideas inspire rather than constrain you.

You can find knowledgeable folks on hand to answer questions in #gsoc on Freenode and on the program discussion list, or you can keep up with our announcements on various social networking sites.

We'll be accepting student applications through April 3, 2009 at 19:00 UTC. Best of luck to all of our student applicants, and get those applications going!

Update on emoji4unicode

Thursday, March 19, 2009

By Kat Momoi, Software Engineer and Emoji Encoding Project member & Takeshi Kishimoto, Gmail Product Manager

Last November Markus Scherer wrote about Google's efforts to encode Emoji (絵文字), or "picture characters," the graphical versions of :-) and its friends, and about the creation of the open source project emoji4unicode. Based on the feedback to the project from a variety of people, we have updated and refined the list of Emoji characters that need to be encoded as new characters in an upcoming version of the Unicode Standard and ISO/IEC 10646. The final list reflects all known Emoji characters used by the 3 major mobile phone companies in Japan (NTT docomo, KDDI/AU and SoftBank Mobile), excluding the ones that already are encoded in the current Unicode Standard.

The Unicode Standard and ISO 10646 are synchronized in terms of character content, and jointly controlled by the Unicode Consortium and the ISO/IEC JTC1/SC2/WG2 committee. Google and Apple jointly submitted The Emoji Encoding Proposal to the Unicode Consortium and it was formally approved by the Unicode Technical Committee on February 6, 2009. Now this proposal goes to ISO/IEC JTC1/SC2/WG2 for deliberations and approval as a joint contribution to ISO by the Unicode Consortium and the US national body. The approval by the Unicode Consortium is thus a major milestone toward getting the characters into Unicode. The next SC2/WG2 meeting takes place in late April, 2009 in Dublin, Ireland and the Emoji proposal will be discussed there. We encourage you to read a copy of the proposal submitted to SC2/WG2.

Since we wrote the first blog post on this topic, we have received positive feedback for this proposal. We are both surprised and gratified to learn that there are so many people with a strong interest in Emoji, and we believe that further support from the community will greatly aid in advancing the cause of the Emoji Encoding project.

Our Fifth Google Summer of Code: Meet Your Mentors

Wednesday, March 18, 2009

We've just announced the list of accepted mentoring organizations for Google Summer of CodeTM 2009. After reviewing nearly 400 applications, we finally narrowed our selection to 150 Free and Open Source projects. The accepted projects are now busy adding details about their participation in GSoC to the program website, but you can already take a look at the list of accepted projects and their Ideas lists.

As we do every year, we're trying new things to improve the program. This year, we're accepting fewer mentoring organizations with the goal of creating larger student peer groups within each project. We've heard feedback from several organizations that having more students helped their mentees develop a greater sense of engagement with the community through their engagement with one another. Community engagement has long been cited as a critical success factor for Google Summer of Code, and we're confident that creating these larger peer groups will help facilitate that.

We had to make some very tough decisions this year, as we simply aren't able to accept every great project that applied. We are also bidding fond farewell to some past participants in favor of bringing new projects into the program. We greatly appreciate everything they have contributed to the program in past years and hope they will remain actively involved in our community. We want to thank everyone for their applications and would encourage those who were not accepted to apply for future instances of the program.

What Happens Now?

No doubt many would-be Google Summer of Code students are wondering what their next steps should be. You'll have a few days to learn about each participating organization before student applications open on March 23, 2009. Use this time to meet your potential mentors and to discuss how you'd like to contribute to their organization and your ideas are for improving their code base. Keep on eye on the program mailing lists, as we'll post notes about additional resources for learning about our mentoring organizations.

Most organizations have provided individual points of contact for each project suggestion, and you can always propose ideas and look for guidance on project mailing lists or forums, as well as on IRC. You can also look for your potential mentors in the program IRC channel, #gsoc on Freenode.

Remember, some of our most successful student projects come from ideas suggested by the students themselves, so take advantage of this time to explore what areas of development most excite you. You can then find people to help you brainstorm about your initial thoughts and further refine them. Don't be nervous about how your ideas will be received; take some time to think through what you'd like to accomplish, propose a plan of action, then work with your potential mentors to iterate, iterate, iterate.

Congratulations to all of our future mentors! We look forward to working with all of you this year, and to working with many of you once again.

Nav, An IDE-like Navigation Pane for Emacs

Tuesday, March 17, 2009

Nav is a lightweight solution for Emacs users who want something like TextMate's file browser, or the Eclipse project view. Unlike these two, Nav only shows the contents of a single directory at a time, but it allows recursive searching for filenames using the 'f' key-binding, and recursive grepping of file contents with the 'g' key-binding. Nav can be run painlessly in terminals, where Speedbar either fails on its attempt to make a new frame or is hidden. Nav's terminal-friendliness comes from running in the frame where it was started, keeping window management simple. The Nav key bindings are simple, as well — each key command is a single keystroke long.

We welcome your feedback. Check out the code and join our discussion group. Happy hacking!

Developers Wanted: JaikuEngine

Monday, March 16, 2009

The Jaiku code base is now Open Source and running on Google App Engine. Everyone is welcome and encouraged to check out the code and help shape the future of Jaiku. You can find full details on the Jaikido Blog.

Spreading the Summer Love is Easy!

Google Summer of CodeTM is on, and it's time to spread the Summer love. As Leslie noted in a previous post, former students and mentors are hosting more than 20 informational sessions worldwide, from Peru to Switzerland. In the last two weeks, I have lead information sessions at universities around Chicago: The University of Chicago, Northwestern University, DePaul University, the Illinois Institute of Technology, and the University of Illinois at Chicago. I'd like to share some of my experiences organizing some of these sessions, to show you how easy it is to promote Google Summer of Code at your local colleges and universities.

So, let's say you've participated in Google Summer of Code as a student or mentor, and you want to spread the word about how great it is to flip bits, not burgers, during the summer. All you need is the following:

First of all, you're going to need an audience. More specifically, you want to get as many student coders from your local college or university in the same room. But what if you don't have any contacts at the university? Don't let this hinder you: try contacting the university's ACM or IEEE student chapter, Linux User Group, Computing Club, etc. Most universities have at least one, and they are usually listed in the website of the more computer-centered department on campus (typically Computer Science, Computer Engineering, or Electrical Engineering). Sometimes just typing is a surprisingly effective way of finding the ACM student chapter for Foobar University. If they're not listed anywhere, try the general contact e-mail for the department, and ask if there is some sort of student computing association on campus.

Once you've pinpointed the right group, contact them and introduce yourself as a former Google Summer of Code mentor/student. Ask them if they would be interested in hosting a GSoC informational session. These groups are generally accustomed to hosting external speakers, so they will probably be more than happy to host a talk and handle all the logistics for you (reserving a room, advertising the talk, plastering campus with flyers, etc.). All you'll have to do is show up and present. Even if the group you contact can't host a talk, you can ask them to alternatively just post flyers around campus, and forward the flyer to mailing lists that are populated by geeks.

Next, you need a presentation to deliver. Not to worry: There is an existing slideset you can use. Even if you don't plan on using slides, the slideset can help you structure your presentation. And if you need further inspiration, you can watch videos of other GSoC informational sessions. Using the Google-provided slideset, my presentations typically involved a 20 or 30 minute talk followed by a Q&A. If you'd like to invite other local GSoCers to speak along with you, the folks from Google's Open Source Programs Office can help put you in touch with other folks in your area. Make sure to let them know when your presentation is scheduled so it can be added to the program calendar.

Finally, you need time to deliver the presentation. Unless you're like me and work in academia, you probably can't sneak out of work for an hour or two in the middle of the day. In my experience, however, student associations tend to prefer scheduling these events in the evening, since there are no classes at that time and it makes it easier for students with jobs to attend. Just let them know what your time restrictions are, and they'll probably be able to accommodate them.

Do you have any other tidbits of advice on how to organize a GSoC information session? Let us know in the comments! In any case, I hope you'll join us in spreading a bit of Summer love.

Thandy: Secure Update for Tor

Friday, March 13, 2009

Nick Mathewson, The Tor Project

Long ago, Tor was a single executable that you could usefully run on its own. Over time, we added a relatively long list of recommended dependencies, including Privoxy to avoid DNS leaks, Vidalia for a user interface, and Torbutton for safe browsing. Now, due to the increasing complexity of our packages such as the Vidalia Bundle, the Tor Browser Bundle, and related projects, a full installation can contain five or more specially configured pieces of software.

We needed to help users keep all of this software updated. When we make security fixes, quick uptake helps narrow the window in which attackers can take advantage of newly discovered problems. But many people don't subscribe to or-announce, and so they only find out about new releases sporadically. Updates need to be easy, too: each additional upgrade step is an opportunity for people to make mistakes, and an annoyance means that more users will stay with older, insecure versions. The administration needs to be easy as well; Tor doesn't have a release engineering team, so we can't add too many hard steps to putting out each new release.

Most of all, updates need to be secure. We already sign all of our packages so that people can be sure they come from us, but most users never actually check the signatures on them. (The most careful binary-package users seem to be those who download the OS X bundles, and only around 7 percent of them actually seem to download the signature files too. We count total downloads, but don't record other user info.)

Most free Unix-like operating systems already have a built-in package distribution and update system with some amount of support for the above features, but for Windows and OS X, we're kind of out of luck: none of the existing free-software package distribution systems we evaluated had the level of security and detailed specifications we wanted.

With these goals in mind and funding from Google's Open Source Programs Office, we designed a secure update protocol primarily for Tor's needs, but can also be adapted to other software projects. It's named "Thandy" for obscure reasons, and you can check out the specifications or even try it out yourself.

I'm especially happy with Thandy's security architecture. We assume an adversary who can operate compromised mirrors and who can possibly compromise the main repository. At worst, such an adversary can DOS users' updates in a way that users can detect. Unlike lots of other update tools, we're immune to rollback attacks (where an adversary convinces users to install an old, compromised version of the software), we can detect frozen mirrors (where an adversary just doesn't serve updates), and we can even handle key compromise relatively gracefully. Most encouragingly, the fact that Thandy is both decently secure and well-specified has garnered us some attention from serious security researchers like Justin Cappos, coauthor of a great paper about software updaters in last year's CCS, a conference on computer and communications security.

The software is still in an experimental stage, and there are a number of efficiency opportunities it would be neat for us (or anybody) to follow up on in the future, but so far it seems to be working well. Have a look at the source, and let me know if you're interested on hacking on it!

Spreading the Summer Love

Tuesday, March 10, 2009

Each year, we ask for help from the community to help us spread the word about Google Summer of CodeTM. We're thrilled that the outpouring of support has been so great for 2009. Even before the program started yesterday, volunteers translated our program flyer into more than 50 languages. We've also had former students and mentors host more than 20 informational sessions worldwide, from Peru to Switzerland, with more to follow. For those who want to learn more about the program, Hackystat mentor for 2008, Philip Johnson, contributed this excellent video:

If you want to get involved but are looking for more information, check out our Frequently Asked Questions or join us in #gsoc on Freenode. You can find screencasts of work done by past student participants and more informational videos in our program YouTube channel.Interested students may find our recent post on the Google for Students Blog useful. And, of course, don't forget about our discussion list.

We can always use more help spreading the Summer love, so if you'd like to contribute, post our flyer wherever geeks near you congregate. You can also follow our updates and spread the word to your friends on your favorite social networking sites. We can also use help to translate the program flyers and presentations. Short on time but full of zest for Open Source? We'd love it if you'd attend a local information session to share your experiences with newbies.

Many thanks to all the community members who contributed their time to promote the program!

Google Summer of Code: Applications Now Open for Mentoring Organizations

Monday, March 9, 2009

Looking for new contributors and fresh perspectives for your Open Source software project? Through the Google Summer of CodeTM program, we fund students worldwide to work with mentors from the FLOSS community on a three month coding project. Over the past four years, we've successfully paired nearly 2,500 students with more than 2,500 mentors from industry to academia, with some spectacular results: more than 5 million lines of source code produced and over $15M in funding provided to open source development. We're particularly excited by the social ties our students form through the course of the program. We've connected people in more than 98 countries, and hope to bring people from even more places into the Google Summer of Code community this year. We're looking forward to our fifth year and welcoming another group of 1,000 student developers to the program.

We're now accepting applications from Open Source projects who wish to act as mentoring organizations. We'll be taking mentoring organization applications through Friday, March 13th at 19:00 UTC. Our list of approved organizations will be published on the 2009 Google Summer of Code site on March 18th. Interested students will then have several days to discuss their ideas with those organizations who are accepted before student applications open on March 23rd.

Check out our Frequently Asked Questions page for more details and a preview of the application. And remember, if you have any questions, you can always find us in the Google Summer of Code Discussion group or in #gsoc on Freenode. Best of luck to all of our applicants, and here's to our fifth Google Summer of Code!