opensource.google.com

Menu

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!

ipaddr.py: 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 ipaddr.py, 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!
.