opensource.google.com

Menu
Showing posts with label BSD. Show all posts
Showing posts with label BSD. Show all posts

Hot weather, cool code: July Unix User's Group meeting

Tuesday, July 15, 2014

Unigroup is the oldest and largest Unix User's Group (Unix/Linux/BSD) serving the Greater New York City Regional Area. It has been serving the NYC Unix/BSD Community for over 30 years, and the NYC Linux Community for over 20 years.

Unigroup organizes monthly meetings, each of which contains a main presentation on a wide variety of topics. In this month's event, happening on Thursday, July 17th, 2014, I will present the FreeBSD Test Suite and its backing testing framework, Kyua, both of which are supported by the Google Open Source Programs Office.

Today's blog post features the key concepts behind the FreeBSD Test Suite and what you can expect from Thursday’s meeting. If you are attending, please do not forget to RSVP by July 17th!

The FreeBSD Test Suite
FreeBSD is a Unix-like, free, general purpose operating system with a large codebase — over 5 million lines according to Ohloh. In order to easily ascertain the quality of the system and to ensure that such quality does not regress over time, the foundations of a test suite and a collection of tests were needed.

With funding from a Google Summer of Code project in 2007, I got involved in writing a test suite framework for NetBSD known as ATF, parts of which were rewritten under the Kyua project name starting in 2010. Both ATF and Kyua have always been standalone components able to work on any Unix-like operating system. Until recently, NetBSD was the major consumer of these testing tools, but in 2013 they spilled into FreeBSD to equip the system with its own test suite.

The goals of the FreeBSD Test Suite are to assist developers in modifying the system, to assist end users in validating that the system works according to documented expectations, and to assist the release engineering team in vetting new releases and to put the shiny-new Kyua framework to use in a production-quality project.

Currently, the FreeBSD Test Suite is part of both FreeBSD 11.0-CURRENT (the development branch) and of stable/10 (the stable branch that will yield 10.1-RELEASE). The test suite currently holds about 570 test cases — a pretty small number considering its scope, but decent enough given that the test suite foundations are still under active development.

Kyua: the test suite glue
Kyua is a runtime engine for test suites, mostly engineered towards testing operating systems. In general terms, a test suite defines the layout of its test programs and its test cases using a declarative language that Kyua is in charge of. Based on this definition, Kyua allows to execute the tests in a controlled environment and to generate user-friendly and machine-parseable reports of the results. Continuous integration facilities are left to better-suited third-party systems such as Jenkins.

Kyua is able to run test programs implemented in a variety of languages with support for various different testing libraries. In particular, Kyua can run ATF-based test programs (written in either C, C++ or POSIX shell), legacy test programs (those that just exit with 0 or 1 depending on the test's success), and TAP-compliant test programs. It should be possible, and is in fact planned, to support other backends like GoogleTest.

The upcoming talk
In Thursday’s meeting, I will be presenting all of the above and much, much more.

The session will start with a bit of history about my involvement with the BSDs. I’ll talk about the goals of the FreeBSD Test Suite while comparing those with its NetBSD counterpart, presenting the Kyua project, outlining the current state of the test suite, showcasing Jenkins and possibly performing some live demonstrations. Expect code samples.

If you happen to be in the New York City area on the 17th, RSVP and join us for the session!

By Julio Merino, Google Site Reliability Engineering

BSDCan 2012 - "The technical BSD conference"

Thursday, May 31, 2012

As opposed to what? The *non*-technical conference for people who write operating systems in their free time? :-) Anyway, it turned out mostly true.  It was my first BSDCan and it was very focused on actually developing BSD systems, as opposed to other conferences that have more of an emphasis on deploying BSD.

It was a very full several days: too much to cover here, but I want to call out several great talks.

