Public application
A: An introduction
- Please describe yourself in three sentences, one of them regarding your current studies.
- I’m Enrico Bertino, an Italian student. After a BSc in mathematical engineering in Politecnico di Milano and a MSc in France, I enrolled in the MSc major Statistics with specialization in big data in Politecnico di Milano and I’m now finishing the last year.
- Which languages do you speak?
- I speak Italian and French (native) and English (fluent)
- What's your overall background?
- In the past I spent six months as a researcher in fluid dynamics, programming mostly in Octave. For two years now I have been more passionated about applied statistics, with focus on deep learning and Bayesian approach.
- Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so?
- It is an interesting project, followed by competent mentors and supported by a great organization. I can not ask for more for entering the open-source world :)
- Please also describe your previous experience with the GSoC, if any.
- First time
- Why are you choosing Octave?
- I am quite a fan of open source projects, open innovation and expertise sharing. In recent months I have been working on a Python framework for natural language processing and I want to open it asap. I like this same spirit under the Octave project.
C: Contact
- Please state the (unique and identical where possible) nick you use on IRC and any other communication channel related to Octave.
- nick: enricobertino
- Which time zone do you live in? Will that change over GSoC duration?
- UTC+1, it will not change
- Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers?
- I usually code in the time span 8.00 - 19.00 (UTC+0)
E: Coding experience
This part is one of the more important ones in your application. You are allowed to be as verbose as you want, as long as you stay on topic ;-)
- Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.
- I have worked with Matlab and Octave for a long time, in particular with numerical methods for PDEs and statistical analysis. I have a considerable experience with C++ since it is the most used language in my master exams.
- Please describe your experience with other programming languages.
- I’m very familiar with Python and R, the two most common languages for statisticians. I have also some experience in Java and PHP.
- Please describe your experience with being in a development team.
- I’m currently working in a tech startup and I have to collaborate with other 5 developers. We have structured the code from scratch and the process can be likened to a package development.
- Please describe the biggest project you have written code for and what you learned by doing so. Also describe your role in that project over time.
- When I was at INRIA in France, I implemented a Godunov’s scheme to resolve stochastic conservation laws in modeling highway traffic. In the application of the algorithm I also had to deal with computing infrastructures and data integration problems.
- Please state the commits and patches you already contributed to Octave.
- A patch for nnet package. I’m currently working on some Pytave bugs.
F: Feeling fine
- Please describe (in short) your experience with the following tools:
- IRC and mailing lists
- I am starting to discover the Octave “ecosystem” and to be comfortable using the mailing list and IRC
- Mercurial or other source code management systems
- I’m very familiar with Git, just started with Mercurial
- Mediawiki or other wiki software
- Kind of
- make, gcc, gdb or other development tools
- Familiar with make and gcc, less with gdb
- IRC and mailing lists
- What will make you actively stay in our community after this GSoC is over?
- Keeping on with research in university
O: Only out of interest
- Did you ever hear about Octave before?
- Of course
- If so, when and where? How far have you been involved already?
- Until three years ago I just used Matlab since it was the common choice at the university. After that I heard about Octave when I was in a researcher lab and I start working mostly on it.
- What was the first question concerning Octave you could not find an answer to rather quickly?
- As normal user, I do not remember a question that was difficult to answer.
P: Prerequisites
- Please state the operating system you work with.
- Ubuntu and macOS
- If you have access to more than one, please state them and the conditions under which you are granted this access.
- Direct access to macOS and ssh access to Ubuntu, always available.
- Please estimate an average time per day you will be able to access
- an internet connection
- 24
- a computer
- 24
- a computer with your progressing work on
- 24
- an internet connection
- Please describe the degree to which you can install new software on computers you have access to.
- Full permissions
S: Self-assessment
- Please describe how useful criticism looks from your point of view as committing student.
- Indispensable!
- How autonomous are you when developing:
- Do you like to discuss changes intensively and not start coding until you know what you want to do?
- In general I like to start coding when everybody shares a final decision.
- Do you like to code a proof of concept to 'see how it turns out'?
- I love to test things so often I want to have a little version of something which works and then analyze the whole problem.
- Do you like to discuss changes intensively and not start coding until you know what you want to do?
Y: Your task
- Did you select a task from our list of proposals and ideas?
- Yes, I would like to work on the project: "Neural_Networks_package” Wiki link to the project
- Please provide a rough estimated timeline for your work on the task.
- 05/05 - 30/05 (Before beginning)
- Familiarize with the community and tools like Mercurial and autotools
- Familiarize with Pytave and test it with basic scripts, object passing and libraries linking.
- Test a basic net with Tensorflow
- 30/05 - 30/06 (Phase 1)
- Class definitions in Python
- Interface definition in Octave
- 01/07 - 24/07 (Phase 2)
- Write unit tests
- Methods and events definition
- Matlab compatibility improvement
- Parallelization
- 28/07 - 21/08 (Final phase)
- Write the documentation and make more tests
- This is obviously a draft of the timeline. All the steps will become clearer with some discussions with the mentors.
- 05/05 - 30/05 (Before beginning)