From Octave
Jump to navigation Jump to search


Hello, I'm Ivan Gonzalez Polanco, a Mechanical Engineering middler student at Simón Bolívar University, in Caracas, Venezuela. I've got a passion for programming, science and philosophy, and I'm interested in CFD and FEA. Spanish is my native language but I'm proficient in english.

Participating in the GSoC I hope to:

  • Learn more about the process of developing software while contributing to the community.
  • Gain experience from and develop networks with people in the field.
  • Get work experience I can add to my C.V. As this might (hopefully will) be my first time participating in a large project, as well as participating in the GSoC.

I've always been interested in computers, after various attempts in 2012 and 2013 to move (dual booting) from Windows to GNU/Linux, just recently (more mature and with more knowledge) went full-in and fell in love with the whole of it: the FOSSM, the UNIX philosophy, the sense of community and the passion for programming, for software.

I chose Octave because in my sophomore year I saw Computational Mechanics I and II, and there we learned about Matlab and algorithms used in numerical analysis, being the last subject Differential Equations.

So now, with this opportunity to work in software development, to practice what I love, deepen the knowledge I was taught and help the community, all at the same time, I chose Octave.


I'm not used to IRC yet but you can find me through ivcore there as well as in almost all social networks (say Github[1] and Twitter[2])

My timezone is UTC -4:00 Caracas time, and on my free days I code from 6 p.m. to 3 a.m. or from 1 a.m. to 9 a.m. (UTC+0)

Coding experience[edit]

  • I have zero experience with OpenGL, Qt and C++. I did two terms of Matlab m-scripts plus some minor works for friends in the career and I'm currently getting to know Octave scripts.
  • I've been working with Lua (LuaJIT) for over a year doing game development in my free time. Practiced a little of vanilla Javascript, and have done some scripts in Shell.
  • I don't have any experience in a development team and in terms of open source and free projects I did a bug fix for a minor Atom Text Editor plugin.
  • The biggest project I have written code for was the aforementioned Atom plugin love-launcher[3]. There, I saw two issues, the first being a request for a "save-all on launch" function, and the second, that launching the program even from the plugin with the console flag didn't work. Considering that both issues were simple enough, I read the Atom and npm documentation on child processes and after a few hours I was submitting a pull request with the feature and the fix. There I learned about spawning processes and that fixing bugs is more than simply writing code: you have to talk to the project manager, read documentation, and be patient.
  • Gotta see what I can contribute to Octave as of now.

Experience with tools[edit]

  • I'm not familiar yet with IRC and mailing lists.
  • Haven't used Mercurial but I know the basics of git.
  • I don't have experience with Mediawiki nor with other wiki software.
  • Jesus Christ this amount of inexperience is humiliating.
  • I still don't know, I think it would depend on the community and the relationships that develop during the GSoC.

Only out of interest[edit]

  • I had not heard of Octave before, and had only worked with Matlab for scientific calculations.
  • As of advertising, I spend most of my online-time in Reddit. I think is a great platform for pretty much everything. I usually browse software and science related subreddits, and not once I read about Octave in there, so I think Reddit would be a good place to do advertising of Octave.


  • OS: Arch Linux with kernel 4.10.8-1
  • On a daily average, I'll be able to access:
    • Internet connection: 24 hours.
    • A computer: 16 hours.
    • A computer with internet connection: 16 hours.
  • I have complete freedom to install any software required.


  • I'm constantly looking to improve and I don't know it all, so, constructive criticism, specially from someone more knowledgeable than me (p.e. in programming, math, personal developing or interpersonal relationships) is always welcome. I'm an independent person, and receiving criticism doesn't mean I will obey and change, I'm always up to talk about the reasons of an advice and discussing what would be best action to take and why. If it's not an order, if it's not ill-disposed, I'm up to it.
  • When I'm developing, I like to first make a plan (sort of like a road map) that includes general ideas, concepts and algorithms. Then make a proof of concept and start iterating over the base, without fear of having work thrown away, as it can serve as example of something that didn't work out or something that may be reusable in the future in other ways.

The Task[edit]

Math-wise, I'm really interested in Differential Equations, thus, I want to work in them. Sadly what had caught my attention was last year's project that was already done by Francesco Faccio. But thankfully, they updated the project[4], and, still being related to DE, I want to focus on (in order of interest):

  • Implement a better function for selecting consistent initial conditions (compatible with Matlab's decic.m)
  • Improving interpolation at intermediate timesteps.
  • Improving documentation and tests in odepkg and removing overlaps with documentation in core Octave.
  • Make ode15{i,s} with datatypes other than doubles.

In my university the time is arranged in trimesters. A trimester lasts roughly 12 weeks, of which the usual exams weeks are week 4, 8 and 12, sometimes including part of the adjacent ones (say 3 and 5, 7 and 9, and 11, respectively). Those will most likely be weeks I will not be able to code, and although approachable, I will be less active in the community. During this upcoming trimester (April-July 2017) those weeks will be:

  • Week 4: ~5-may to ~12-may (7 days)
  • Week 8: ~2-june to ~9-june (7 days)
  • Week 12: ~30-june to ~7-july (7 days)

Aside from that, I will most likely be unavailable to code these dates, which happen to be in the same week:

  • 31-july. Birthday.
  • 1-august. Grandmother's 90th birthday.
  • 4-august. Mom's birthday.

And last but not least, the rough milestones I have are:

  • Develop a first function for initial conditions between 22-may and 29-may.
  • Improve the interpolation. Between 8-july and 15-july.
  • Improve documentation. Between 29-july to 5-august.
  • Polish the little details the remaining weeks, and implement the solvers for other datatypes if possible.

Thank your for taking the time to read through my application.