Posts from April 2010

Season of KDE 2009... and 2010!

Friday, April 30, 2010

At KDE, we benefit each year from new contributions and contributors thanks to Google Summer of Code™. However, we always have more great proposals from keen students than our allocation of projects from Google. Season of KDE (SoK) was set up in 2006 to provide some of the benefits of Google Summer of Code to those students whose projects did not get selected.

Season of KDE provides students with experienced mentors and a well defined project, just like Google Summer of Code. SoK does not provide payment to students, but as 2009 participant Nikhil Marathe puts it, "Open source happens because of passion and T-shirts, not money :)." Even so, even students have to eat and so SoK participants often have other jobs and can only work on their projects part time. As a result, SoK projects may have smaller scope than Google Summer of Code projects or happen over a longer period. KDE benefits from new additions to our software and our community, and students get a SoK t-shirt, a certificate, some Google goodies and a great experience. SoK can also be a springboard to future Google Summer of Code success, with several past SoK participants going on to secure Google Summer of Code acceptance. Equally, SoK has provided opportunities for students to continue a Google Summer of Code project from previous years.

In 2009 we had a lot of interest in Season of KDE and four students have successfully completed their projects. We asked them and their mentors about their experiences.

Nikhil Marathe was mentored by Google Summer of Code 2008 KDE student Martin Grässlin to bring window tiling features to the KDE window manager, KWin. An ICT student in India, Nikhil first became familiar with KDE software back in 2004. Having a dedicated mentor made becoming a contributor "a bit easier." Academic commitments slowed progress a little, but the project was a success and Nikhil believes that "If everything goes well tiling should be available by KDE Software Compilation 4.5" (due in July 2010). For Martin, flexibility is a nice feature of SoK as it allows the student to "take all the time needed to implement a great feature." He would like to see SoK style mentoring made available all year round, po barrier of entry for new contributors. Martin sees SoK as "a good chance to win a permanent developer."

Screencast of KWin window tiling

Nikhil is still contributing to KDE software and finds the community "very vibrant" and the KWin team "very friendly." He feels he gained personally from taking part: "My code reading skills improved tremendously - I understand new code much much faster due to the experience." Working as part of a team was also helpful: "The social skills experience was very valuable - I would say that the second most important reward from working on FOSS is the friends you make worldwide." Nikhil's proposal for Google Summer of Code 2010 was accepted so he will continue to work on KDE this summer.

Vera Lukman was mentored by Boudewijn Rempt on a project to develop a new pop-up palette for KDE's painting application, Krita. Having a quick selection widget for colors and brushes that pops up at the mouse position should make it easier for artists to quickly access commonly-used tools and colours. A student in Canada, Vera found out about KDE "by accident while browsing the list of organizations" for Google Summer of Code. Her first contributions to KDE came as part of SoK and working on Krita met her desire to "learn C++ and be a part of the development team of a painting application."

New popup palette providing quick access to colours and brushes in Krita

Vera's project objectives were completely realised during SoK and, from Boudewijn's point of view, Krita "gained a great contributor and a very useful feature." For Boudewijn, the flexibility provided by SoK is very useful: "We could have a break in development when school/mentor's job demanded that." It worked well for Vera who joined the other developers for a recent hacking sprint and has found that "working with great people encourages me to learn and contribute more to the project." Beyond KDE, SoK "opened a lot of opportunities," and she attributes her current internship position to taking part in the scheme.

Shaun Reich worked with Aaron Seigo and David Faure on displaying job progress in icons. As his high school never had a computer science or programming class, he explains that "everything that I know thus far is what I have learned on my own." First trying Linux around a year ago, Shaun didn't initially use KDE software but heard about it, gave it a go and was hooked. His project aimed to provide contextual information on running jobs within a file manager by modifying icons for items that are being moved, copied or deleted. This makes it less likely that the user will accidentally modify or delete a file that is in an active state.

Shaun continues to contribute: "I love coding for KDE - I dream of a day where I can have a career in it." Season of KDE gave him the chance to have a "closer relationship with developers, a lot more experience with the development process and some very useful intimacy with a lot of KDE code." Shaun's Google Summer of Code 2010 proposal was accepted so he doesn't have to worry about taking a summer job which will take time away from KDE development.