Locking mechanisms
My first talk was Kirk McKusick's overview of locking in the FreeBSD kernel.  It wasn't about what to lock when, it was an overview of the different locking mechanisms in FreeBSD, all 7 of them.  I really liked what I heard, finally some place where spinning is still considered cool under the right circumstances. The talk covered lending out higher priorities that a waiting thread might have to a thread holding a lock the waiter wants, lock order and detecting violations thereof and went off to describe the various more and much more featureful kinds of locks in the kernel today. Highly relevant even for those not working on a BSD, but it makes us who are stuck in userland sad.

ZFS
Now I know where my RAM goes. Holy cow. Big webs of buffers. Lots of data structures.  Lots of aggressive readahead and other speculative reads (prime example is for contiguous writes which are interrupted by synchronous reads of metadata for block allocation information, so why not preemptively read all this stuff?).  Buffer duplication, some for good reasons (new buffers for zRAID splits), some for bad reasons (underdeveloped). I’m still not sure how out of sync the view of a mmap'ed file wrt the view that read/write/seek presents is (reminds me of the early Mach VM). The whole session pointed out repeatedly how much emphasis they put on keeping "all parts of the system as saturated as possible". Interesting that much of this work and other work presented was happening in some form of Hypervisor (in this case XEN).

Consumer router products
My friend Stefan Bethke gave a talk about his work to make FreeBSD work on various consumer router products. Think OpenWRT but BSD based. Much of the talk described how the devices in these routers are mostly in a tree but the vendors made some things very odd which led to a bunch of circular dependencies in the device structure, preventing regular driver startup. Stefan was forced to experiment with various schemes of proxy device drivers that get all the ducks in a row before the actual drivers find everything they need. Much cheering from the embedded crowd ensued.

Recent IPv6 security 
The main takeaway was that there is a serious problem in IPv6 resulting from packet fragmentation potentially dividing a packet within the header which then of course makes firewalls and other packet inspection mechanisms unable to find out what's going on.

My main takeaways:
- Hypervisors of some form are making it into all kinds of systems and environments.
- Don't buy systems that can't take registered RAM in a bazillion sockets.
- Huge amounts of data are "in flight" these days, both network and disk.
- Testing on systems with single memory banks will be useless soon.
- Flash memory and methods of dealing with its problems are a hot topic. It looks like people decided to tank through the problems and not wait for better storage cells.

By Martin Cracauer, Programmer, QPX, ITA Software by Google

FreeBSD’s Summer Highlights

Wednesday, September 15, 2010

FreeBSD is a modern open source operating system for servers, desktops, and embedded systems, based on over 30 years of continuous development. The FreeBSD Project has participated as a mentoring organization in Google Summer of Code each year since the program’s inception in 2005. This year, FreeBSD mentored 18 students with a final success rate of 89%. The cumulative total over 6 years has been 117 students improving FreeBSD. This participation in the program has brought many new features into FreeBSD, several new long-term committers to the project, and many of the former students have by now joined some of the mentors as colleagues at their respective companies.

A complete list of FreeBSD Projects is available from the wiki, but I wanted to select a small number of the many successful projects to showcase here.
Efstratios Karatzas's project extended the FreeBSD NFS server to support security auditing (logging) of client activity -- before his work, as with most systems out there, FreeBSD logged only local file system activity. This work is valuable and timely: FreeBSD is used widely as a file server, as well as being the foundation OS for numerous storage products including NetApp, Isilon, Panasas, and the open source FreeNAS. We look forward to shipping this feature in FreeBSD 9.0, as the patches mature, as well as seeing Efstratios at EuroBSDCon in Karlsruhe this autumn!

Zheng Liu spent the summer working with veteran FreeBSD kernel hacker John Baldwin on enhancing FreeBSD’s ext2fs to support preallocation and implementing read-only support for ext4 file systems. This was a particularly challenging project and Zheng Liu’s efforts at benchmarking his new implementation and documenting his work were particularly appreciated. This work will likely be included in an upcoming FreeBSD release.

