Cyril Rohr
Cyril Rohr.

Projects


Github Watchlist

What if you could have full-text search within all the READMEs of your watched repositories? This small side-project app uses Node.js, the Github API and Elasticsearch to offer that functionality. Note that this app is likely to break at some point due to the fact that it's hosted on a micro EC2 instance.

Flag.io

Upload files from your terminal. Tired of having to open a web browser to upload some files and make them available to people on the Web? Don’t want to remember a complicated API to do it on the command line? Flag.io is designed to be the simplest way to upload a file from the command line.

On Demand Resources for OpenNebula Cluster

In this screencast, I demonstrate how BonFIRE users can get access to additional computing power by asking for physical resources from the Grid'5000 platform, on demand. With a few clicks, or through a JSON API, physical resources are reserved on Grid'5000, reconfigured with a specific image, and then transferred to a private cluster in the local OpenNebula installation of the Inria testbed. This allows any user to scale by a few orders of magnitude the number of physical resources available on the testbed, hence allowing for a much greater number of VMs to be deployed. All without having to do anything, except specifying the private cluster ID when creating new VMs.

The UI has been developed using jQuery Mobile, on top of a Sinatra powered backend. The Gantt chart that you can see in the video is a jQuery plugin I developed. The app is packaged as a Debian package, with proper init script to launch the Unicorn daemon. We use Restfully to automate launching hundreds of VMs.

Grid'5000 Web UI

The screencast above presents the user interface I built on top of the APIs I developed for the Grid'5000 platform. It shows how you can select and reserve physical nodes on the infrastructure, launch a script on those nodes, register metrics through the Ganglia tool, and visualize results, all from a web interface. This UI uses a number of Javascript libraries, among which jQuery, Simile Exhibit, and Protovis (now replaced by D3.js). On the backend there is a number of RESTful APIs developed with Ruby and Sinatra/Rails. The page that allows to graph metrics takes the data from an API I developed on top of the RRD files generated by Ganglia.

Grid'5000 API

Grid'5000 API

During three years at Inria, I was in charge of developing and deploying APIs on top of the infrastructure tools of the Grid'5000 platform. Written in Ruby using a mix of Rails and Sinatra applications, and implemented as HTTP APIs closely following the constraints advocated by the REST architectural style, the infrastructure receives more than 1 million hits per month. Server configuration is automated using the Puppet provisioning tool, and applications are distributed as Debian packages to facilitate installation.

OneStopNews

Web application developed as a prototype for the framework described in one of the publications I've written. It was a kind of Google News website, but using Semantic analysis and aggregating videos in addition to text articles and images (at the time, Google News did not show relevant videos for news events). I used the Calais web service for entity extraction. Developed using Rails for the frontend, and a variant of an existing incremental hierarchical clustering algorithm.

Other projects

  • Friend Miner (2008, discontinued) : a Facebook application that used the Facebook Graph API and data mining techniques to find friends of friends that have interests close to yours.