User:Eg123: Difference between revisions
Jump to navigation
Jump to search
(Task updated) |
m (Added bug fix) |
||
Line 17: | Line 17: | ||
* I currently do not have any experience with development teams, nor with open source projects | * 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 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: | * I have so far contributed to Octave Forge packages, and to Octave core as well: | ||
** [https://savannah.gnu.org/bugs/?41484] A patch to change the error string of a utility | |||
** [https://savannah.gnu.org/patch/index.php?8320] A patch adding functions to the mapping package | ** [https://savannah.gnu.org/patch/index.php?8320] A patch adding functions to the mapping package | ||
** [http://sourceforge.net/p/octave/fem-fenics/ci/5292e0614efcfba24c882bed3a0471b52785c979/] A patch to improve fem-fenics package build system | ** [http://sourceforge.net/p/octave/fem-fenics/ci/5292e0614efcfba24c882bed3a0471b52785c979/] A patch to improve fem-fenics package build system |
Latest revision as of 17:07, 21 March 2014
A: An introduction[edit]
- 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[edit]
- 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[edit]
- 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:
F: Feeling fine[edit]
- 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[edit]
- 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[edit]
- 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[edit]
- 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[edit]
- 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