David Forsythe returned to the Google Summer of Code program this year to work on developing a robust library with a clean API to manage FreeBSD packages. The goal is to abstract out some of the capabilities used in the current package tools into a library so they can be easily reused by new tools. David has even started assembling some replacements for the existing package tools implemented on top of his new library, and did a great job coordinating with other students and developers working in this area over the summer.
As usual our mentors are looking forward to continuing to work with their students to leverage all the great work that was done this summer, and to working with new contributors on exciting projects in operating systems, networking, and security research throughout the year.

Thanks to FreeBSD Administrators Robert Watson, Brooks Davis, and Tim Kientzle for helping to put together this post, and to all the other FreeBSD Mentors for helping run another successful Google Summer of Code for the FreeBSD Project.

By Murray Stokely, Software Engineering Team

BSDCan through the years

Monday, August 9, 2010

I’m Kirk Russell, a Google Site Reliability Engineer who moves files around the cloud at a massive scale. I use BSD software on a daily basis -- in my Android phone, my home NAS and my MacBook. My newest toy is a small ARM board that runs FreeBSD.

Earlier this year I attended BSDCan, a software conference for BSD based operating system projects. I attended this conference to learn about new BSD technology that will someday become part of my daily life and to meet people with similar interests -- there is time to chat in-between the scheduled talks and in the pub. BSDCan is a conference where I learn about new development that I can put to use both at work and at home. Learning these things from the original developers makes it that much more interesting.

Here is a quick reflection on some highlights of past conferences:
In 2004, I attended Ryan McBride's talk about PF, a BSD licensed packet filter.

In 2005, I learned about spamd at a talk from Bob Beck. After the conference, I deployed spamd at home -- my spam count dropped to almost zero. Spamd uses PF to block spam at the IP level. This saves resources on your server because you do not actually receive the mail. Adding packet filtering features to the base operating system has enabled new applicaitions, like spamd, to develop.

In 2006, I attended the Debugging Kernel Problems tutorial (PDF) given by Greg Lehey-- I continue to use these debugging tricks when debugging FreeBSD kernels today.

I attended Pawel Dawidek's ZFS talk in 2007. Today I use FreeBSD/ZFS on my home NAS -- I wouldn't think of running my NAS without the features of ZFS. I want my data to have data corruption detection. It is fantastic that a production filesystem can work in my tiny NAS! In 2007 I also saw the brilliant Poisonous People talk by Brian Fitzpatrick and Ben Collins-Sussman. Part of this talk is about avoiding bikeshedding -- it was funny to watch when Fitz and Ben realized that Poul-Henning Kamp, the author of the original bikeshed email, was attending their talk.

2009 was a good year for NetBSD and filesystems. There was a talk about WAPBL a journaling filesystem in the NetBSD tree and RUMP -- a framework that allows NetBSD kernel filesystem code to execute in user space.

2010 showed BSD continuing to be used as a platform for OS research. Kirk McKusick's new Journaled Soft-Update improvements now allows fsck in a few seconds, instead of hours.
The BSD community continues to produce exciting software that can be used in small gadgets and production servers and BSDCan continues to be a fantastic venue to meet the people behind the scenes. Congrats to Dan and his team to volunteers -- I am looking forward to 2011.

By Kirk Russell, Site Reliability Team

Report from EuroBSDCon 2009

Friday, October 2, 2009

I'm no stranger to EuroBSDCon. After attending several very successful conferences in the US, three FreeBSD contributors and I decided that Europe needed a BSD conference too. In November 2001 we were proud to host 160 or so delegates in the first European BSD Conference. Over the last couple of years I haven't been able to keep as up to date with the latest developments in the BSD world, so I was very interested to attend EuroBSDCon 2009, organised in collaboration with the UK Unix User Group.

With the conference split in to several tracks it was impossible to attend every talk, so I decided to focus primarily on those that talked about how BSD systems were helping people solve problems in the real world. Links to all the papers, slides, and in some cases audio from the presentations can be found at conference schedule page.

