# User:Siko1056

## A: An introduction

• I am 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 will begin in April. Till now I have not 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. The modification of an dot product algorithm [1, p. 8] [2], which makes use of FMA-instructions [3] (which will soon be available on ordinary PCs Intel and AMD) is the starting point to create a routine to efficiently compute residuals (thus matrix vector products) of the form ${\displaystyle r_{i}=(A_{i},-1)*(x,b_{i})^{T}}$. The next step is to optimize them to be used with big sparse A matrices. To make the use of the routines available to many possible applications e.g. MATLAB or GNU Octave routines by using the MEX-Interface or Oct-Interface. However, I prefer to program upon software where I have access to the source code, rather than only to a sparse documentation. So don't be afraid to disapprove my application, I'll stick to Octave.

## C: Contact

• 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 have been tutoring these courses: Laboratory course (MATLAB), Computer Programming (C) and Introduction to Programming (C). I have some experience with Qt4. With OpenGL I have no experience so far, 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 in a team of four students, including me, using scrum, Subversion (at Google Code now GIT) in a time of three months. I learned, that an interface is something that should never be broken (if possible) and a proper code and comment style saves a lot of time!
• I have not contributed to Octave so far.

## F: Feeling fine

• IRC I don't use that often and I read some mailing lists.
• Concurrent versions systems like GIT, Subversion and Mercurial are well-known.
• 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.

## P: Prerequisites

• My operating systems: Ubuntu 12.04.2 (64 bit) and Windows 7 (64 bit).
• Root access, no time restrictions.
• All day internet connection.

## S: Self-assessment

• 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).