Don't mind the state of the page, I'm assembling it (just getting it started, I'll fill in some more details soon.) (I'll also remove all the markup as it suggests, once I make sure it's in a worthy state!)
Public application template
This part is answered in public on your user page. Please copy its source (edit) and then fill. Delete any examples and annotations (this markup) afterwards. Same for questions that do not apply to your situation.
A: An introduction
I'm a mathematics major at McGill University, with a focus in applied mathematics and numerical analysis. I speak fluent English and French; in terms of computer languages, I understand Java and the Matlab/Octave M-file format. As for why I want to work on Octave and participate in Summer of Code, I adore the general philosophy of free software, I've advocated its use for years now, and I want to contribute in some way. I've not been involved before, but having read the timeline for SoC, it makes sense. With respect to why I picked Octave, I started using it in high school when I had a lot of numerical problems to work through, and now in college I'm seeing a lot more use for it when working on numerical analysis problems.
- Please describe yourself in three sentences, one of them regarding your current studies.
- Which languages do you speak?
- What's your overall background? The general field you work in or are studying, e.g. computer science, physics, artificial intelligence, control theory...
- Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so?
- Please also describe your previous experience with the GSoC, if any. Includes any community-bonding, mentor experience or application, not necessarily accepted. We use this subquestion to identify which students are unfamiliar with how the program goes, providing further support. It has no negative impact on your rating!
- Why are you choosing Octave?
On Freenode, I'm user blewis, with nicks blewis, ben_zen (my main) and zen_ben (when I'm not on my main computer). It is not an overestimation to say that I'm connected to IRC for ten hours a day. I live in UTC-5, and if I'm able to work on SoC, that's where I'll stay. As for when I'm comfortable coding, w.r.t. UTC+0, I'm comfortable working from
- Please state the (unique and identical where possible) nick you use on IRC and any other communication channel related to Octave. We really want unique nicks. You might want to bold it.
- Which time zone do you live in? Will that change over GSoC duration? Perhaps DST adjustment or a relocation. Note that both UTC and GMT are not aware of daylight saving time! Please state UTC+x or -x.
- Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers? Example: I usually code around 9.00 to 18.00 and could also try to start earlier (~7.00) for few days ;-)
E: Coding experience
When it comes to coding experience, I am unfortunately not knowledgeable in C++; I intend to learn what I can this semester — I already understand most basic programming skills, and how to manage objects, I simply (or not so simply) need to learn memory management. I have, however, used Octave and Matlab for a few years, and I know how to use m-scripts.
In short, I'm really really green at the serious development. I'm aware that this is a limitation, and I'm working as much as I can to overcome it; since my interests are focused almost entirely on implementing a solution method and not a core element of the software, however, I don't see this as being quite as much of an impediment.
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.
- Please describe your experience with other programming languages.
- Please describe your experience with being in a development team. Do you have experience working with open source or free projects?
- 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.
- Please state the commits and patches you already contributed to Octave. This question (one of the most important parts by the way) is the only part of your application our wiki admins will edit for you even after the application deadline. Code sometimes speaks louder than many words do.
F: Feeling fine
I'm quite used to IRC/mailing lists and wiki/Mediawiki/etc. I'm not as up to speed on source code management as I've not worked on a large project before, but I think I can catch on fairly quickly. I've used make and gcc before; having worked mostly in Java I've not needed them too regularly, so I'll need to learn some more, but again, I don't think that will take much.
- Please describe (in short) your experience with the following tools: We only use this question to determine where you need guidance, not for rating! We by no means expect you to be familiar with all of these and you'll won't necessarily need them while working with us.
- IRC and mailing lists
- Mercurial or other source code management systems
- Mediawiki or other wiki software
- make, gcc, gdb or other development tools
- What will make you actively stay in our community after this GSoC is over? You can also tell us after applications close and we'll happily try to fulfill :-)
O: Only out of interest
- Did you ever hear about Octave before?
- If so, when and where? How far have you been involved already?
- 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? Of course more than one question can be stated. We try to improve based on this each year! Includes learning how to use it, code, website, GSoC application, …
I'm running Mac OS X 10.7 on my personal machine, and I can run pretty much any linux distro in LiveCD format, with enough available RAM to compile software effectively. I'm almost always within reach of the internet, and the only computer I'm working on right now is the one with all my active work. (So, ten hours at least, generally.)
As long as there's more to a comment than just "this is wrong", it looks a fair bit like criticism as opposed to abuse. I won't be able to fix what's wrong if all I'm told is that there is something wrong—a suggestion about what to improve is always welcome, and if you don't know, tell me (so, in that case, just saying "this is wrong, but I can't offer a firm reason why" is fine, as long as I know that, it gives me something to work from!) Basically, give me a reason, not just abuse!
When it comes to how I like to work, I will variously want to discuss an approach before starting or just jump in. If the particular problem is a large one, I'm more likely to develop an approach to what I'm working on, sketching it out as pseudocode or a partial proof as opposed to just diving in. On the other hand, if it's just a small part of the problem, I'll throw a few possible solutions at it and see where I can improve, since (in my experience) it's in the small implementation details that the largest variations can show up.
- Please describe how useful criticism looks from your point of view as committing student.
- How autonomous are you when developing? If you answer both subquestions with "Yes, definitely", we are a tad confused. ;-)
- 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?
Y: Your task
Either of the solution implementations; I'll read the articles some more and decide on one in particular. That will probably firm up over this weekend.
- 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. Please also wiki-link the page for your elaborated proposal here.
- 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. This should include the GSoC midterms and personal commitments like exams or vacation ("non-coding time"). Optionally include two or three milestones you expect.