A: An introduction
- I'm Kai Torben Ohlhus, a computer science and engineering student in the final master semester from Hamburg, Germany. During my studies I specialized on software systems and communication networks and discovered a passion for computer arithmetic and algorithms, which will now be topic of my master thesis. I speak German (native), English (fluent) and Spanish (basic).
- My intention to participate in the GSoC 2013 is to work on a software project that can be part of my master thesis, which I start now in April. Till now I haven't participated in any GSoC and this year will be my last chance to do so.
- The choice for Octave came during the planning of my thesis schedule. My master thesis will deal with accurate fast scalar products and matrix-vector products for big sparse linear systems, usually coined to be called with MATLAB's MEX-Interface. But I prefer to use software where I can read the source code of how something is done, rather than a sparse documentation. So don't be afraid to disapprove my application, I'll stick to Octave.
- I know how to use IRC and I will be online as often as possible under the nick siko1056 on #octave.
- GMT+02:00 (CEST)
- I use to work from 10.00 to 18.00 +/- 2 hours.
E: Coding experience
- Since the beginning of my studies (so more than four years) I work with C, C++, and m-scripts. I attended many courses and laboratories dealing with these three languages. From my 3rd semester on I'm a student tutor for these courses: Software part of a laboratory course (MATLAB), Computer Programming (C) and Introduction to Programming (C). I have little experience with Qt4 and with OpenGL I have no experience so far, but I worked with SDL.
- Other languages of my studies were Java and web applications (JSP and Servlets). Because I use GNU/Linux as my day-to-day OS, I know BASH-scripting and for FPGA-Programming I worked with VHDL a lot. Additionally I created many documents using LaTeX.
- Nearly all programming laboratories at university were solved in a team, making use of version control systems and organization techniques like scrum.
- My biggest project so far was searchbooster a desktop document search tool based upon Apache Lucene and Apache Tika. It was developed by me and three other students in a team using scrum, Subversion (at Google Code now GIT) in a time of three months. I learned like in other projects, that an interface is something you shouldn't break every day and a proper code and comment style saves a lot of time!
- I haven't contributed to Octave so far.
F: Feeling fine
- IRC I don't use that often and I read some mailing lists.
- I worked a lot with GIT, Subversion and Mercurial.
- I successfully installed a Mediawiki on my homepage once and I'm familiar with Wikipedia.
- make, gcc, gdb, javac and IDEs (e.g. Eclipse) I worked a lot with
- It would make me happy and stay I see that my work is used in the stable regular releases of Octave!
O: Only out of interest
- Since I got to know MATLAB in my first semester, I also got to know about Octave and other numerical software environments. At my university we have free MATLAB student licences and thus many courses are dealing with MATLAB (but I figured out, that you can nearly run all m-files in Octave too). No other questions arose so far.
- My operating systems: Ubuntu 12.04.2 (64 bit) and Windows 7 (64 bit).
- Root access, no time restrictions.
- All day internet connection.
- As far as I can assess my coding behavior it is more defense:
- I don't like to delete work (think before coding).
- I code in small revertible portions and like testing these steps to avoid above.
- I like to find out more efficient ways to do something (so critic is welcome, I want to learn).
- Sometimes I strive for perfection (not always useful, you get stuck unnecessarily).
Y: Your task
- The task I would like to combine with my master thesis is Incomplete sparse factorizations ichol, ilu. It may sound contradicting to implement approximation algorithms, when trying to implement accurate ones. My main reason to work on this project is to get more in touch with efficient ways of how to access big sparse matrices and how to work with the Octave-Interface. After the GSoC I want to apply this knowledge to deal with accurate matrix-vector products.
- My suggested schedule looks as follows (critics are welcome):
- 04 Mai - 16 June: Getting to know Octave and required algorithms in depth (much Mentor consultation to get the task right)
- 17 June - 02 August [Coding begins to Midterm]: Mostly autonomous implementation phase. First working implementations.
- 03 August - 16 September [Pencils down]: Everything fully implemented and tested according to Mentor consultation.