The first talk I attended was "How FreeBSD Finds Oil," given by Harrison Grundy. Harrison runs a consultancy company in the US providing clustered computing systems to oil and gas companies.

From EuroBSDCon 2009

He started with a run through of the economics of oil and gas exploration. It quickly became clear that the "Free" in "FreeBSD" is of no concern to these companies, as software licensing costs are such a tiny part of their overall expense. Features like stability and performance are far more important -- his customers frequently run lengthy computational jobs over terabytes of data. This is somewhat similar to what we do at Google, although obviously the data is very different. I asked whether the industry was moving in the direction of technologies like Hadoop (an open source implementation of MapReduce) but for the moment, at least, the answer seems to be no. "It's not broken, so why fix it?" appearing to be the prevailing view.

Next was Konrad Heuer, talking about "FreeBSD in a complex environment." Here he described some lessons learned from running a heterogeneous environment of systems - FreeBSD, Linux, Windows, Solaris, and issues that they faced and benefits they saw with FreeBSD. Chief amongst those benefits seemed to be the commitment by the project to continue to support APIs and higher level interfaces. Their print services have run on FreeBSD for more than 10 years, with very few modifications required. The biggest issue seemed to be commercial support; he described a number of hacks required to be able to use Tivoli Storage Manager (which they use on their other systems) to also back up their FreeBSD systems. In the discussion that followed there was a suggestion to create a mechanism where people could register things like this, so that vendors realise that many of their Linux sales are actually BSD sales, and have more incentive to create a native version of the application.

Peter Losher from the Internet Systems Consortium presented next. The ISC is a non-profit organisation that has, for years, developed, or funded the development of much of the core software the "runs" the Internet, including the DNS server BIND, and DHCP server software. ISC also provides hosting, connectivity, and mirroring services for several open source projects, including many of the BSDs. Peter talked in some detail about the mechanisms used to make the F root DNS server highly available, and features in FreeBSD that make this possible. He also talked a little about IPv6, and new features in DHCP v4.x to support IPv61.

After the lunch break Kirk McKusick talked about Superpage support in FreeBSD. He was quick to point out that he'd had no hand in the work himself, and was describing work carried out by Alan Cox et al as a result of their 2002 paper on superpages. Superpages are a method for solving a bottleneck in modern architectures.

From EuroBSDCon 2009

Right at the top of the memory access hierarchy is the Translation Lookaside Buffer, or TLB. The TLB is used to cache the mapping between page virtual addresses to page physical addresses, but has not grown in size at the same rate as available main memory has grown. A common maximum size is 1MB, which, when your page size is 4K, only allows for 4MB worth of virtual addresses to be in the TLB at any one time. With high-end systems these days approaching 32 or even 64GB of RAM, and typical working set sizes being much higher than 4MB the TLB undergoes significant churn. The solution is to use a page size that's larger than 4K -- a superpage. Some architectures have support for many different page sizes. The i386 architecture however is limited to either 4K or 2MB. A 2MB page size would allow the TLB to cache mappings for 2GB of RAM, and provide a large speed improvement to any program that processes a significant amount of data. Kirk went on to describe the work that Alan and others have done to implement superpage support on FreeBSD, and the heuristics the system uses to determine whether to collapse a 2MB contiguous chunk of RAM in to a superpage. He presented benchmark results that show superpages providing somewhere between a ~ 15 - 600% (!) speed improvement under typical workloads.

The next session was Chris Buechler giving an introduction to pfsense, and an overview of what new features will be in the upcoming 2.0 releases. pfsense is a FreeBSD distribution designed to run as an embedded firewall or router, although that description barely covers its capabilities. Amongst other things the 2.0 code includes is a major overhaul of the configuration UI, generalisation of interface support so that pfsense now works with any number of interfaces rather than 3, numerous new networking technologies, and an easy way to provide additional functionality via packages instead of bloating the base system.

