User:Eg123

From Octave
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

A: An introduction

  • I am Eugenio Gianniti, a student from Italy. I am pursuing my master's degree in Mathematical Engineering from Politecnico di Milano (Polytechnic University of Milan), currently attending my last year.
    • I can speak fluently English and Italian
    • I have a background in Mathematics and Electronics. I have done courses on Linear Algebra, Numerical Analysis, PDEs, Scientific Computation and Solid State Electronics
  • I am interested in coding, but have little experience in such a big cooperative project. I find the GSoC an amazing opportunity to learn how to interface to other developers in a fruitful fashion
    • I have no previous experience in the GSoC
  • I have been using MATLAB during all my studies, so I think that Octave is a valuable alternative and deserves effort. Moreover, my background gives me familiarity with the problems Octave is meant to solve

C: Contact

  • eg123 is my nick on the Octave IRC channel, bug tracker and wiki. Anyway, in the mailing list and when contributing patches I usually sign with my full name
  • My time zone is UTC+1:00, but due to DST in the period of GSoC I will be in UTC+2:00. I live in Italy.
  • I usually code between UTC 08:00 to UTC 18:00

E: Coding experience

  • I have been using MATLAB throughout my studies and attended courses in my master's degree about programming in C++. I have no previous experience with OpenGL and Qt
  • I have some experience in Bash scripting and Python
  • I currently do not have any experience with development teams, nor with open source projects
  • I have no previous experience with collaborative projects. Till now I have worked only on small, one-day projects as part of my course of Algorithm and Parallel Computation
  • I have so far contributed to Octave Forge packages, and to Octave core as well:
    • [1] A patch to change the error string of a utility
    • [2] A patch adding functions to the mapping package
    • [3] A patch to improve fem-fenics package build system

F: Feeling fine

  • I am comfortable using the mailing list. I have not been hanging around a lot on IRC, but I do not have problems with it
  • I do not have a large experience with DVCSs, anyway I have already grasped the basics of Mercurial and of the workflow involved in its use
  • I am learning Mediawiki, anyway I find it quite intuitive
  • I am comfortable using make, gcc and gdb. I can use the Autotools, usually exploring the documentation when I need a feature I do not already know how to implement. I know the basics of valgrind and gprof

O: Only out of interest

  • I first heard about Octave in my studies, but it was always cited just as an alternative to MATLAB and never really suggested
  • My first problem was related to Octave Forge: I find difficult accessing the development repositories of the various packages, I cannot find a link on their pages

P: Prerequisites

  • I have a computer installed with Mac OS X and another one with Arch Linux. On the first one I also have a development VM with Ubuntu 13.10 on Virtualbox
  • I will have access to the internet and my computers with my progressing work all day long
  • I administrate my computers, so I can install any supported software

S: Self-assessment

  • I think that criticism is fundamental to learn the best ways to interact with the community and contribute in a meaningful manner
  • When coding I prefer to get a preliminary general idea and then start to code to have a proof of concept, in order to have a basis on which to build further improvements. If in the process important implementation details emerge, I then like to widely discuss them to understand the better approach

Y: Your task

  • I selected General purpose Finite Element library. I would continue the work done last year in fem-fenics, with the ultimate goal to have it included in the main FEniCS distribution. Here is a preliminary list of features to implement in this project:
    • Reduce copies when passing matrices from Octave to dolfin
    • Avoid useless compilations of .oct files when they are not needed
    • Avoid using separate .ufl files, introducing the possibility to write UFL code in .m files
    • Implement in fem-fenics further FEniCS functionalities, preferably according to the FEniCS developers' directions
    • Improve the build and distribution system, so that end users can enjoy full functionality right away after installing from Forge
  • A tentative agenda for my project proposal follows. In the week 6 May - 9 May I will be attending compulsory intensive classes at the university, otherwise I am not planning any further non-coding periods
    • 22 April - 18 May: Study of the documentation and interaction with my mentor and the Octave community to understand thoroughly the code base and the contribution expected from my project
    • 19 May - 22 June: First phase of the project. I will implement bindings for the UFL language in Octave and adapt accordingly the provided examples. I will also work on the build and distribution system to allow for feedback on it from the community. In the end, I will commit a first set of new functions
    • 23 June - 27 June: Period for the submission of the mid-term review, I will double check the functionalities already implemented and improve their documentation
    • 28 June - 10 August: Second phase of the project. I will improve the package performance, both reducing copies of matrices between Octave and dolfin and implementing checks to avoid useless just in time compilations. Furthermore, I will add a second, probably larger, set of new functions, as suggested by the community and FEniCS developers. I expect to code some new examples which make use of the freshly introduced capabilities
    • 11 August - 22August: Week devoted to final minor fixes and to the improvement of the documentation