Our final participant, Gopala Krishna, is an Information Science Engineering student in India. He has been familiar with KDE software since the days of KDE 3 and has now experienced both Google Summer of Code and SoK. He made his first KDE contributions for Google Summer of Code in 2008 working on a project to draw Unified Modeling Language diagrams in KDE's Umbrello application using Qt 4's Graphics View framework. The size of the project meant he didn't complete everything, but Season of KDE 2009 gave him the perfect opportunity to finish off most of the outstanding features, mentored by KDE's Jonathan Riddell. For Gopala, taking part in SoK was "almost the same as doing the project as a part of Google Summer of Code" and he benefited from "extra attention, encouragement and motivation." While his studies have kept him busy for the last few months, he hopes to continue contributing to KDE when he has some free time.

Improved drawing in Umbrello as the result of Google Summer of Code and SoK projects

In summary, Season of KDE has proved a successful complement to our participation in Google Summer of Code. It allows us to help a greater number of new contributors take their first steps in hacking on KDE software and becoming integral parts of our team. While we cannot provide the financial support of a Google Summer of Code project, we can provide high quality mentoring and a friendly community and both students and mentors are able to arrange the projects to fit into their busy schedules.

KDE is participating in Google Summer of Code again in 2010 and we will also be launching Season of KDE 2010 to maximize the opportunities for new contributors to get closer to our community, improve our software, make friends and have a lot of fun. If you are interested in this opportunity please send an email to

Open-sourcing Traditional Chinese IME on Android

Thursday, April 29, 2010

Traditional Chinese IME on Android is a 20% IME project initiated in Google’s Taipei office and it is now open sourced on Google Code. It includes Zhuyin and Cangjie, two dominant input methods for Traditional Chinese users.
This project is based on the Android input method framework, like the open-sourced LatinIME, and its codebase is kept small, readable, and open source under an Apache license.

For people interested in building up a new input method over this project, see how ZhuyinIME and CangjieIME extend AbstractIME and create their respective Editor and WordDictionary subclasses to compose Traditional Chinese characters.

There is still much room for improvement, and we are currently working on two features:

1. How to support English suggestions without duplicating LatinIME data.
2. How to map Zhuyin’s 41 keys onto the QWERTY 26-key layout for hardware keyboard.

If you have comments or questions, please see android-traditional-chinese-ime and send them to us. Thanks!

This Year’s Google Summer of Code Students Announced!

Monday, April 26, 2010

Accepted students for Google Summer of Code™ have been announced! Congratulations to all the students accepted for this year’s program. We’re looking forward to a great summer.

If you would like more information on what’s coming up next for Google Summer of Code, check out our program timeline.

Growing Up with Samba

Friday, April 23, 2010

Next month Samba eXPerience 2010, the ninth international Samba conference for users and developers, will be held in Göttingen, Germany from May 3rd - 7th. Jeremy Allison, who works in the Google Open Source Programs Office, will be at the conference to hack on Samba and present his talk, “How to make a product with Samba” at 1:30 - 2:15 pm, Thursday May 6th (volcano ash permitting). His talk will cover the advantages and problems of using Samba in a storage product, and how to work with the Samba developer community.

The theme for this year’s conference is “Growing Up,” and Jeremy notes that at SambaXP 2010, “Microsoft engineers will be attending and giving a keynote at the conference for the second year running, which shows how important Microsoft now considers interoperability with Free Software projects.”

To get more of Jeremy’s thoughts on open source, you can read his columns or talk to him in Germany!

SCaLE, Google, and Open Source

Wednesday, April 21, 2010

Photo Credit: Solange Maffi

My name is Bruno Albuquerque, and I’m both a Googler and an open source contributor. This past February I left Brazil and went to Los Angeles to attend the 8th edition of the Southern California Linux Expo (SCaLE 8x). SCaLE is a yearly open source conference focused mainly around Linux, but it also includes other open source operating systems and it is a showcase for open source solutions. This was my third year there and this time I went to talk about my pet open-source project, Haiku, and about Google Summer of Code™.