Stanislav Sedov then described work that he had undertaken to build an embedded GPS navigation and tracking device designed to be deployed in harsh industrial environments. This included porting FreeBSD to an Atmel AT91RM9200 CPU, improving the device's bootloader support so it could boot from UFS, reducing the size of the image, and providing support for reliable in-the-field upgrades.

The final session of the day was an invited talk from Dr. Richard Clayton on the theme of "Evil on the Internet". I was fortunate enough to see Dr. Clayton give a version of this talk at Google about 18 months ago. Since then he's updated it to cover more examples of how people are using the internet to phish, scam, defraud, and otherwise attempt to part people from their money.

Sunday I joined the first session of the second track, an introduction to mfsBSD, a toolset to create memory filesystem based FreeBSD distributions. Martin Matuška explained his motivations behind the project, which was to find an easy way to replace Linux in the ISP-hosted environment he was using, but mfsBSD can now be used to make upgrades easier, provide a rescue partition, a USB bootable install of FreeBSD, and so on.

From EuroBSDCon 2009

Next was Brooks Davis, presenting a roundup of the results of FreeBSD's participation in the 2009 Google Summer of Code. Of the 20 FreeBSD projects that were accepted as part of Summer of Code, 17 were successful. These included efforts that improved the performance of the ipfw firewall code, introduced support for stackable cryptographic filesystems, and enhanced the infrastructure for tracking software licenses in the ports tree, making it easier for users and distributors to ensure that they are using software that complies with their local licensing requirements.

From EuroBSDCon 2009

Alastair Crooks followed this with a discussion of his work on netPGP, a BSD licensed implementation of PGP that is configuration-compatible with gnuPG. As well as covering the ins and outs of the work Alastair's presentation was notable for employing some truly terrible (but memorable) visual puns. I was groaning too much through them to take pictures, but if I tell you that the slide titled "Use Cases" had as the accompanying illustration a picture of some sheep next to some hat boxes you might get an idea. Must have worked though, since I can still remember the slides.

Kris Moore from iXSystems then demonstrated the work that they've been doing on the PC-BSD distribution of FreeBSD. Apart from making the installation process considerably simpler and improving the initial user experience they've also developed an alternative binary package mechanism, which they call PBI. The PBI format works to avoid problems caused by upgrades to shared libraries that should be backwards compatible but aren't, and does this by bundling a copy of all the shared libraries required by the application in to the package directory, making each installed package completely self-contained and upgradeable without interfering with any other applications that are installed.

The "state of BSD" sessions at these conferences are always entertaining, and this year was no exception. Alastair Crooks for NetBSD, Owain Ainsworth and Henning Brauer for OpenBSD, and George Neville-Neil for FreeBSD presented updates on the current state and future plans of each of these systems.

From EuroBSDCon 2009

EuroBSDCon concluded with a number of lightning talks covering various works in progress (or WIPs), both large and small. The most interesting, for me, was the update by Pawel Jakub Dawidek on the state of ZFS support in FreeBSD. This is something that was just coming to FreeBSD around the time that I was running out of time to pay attention on a day-to-day basis. Since then support for ZFS has improved tremendously, and probably the comment I heard most repeatedly at the conference was how useful people are finding it.

And with that, the conference closed. Organizers were thanked, and delegates prepared themselves for the journey home.

1 The irony of v4 of the software being the first to support IPv6 is not lost on them.

By Nik Clayton, Site Reliability Engineer


O BSDCanada!

Thursday, May 7, 2009

BSDCan 2009, an annual BSD conference at the University of Ottawa in Ontario, Canada will be held this year on May 8th and 9th, 2009. The Open Source Team's Leslie Hawthorn and Cat Allman will be there to mingle with the Open Source community and present a talk on Getting Started in Free and Open Source on May 8th at 11 AM local time. This talk is a fantastic introduction to the Open Source community for those who are new and want to get involved. In addition, Open Source veterans will discover insights into the concerns of newbies and learn ways to improve retention and make their projects more welcoming. By running projects such as Google Summer of Code™ and the Google Highly Open Participation™ Contest, Leslie and Cat have gathered a huge amount of experience working with Open Source newcomers, and they are excited to share their knowledge with the rest of the community.

