Skip to content

GSoC 2015 Application Juan BC : Alternative backends for storing graph data

Juan BC edited this page Mar 8, 2015 · 5 revisions

About Me

Basic Information

Name: Juan B Cabral

University: University of Rosario, Rosario Argentina

Email:: jbc.develop@gmail.com

IRC: JuanBc

Github: leliel12

Bitbucket: https://bitbucket.org/leliel12/

Blog: http://jbcabral.org

Juan The programmer:

  • What platform do you use to code? What editor do you prefer and why?

    Actually i only use Linux (xubuntu 14.4) for my daily work, programing mainly in Python. As editor of choice i use Geany because their the simplicity and the embedded console inside the editor.

  • What is your experience programming? Tell us about something you have created.

    I’m a full stack developer and software engineer with extensive Python, web programming, and distributed systems experience. I have more than 7 years of Python experience and more than 10 in Java and 5 in Javascript.

    My two main projects are:

    • Yatel: Is a bi network tool programmed eternally in python with some small machine learning support. In this project i work with sqlalchemy, numpy, scipy and many other framework. This project do essentially what this proposal want to do in network-x.
    • Poopy: Its a proof of concept of writing a hadoop-like infrastructure on the top of AMQP. The idea behind this is to execute distributed scikit-learn or any python scientific stack library.
    • Scikit-Criteria: this is my actual pet-project for implement some basic (in the first version) multi-criteria decision analysis methods integrated with the python stack (first version is for may 2015)
    • oTree Is a game theory platform full writing in django. Also the application launcher (multiplatform) is fully created by me.
  • What is your experience with Python? What are your favorite features of Python that are lacking in most other common programming languages? What, in your opinion, is the most advanced Python language feature or standard library functionality that you have used?

    I like 2 features.

    1. The meta programming as part of the language itself (and probably is the most advanced feature in python and what other languages lack)
    2. The zen of python: in my opinion the also called pep20 made all the majority of the third parties libraries out there to integrate well with all the python ecosystem
  • What is your favorite feature of NetworkX? Demonstrate it here with a cool example.

    I not experienced enough to build a custom example, but the only thing what im implement yatel in the first place is because i need a database backhanded. But the integration of all the python scientific stack is the best of networkx for me.

  • Have you ever used git or another version control system?

    Yes, i experienced user in Git, Mercurial and the old guy SVN

The project

  • What do you want to achieve?

    Im interesting to do the GSOC in network-x by implementing Alternative backends for storing graph data. For example RDBMS, OODB or NO-SQL. Without change the core functioaly. I other words, i think it's prosible and relative easy, write a wrapper arround sqlalchemy or pydal to replace the old dictionaries.

  • What excites you about this project? Why did you choose it?

    Because i experienced in this problem, as i say before, i write Yatel just beacuse network-x don't have this functionality. An i can migrate a lot of learn from Yatel Database to network-x and i can contribute to a mayor python project

  • How much time do you plan to invest in the project before, during, and after the Summer of Code? (we expect full time 40h/week during GSoC, but better make this explicit) If you plan to take any vacations over the summer, let us know about it here.

I plan to work nearly full time in the project. In my country some conference (i was the chair of SciPy Lantin America 2015 here is winter so it not probable to take vacation

  • Please provide a schedule of how this time will be spent on sub-tasks of the project over the period of the summer. While this is only preliminary, we will use it to help monitor your progress throughout the program. Also understand that during the project you will issue weekly progress reports against that plan on your blog.

    • 05-25: Be familiar with the code
    • 06-01: Write some prof of concept arround some well know python libraries like PyDal and SqlAlchemy
    • 06-08: Write some prof of concept arround some well know python libraries like PyDal and SqlAlchemy
    • 06-15: Adapt network-x to acept as configuration a iterable of Backend to be used in order so you can has a fastes backend in first place (like memcached) and slow but more robust as principal storage in the second place (like an rdbms or any another thing)
    • 06-22: Adapt network-x to accept as configuration a iterable of Backends to be used in order so you can has a fastest backend in first place (like memcached) and slow but more robust as principal storage in the second place (like an rdbms or any another thing)
    • 06-29: ~Mid term evaluation.
    • 07-06: Fixes of mid term evaluation
    • 07-13: Fixes of mid term evaluation
    • 07-20: Evaluating the code and all the test cases.
    • 07-27: Evaluating the code and all the test cases.
    • 08-03: Free for fixes
    • 08-11: Free for fixes And evaluation
    • 08-18: Evaluation week

Apendix

Clone this wiki locally