2018 Ruby Association Grant selection result
We are very happy to announce that the following four projects have been selected by the Ruby Association grant committee.
Accomplishments of the projects will be published around March 2019.
memory saving of mruby
mruby is lightweight and it needs less memory than CRuby. But microcontroller boards usually have a small amount of memory, so it is not easy to use mruby in some embedded environments.
In our project, we tried to make memory consumption of mruby even smaller, especially using ROM effectively.
Our goal is to use Ruby on small and cheap boards without losing Ruby’s flexibility.
yamanekko(Maysayoshi Takahashi, Yurie Yamane)
R Markdown clone gem “rubydown” and its application
In recent years, “notebook” which has codes and documents in one file is mainly used for sharing the data-science workflow. The two main implementations of the notebook are “Jupyter Notebook” and “R Markdown”. Although Jupyter Notebook has the extension to add Ruby language support (iruby gem), the software structure is more complicated than R Markdown and its maintenance is not easy. In this project, we create R markdown clone gem “rubydown” and show the application examples.
Enhancing Ruby’s concurrency tooling
The objective of the project is to enhance Ruby’s concurrency tooling through the concurrent-ruby gem. The gem is well positioned to deliver the new tools to wide spectrum of Ruby users. When the project is finished three new concurrency abstractions (promises, actors, and channels) will be available in the concurrent-ruby gem. Their APIs will be designed to provide seamless integration with the other two abstractions, delivering more flexibility to their users. For better performance, a work stealing thread pool will be implemented and lock-free algorithms will be used when possible.
Implementation of Charty - Visualizing your data in Ruby
Charty is open-source Ruby library for visualizing your data in a simple way. In this project, Implement Data Visualization Tool which has Visualization Layer and Data Abstraction Layer and can support multiple data types and multiple backends. Make the GR Framework available as a backend, and implement Collection Interface and Daru Inteface as Data Abstraction Layer to make it possible to support multiple data types.