User:Edu159

From Octave
Jump to navigation Jump to search

Public application template

A: An introduction

  • Please describe yourself in three sentences, one of them regarding your current studies.

I am Eduardo, a 24 years old guy that is passionated about science and computers. I have a BSc in computer science and I am currently finishing a 4 year degree in Materials Engineering. I love all that is related with numerical methods and simulations since the last year (I took a course Simulation of materials) and currently I am doing my final project about simulation of heat difusion in a nano-wire using FEM. I am a very friendly and teamworking person.

  • Which languages do you speak?

Spanish is my mother tongue but I can write and speak english relatively fluid.

  • What's your overall background? The general field you work in or are studying, e.g. computer science, physics, artificial intelligence, control theory...

I think that I have a nice multidisciplinary background that comes from my two distinct university degrees(and self-teaching). I like to get my hands dirty with lots of different things comming from different fields of science. Despite of that fact, I am interested to focus my professional career in numerical methods and/or simulations related with materials science.

  • Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so?

GSOC is an amazing programme for people that like to code, and the key thing is that you can be involved in a serious opensource project with the supervision and help of a mentor! It is a privilege to have a person that can guide you and help you in such a thing. I do not know other programme that offers that kind of support.

  • Please also describe your previous experience with the GSoC, if any. Includes any community-bonding, mentor experience or application, not necessarily accepted. We use this subquestion to identify which students are unfamiliar with how the program goes, providing further support. It has no negative impact on your rating!

No experience at all.

  • Why are you choosing Octave?

When I decided trying to be selected for a project for the GSOC I checked the 192 organisations looking for keywords like, science, maths, numerical methods, etc... because I wanted to dedicate my time to something I am really interested in. Octave along with CGAL were the only two organisations that I found that really appeal to me. And with no doubt OCTAVE was the chosen one. I wanted to do only a proposal so I could prepare it well enough to have a chance. Other strong reason is that I have used Octave for quite long and it would be nice to contribute to it.

C: Contact

* Please state the (unique and identical where possible) nick you use on IRC and any other communication channel related to Octave. We really want unique nicks. You might want to bold it. nick: edu159

* Which time zone do you live in? Will that change over GSoC duration? Perhaps DST adjustment or a relocation. Note that both UTC and GMT are not aware of daylight saving time! Please state UTC+x or -x.

Time zone: UTC+0

* Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers? Example: I usually code around 9.00 to 18.00 and could also try to start earlier (~7.00) for few days ;-)

I can code from 7:00-13:00 on May and in June-July I have nearly every time frame available.

E: Coding experience

  • Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.

I have programmed in C++ along with the STL and Boost libraries, from small to medium large projects. Lately I have not done so much with C++ so I confess I am a little rusty but nothing that cannot be solved with few days of refreshing my mind. With octave I have worked for quite long and in different fields: robotics (path finding algorithms), signal processing (signal modulation and filtering), FEM (2D fem solver for static structural problems), and programming of several basic numerical methods (Forward-Backward Euler, LU decomposition, Newton-Raphson...). With openGL I have done a few things in the past and I know how its work, but I am not very interested in graphical programming right now. Qt happens to be the same.

  • Please describe your experience with other programming languages.

I like developing code with Python the most. I am currently programming a personal web site with a custom blog from scratch using Django. I have touched Java and assembler for the x86 platform and AVR and Motorolla microcontrollers.

  • Please describe your experience with being in a development team. Do you have experience working with open source or free projects?

I have only that kind of experience while doing some personal projects with a friend of mine, so I have not experience with such a large project and opensource community.

  • 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.

I have dealt with projects with around 2.5-3k lines of code, not more. I dont have a extraordinary successful story about a project I have been in although I have been in lots of small ones. I worked the last year while in college with a friend on a website for informal job seeking done in PHP+MySQL (around 3K lines of PHP code). We even sent the idea to Ycombinator to get funding. Unfortunately we were not selected and the idea was not at good as we thought. I learned a lot with that project, particularly combining both college and a project at the same time, working regularly and establishing deadlines.

  • Please state the commits and patches you already contributed to Octave. This question (one of the most important parts by the way) is the only part of your application our wiki admins will edit for you even after the application deadline. Code sometimes speaks louder than many words do.