Of the three times I have attended this event, this was definitely the biggest. The amount of people visiting the exposition floor was so impressive that the Haiku booth had to work really hard to cope with all the people. The same was also true for the other exhibitors.

A really nice thing about events like this, and one that probably goes unnoticed by most people, is the interaction between the open-source projects themselves. It is a pleasure to get together with people from other projects to exchange ideas. For instance, I had the pleasure of meeting Rob Savoye from the Gnash project and showing him Gnash running on Haiku. He was impressed by this work and it resulted in him integrating changes made by Adrian Panasiuk to Gnash’s repository.


The first talk I gave was about Haiku. It is nice to see that in a few years, we have gone from an obscure project to one that most people recognize. Part of our success is due to the many developers who worked hard to bring the project to its current state and who made it possible for us to release the first public version of it last year, but we also owe a lot to the user community that has supported us. Google Summer of Code also enabled us to advance the project further thanks to the funding it provides for students to work on open source projects.

This talk was about the recently released public version of Haiku, R1/Alpha 1, and what we will be doing from now on. The interaction with the audience was very interesting and most of them seemed excited about the prospect of a user-oriented open-source operating system.

The second talk was about Google Summer of Code. This was interesting for me because although I have participated as a mentor for the past several years, this was the first time I was on “the other side of the fence” and actually talking about the program as a Googler.

I was happy by how interested and excited the audience members were about Google Summer of Code; most of the audience either took part in previous years or plans take part this year!

People were also interested to know why Google does something like Google Summer of Code, which gave me a chance to talk about how Google uses a lot of open-source code (and also contributes a lot of code to the open-source community). Making sure there is a healthy open-source environment is a definite goal at Google.

In conclusion, taking part in an event like this makes me proud of being a member of an open-source project, but more that that, it makes me proud of being a Googler. A big percentage of the projects being demonstrated at SCaLE, including Haiku, have at some point benefited from Google Summer of Code.

Google Summer of Code 2010 Info Session at Universidade Estadual de Campinas –UNICAMP

Monday, April 19, 2010

There were about 70 attendees and the session lasted an hour and a half. The first 20-30 minutes were spent on presenting the GPSL FOSS Seminars Series, since this was the first talk of the series for this semester, and going through the official Google Summer of Code™ program slides. The speakers spent the last hour in an open chat with the attendees about their personal experiences with the program.

There were 8 speakers in total:
Bruno Cardoso Lopes — LLVM student 2007/2008/2009;
Eduardo Lima — BlueZ mentor 2008 and Maemo mentor 2009;
Gustavo Padovan — BlueZ student 2009;
Helder Ribeiro — Ruby Central student 2007 and ReviewBoard student 2009;
João Batista Corrêa Gomes Moreira — OSSIM student 2008 and NMAP student 2009; João Paulo Rechi Vita — BlueZ student 2008/2009;
Leonardo Piga — Xiph.Org student 2008;
Luis Felipe Strano Moraes — BBC student 2006 and Maemo admin/mentor 2009.

London OSJam 0x10

Wednesday, April 14, 2010

Photo credit: Dj Walker-Morgan

On Thursday the 1st of April we held the Google London Open Source Jam 0x10 (that is, the 17th). The Jams are informal meet-ups where people can present 5 minute lightning talks on all things open source-y, as well as network, eat free pizza, and drink free beer. The evenings usually have a theme, and this time it was "Open Source Building Blocks" - though as usual our talks strayed somewhat from this topic!

Our first three talks all hinged around web technologies. Ade Oshineye gave a talk on how simple technologies like HTTP and Atom are being used to create powerful publisher-subscriber models on the web. Dj Walker-Morgan presented Sinatra, a lightweight yet powerful Ruby web framework. Matt Godbolt - in an Open Source Jam scoop - demonstrated Quake II running in a browser, bringing together HTML5 technologies like WebGL and WebSockets.

The next two talks were more about soft skills and open source. Kuldip Reyatt gave a presentation on open source leadership skills - he is trying to bring together publicly-available training material and make it more discoverable. Sam Mbale gave an update on his work trying to bring the benefits of open source to Africa.

Photo Credit: adewale_oshineye

Bill Ray showed us some OpenGL ES demos on Android, and gave a quick run-through on how to set up the Android development environment, which he thinks "puts the pleasure back into programming.”

