User:Mvccouto

From Octave
Jump to navigation Jump to search

A: An introduction[edit]

  • My name is Marcos Couto and I'm a 21 years old Brazilian Computer Engineering student (5th year of a 5 years major). I'm living until the end of the summer at Birmingham / AL, US as an exchange student (one year and 3 months program). I'm a native Portuguese speaker, English is my second language and I'm trying to learn a little bit of German (nothing useful yet). By now I'm pretty interested in control theory and applications but I've been studying other fields like combinatorial optimization.
  • I have been using open source software for 7 years and contributing is always something to be considered. Contributing for the first time on a open source project is a little scary for many reasons but last year I watched a talk about contributing to open source projects and they mentioned the GSoC, which is mentored and probably a more comfortably way to start. This is my first time trying to participate of Google Summer of Code and also first experience coding to an open source project.
  • I decided for Octave because it is one of the open source projects I have more familiarity (as an user). I used to do lectures in Brazil to other engineering students about Octave's features and scripting basics that would be useful for them.

C: Contact[edit]

  • The nick I'm using at Freenode is mvccouto.
  • I'm living in Birmingham, AL (UTC-5) until the beginning of August, after that I will come back to Vitoria, Brazil (UTC-3). That won't change anything about GSoC duration and my classes start again at the October 10th which is good for the project.
  • I would be more comfortable coding from 13:00 until 17:00 and start again at 21:00 until 2:00. Those are the times I feel more productive but I don’t mind changing it for any good reason.

E: Coding experience[edit]

  • Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.
    • C / C++ are my favorite languages and I use it for almost everything (personal projects, college projects, and work). Octave / Matlab m-scripts are very important in engineering and that’s how I learned it and used it (specially control theory). I have almost nothing about OpenGL and Qt.
  • Please describe your experience with other programming languages.
    • I have some experience with Python (scripts to automation of simple tasks), Java and Shell Script.
  • Please describe your experience with being in a development team. Do you have experience working with open source or free projects?
    • I always worked with small development teams (since none of the projects I worked were big).
  • 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.
    • The biggest project I worked on was the Robocup soccer simulation team of the Brazilian University study. I worked on the team as programmer and manager for some time,
  • 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 yet.

F: Feeling fine[edit]

How familiar am I with those tools:

  • IRC and mailing lists
    • I use mailing lists all the time to communicate about college and work. I’m a little inactive on IRC now but I use it to communicate to friends, specially.
  • Mercurial or other source code management systems
    • I know just the basics of Mercurial, clone, update, and create a patch (maybe). Everything I did with that was for personal use. I used SVN before too.
  • Mediawiki or other wiki software
    • I feel very comfortable with searching and reading it but I did not try to edit articles very often (I never tried other than Mediawiki).
  • make, gcc, gdb or other development tools
    • I have been using those tools for a really long time, since before get in the college on personal projects, assignments and work.
  • 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 :-)
    • The biggest problem is for me is to start, I think it will get easier for me to contribute to Octave and any other project after that. I feel like contributing to a big project is really helpful as an experience what I don’t feel I have much.

O: Only out of interest[edit]

  • Did you ever hear about Octave before?
    • I used Octave a lot in college, that’s how I learned about it. Like I said before, I end up giving lectures with some friends to help other students with basics of m-scripting. By now I’m using it just for control theory. I think that the new GUI will make Octave much better looking for new users (the terminal is pretty scary for most first time users), that should be advertised.
  • What was the first question concerning Octave you could not find an answer to rather quickly?
    • I think most of unanswered questions about Octave are about when some features would be implemented but that’s not easy to change (I have been watching the list and I totally understand why). I don’t have any specific unanswered question by now.

P: Prerequisites[edit]

  • My work station (I have full access to it 24/7) is a dual boot GNU / Linux Ubuntu and Windows 7. The Ubuntu environment is the one I’m used to work with but I would be happy to help with tasks like building Octave on Windows environment if necessary at some point (I just don’t have any experience doing that but I have access to the MS IDEs and compilers suite).

I have internet access all day and full administrator privileges to that work station.

S: Self-assessment[edit]

  • Please describe how useful criticism looks from your point of view as committing student.
    • I think I do really well about criticism, it helps a lot usually but there’s always criticism just for criticism and I usually just ignore it.
  • How autonomous are you when developing? If you answer both subquestions with "Yes, definitely", we are a tad confused. ;-)
    • I’m not used to work on big development teams so I do well, but I like to have people for brainstorming with. I think that things work a lot faster.
  • Do you like to discuss changes intensively and not start coding until you know what you want to do?
    • I like to discuss some ideas and after that start to sketch some code. When you start coding, a lot of new ideas appear which is good and can make the final coding a lot better.
  • 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?
    • Yes, I like it sometimes. I don’t mind throwing some code away but this approach doesn't work for big stuff since it costs a lot of time.

Y: Your task[edit]

I liked the Rewrite symbolic package project idea. I think this package is pretty useful and I saw many comments in the maintainers’ mailing list about how incomplete it is, specially the lack of support to matrices.

[[1]]

A rough estimated timeline is written below:

  • May 24th – June 16th
    • Work with mentor and other people from community to design and sketch how the package would be organized. That’s also a good time to understand better how Octave packages development and study the library GiNaC, the Matlab symbolic toolkit and the latest release of the Octave’s symbolic package.
  • June 17th - August 2nd
    • Start coding and documenting the package according to the plans already established. Eventual package releases should be done in this period.
  • August 3th until the end
    • Finish coding the package and writing documentation with extensive tests to catch possible bugs. At some point during this period I’ll move from US to Brazil, which means I probably won’t work on the project for a couple days.