Editing User:Siko1056

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
This is '''Kai Torben Ohlhus''' (a.k.a. '''siko1056''' on Discourse and alike). I started contributing to GNU Octave during [[Summer of Code#GSoC 2013|GSoC 2013]] as student and worked on incomplete factorizations (read my [http://siko1056-gsoc.blogspot.com/ blog]). The project was completed in [[Summer of Code#GSoC 2014|GSoC 2014]] by [[User:Edu159 | Eduardo]].
== A: An introduction ==
* I am '''Kai Torben Ohlhus''', a [http://www.tuhh.de/alt/tuhh/education/degree-courses/masters-programs/informatik-ingenieurwesen.html 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 [http://www.ti3.tu-harburg.de/paper/rump/OgRuOi05.pdf [1, p. 8]] [http://rnc7.loria.fr/louvet_poster.pdf [2]], which makes use of FMA-instructions [https://en.wikipedia.org/wiki/FMA_instruction_set [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  <math>r_i = (A_i , -1) * (x , b_i)^T</math>. 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.


Since 2013, I continuously support the development of [https://savannah.gnu.org/project/memberlist.php?group=octave "core" Octave] and maintain parts of the Octave [[Project Infrastructure]]:
== 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.


* Several [https://hg.savannah.gnu.org/hgweb/octave/log?rev=ohlhus code contributions] to GNU Octave itself.
== E: Coding experience ==
** Triage the [https://savannah.gnu.org/bugs/?group=octave bug tracker] (review, comment, and push patches).
* 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: [http://intranet.tuhh.de/kvvz/vorlesung.php3?Lang=en&sg_s=IIWBC&id=key2689 Laboratory course (MATLAB)], [http://intranet.tuhh.de/kvvz/vorlesung.php3?Lang=en&sg_s=IIWBC&id=key2224 Computer Programming (C)] and [http://intranet.tuhh.de/kvvz/vorlesung.php3?Lang=en&sg_s=AIWBC&id=key3219 Introduction to Programming (C)]. I have some  experience with Qt4. With OpenGL I have no experience so far, I worked with SDL.
** Support the release process (create and upload [interpreter] and [[Doxygen]] documentation).
* 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.
* Co-maintainer and caring for updates of
* Nearly all programming laboratories at university were solved in a team, making use of version control systems and organization techniques like [https://en.wikipedia.org/wiki/Scrum_(development) scrum].
** [[Special:ListUsers/sysop | this Octave wiki]] ([[Special:Contributions/Siko1056 |all contributions]]).
* My biggest project so far was [https://code.google.com/p/searchbooster/ 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!
** the official GNU Octave website https://www.octave.org ([https://hg.octave.org/web-octave/ page source]).
* I have not contributed to Octave so far.
** the [https://octave.discourse.group Octave Discourse forum].
 
** several [https://gnu-octave.github.io/packages/ Octave packages].
== F: Feeling fine ==
* [[Summer of Code | GSoC]] mentor in 2014, 2018, and 2020-2022, co-mentor in 2017.
* 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).
 
== Y: Your task ==
* The task I would like to combine with my master thesis is [http://wiki.octave.org/Summer_of_Code_Project_Ideas#Incomplete_sparse_factorizations_ichol.2C_ilu 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.
 
[[Category:Summer of Code 2013 Applicants]]
Please note that all contributions to Octave may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Octave:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)