Douglas Squirrel presented an update on his work helping blind people. He demonstrated his ideas for connecting blind people with technical and other problems with sighted volunteers who can help transcribe screenshots and offer advice.

We were back on topic with Matt Ford's presentation on Raphael - a library for displaying SVG in a browser. He showed us a simple clock app he’d written on the way to the Jam. Next up, Joe Walnes and Neil Dunn did a tag-team presentation on WebSockets and how it could be used to implement a high performance, thin-client, model-view-controller system.

Glyn Wintle made an impassioned plea on behalf of the Open Rights Group for us to write to our MPs about the UK's controversial Digital Economy Bill.

Photo Credit: adewale_oshineye

Finally we ended with Jag demonstrating his amazing DIN digital instrument and how he was experimenting with collaborative music by allowing it to be controlled through an IRC bot, letting the audience join in and manipulate the sound as he played.

This time around there were more talks than we had time available so as usual, we all retired to the pub around the corner to discuss further. Another successful Jam!

Google at the Linux Foundation Collaboration Summit

Tuesday, April 13, 2010

This week several Googlers will be speaking at the the Linux Foundation Collaboration Summit in San Francisco, CA. This event is an “invitation-only summit gathering core kernel developers, distribution maintainers, ISVs, end users, system vendors and other community organizations for plenary sessions and workgroup meetings to meet face-to-face to tackle and solve the most pressing issues facing Linux today.”

Open Source Program Manager Chris DiBona will be presenting a keynote on Wednesday the 14th from 4:45 to 5:15 pm about Patches, Projects, Platforms, Kernels and Forks.

Earlier that day, Andrew Morton, co-maintainer of the Ext3 file system and the journaling layer for block devices (JBD), will be on a panel from 2:00 to 2:45 pm discussing "The Linux Kernel: What's Next.”

Later in the week, Salmon Qazi, Google Software Engineer, will be giving a talk in the “Green Linux” track about Power Capping through Idle Cycle Injection.

Following that, Michael Rubin, who focuses on Linux file systems and Google data centers, will speak at a panel discussion 10:45 am, Friday, April 16th, on Choosing a Linux File System For Your Needs.

Last but not least, Ian Lance Taylor, who works on the Go programming language at Google, will talk about The GNU Gold Linker, also at at 10:45 am, Friday, April 16th.

Registration for the event is full but live video streaming is available on Wednesday so make sure to tune in and get the latest on the future of Linux.

Google Summer of Code Student Applications Now Closed!

Monday, April 12, 2010

Our application deadline for student applications to Google Summer of Code™ has now passed. Thank you to all the students who applied this year! We got 5,539 proposals in all.

If you are a student waiting to find out if you will be accepted into the program, be sure to check out the Google Summer of Code site on April 26 at 19:00 UTC for the announcements.

Our community bonding period starts right after announcements are made, and then, as mentioned in our timeline, coding officially starts on May 24. Good luck to all the applicants we got this year, and we’re looking forward to a great summer!

Interesting times for Video on the Web

Friday, April 9, 2010

If I told you that Google had helped fund an ARM code optimised version of the Theora video codec, most people’s reaction would be immediately to skip forward to the next blog entry. Audio and video codecs are the classic example of things that no one cares about, until they don’t work.

Ask most computer users what their preferred video codec is and they’ll look at you as if you asked what sort of motor they’d prefer in their washing machine. “We just want it to work!” they say. In this regard, it’s exactly the same for content creators and publishers. Every visitor to a website that can’t view a video is one set of eyeballs less for a message to get through to. It doesn’t matter how clever the advertising is, how much time is spent honing the message or how many clever viral tricks are deployed to attract surfers to the site, the moment the page opens up with a big blank box where the content should be, all that has been in vain.

So, publish video so it plays back on everything

Nice idea - but far from simple to achieve. At the moment there is no standard way to deploy video on the web. Some sites use Flash, but this restricts them to a viewing audience that have Flash players, instantly excluding most phones. Some use embedded Java players, but this restricts you to a viewing audience running on powerful enough devices to be able to decode video and audio in a virtual machine, excluding anything slower than a laptop. Still others rely on embedded native players (such as Windows Media Player), excluding every platform other than the intended one. Finally some sites just offer videos as links and farm the job out to whatever video playing software the user has (hopefully!) installed on his machine.

