User:Jswierk
A: An introduction[edit]
- Please describe yourself in three sentences, one of them regarding your current studies.
I'm doing last year of MSc in Robotics at University of Science and Technology in Krakow, Poland. I'm mostly interested in computer vision and control theory but I'd like to expand my knowledge of numerical mathematics.
- Which languages do you speak?
Polish and English.
- What's your overall background?
I have BSc in mechatronics and currently I'm studying automation and robotics for MSc.
- Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so?
I'd like to improve my coding skills over summer and experience working on a bigger project (things like revision control systems).
- Why are you choosing Octave?
I had to work with Octave before but like I've said before, I'd like to expand my knowledge of numerical mathematics and Octave seems like a good choice.
C: Contact[edit]
- Please state the (unique and identical where possible) nick you use on IRC and any other communication channel related to Octave.
I'll be using jswierk nick.
- Which time zone do you live in? Will that change over GSoC duration?
I live in Poland which is currently situated in UTC+2 timezone (daylight adjusted). It won't change over GSoC duration.
- Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers?
I usually get up at 5-6 am and I will be able to work till 3-4 pm or a bit later to 6pm (times provided in UTC+0).
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.
I feel rather experienced with C++ and Matlab m-scripts. A lot of projects done during my studies had to involve writing m-scripts. I used Octave for only one assignment and it wasn't anything big but Octave is really similiar to Matlab. I have basic knowledge of OpenGL and intermediate knowledge of Qt library.
- Please describe your experience with other programming languages.
I also coded in C, Java, Python, SQL and VHDL, though those were mostly small-to-medium one-time assignments.
- Please describe your experience with being in a development team.
Unfortunately, I have no experience working with open source projects but I experienced working in small (2-4 people) development team working on few computer vision applications. We were using git as a revision control system and were holding periodic meeting to share our latest developments and problems and to try solve them together.
- 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.
As an example, one of the projects I worked for involved creating advanced panorama stitcher. My job was to develop and code bundle adjustment algorithms for error minimization and during that I had to learn basics of sparse matrices computation because calculated matrix (approximated hessian with jacobian) was sparse. I had to read quite a few published papers on that topic to be able to fully understand the very concept of bundle adjustment and how it helps with the whole process of image stitching.
- Please state the commits and patches you already contributed to Octave.
F: Feeling fine[edit]
- Please describe (in short) your experience with the following tools:
- IRC and mailing lists
I have basic understanding of those two though they don't appear hard to catch up.
- Mercurial or other source code management systems
On daily basis I'm using git but haven't used Mercurial.
- Mediawiki or other wiki software
I contributed to two wiki sites some time ago but haven't done that recently. I feel rather comfortable with it.
- make, gcc, gdb or other development tools
I would say I have semi-intermediate skills with those.
- What will make you actively stay in our community after this GSoC is over?
Self-realization through constructive criticism and improvement of my coding skills.
O: Only out of interest[edit]
- Did you ever hear about Octave before?
Yes.
- If so, when and where? How far have you been involved already?
Once, I had to do medium sized assignments on Octave instead of Matlab.
- 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 wanted to use lqr command but it wasn't implemented.
P: Prerequisites[edit]
- Please state the operating system you work with.
I mostly work on Windows 7 but I have bridge linux on virtual machine.
- If you have access to more than one, please state them and the conditions under which you are granted this access.
Like stated before, I have bridge linux on VirtualBox on the PC I mostly work on and ArchLinux on my laptop.
- 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
I should be able to access them 12-16 hrs/day averagely.
- Please describe the degree up to which you can install new software on computers you have access to.
I can install any software on both my PC and laptop.
S: Self-assessment[edit]
- Please describe how useful criticism looks from your point of view as committing student.
If criticism has strong argumentation I usually try to analyze the situation from different point of view. It's often required for self-realization.
- 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?
I prefer to code autonomous but I will start a discussion when I'm at impasse.
- 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 often do that with my assignments, it takes longer but at the same time I usually learn something new.
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.
I'd like to work on numerical analysis. My first focus would be implementation of incomplete Cholesky and LU factorization and sparse matrix improvements (focusing on adding lqsr and qmr) because it could be similiar to the work I've done recently and I've already read few papers on that topic. My next project would be improvement of matrix functions and generalization of eig function. If it's done fast enough I'm open for rest of the problems or for projects not yet stated here but dealing with numerical analyzis.
- Please provide a rough estimated timeline for your work on the task.
28.05 - 16.06: get to know mentor, discussion about implementations, configuring environment.
17.06 - 23.06: implementation of incomplete Cholesky (ic(0), ict)and LU factorizations (ilu(0), iluc and ilutp).
24.06 - 30.06: exams break.
01.07 - 14.07: implementation of incomplete Cholesky (ic(0), ict) and LU factorizations (ilu(0), iluc and ilutp).
15.07 - 21.07: writing documentation and bug fixes for both factorizations.
22.07 - 31.07: improvements and bug fixes to sparse matrix implementations, possible creation/improvement of documentation.
01.08 - 02.08: mid term evaluation.
05.08 - 18.08: working on generalized eigenvalue function, fixing existing bugs and correcting documentation.
19.08 - 25.08: fixing bugs of my own implementation.
26.08 - 08.09: adding matrix functions (logm, sqrtm, etc..)
09.09 - 15.09: fixing bugs of new matrix functions.
16.09 - 22.09: final corrections of code - scrubing code, writing tests and improving existing documentation.
23.09: final submittal .