Public application template
A: An introduction
- Please describe yourself in three sentences, one of them regarding your current studies. I'm 4th year student of Kiev Polytechnic Institute.
- Which languages do you speak? English, Russian.
- What's your overall background? Applied Mathematics.
- Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so? Now, when I have real coding experience, I feel myself being able to start contributing in open-source. I think, GSoC is really nice start point for it.
- Please also describe your previous experience with the GSoC, if any. None.
- Why are you choosing Octave? I like what you are doing, and I want to contribute too. This page also looks really inspiring.
- Please state the (unique and identical where possible) nick you use on IRC and any other communication channel related to Octave. k_fuior
- Which time zone do you live in? Will that change over GSoC duration? UTS+3
- Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers? 17.00 - 24.00 during weekdays, the whole day (09.00 - 24.00) during weekends (not every day). It is (currently) quite hard to give more narrow timeframe.
E: Coding experience
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.
- C++ -- strong. Maybe I don't know some really dark sides of C++, but I think I know C++ language and some best practices. I use it for 5 years, 1.5 of which is usage on real projects.
- m-scripting -- basic. Some learning tasks and tutorials.
- OpenGL -- basic.
- Qt -- medium.
- Please describe your experience with other programming languages. Mathematica, Java - basic.
- Please describe your experience with being in a development team.
- 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 for my experience with real projects:
- CAD Software - software developer, tasks - mostly refactoring and bugfixing. I've worked remotely.
- Currently I'm working on medical image processing program. My work is to integrate algorithms, to fix bugs and write new features.
Both of these projects are quite large - more than 10 years old, with several 100k lines of code. The main lesson I've learned -- even if you have no idea at first sight, it's possible to understand your task, the way to do it and complete it.
- Please state the commits and patches you already contributed to Octave. No one so far.
F: Feeling fine
- Please describe (in short) your experience with the following tools:
- IRC and mailing lists basic - Just reading. I've never participated in discussion.
- Mercurial or other source code management systems SVN, TFS. I've never worked with Mercurial, but it seems to be quite easy.
- Mediawiki or other wiki software Well, there is project wiki on my current project.
- make, gcc, gdb or other development tools Only some experience with gcc. I've used similar Microsoft tools.
- What will make you actively stay in our community after this GSoC is over? If I'll be (more) familiar with Octave source code in general and my particular task, it will be good not to leave work halfway. There are (always) also a lot of bugs to be fixed. So if (when) I have enough time, I want to continue contributing.
O: Only out of interest
- Did you ever hear about Octave before?
- If so, when and where? How far have you been involved already? I've heard about Octave first time on Machine Learning class on Coursera.
- 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? No one so far.
- Please state the operating system you work with.
- If you have access to more than one, please state them and the conditions under which you are granted this access. There are 2 OSs installed on my laptop: Windows 7 x64, Kubuntu 12.10 x64. I'll try to use both of them in process of development.
- Please estimate an average time per day you will be able to (if separated) access
- an internet connection
- a computer
- a computer with your progressing work on
All the time. If I have any problems, I'll try to alert in advance.
- Please describe the degree up to which you can install new software on computers you have access to. I have personal laptop, so I can install any software on it.
- Please describe how useful criticism looks from your point of view as committing student. It is. It can be a lot of mistakes at the beginning, so I need feedback to avoid them.
- 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?
- 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?
Rather first, than second. I'd like to know what I should do, and only then code. If there are some difficulties, I usually try to think over them myself for some time, and then ask. Usually I can distinguish what I am able to handle myself, and when it's better to ask. Sometimes, if there are some problems, I can provide quick and ugly solution (not to be distracted from main task) and then remove it ASAP.
Y: Your task
- 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. QtHandles.
- If you apply for a task you have added yourself instead, please describe this task, its scope and people you already talked to concerning it. What field of tasks did you miss on the list?
- Please provide a rough estimated timeline for your work on the task. It is (currently) hard for me to make estimations for several months ahead. Could you help me with this?