None of these meets the seamless “it just works” goal - and none of them looks like it will ever do so in future. Like it or not, the profusion of different web access devices out there means that this is only going to get harder and harder. Once it was enough to make sure your video was viewable on both PCs and Macs. Now you have Android, ChromeOS, iPhoneOS, Linux, Maemo, Symbian and umpteen others. Not only that, you have to cope with a range of processing powers, from desktops to laptops, to netbooks, PDAs and phones. The problem is exploding, not shrinking.

Fortunately, there is some good news in the form of HTML 5. This new version of HTML (the basic language used to write webpages) introduces a video element.

This will allow people to write their websites specifying the appearance of videos in a standard way. How the individual browsers choose to implement the playback is then up to them - whether they handle movies themselves or farm them out to embedded/external players is a decision made by the viewer, not forced back onto the content creator. The even better news is that support for this is already arriving - Firefox, Opera, Chrome, and Safari have already rolled out HTML 5 support and other browsers won’t be far behind.

So, problem solved?

Well, sadly, no. Having a consistent way of publishing video is a great start, but there is still the issue of what format to use. There is no “one size fits all”. Are we surfing the site on a phone with a small screen? Or with a netbook? A desktop? Or on our new 150 inch QuadHD 3D LCD TV? Screen size, connection size and processing power all affect the decision here. In the same way that we’ve seen home video quality improve from VHS to DVD to BluRay, video on the web is going to get better and better. And that’s fine: existing web server technologies can tailor the video tags used to the browser/devices in use.

What is clear though, is that we need a baseline to work from - one standard format that (if all else fails) everything can fall back to. This doesn’t need to be the most complex format, or the most advertised format, or even the format with the most companies involved in its creation. All it needs to do is to be available, everywhere. The codec in the frame for this is Ogg Theora, a spin off of the VP3 codec released into the wild by On2 a couple of years ago. It scores quite well on both the quality and compression fronts, standing up respectably against it’s more popular rivals such as MPEG4, while actually being much simpler to decode. The overwhelming feature that makes it stand out from its rivals is the fact it’s free. Really free. Not just “free to use in decoders," or “free to use if you agree to this complicated license agreement," but really, honestly, genuinely, 100% free. The specification for the stream and encoder/decoder source is available for public download and can be freely used/modified by anyone. Theora was designed and is maintained with the overriding goal of avoiding patents. No other codec can come even close to claiming to be as patent or royalty free as Theora can, whilst still holding a candle to the alternatives.

So, what’s missing?

Video decode is a pretty CPU intensive task. In order to fulfill the dream of being able to work on every device some painstaking effort is required. The complexity of Theora is considerably less than that of many of its peers; other codecs often require dedicated hardware in devices to help achieve performance targets, but with careful coding Theora can be made to run without this. In fact, on desktop/laptops realtime decode can be managed by an embedded Java player (such as the excellent free Cortado), enabling video playback on browsers still waiting to have video tag support added. For the increasing range of PDAs, phones, netbooks, web tablets and media players out there though, this isn’t an option. Rather than having typical power hungry desktop processors in, these devices tend to be built using the much more frugal ARM processors. While these have increased in power in leaps and bounds in recent years, they still can’t compare with their larger cousins for raw computational grunt. These ARM based devices represent the single biggest class of devices still needing work for decent Theora playback. Any efficiency savings we can make feed back directly into being able to cope with larger screen sizes or giving longer battery life.

This is where Google's grant comes in - by helping fund the development of TheorARM (a free optimised ARM version of Theora), they are helping to hasten the day when video works everywhere on the web, for everyone. That’s got to be something to be pleased about. And now you can flick forward to the next blog post.

By Robin Watts, Pinknoise Productions Ltd

PyPy 1.2 Released

Tuesday, April 6, 2010

PyPy is a reimplementation of Python in Python, using advanced techniques to try to attain better performance than CPython. Many years of hard work have finally paid off. Our speed results often beat CPython, ranging from being slightly slower, to speedups of up to 2x on real application code, to speedups of up to 10x on small benchmarks. This post describes what we did on PyPy during the last year, leading up to those results.

