Nilay Pochhi
Apr 30, 2018 • 2 min read

GSoC Introductory Post

The day before the dreaded DBMS end semester exam, I got the news that my proposal NetworkX.rb was selected for GSoC 2018. My happiness knew no bounds and lets just say that the effect on my exams has not necessarily been a positive one!

I’ll be working for project NetworkX.rb which falls under the aegis of SciRuby organization. Primarily, my work would be to build a graph analysis library for Ruby. My mentors are Sameer, Athitya and Mridul. You can follow the project here and possibly give us a star :P.

Ruby lacked a proper graph analysis library. Python has it in NetworkX. Using NetworkX as a guidance point, I decided to fill in the gap or atleast try to (since NetworkX is a pretty huge library) during this GSoC period. A proper complex network analysis library would be a good addition to the arsenal.

Journey before GSoC Acceptance

Before GSoC, my mentors (Athitya, Sameer and Mridul) and I decided on the data structures we were going to use. I implemented a basic graph class which implemented methods like add_edge, add_node etc. The plan is to extend the class to include basic digraphs, multigraphs and dimultigraphs. I have enumerated the methods I’d like to implement in the proposal submitted. I wrote tests using rspec for the graph class and have used rubocop as a style checking tool. For algorithms requiring heavy computation we’re planning to use nmatrix library which has its backend in C++ and hence would provide some performance upgrades.

Journey during GSoC

During GSoC I plan to implement the remaining classes and the algorithms required for graph analysis. The algorithms to be implemented during the GSoC period are -

For those who want to get into more implementation level details and further details on my weekly plan may check my proposal here. The proposal may change during community bonding period as the discussions with my mentors progress.

I’ll post the details of my updates weekly and I’m hoping to have an amazing summer working on this project.

Post by: Nilay Pochhi