User:TheVulcanian

From Octave
Jump to navigation Jump to search

My application[edit]

Hi I'm Zsolt Bartha, and I would like to work on Octave for SOCIS 2012. Here is my public application:

A: An introduction[edit]

  • Please describe yourself in three sentences, one of them regarding your current studies.
    • Which languages do you speak?
  • Why do you want to participate in the ESA Summer of Code? What do you hope to gain by doing so?
    • Please also describe your previous experience with the SoCiS, if any.
  • Why are you choosing Octave?

I am currently studying at the Budapest University of Technology and Economics, and just got my BSc degree in mathematics. My favourite fields are cryptography and analysis. I speak a rather fluent English, Hungarian as a native language, and a bit of French. I would like to participate in this project to extend my knowledge of Octave and Matlab, which I use a lot. I would like to help the further development of Octave. As a mathematics student I use Octave frequently for lots of things from simple calculations to complex data analysis. I figured I should get a deeper understanding of how it works. I have not yet participated in any ESA SoCis or GSoC.

C: Contact[edit]

  • Please state the (unique and identical where possible) nick you use on IRC and any other communication channel related to Octave.
  • Which time zone do you live in? Will that change over GSoC duration?
  • Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers?

e-mail: zsoltbarthaxc@gmail.com, IRC: TheVulcanian1227, Time Zone: Budapest, UTC +2h, Coding Time UTC+0h: 10am - 10pm (around the clock if really necessary)

E: Coding experience[edit]

This part is one of the more important ones in your application. You are allowed to be as verbose as you want, as long as you stay on topic ;-)

  • Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.
  • Please describe your experience with other programming languages.
  • Please describe your experience with being in a development team.
  • 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.
  • Please state the commits and patches you already contributed to Octave.

Own and group projects mostly for educational and research purposes, mostly written in C++. As a mathematics student, Matlab is one of the most widely used computer tools in the faculty. Often, I can’t use Matlab for licensing reasons, which is why I’m using Octave frequently. I have not yet worked on any published open source project, but I’ve taken part in many team-work development tasks in connection with our studies at the faculty. I have used Python with numpy and matplotlib for numerous projects. I haven’t worked on any large-scale projects as of yet, but the biggest I participated in was a tool for solving certain numerical analysis problems four of us had written. My task was designing the UI.

F: Feeling fine[edit]

  • Please describe (in short) your experience with the following tools:
    • IRC and mailing lists
    • Mercurial or other source code management systems
    • Mediawiki or other wiki software
    • make, gcc, gdb or other development tools
  • What will make you actively stay in our community after this GSoC is over?

I have used mailing lists, Subversion, IRC, gcc and make.

O: Only out of interest[edit]

  • Did you ever hear about Octave before?
    • If so, when and where? How far have you been involved already?
    • If not, where would you expect or advise us to do advertising?
  • What was the first question concerning Octave you could not find an answer to rather quickly?

I've been using it for about a year. I’ve found it while searching for open-source tools like Matlab. As far as I remember, the first thing that caused me problems was loading a source file.

P: Prerequisites[edit]

  • Please state the operating system you work with.
    • If you have access to more than one, please state them and the conditions under which you are granted this access.
  • Please estimate an average time per day you will be able to access
    • an internet connection
    • a computer
    • a computer with your progressing work on
  • Please describe the degree up to which you can install new software on computers you have access to.

OS: Windows 7 Enterprise at home, Windows Server 2008 and Debian at university Access to internet&computer: up to 8-12 hours daily Access to own computer: up to 6-12 hours daily I have no problem with installing new software on my own machine.

S: Self-assessment[edit]

  • Please describe how useful criticism looks from your point of view as committing student.
  • How autonomous are you when developing?
    • Do you like to discuss changes intensively and not start coding until you know what you want to do?
    • 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?

I can work efficiently both with and without supervision, but I would feel more confident if I could discuss my ideas with my mentor from time to time (once a week or so).

Y: Your task[edit]

  • Did you select a task from our list of proposals and ideas?
    • 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.
    • If you apply for a task you have added yourself instead, please describe this task, its scope and people you already talked to concerning it. What field of tasks did you miss on the list?
  • Please provide a rough estimated timeline for your work on the task.

I would choose the sparse matrix tasks.

As a rough timeline I would start with improving QR factorization by connecting Octave to the SPQR library to enable faster parallel calculations, then move on to sprand from ~ 25.08., and then to logical indexing from 20.09. As this is a task with many small projects, each would have its own research, development, testing and documentation phases, but if I finish before schedule the remaining time could be used to refine documentation and more rigorous testing, or maybe even other improvements.