Posts from October 2008

Pardus' Google Summer of Code Experience

Thursday, October 30, 2008

For Pardus' first year in Google Summer of Code™, it was not a surprise for us that most of our applications were from Turkey, since Pardus is the most well known Linux distribution in our country. But as nearly every review about the project mentions, we are working on our global awareness, and we hope to get more international applications in the coming years.

This year we had 17 student applications and 5 students were accepted to the program; four of them completed their projects successfully.

Cihangir Besiktas, worked on adding Internet sharing capability to Pardus' network manager application. The project's aim was to make an Internet connected box to act as a gateway to its internal network so that other boxes in the network can connect to Internet. By only selecting the interface that is connected to Internet and the interface that Internet is going to be shared to, everything can be done automatically by the network manager. All the work done by Cihangir has been integrated into the network manager and is now part of the latest release of Pardus. Cihangir kept a blog about his project and documented his work.

Isbaran Akcayir, worked on adding 802.1x support to Pardus' network manager application. 802.1x provides authentication to devices attached to a LAN port and it is based on Extensible Authentication Protocol. Although it is possible to connect to the network with wpa_supplicant package from the console, Isbaran added a frontend into Pardus' network manager for easy configuration and connection to 802.1x networks. The work done by Isbaran is integrated into network manager and now is part of the latest release of Pardus.

Mehmet Ozan Kabak, worked on a common notification manager to be used by Pardus' manager applications. This project was inspired by the Growl application for Mac. Mehmet successfully completed his project which has become a qt4 based, skinnable notification management system working on dbus. He kept a blog while developing and documented his project. The latest release of Pardus is KDE3 based, so it is not possible right now to integrate Mehmet's work. But with the next release of Pardus, hopefully it will.

Türker Sezer, worked on an easy to use wizard base Pardus CD/DVD/USB distribution media creator GUI application. Pardus does not provide a package selection screen in its installation program YALI. So his project would allow anyone to create a customized Pardus distribution. He completed his project successfully Also while developing his own project, he helped us to fix our live CD creation problems in our own application. He is going to be working on his project. After fixing some layout and usability problems, he is going to package his application and it will become installable from Pardus repositories.

Our first year was beneficial for us and we hope also for our students. Congratulations to all of them and their mentors!

Gallery's First Sprint

Wednesday, October 29, 2008

Last week, Google's Open Source Team hosted the Gallery project's first team sprint. Ten core team members, some from their offices at Google and some from as far away as Serbia, got together on the Google campus on October 22-24 to figure out the future of the Gallery project.

During the weeks prior to the sprint, the Gallery community embarked on some ambitious discussions about what we could do if we took advantage of new technology. We evaluated various PHP frameworks by implementing a basic UI in each one, reviewed feature lists, and examined as many available options as possible. Combined with usability work driven by Jakob Hilden that originated with the OpenUsability project's Season of Usability this year, these discussions and explorations paved the way for the sprint: major decisions and the beginning of a rewrite!

Once at Google we spent a lot of time discussing options, tinkering with code, and continuing discussions into the evening at bars and restaurants in Mountain View.

By Friday, we settled on code standards, feature lists, a new project management methodology using trackers on SourceForge and a shared task list in Chandler, and the Kohana PHP framework. We didn't quite finish the code yet, but it's all in our SourceForge Subversion repository in a temporary location, and we look forward to introducing Gallery 3 to the world in a few months.

Gallery Sprinters
(photo used with the permission of Chris Kelly)

More pictures and more details will be available on later this week.

First Android Patch Accepted!

Tuesday, October 21, 2008

This morning at 8 AM Pacific, I had the joy of participating in the Android release. If you've been following along, you'll have seen how excited we've been - and are - to publish millions of lines of code to the outside world.

Well, the number just went up by six more lines. It's a small start, but knowing that we accepted our first patch from a contributor external to the Open Handset Alliance just 4.5 hours after unveiling the code reinforces to me why open sourcing this is exactly the right thing to do.

Happy Hacking. =)

