Google has announced the list of accepted projects for this year’s Google Summer of
Code(GSoC). Rails has been granted 8 slots, here’s a brief introduction to the projects and
the people behind them.
Student: Martha de Luque
Mentors: Guillermo Iguaran and Josh Peek
Martha will be profiling, benchmarking and updating parts of our asset compilation process to
improve our asset [re]generation speed. The initial scope of this project covers CoffeeScript, Sass and
our Uglifier, but benchmarks will be guiding this effort to work where we can get the biggest
benefits in these four months.
Evented File System Monitoring
Student: Puneet Agarwal
Mentors: Xavier Noria and Matthew Draper
ActiveSupport::FileUpdateChecker, the
system we use for detecting changes in files (mostly for reloading purposes) has served us well over the years, but we’re done with
polling. Puneet will be replacing our current design with a event-based approach that relies
on existing third-party monitors (e.g. inotify
or FSEvent
).
Asset Pipeline Support for Source Maps
Student: Andrei Istratii
Mentors: Rafael França and Arthur Nogueira Neves
The goal of Andrei’s project is to give you good inspecting and debugging capabilities in environments
where your code goes through various transformations (e.g. your CoffeeScript file being compiled to
Javascript and then minified in your staging environment). With source maps you can use the existing
tools your browser provides to do things like reading the CoffeeScript source or setting breakpoints
on it.
Refactoring Action View and Active Support
Student: Islam Wazery
Mentors: Kir Shatrov and Carlos Antonio da Silva
Islam is adding some of the things we should already have in Rails, liked adding named arguments
for Action View helpers (goodbye counting commas!). He will also be researching how to improve some of our core abstractions like
ActionController::Parameters
and
ActionView::OutputBuffer
to enable better security and performance.
Web Console Browser Extensions
Student: Hiroyuki Sano
Mentor: Genadi Samokovarov
Following up on the work of previous GSoC projects, Hiroyuki will be creating browser extensions for
the Rails web console. Like the Source Maps project, this one will give you a better live
debugging experience using standard tools that everyone has available already.
Test Failure Prediction
Student: Genki Sugimoto
Mentors: Robin Dupret and Josh Kalderimis
Aaron Patterson has touched upon some interesting ideas on
predicting test
failures using the
experimental Coverage feature
available in recent Ruby versions. Genki will be experimenting with this to see if we can make it a
part of the Rails testing ecosystem.
Refactoring Cookies
Student: Siddharth Bhatore
Mentors: Kasper Timm Hansen and Prem Sichanugrist
Rails cookie handling is pretty basic, and although it works in most use cases, we can improve
it. Siddarth will be adding server-side expiration mechanisms and purpose fields to our existing
cookie jar, allowing us to have better control and security over our systems.
Improving RubyBench.org
Student: Kasif Gilbert
Mentors: Sam Saffron
In case you’re not familiar with it, RubyBench is an amazing effort to keep
long running benchmarks for Ruby and related projects (like
Rails). As you can see, our own benchmarks could use
some love, so Kasif will be taking care of this. If everything goes well, JRuby support in
RubyBench would be the next step for this project.
Fun Fact: 4 of the 14 mentors we have this year participated as GSoC students in previous years. Today they’re all
active contributors around the Ruby/Rails ecosystem!
We hope to keep you up on important updates during the summer, but if you’re interested in staying
up to date (or maybe lending a hand?) please make sure to subscribe to our mailing list.
Finally, we want to thank José Valim/The Pragmatic Programmers,
Pat Shaughnessy/No Starch Press and
O’Reilly for donating copies of Crafting Rails
Applications, Ruby Under the
Microscope and offering discounts on
O’Reilly products to our students.
PS: In case you missed it, Ruby and SciRuby will also be part of this year’s GSoC! You can learn
more in the Ruby GSoC and SciRuby
Development mailing list announcements.