In the spring of 2009 we completed an update of PyPy to support
Python version 2.5 with much appreciated financial support from Google. Most of the work on the update was done by Maciej Fijalkowski and Samuele Pedroni. While this work was in progress, Armin Rigo and Carl Friedrich Bolz were hard at work rebuilding the framework of the Just In Time compiler (JIT). The old framework, using techniques based on Partial Evaluation, only gave good results in constrained cases, but it would usually generate far too much code for Python. It was time to do more research from scratch. What we discovered was that the techniques typical of Tracing JIT compilers better suit the optimization of dynamic languages than techniques based on Partial Evaluation. However, we still follow our original meta-programming approach and remain convinced that writing a JIT compiler generator is more promising than the typical hand-coding of a JIT compiler for a particular interpreter. In other words, like in the original attempt, we get a JIT compiler that is not tied to Python but is generated from the source code of any interpreter for any dynamic language. If you are interested in the details, there is a very approachable paper about it, along with various blog posts.

During the autumn we applied and refined the JIT framework, added more optimisations and wrote a code generator for the x86 CPU family. In the early stages we could get good speed only at the price of huge memory consumption, but much work was spent addressing this problem. We have now reached a point where memory consumption is usually reasonable, but it is the nature of JIT compilers to trade some memory for speed. We began work using the benchmarks from The Great Computer Language Benchmarks Game to identify some problem areas. We have another blog post about our work in this area for the curious. Thanks go to Andrew Mahone who ported many of the Alioth benchmarks for our use. We also did some work on benchmarks that behave more like actual applications. The Django templating engine is twice as fast, and Twisted benchmarks are up to 2.85 as fast. For details, see our progress reports from the blog. While the results on a substantial number of benchmarks are really good, there is a lot more to do. We still have spots where performance is fairly bad, for instance our regular expression engine and the handling of generators. We have ideas about how to improve this and we have a list of further optimisations that could be performed.

The largest issue preventing users from adopting PyPy is the lack of extension modules. In addition to his constant efforts in making sure that PyPy runs on the Windows platform, Amaury Forgeot d'Arc has managed to port Oracle bindings to PyPy, while Alexander Schremmer has worked out a way to use the Remote Procedure Call library RPyC to use CPython extension modules with PyPy. Alexanders' goal was to get PyQt to run with PyPy and he was quite successful (apart from some bugs with PyQt itself), which you can read about on our blog. We also had Benjamin Peterson single-handledly rewrite our previously slow and problem-ridden Python parser, which now is much leaner and meaner. It is beta software, in the sense that it may speed up your applications significantly or not at all. We will need your help finding the odd quirks that prevent your Python programs from running and help to spot the places where performance can be improved. More information can be found on the PyPy blog, at our website or on the #pypy IRC channel at

More Than Code, It's a Community Too!

Monday, April 5, 2010

Google Summer of Code alums John Britton and Robin Anil at Google's Bangalore office

My name is
John Britton, and in 2008 I was a participant in the Google Summer of Code™ program where I worked on a web based localization server for Gallery. In addition to marking my first commit to an open source project, Google Summer of Code helped steer me down a path of Openness. Since my completion of the program, I've gone on to organize two Open Everything events (Hong Kong and New York) and started a career in Open Education. Thanks Google!

Open source software communities are global, and Google Summer of Code is no exception. I'll be frank, I'm addicted to travel. I've been to 30+ countries in the past three years and have no intention of slowing down. This is a story of the cross between my love of travel and the global reach of the Google Summer of Code community.

In February I took a trip to India, and prior to my departure I sent an email announcing my travel to the Google-SOC-Meetups mailing list. The Meetups mailing list is usually reserved for announcing and planning FLOSS events. In my case, I just wanted some travel recommendations and the possibility of meeting a few Google Summer of Code alums in India. To my surprise the response I received was overwhelmingly positive. Former participants from all around the country (and neighboring countries) invited me with open arms to their cities, campuses, and homes. Unfortunately I didn't have time to visit everyone who offered to meet, but I did get a chance to visit a few.

