opensource.google.com

Menu

Posts from March 2014

Introducing FarmHash

Monday, March 31, 2014

We’re pleased to announce the new FarmHash family of hash functions for strings.  FarmHash is a successor to CityHash, and includes many of the same tricks and techniques, several of them taken from Austin Appleby’s MurmurHash.

We’re heavily influenced by the types of CPUs that are common in Google’s datacenters, but FarmHash’s goals don’t end there. We want FarmHash to be fast and easy for developers to use in phones, tablets, and PCs too. So, yes, we’ve improved on CityHash64 and CityHash32 and so on.  But we’re also catering to the case where you simply want a fast, robust hash function for hash tables, and it need not be the same on every platform. To that end, we provide sample code that has one interface harboring multiple platform-specific implementations.

Over time, we plan to expand FarmHash to include hash functions for integers, tuples, and other data. For now, it provides hash functions for strings, though some of the subroutines could be adapted to other uses.

Overall, we believe that FarmHash provides high-performance solutions to some classic problems. Please give it a try! Contributions and bug reports are most welcome.

By Geoff Pike, Software Engineer

Google Code-In 2013: RTEMS project report

Thursday, March 27, 2014

Today's post comes from RTEMS, an open source Real Time Operating System that supports a variety of open standard API’s. They have participated as a Google Code-in mentoring organization for the past 7 years.
RTEMS logo.png
Between November and early January, the RTEMS Project participated as one of ten mentoring organizations in the Google Code-in (GCI), a contest for pre-university students that encourages the involvement of students age 13-17 in open source communities.

During the seven week time-frame for GCI, RTEMS Project had 39 students complete 265 tasks under the tutelage of 15 mentors. That is an average of over five tasks per day! Many new students to RTEMS completed the Getting Started with RTEMS task, which provided both useful feedback about new users interested in working with RTEMS and prepared the students for hands-on programming work with our systems. We are proud of the efforts and accomplishments of all the students and grateful to the Google Open Source Programs Office, our mentors, organization administrators, and the open source community that helped support them along the way.

Below are descriptions of some of the more notable accomplishments that the students achieved in each of the five task categories: Code, Documentation/Training, Outreach/Research, Quality Assurance, and User Interface.

Code
  • C99 “restrict” keyword added to Newlib C Library for POSIX conformance.
  • Ported the Rhealstone Benchmark to RTEMS, now available in testsuites/rhealstone.
  • Refactored over a dozen BSPs to conform to guidelines determined by Vipul Nayyar’s GSoC 2013 project.
  • Refactored portions of the monolithic sp09 test case into new, finer-grained tests.
  • Created or fixed 9 POSIX timing tests.

Documentation / Training
  • Determined guidance for doxygen use in BSPs and added doxygen comments to about 40 BSPs.
  • Fixed documentation in the RTEMS POSIX user manual and in multiple test cases.

Outreach / Research
  • Created 2 video tutorials for Getting Started with RTEMS.
  • Updated the RTEMS wiki page up to date for the first time in six years (using references from Google Scholar).

Quality Assurance
  • Investigated and/or fixed over 20 bugs in the RTEMS Bugzilla.
  • User Interface
  • Updated the rtems-graphics-toolkit repository and fixed some bugs.

Thanks again to everyone involved in making GCI 2013 a successful one for RTEMS Project.

By Gedare Bloom, RTEMS Project Org Admin

Steel Bank Common Lisp wrap-up post: new Google Summer of Code org in 2013

Monday, March 24, 2014

Christophe Rhodes from Steel Bank Common Lisp, a high performance Common Lisp compiler, is today’s guest writer on the Google Open Source Blog. SBCL participated as a mentoring organization for the first time in Google Summer of Code 2013 and will join us again in 2014.
Google's call for organization proposals in the 2013 Summer of Code program spurred Steel Bank Common Lisp (SBCL) developers to organize their thoughts and come up project suggestions that could be reasonably achieved in the course of two to three months. The construction of the list was already a positive outcome, but SBCL being accepted into the 2013 program was a huge bonus, and allowed us to work with two students on two successful projects. Read more about them below:

Modernizing register allocation (student: Alexandra Barchunova, mentor: Paul Khuong)
Alexandra proposed to improve the register allocator in SBCL by implementing a classic algorithm known to perform well on practical C and Fortran programs.  Adapting that algorithm, on top of the pre-existing register allocation infrastructure, took the better part of the summer. It also helped fix bugs and suboptimalities in related support code.

Because register allocation is such a fiddly problem, the remainder of Alexandra’s project period was spent exploring various tweaks and parameterisation for the high level iterative colouring/spilling logic described by prior research.

The new allocator has been forward-ported and cleaned up, and it can hopefully be merged in the near future. Alexandra plans to keep working on the allocator, and we hope to see the result hit official SBCL by the end of the year. Her work is at https://github.com/abarch/sbcl.

Efficient interpretation (student: Matthias Benkard, mentor: Juho Snellman)
Matthias' project was to develop an efficient interpretation scheme for SBCL, starting from strategies such as Feeley's use of closures in code generation. The idea was to develop a fast compiler from Lisp code to an internal representation while performing minimal compilation on the way, as well as an efficient interpreter of this internal representation.  Matthias successfully developed these two components, and in addition, integrated this evaluation strategy into other parts of the Lisp environment.

Matthias did manage to give his mentor Juho some stress and strain — most notably by informing him, a week before the `pens-down date', that a substantially different approach was likely to have some benefits, and that he was going to go for it. Fortunately, he got there in time, and it certainly did have additional benefits!  Matthias' interpreter is benchmarked as being around 10 times faster than the simple s-expression interpreter, and all is looking promising for a merge into the mainline SBCL in the near future.  His code is available at https://github.com/benkard/sbcl.

It was a good summer for the SBCL team as a whole. Participation in GSoC has been a good morale boost as well as good general publicity for our organization.  And there's no shortage of challenging and fun projects left to tackle. We are also very excited to have been accepted as a mentoring organization for Google Summer of Code 2014!

By Christophe Rhodes, Org Admin for SBCL

Google Summer of Code: a celebration of India

Friday, March 21, 2014

The Google Open Source Programs team has been on a mighty adventure the past six months. To celebrate our 10th year of Google Summer of Code, we’ve visited 10 countries, flown over 50,000 miles, and met with hundreds (if not thousands!) of Google Summer of Code enthusiasts all over the globe. One of our last stops was India, which boasts the second largest amount of participants since the program inception in 2005.  Guest writer Sri Harsha Pamu shares his experience of the event below.

Google Summer of Code (GSoC) is quite an amazing program — it provides an opportunity for students to learn and contribute to free and open source software by working on real projects (and get paid for it!). To put it simply, GSoC is a ticket to the exciting journey of the Open Source world.

The Google Summer of Code program was announced very early, immediately after the GSoC 2013 program. Though I am not eligible to participate as a student for this year’s program, I am very excited to participate as a mentor for the National Resource for Network Biology (NRNB). When the Open Source Programs team at Google announced the stunning “10 things” initiative, I was thrilled to not only see India on the list of countries the team was visiting, but also honored to participate in the event. I was especially proud to learn that India stands second in the world in GSoC participation with 1042 students and 368 mentors since the program’s inception.

The event was held at the local Google office in Hyderabad on February 21. The room was filled with students and mentors from previous years of GSoC as well as several open source enthusiasts who came from all across India to attend this wonderful event. The evening kicked off with the presentation on GSoC by Google Open Source Programs Office team members, Stephanie Taylor and Cat Allman. They also spoke about the Google Code-in, their success with these initiatives, and what the team has planned for the future. Next, there were short talks by previous GSoC students who described their projects, the organizations they worked with and their personal experience as a GSoC’er. I was one of the speakers and was happy to share my work as a student with NRNB.

After the talks, there was a raffle for all the attendees.  One lucky student won a brand new Google Nexus 7 tablet. The evening wrapped up with a scrumptious dinner, knowledge sharing, photo sessions and tons of Google swag. The event was a phenomenal success.

I would like to thank the entire team of the Google Open Source Office for initiating such brilliant  programs which encourage student programmers to contribute to free and open source projects. I hope that there will be an exponential increase in the number of Indian student participants in the coming years!

Sri Harsha Pamu, NRNB 2013 GSoC Student

Open Source Release: LiquidFun 1.0

Tuesday, March 18, 2014

Last December we announced the initial release of LiquidFun, a C++ library that adds particle physics, including realistic fluid dynamics, to the open-source Box2D. Today, we’re excited to be releasing LiquidFun 1.0!

New features in this release include:
  • Multiple particle systems
  • New particle behaviors: barrier, static-pressure, and repulsive
  • Particle lifetimes
  • Detection of stuck particles
  • The ability to apply forces and impulses to particles
  • Java support via SWIG
  • A host of new demos: inside the existing Testbed application; and, a gorgeous new “EyeCandy” demo for Android
Download the latest release from our github page and join our discussion list!

Several Googlers made LiquidFun possible: Howard Berkey, Alice Ching, Wolff Dobson, Dave Friedman, Stewart Miles, Jason Sanmiya, Kentaro Suto, and Ali Tahiri.

By Dave Friedman, Fun Propulsion Labs*

*Fun Propulsion Labs is a team within Google that's dedicated to advancing gaming on Android and other platforms.

Progress in person: the 2014 Buildroot Developers Meeting

Monday, March 17, 2014

The Google Open Source Programs Office recently co-sponsored the annual Buildroot Developers Meeting at our office in Brussels, Belgium.  Read more about their meeting below.

On February 3rd and 4th, the Buildroot project held its Developers Meeting at the local Google offices in Brussels. Buildroot is a tool that allows users to build embedded Linux systems by cross-compiling all necessary libraries, applications, the cross- compilation toolchain itself, the Linux kernel and other useful components. Buildroot is used by numerous companies and hobbyists, including Google for the Google Fiber devices, by many processor vendors and embedded system makers. It’s simple — you tell Buildroot what you want in your embedded Linux system through a kernel-like "menuconfig" interface, hit "make", and voila! Your embedded Linux system is ready to run!

The Developers Meeting brought together 12 participants from countries all over the globe including Finland, France, the UK and the United States. Over the two day event, participants discussed hot topics and made key decisions for issues that prove difficult to discuss over mailing lists or IRC. We also worked on cleaning up the list of patches waiting to be integrated — a list that has grown significantly with the popularity of the project! Meeting physically not only allowed work to get done during the meeting, but also allowed contributors to get to know each other better.  We believe it will make our interactions online much more efficient in the future.

Join us at http://buildroot.org, or take a look at the detailed report of the meeting to learn more about our progress. Many thanks to our sponsors Google and Mind who made this meetup possible.

By Thomas Petazzoni, Buildroot Org Admin

Teaching the next generation to code: Young Coders at PyTennessee 2014

Wednesday, March 12, 2014

The Google Open Source team recently sponsored the PyTennessee conference in Nashville. Adam Fletcher, an Engineer at Google and today's guest blogger, volunteered at the conference and helped introduce Python to an enthusiastic group of students. 

On February 23rd & 24th the first PyTennessee took place in Nashville, Tennessee, and brought hundreds of pythonistas from all over the nation to learn about a diverse set of Python-related topics. On Saturday the 24th, PyTennessee ran a Young Coders event, based on a similar event that took place at the 2013 US PyCon. Google was proud to sponsor this event, providing funding for the Raspberry Pi computers the coders used throughout the day.
 Mayor of Nashville, Karl Dean, with the students

The Young Coders event introduced 25 new programmers, aged 12-18, to the world of Python by providing each student with a Raspberry Pi running Linux and a day of instruction in the Python programming language. Students were taught about the basic data types and control flow in Python in the morning and then spent the afternoon making and modifying games. When the event wrapped up the students got to take home their Raspberry Pi computers to continue their programming exploration at home. Additionally, the students each got a copy of Python For Kids, an excellent introductory book.
Raspberry Pi, the compact computer the students used to learn Python

Earlier in the day the Mayor of Nashville, Karl Dean, stopped by to learn about the Young Coders event and to talk to the students. Mayor Dean was excited about Nashville as a technology center; Nashville is one of the cities being evaluated for Google Fiber, and Google has selected Nashville as one of the Google for Entrepreneurs Tech Hub Network cities.

Later, the students used their newfound Python knowledge to modify various games. Students altered the startup screen, changed the frame rates, modified the fundamental rules, and made other fun changes to games written in the PyGame framework.
Two students hard at work

Katie Cunningham (right) with two Young Coders

The Young Coders event would not have been successful without its excellent instructor, Katie Cunningham. Big thanks to her and to the entire PyTennessee team for for organizing such a wonderful event, and for providing the space to help train the next generation of computer scientists!

By Adam Fletcher, Google Site Reliability Engineer

Get with the program: open source coding with Google Summer of Code

Monday, March 10, 2014

Cross Posted from the Official Google Blog

Tobi Mueller started coding when his grandfather, who works in IT, gave him access to a spare PC. It was a sweet 286 machine which Tobi learned to program with the then-popular teaching language Pascal. He eventually became interested in free and open source software, but it was Google Summer of Code (GSoC) that helped transform Tobi into the free software contributor he is today.

Tobi was a GSoC student in 2007 for GNOME, a free software desktop environment. He’s been a regular contributor to the GNOME community ever since—and in 2012, Tobi was elected to the GNOME Foundation board of directors.

Tobi is one of more than 7,500 students who have participated in Google Summer of Code program over the past nine years. Every summer, GSoC participants work with various organizations in the open source community, building important technical skills and gaining workplace experience. Students aren’t the only ones who benefit; their projects also give back to the open source community. Karen Sandler, GNOME’s executive director, told us how Google Summer of Code “encourages and empowers” new contributors and helps “invigorate projects.”
So if you’re a university student looking to earn real-world experience this summer, we hope you’ll consider coding for a cool open source project with Google Summer of Code. We’re celebrating the 10th year of the program in 2014, and we’d love to see more student applicants than ever before. In 2013 we accepted almost 1,200 students and we’re planning to accept 10 percent more this year.

You can submit proposals on our website starting now through Friday, March 21 at 12:00pm PDT. Get started by reviewing the ideas pages of the 190 open source projects in this year’s program, and decide which projects you’re interested in. There are a limited number of spots, and writing a great project proposal is essential to being selected to the program—so be sure to check out the Student Manual for advice. For ongoing information throughout the application period and beyond, see the Google Open Source blog.

Good luck to all the open source coders out there, and remember to submit your proposals early—you only have until March 21 to apply!

Google Code-in and Haiku: four years strong

Friday, March 7, 2014

Google Code-in wrapped up in January and the 20 Grand Prize Winners have been announced. Haiku, a veteran GCI organization, is here to talk about their experience and history of participating in GCI. 


This was the fourth year of Google Code-in, and the fourth for Haiku to participate as a mentoring organization for students. This contest came at a good point this year for Haiku as our package management merge happened just a few weeks prior to the start of the contest and thus gave us plenty of ideas for tasks. Nearly half of our tasks were somehow related to writing recipes for packages to be built into .hpkg files. We also opened our Coverity scan results for students to try their hand at fixing some of those issues for the first time. Along with these tasks, there were several others which ranged from fixing specific bugs from Haiku's Trac tickets, to writing new programs. Examples include a blogging program and a spider solitaire game, and even a few projects for artistic students who created a new flyer and some new icons.

This year we had five students who completed 20 or more tasks, more than any of our students completed during GCI 2012. We had 42 students who completed a total of 245 tasks for Haiku which is more than have been completed in any previous year for Haiku, so it was a very good year for us. Of the 42 students, 19 of them completed three or more tasks which qualified them to receive a Google Code-in 2013 t-shirt.

I'd like to thank the 19 Haiku mentors, which included three former Google Code-in students, and all 42 students who completed at least one task for Haiku this year. Also a special thanks to those who were on IRC to help handle the flood of students during the contest, for their patience in answering all the questions that the students were asking. It was another very productive (and fun!) Code-in.

By Scott McCreary, Org Admin for Haiku

Google Summer of Code wrap-up: OSGeo

Wednesday, March 5, 2014

Today is the final post in our series of guest posts from veteran Google Summer of Code 2013 organizations. OSGeo is a not-for-profit organization whose mission is to support the collaborative development of open source geospatial software and promote its widespread use. They have participated in Google Summer of Code for the past seven years!

OSGeo participated in Google Summer of Code 2013 with 22 accepted students from 15 software projects. This has been the seventh consecutive year of participation for OSGeo, with the highest success rate ever — 21 of 22 students got a positive final evaluation from their mentors. Two projects from 2013 that were particularly successful were:


ScribeUI: A GUI and tools for MapServer mapfile editing - Jessica Lapointe, mentored by Julien-Samuel Lacroix.

OpenTripPlanner: a stable and improved Android client for walk, bike, and transit routing based on OpenStreetMap and GTFS data - Vreixo Gonzáles, mentored by Stefan Steiniger.

Jessica and Vreixo were among the most autonomous, inventive, collaborative and communicative students of 2013. Both delivered a tool ready for use and further development. You can explore a full list of our wonderful GSoC students and their projects here.

Since our participation in GSoC began seven years ago, many students have contributed to our open source geospatial projects — several of which have joined our regular developer team or have even gone on to become GSoC mentors! We would like to thank all of the students, mentors and coordinators who contributed to the success of the program.

By Anne Ghisla, Hamish Bowman and Dustan Adkins
OSGeo GSoC Admin Team

FOSDEM: an explosion of Google Summer of Code support

Monday, March 3, 2014

Earlier this month, as part of the Google Summer of Code (GSoC) 10th year celebration, three of us from the Google Open Source Programs Office (Cat Allman, Jeremy Allison and Stephanie Taylor) traveled to Brussels, Belgium to attend the FOSDEM open source conference. We joined over 5,000 other FOSS enthusiasts to talk about GSoC and highlight the work of some of our students and mentors. 

We were honored to have a table dedicated to all things Google Summer of Code this year.  Twelve past students and mentors from 10 projects were kind enough to join us and talk to attendees about their organizations and projects. We even had a robot walking along the conference floor thanks to our friends at The Italian Mars Society!


During the two day conference Cat, Jeremy and I had the opportunity to meet and chat with hundreds of people. It was such a rewarding experience for all of us to have a chance to meet  many of the former students and mentors who have been part of the GSoC success story. We also talked to many members of open source projects interested in learning more about how to apply to this year’s GSoC program. The timing couldn’t have been better -- the GSoC organization application opened the next day! 


Interested students came to the table and inquired about a variety of topics including the skills needed for the program, the time required to participate, best practices for writing a student proposal and the types of orgs that have participated. A list of all 440 mentoring organizations from the past nine years was available for folks to peruse. 


It was great to see so many students and mentors sporting GSoC t-shirts from many years ago, some of which could almost be considered vintage! There were also some Google Code-in shirts mixed in the bunch too.


Something we often hear from prospective students is that they don’t think they are “good enough” to be accepted as a GSoC student so they are leery of applying. We stress that the program is about hard work, dedication, and an interest in learning more about open source software development. You don’t have to be the most amazing coder the world has ever seen, but you do need to be hardworking and excited about the organization and project you are working on to be truly successful.


We’ve just recently announced the 190 open source projects that will act as mentoring organizations for 2014.  These two weeks before the student application period are a KEY time for students to research the organizations, find two or three of interest and learn more about how they work. This includes reaching out to organizations directly (before proposals begin on March 10), discussing the project’s proposed ideas list and really getting a feel for what organizations are looking for from a student proposal. 


Thanks to all of the students, mentors and open source friends who stopped by at FOSDEM. We hope to see you again next year!


By Stephanie Taylor, Google Open Source Programs
.