This will mark Google's third year at BSDCan, with Brian 'Fitz' Fitzpatrick and Ben Collins-Sussman speaking there in 2007 and Leslie presenting in 2008. If you are in the area, make sure to attend this year's talk, and feel free to say hello or introduce yourself afterward!

BSDers at the Googleplex

Wednesday, December 10, 2008



The meetBSD 2008 conference recently held at the Googleplex in Mountain View, California, USA brought together more than 150 users and developers of the various flavors of the BSD operating system. The conference featured some great speakers, including talks by Robert Watson, Philip Paeps, Kris Moore and many others. There was also a panel to discuss the Google Summer of Code™ program, hosted by Murray Stokely and Leslie Hawthorn of Google. They were joined on stage by former mentors and students from the FreeBSD and NetBSD projects to give an overview of the program, some of the amazing results, and some tips and stories about participating. Saturday's content wrapped up with impromptu breakout sessions to discuss PC-BSD, FreeBSD, security issues, and other topics.

After the first day of the conference, attendees were taken by bus to the Zen Buddha Lounge in Mountain View for a private party to celebrate the 15th Anniversary of the FreeBSD operating system. A great time was had by all and, like most birthday parties, this one included a cake! We went a step further though: our cake was shaped like the FreeBSD logo in 3D, complete with horns. Dr. Kirk McKusick had the honors of cutting the cake and handing out a few pieces.

Thanks to help from the Open Source Program Office at Google we were able to setup a new YouTube channel for technical BSD content, allowing us to upload high quality full hour-long videos of talks and tutorials from BSD Conferences. May of the talks from MeetBSD 2008 are already available, and videos from MeetBSD 2007 and NYCBSDCon 2008 have already been uploaded. You can view these videos at http://www.youtube.com/bsdconferences. You may also want to check out photos from the conference and aforementioned birthday party.

The main conference was followed by an invitation-only FreeBSD Developer Summit which was a great success. We had over 30 attendees from the FreeBSD Developer Community as well as engineers from Yahoo, NetApp, Isilon, QLogic, Huawei, Google, Juniper, Cisco, Facebook, ISC, Metaweb, and other technology companies using or looking at using FreeBSD. There were formal presentations on the first day, followed by less structured hacking during the second day. The agenda of talks for the first day is available here.



Hard at work at the FreeBSD Developer Summit
(photo credit: Murray Stokely)

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!

Open Source Googlers at Large

Monday, May 12, 2008

Cat Allman,

There is lots going on in May, starting this week with Connectathon in San Jose, California, USA from Thursday, May 8th through Thursday, May 15th. Samba guy Jeremy Allison will be taking part Monday - Thursday in this network proving ground which allows vendors to test their interoperability solutions, with special emphasis on NFS and Internet protocols.

On Wednesday, May 14th BSDCan, an annual gathering of 4.4BSD based operating systems developers, kicks off in Ottawa, Ontario, Canada with two days of tutorials, followed by 2 days of talks, including one by our own Leslie Hawthorn on Google Summer of Code
, currently under way for it's fourth year.

The Summer of Code goodness doesn't stop there: other past GSoCers also speaking include past mentors
Poul-Henning Kamp speaking on "Measured (almost) does Air Traffic Control", and Pawel Jakub Dawidek on the ZFS file system. Past student participant Constantine A. Murenin will be speaking on the past and present history of OpenBSD's hardware sensors framework, and Ivan Voras will be present on "finstall" - the new FreeBSD installer he's began working on as a Summer of Code project in 2007.

It shouldn't be too hard to find members of the Open Source Team if you're in San Jose or Ottawa over the next few days. Stop by, introduce yourself and let us know what's on your mind.

Ed. note: updated post with corrected typo.
.