In Bangalore, I met two fellow Google Summer of Code alums: Robin Anil (2008 & 2009, Apache Mahout) and Rajan Vaish (2009, Open Street Map). They both welcomed me to their city and were happy to share tips on how to get around and what I should do. Both Robin and Rajan are still active contributors to the projects they worked on during Google Summer of Code and were very passionate about sharing. Needless to say, we geeked out quite a bit as we talked about the intricate details of our respective projects. They brought me up to speed on upcoming cultural events like Holi. I shared my recent work at Peer 2 Peer University (P2PU) and got feedback and input on my totally open and free course Mashing Up the Open Web. Robin is now an engineer at Google's Bangalore office working on Google Map Maker. He was kind enough to invite me to the office for a tour, free lunch, and a chance to talk tech with some other Googlers.

I don't know what I was expecting when I sent that email to the Meetups list, but I'm happy I did. I plan to continue meeting Google Summer of Code participants as I travel around the world and hope to welcome fellow participants traveling to New York City. We're a very strong community and I proud to be a part of it.

Editor’s Note: Reminder! The deadline for 2010 Google Summer of Code Student Applications is this Friday, April 9th.

OGRE’s Latest Release Features Google Summer of Code Projects

Friday, April 2, 2010

OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce applications utilising hardware-accelerated 3D graphics. OGRE has taken part in Google Summer of Code™ since 2006, and every year it's been a valuable learning process for our mentors and organisers as well as the students themselves. 2009 was our most high-profile year by far, despite the fact that we intentionally took on fewer students, because those we did accept this year were of truly amazing quality.

Assaf Raman mentored Noam Gat (aka 'Noman' in our community), who also participated in Google Summer of Code in 2008 and has been an active member of our community for a while now. He did some stellar work on improving the convenience of using various deferred shading approaches in OGRE, and as a result was approached by, a leading online community for game developers, after the summer to write an article on it; his article has been featured on the front page for a few days now. We're all very proud of what Noam's achieved both over the summer and outside it, and he's now officially joined the core team.

Brian Johnstone, a former Google Summer of Code student who went on to become a mentor (he was a student in 2007), guided Zi Ye (aka 'omniter') in 2009, and his work has also been hugely successful; his project was a unified samples framework to replace our ageing collection of demos, and he vastly exceeded even our high expectations. Not only did he produce a fantastic new framework and browser for all our samples, he created a new GUI system from scratch designed specifically to make samples easier to write, created new, more attractive versions of most of the demos, and even created some 3d models as a bonus (outside of the program). He also came up with the idea of making a weekly narrated video of his progress to share with the community which was hugely popular.

Google Summer of Code continues to help drive OGRE forward, and in particular has been a valuable source of new developer talent, while also giving students an interesting and hopefully educational way to spend their summer. Everybody wins! The OGRE Team would like to offer our thanks to Google for running this truly remarkable programme.

By Steve ’sinbad’ Streeting, OGRE team lead, and Assaf Raman, OGRE core team member

Google Annotations Gallery

Thursday, April 1, 2010

The Google Annotations Gallery is an exciting new Java open source library that provides a rich set of annotations for developers to express themselves. Do you find the standard Java annotations dry and lackluster? Have you ever resorted to leaving messages to fellow developers with the @Deprecated annotation? Wouldn't you rather leave a @LOL or @Facepalm instead? If so, then this is gallery for you.

Not only can you leave expressive remarks in your code, you can use these annotations to draw attention to your poetic endeavors. How many times have you written a palindromic or synechdochal line of code and wished you could annotate it for future readers to admire? Look no further than @Palindrome and @Synechdoche.

But wait, there's more. The Google Annotations Gallery comes complete with dynamic bytecode instrumentation. By using the gag-agent.jar Java agent, you can have your annotations behavior-enforced at runtime. For example, if you want to ensure that a method parameter is non-zero, try @ThisHadBetterNotBe(Property.ZERO). Want to completely inhibit a method's implementation? Try @Noop.

If we've whet your appetite for truly expressive annotations, then read on and immerse yourself in the Google Annotations Gallery.

By Leo Deegan, Software Engineering Team

Update: Happy April Fool's Day!