None for the moment....

F: Feeling fine

  • Please describe (in short) your experience with the following tools: We only use this question to determine where you need guidance, not for rating! We by no means expect you to be familiar with all of these and you'll won't necessarily need them while working with us.
  • IRC and mailing lists

I have experience with both worlds.

  • Mercurial or other source code management systems

I have worked with git and svn

  • Mediawiki or other wiki software

Not at all.

  • make, gcc, gdb or other development tools

I have worked with them many times but I have not a deep knowledge of them.

  • What will make you actively stay in our community after this GSoC is over? You can also tell us after applications close and we'll happily try to fulfill :-)

It's an easy one. The fun and personal satisfaction that I can achieve during my time here with you guys!

O: Only out of interest

  • Did you ever hear about Octave before?

Yeah, long time ago...

  • If so, when and where? How far have you been involved already?

In 2007 when I used it in a subject called "Pattern recognition"

  • If not, where would you expect or advise us to do advertising?

Do you really need that? At least here in Spain not many people/universities can afford to get a Matlab license (actually I dont know why they should do that xD). You are well advertised just because octave is a quality software. By the way, the risen of QtOctave as a nearly-mature software has encourage people to start using octave, people that is afraid of terminals/consoles.

  • What was the first question concerning Octave you could not find an answer to rather quickly? Of course more than one question can be stated. We try to improve based on this each year! Includes learning how to use it, code, website, GSoC application, …

In my opinion some ideas on the website have very little information. In fact I am interested in sparse matrices as a project for my proposal (taken the idea from the ideas page) but there is almost no explanation of some points like :

  • Improve QR factorization functions, using idea based on CSPARSE cs_dmsol.m
  • Improve QR factorization by replacing CXSPARSE code with SPQR code, and make the linear solve return 2-norm solutions for ill-conditioned matrices based on this new code
  • Implement fourth argument to the sprand and sprandn, and addition arguments to sprandsym that the leading brand implements.


I mean, it would be useful to students that maybe have never worked with such algorithms and libraries a brief description of why do you want to perform that changes. In fact I have discover that the cs_dmsol.m function that implements "coarse Dulmage-Mendelsohn decomposition" is already included in the code file "sparse-dmsolve.cc" (am I wrong?). To sum up a more detailed description would be nice, because for you maybe are 15 minutes more of writing but for us are hours of searching. Thanks :)

P: Prerequisites

  • Please state the operating system you work with.

I like programming in Linux.

  • If you have access to more than one, please state them and the conditions under which you are granted this access.

I have windows (native) and mac virtualized.

  • Please estimate an average time per day you will be able to (if separated) access
    • an internet connection --> 10 hours a day
    • a computer -> 24 hours a day
    • a computer with your progressing work on -> 24 hours a day

* Please describe the degree up to which you can install new software on computers you have access to.

With total freedom

S: Self-assessment

  • Please describe how useful criticism looks from your point of view as committing student.

I think its totally necessary in a opensource community, you have to be prepared to be criticised, in fact is a duty of the community to do it in a constructive way for the goodness of the project.

  • How autonomous are you when developing?

Personally I dont like to bother others unless necessary, in fact I always said to my dad when he has an issue with the computer... "first search on Google then ask me" and he always gets really mad xD.

  • Do you like to discuss changes intensively and not start coding until you know what you want to do?

I have to confess that sometimes I spent too much time designing before programming. That is why I like to set deadlines. They help me to get things done.

  • Do you like to code a proof of concept to 'see how it turns out', modifying that and taking the risk of having work thrown away if it doesn't match what the project or original proponent had in mind?

It is not what I like but what is maybe necessary to be done. Just my opinion.

Y: Your task

  • Did you select a task from our list of proposals and ideas?

Yes related with sparse matrices.

    • If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information. Please also wiki-link the page for your elaborated proposal here.

Under construction....

  • Please provide a rough estimated timeline for your work on the task. This should include the GSoC midterms and personal commitments like exams or vacation ("non-coding time"). Optionally include two or three milestones you expect.


Under construction....