From Octave
Jump to navigation Jump to search

A: An introduction[edit]

  • Please describe yourself in three sentences, one of them regarding your current studies. I'm a third year student studying mathematics at the University of York in the UK.
    • Which languages do you speak? English
    • What's your overall background? Mathematics, although I take an interest in Computer Science
  • Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so? I hope to gain more experience in contributing to an open source project.
    • Please also describe your previous experience with the GSoC, if any. None
  • Why are you choosing Octave? I like the concept of a mathematical programming language, particularly that Octave provides one that is Open Source. I also think that my mathematical background makes me better able to contribute to Octave.

C: Contact[edit]

  • Please state the (unique and identical where possible) nick you use on IRC and any other communication channel related to Octave. jameseb
  • Which time zone do you live in? Will that change over GSoC duration? UTC+1
  • Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers? I can work for most of the day (9:00 - 21:00), possibly later if necessary; my schedule is pretty flexible and I should be available on IRC for most of that time.

E: Coding experience[edit]

  • Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.
    • I am comfortable coding in C++.
    • While I have not done much coding of Octave/Matlab m-scripts, I am familiar with the language.
    • I have not used OpenGL before.
    • I have only some basic programming with Qt.
  • Please describe your experience with other programming languages. I have learned several other programming languages, including Ada, C, Java and some simple Fortan.
  • Please describe your experience with being in a development team. I have no real experience working as part of a development team but I would like to gain experience working with other developers.
  • 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 not worked as part of a project with other developers as I have mostly learned programming on my own in my spare time. Over the past year I have been starting to write my own operating system kernel as a project to help me understand how operating systems work and how to write large, complex pieces of code. The main thing I have learned from this is that it is necessary to have a full and clear plan for the project before starting to code.
  • Please state the commits and patches you already contributed to Octave. I haven't yet submitted any code to Octave but I hope to do so in the future.

F: Feeling fine[edit]

  • 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 am comfortable with using IRC and communcating via mailing lists
    • Mercurial or other source code management systems I have not used Mercurial in the past but I am familiar with source code management systems such as git.
    • Mediawiki or other wiki software I am familiar with wiki software
    • make, gcc, gdb or other development tools I can use make, gcc and gdb
  • What will make you actively stay in our community after this GSoC is over? A friendly and welcoming community, and plenty of tasks with which I could be active.

O: Only out of interest[edit]

  • Did you ever hear about Octave before? Yes, I heard about Octave when working with some Matlab code and I was glad to find that there is an open source clone of Matlab.
  • What was the first question concerning Octave you could not find an answer to rather quickly? I haven't had such a question yet, the Octave documentation is reasonably good.

P: Prerequisites[edit]

  • Please state the operating system you work with. Linux, specifically the latest version of Xubuntu
  • Please estimate an average time per day you will be able to access an internet connection, a compute, a computer with your progressing work on I will have access to my computer, which has an internet connection, almost all the time and I should work entirely on that one computer.
  • Please describe the degree up to which you can install new software on computers you have access to. I have access to the root user and can install any software via the package manager, compiling from sources or otherwise.

S: Self-assessment[edit]

  • Please describe how useful criticism looks from your point of view as committing student. If the criticism is constructive and helpful then I would endeavour to make changes according to the criticism. I generally strive to make my work as good as it can be.
  • How autonomous are you when developing? I can be fairly autonomous, given a clear plan of the structure within which I am working.
    • Do you like to discuss changes intensively and not start coding until you know what you want to do? I have found that it is best to have a good idea of what needs coding before starting.
    • 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? While I like to have a good plan of how to proceed before starting, more considerations may arise while coding, causing amendments to the original plan to be made so while having a good plan ahead of time is good, it should aim to be modular to allow for changes without causing large changes to the structure.

Y: Your task[edit]

  • Did you select a task from our list of proposals and ideas? Yes
    • 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. I want to work on adding missing functionality to the eig() function. In particular, it seems the present implementation does not accept the 'nobalance' option for the one matrix form (it expects the second argument to be a matrix), and the 'chol' and 'qz' options for the two matrix form (it does not allow a third argument).
  • Please provide a rough estimated timeline for your work on the task. I expect to spend some time at the beginning to familiarise myself with the Octave source code, although I have already started looking through the code and identifying what I would need to do so I should have that phase completed before the SoC begins. I would then start work on adding support for the 'nobalance' option as that should only involve deactivating a preliminary part of the eigenvalue algorithm. After that I would work on implementing one of the two options for the two matrix calling form, with a view to having that mostly completed by the mid-term evaluation. After that I would continue by implementing the remaining option for the two matrix calling form.