(Update: I just checked, and we're up to 5 accepted patches from 8 submitted. Way cool.)

Android: The Open Source Cell Phone

As you might have heard, on the 22nd of October we will start to see the first deliveries of the T-Mobile G1, the first phone based on the Android mobile platform. This is an incredibly exciting time for us, the culmination of over three years of work done by hundreds of people at the companies that make up the Open Handset Alliance. All of us are waiting with bated breath to see how the phone is used and what its impact will be on the future of mobile phones and computing.

But that's tomorrow....

Today I'm very proud to announce that we are releasing the code that went into that same revolutionary device. Let me present Android: the first complete and highly functional, mass market, Open Source mobile platform. Built with and on top of a bunch of Open Source software, this is one of the largest releases in the history of FOSS. Our goal was to make millions of terrific phones possible, to raise the bar on what people can expect from any mobile phone and to release the code that makes it possible.

So check out the code, build a device, send in some patches and become a committer.

Android is terrific now, and with every new developer that joins us Android gets better. Not just for the Open Handset Alliance, not just for Google, and not just for T-Mobile G1 users — but for everyone. Through the use of Open Source we can change how the world thinks of cell phones and portable computing, together.

If you'd like to know more, visit the Android open source page and read all about its debut there.

Thousand Parsec and Google Summer of Code

Friday, October 17, 2008

This was the second year that Thousand Parsec partook in the Google Summer of Code™, and we accomplished even more than we did in our very successful first year. For those who don't know, Thousand Parsec is a framework for building turn based space empire building games. Many different types of rulesets can be developed which have a wide variety of features.

In 2008, we had 8 students, all of whom successfully completed their projects. Together they made a massive contribution to our code base, writing more than 130K lines of code across 5 different modules. This year we were also pleased to see a great deal more collaboration and interaction between our students and Thousand Parsec's wider community.

One of the most exciting projects to come from Summer of Code 2008 is our new 3D client. This takes our existing libraries and couples them with the sweet Python bindings for Ogre 3D(another 2008 mentoring organization) and builds a rich client full of eye candy. Since the completion of the Summer of Code, Eugene Tan has been hard at work to make his first release happen, and plans are on track for him to do so this week. Check out these screenshots for a preview:

Our primary server also got a workout, with 3 students working hard on improving its functionality. All our students work has been merged into mainline and will be in our next release (which is also being preped at this very moment). Ryan Neufeld and Dustin White both added new "quick play" rulesets, while Aaron Mavrinac added ability to remotely configure the server. This gives people a choice of 4 different games to play, 3 of which were developed as Summer of Code projects.

Our prototype and backup server also got some love with Juan Lafont contributing a quick play game of his own creation called "DroneSec". This ruleset required that he also improve many of the server's features and he is in the process of preparing a release.

Aaron, who initially worked on creating the remote configuration of tpserver-cpp, has also been working hard on adding single player support. His work touched and improved all our of modules and even other students' projects. Aaron is currently driving the next release of our primary client, which will include a wizard leting anyone setup a local game including the server, AI opponents and other options.

Two students, Victor Ivri and Vincent Verhoeven, each worked on creating AI frameworks and testing them out on the new rulesets developed this year. Having two frameworks allows us to continually refine their abilities and skills, giving people the ability to play non-trivial game
scenarios without having to find human opponents.

Zhang Chiyuan's project focused on a completely different tack: adding support for Schemepy to Thousand Parsec. His project allows Scheme to be used from the Python framework. Zhang completely rewrote the existing backends and added a bunch of new backends. In the process, he created a extensive compliance suite which allows for quick checking to ensure our backends are functioning correctly. He has also ported our Python client and servers and to the new interfaces.

Overall, we're very proud of all our students' work, all of which has made a dramatic impact on the health and usefulness of Thousand Parsec. Of course, the entire community hopes they continue to contribute in the future. We would like to thank the Google Open Source Team for all their efforts in running such an awesome program.

Finally, congratulations to all of our mentors and students for their many

Zurich Open Source Jam 5

Wednesday, October 15, 2008

Google Zurich has been a hive of activity lately — with Code Jam, Googler for a Day, and now the latest Open Source Jam.

Our lightning talks were far too interesting and informative to confine to five minutes, but with snacks and beer in hand, noone seemed to mind.

Thomas Koch kicked off the evening, with a talk on using Vim as your IDE. Peter Arrenbrecht gave us an introduction to Patch Branches, and followed up with a quick demo during our break.

Paolo Bonzini told us all about his favourite project — GNU Smalltalk — and sparked a bit of a discussion on making a living from Open Source work. That kept us entertained while our experts worked to sort out some "technical issues" with the projector!

Once we got things up and running again, Gabriel Petrovay gave us a demo of XQuery support in Eclipse, using XQDT and Zorba. And, to round off the evening, Simon Leinen snagged himself a cool Google T-shirt by giving a talk about OSS vs "The Cloud"!

If you're still not sure what the Open Source Jam is — well, it depends on who shows up! It's an open forum for open source fans, hackers, and just plain geeks to get together, have a beer, and hear what's going on. And if you're looking for people to try out your latest patches, or to help you get a project off the ground, it's a great place to start a conversation. This time around, we had geeks from Germany and Italy, as well as plenty of locals — so there's no excuse!
But if you missed out on this one, don't worry — the Zurich Open Source Jams are semi-regular events. To stay informed about the details of the next one, or to catch up on discussions about previous ones, join the Open Source Jam Zurich Google Group.

Hackystat's First Google Summer of Code

Tuesday, October 14, 2008

The Hackystat Project had a great Google Summer of Code™ 2008 experience. Four students started the program, and while one had to drop due to sudden illness, the other three went on to successfully complete their projects. Shaoxuan Zhang worked on a Wicket-based user interface to Hackystat, and implemented a number of new features including support for "portfolio" analyses. Matthew Bassett developed a Hackystat sensor for Microsoft Team Foundation Server. Eva Wong developed a Hackystat sensor data visualization package using Flare. You can learn more about each student's experience from their own perspective by reading Matthew's, Shaoxuan's, and Eva's blogs. Finally, my blog contains a reflection on Summer of Code from a first time administrator's perspective. We definitely hope to be back next year, and encourage all Open Source communities to participate.

Congratulations to our mentors and students for their many successes this year!

Wrapping the Season of Usability 2008

Monday, October 13, 2008

Inspired by the Google Summer of Code™ program, OpenUsability — an initiative to bring usability into FOSS development — developed and launched a similar but independent program, the Season of Usability. The Season of Usability sponsors students to work on usability, user-interface design, and interaction design and related projects with pre-screened Free and Open Source Software (FOSS) projects; each student is paired with mentors to help guide them on their project, with mentors chosen from a particular community's set of key developers and user experience experts. For their work, students receive a stipend of $1000 USD, kindly sponsored by Google's Open Source Programs Office, the Open Society Institute and Trolltech.

The second Season of Usability took place between May and September 2008, and has been deemed a great success by students, projects and sponsors! Ten students contributed to nine FOSS projects by doing user research, usability analysis or UI mockups. All projects were finished successfully — in average, the teams fulfilled 80% of their initial project goals. Given the fact that most mentors claimed to have set an overly ambitious roadmap at first, this is a very good value. We are especially happy that the Season of Usability inspired the students to further engage in Open Source — six of the ten students will continue their work on the project.

All students created project reports that are published on the Season of Usability website. Summarised, the following goals were accomplished:

Redesigning DrProject's Administration Interface

This project focused on improving the overall usability for project management portal software, DrProject, especially targeting a redesign of the web administration interface.

Along with mentors Paula Bach & Greg Wilson, Liz Blankenship, a student of Science in Information at the University of Michigan (USA), did a redesign of the web-based administration interface for DrProject. She documented her activities on her blog.

Redesigning Gallery's Image Upload Tools

The goal of this project was to improve the image upload tools of Gallery, a web based software product that lets you manage your photos on your own website.

Mentored by Katrin Goetzer and Chris Kelly, Jakob Hilden did a comparative analysis and created mockups for a new image upload tool. His work is documented in Gallery's Wiki. After having finished his own Season of Usability project, Jakob offered to mentor two more design projects related to Gallery for a design course at the University of Michigan, School of Information.

Human Interface Guidelines and Design Patterns for KDE4

The purpose of this project was to finalize the Human Interface Guidelines for the K Desktop Environment.

Becca Scollan, a student of Science and Information at the University of Baltimore (USA), and Thomas Pfeiffer, studying Psychology at the Technical University of Darmstadt (Germany) identified common interaction problems in KDE4 and created generic design solutions. Additionally, they complemented the KDE4 HIG by several guidelines. Their mentors were Celeste Lyn Paul and myself, Ellen Reitmayr.

Improving Jeliot user Interface and Workflows

This project focused on improving the user interface and workflows of Jeliot 3, an Open Source Java Program Visualization application that helps Java beginners to understand coding concepts. Sharad Baliyan, student of interaction design from India, identified possible pitfalls when newbies of programming make use of Jeliot, and created paper prototypes to overcome those issues. Sharad was mentored by Roman Bednarik, Andres Moreno and Niko Myller.

Toolbox and Palette Interaction for KOffice

The goal of this project was to improve the toolbox and palette interaction for KOffice, the office suite of the K Desktop Environment.

Supported by her mentors Celeste Lyn Paul, Ellen Reitmayr and Boudewijn Remp, Neha Pahwa analyzed the tool options of KOffice. She identified the major interaction problems and created first paper mockups for an improved tool interaction in KOffice.

3d Widgets for MakeHuman

The goal of this project was to design and test 3d widgets for MakeHuman, a free software for modelling 3-Dimensional characters.

Eugenio Passacantilli, student of Science in Communications at the University La Sapienza di Roma (Italy) designed and tested 3D widgets as a new concept to present options to users. Eugenio was supported by his mentors Stefano Fabri, Manuel Bastioni and Simone Re.

Handheld-Mode Interface for the OLPC XO Laptops

This project focused on designing a system of interaction for the One Laptop Per Child XO Laptop with limited input methods.

Along with mentors Mentors Eben Eliason and Marco Gritti, Alessandro Vona, student of Science in Communications, analyzed different handheld interaction models to come up with an interaction design for the XO Laptop handheld mode.

Improving HDR imaging with Qtpfsgui

The goal of this project was to improve various tools and the overall usability of Qtpfsgui, an open source graphical user interface application that aims to provide a workflow for High dynamic range (HDR) imaging.

Supported by his mentors Roman Bednark, Giuseppe Rota, and Alexandre Prokoudine, Vladimir Smida created sketches for Qtpfsgui that will improve visual rather than parameter-centric working modes. Vladimir documented his work on his blog.

IM and VoIP with SIP Communicator

This project focused on the integration of multiple protocols in a single instant messaging application, SIP Communicator.

Mike Oren, PhD student in Philosophy at Iowa State University (USA), performed user research and a comparative analysis of different instant messengers. Mike was mentored by Raphael Wimmer and Emil Ivov.

A big "Thank You" to all participants and congratulations for all their good work!

FreeBSD's Fourth Google Summer of Code

Thursday, October 9, 2008

FreeBSD has participated as a mentoring organization in the Google Summer of Code™ each year since 2005. This year, FreeBSD mentored 21 students with a final success rate of 91%. Robert Watson and I have written a detailed summary of the FreeBSD 2008 Summer of Code experience. With the help of our mentors we've selected three successful projects to showcase here:

Edward Napierala successfully completed a complex project to implement NFSv4 ACLs in a similar way to how POSIX.1e ACLs are supported by extending user utilities (setfacl(1)/getfacl(1)), libc API, and adding necessary kernel hooks for ACL storage and enforcement on both UFS and ZFS. Regression tests were implemented to ensure correct operation. There is also a wrapper (distributed separately) that implements a SunOS-compatible acl(2)/facl(2) API to make porting applications like Samba easier. This project required balancing standards, portability, and implementation complexity, as well as backwards compatibility. This project was Edward's first significant foray into the kernel, and his focus on testing and completeness was outstanding. Needless to say, Edward was granted full commit access to the FreeBSD source repository before the program ended. Robert Watson mentored this project.

Nick Barkas, with the help of his mentor, David Malone, spent the summer modifying the dirhash code in UFS2 to use better dynamic memory allocation. The code is now able to free up memory used by older dirhashes when the VM system invokes vm_lowmem events. This will allow the default dirhash_maxmem value to be increased, improving performance on large directory lookups when there is memory to spare on they system. There are versions of the low memory event handling code for both -CURRENT and 7-STABLE. A number of tests have been run showing the new event handler seems to work properly. Additional testing and benchmarking is ongoing to tune the default values for best performance.

Johannes Maximilian Kuehn was able to work with both the FreeBSD and NTP communities and his mentor, Harlan Stenn, to work on a reference implementation of the SNTP client. SNTP is a lightweight client that enables admins to synchronize with NTP servers. SNTP's networking code is written protocol independent and should work with almost any protocol like IPv4 or IPv6. SNTP supports MD5 authentication to verify the authenticity of the queried server. This code will be included in the upcoming ntp-4.2.6 release.

We've only highlighted three of the 19 successful FreeBSD projects here, and would love to hear more from the community about their favorite FreeBSD projects from Summer of Code 2008 or years past. Post a comment and share your thoughts with us. Congratulations to all of FreeBSD's mentors and students, as well as the FreeBSD community, for their fourth year of successful participation in Summer of Code!

google-glog: Application Level Logging

Wednesday, October 8, 2008

As you no doubt know, all real-world software has bugs. If you're trying to fix a serious bug, log messages can be just as helpful to you as favorite debugging tools. In order to help make your lives easier, we're releasing google-glog, a C++ library widely used here at Google. It provides simple yet powerful APIs to various log events in your program. You can log messages by severity level, control logging behavior from the command line, log based on conditionals, abort the program with stacktrace when expected conditions are not met, introduce your own verbose logging levels, and more. This library currently supports a variety of Unix-like systems (e.g. FreeBSD, Mac OS X and Cygwin), as well as GCC.

We're looking to add support for other platforms and compilers, and we'd love your help to do so. It may be not trivial since this library depends on several POSIX APIs for now. You can learn more by checking out our How To documentation, and we look forward to your feedback in our google-glog discussion group. Happy hacking!

London OS Jam 10: Off-Topic Is the New On-Topic

Thursday, October 2, 2008

Another Thursday. Another London Google Open Source Jam. This time the format couldn't have been simpler: Come to Google. Have some beer, have some pizza. Talk about whatever you like.

Here's the lightning talk roundup. 5 minutes apiece:

  • Simon Stewart - Stinky Code Project - How to ruin an open source project.

  • Sam Mbale - Open Source Social Networking.

  • John Ripley - Writing Vorbis from scratch. John's rewriting Vorbis. From scratch. It sounds great.

  • Douglas Squirrel - A day in the life of a check-in. What should happen when someone checks in code. Another energetic superlist from Squirrel (with pictures!).

  • Chris Read - Build tools - Good vs Bad. Chris wants to build a new build tool. We helped him, sorta.

  • DJ Walker-Morgan - Talking to the press about your open source project. Some eye-opening advice from DJ about publicising your project.

  • Nicolas Roard - Gears - Extending the browser!

  • Ade Oshineye - NBL - Ade thinks it's server-side Javascript.

  • William Fulton - Using OpenOffice Spreadsheets for C-style macro processing - Hacking for code generation.

  • Joe Walnes - Lightspeed talk - AJAX web apps. Do it properly: Bookmarkable URLs and MVC design.

  • Simon Stewart. Again - Super lightspeed talk - The roadmap for integrating Selenium and Webdriver.

  • Steev - Minerva home automation.

  • Neil Dunn - Lightspeed talk - The framework chase. Is that new framework really going to simplify your project?

  • Rob Tweed - Mumps. The Swiss Army Knife of databases.

John Ripley. Rewriting Vorbis. From Scratch.

Since 5 minutes can seem like a really long time we also introduced something new: Lightspeed talks! Pow! Don't have enough to fill 5 minutes? Don't have slides? Don't worry! Stand up and say your thing. 30 seconds. 5 seconds. A single word perhaps!

Talks start conversations, conversations start projects, projects are good!

Joe really wanted to spread the message about MVC for AJAX web apps.

Don't know about the London Open Source Jam yet? Where have you been? OS Jam is a free for all, open to anyone, geek night where open source hackers get together to discuss a topic close to their hearts.

Rock on OS Jam! See you next time...

(Update, Nov 7th: Fix spelling of William's last name. Sorry!)

The New Real Time Monitoring: Streams Updates and Feeds Added to Google Code Project

For those of you who use our project hosting service, you can now view source commits and issue updates all in one go from your project's home page. The Google Code Blog has more details. Enjoy! Flexible and Easy Python IP Address Library

Wednesday, October 1, 2008

Here at Google, we use Python a great deal. The socket module from Python's standard library makes it possible to work with IPv4 addresses stored as integers or strings, but it doesn't allow you to easily work with subnets. And of course, since we support IPv6, we wanted to make working with v6 addresses as easy as v4.

We're happy to let you know that, our internal library for IP addresses is now released as Open Source. It supports validation, subnet operations, and summarization, it works with both v4 and v6, and of course it has a comprehensive test suite. It's also one of the fastest libraries for common operations. We hope it will help you write your network tools, and ease your v6 transition.

Let us know what you think on our development mailing list. Enjoy!