Summer of Code 2007 - Possible application?
Hi everyone at the Inkscape team,
my name is Maximilian Albert and I am currently a student of mathematics with minor subject computer science at the university of Heidelberg, Germany. This email serves the purpose of introducing myself to the Inkscape community because I am considering applying for Google Summer of Code 2007. For your convenience I have split this email into several sections. I apologize in advance for its length, but I figured it might be helpful to be a bit more verbose and give you a chance to get an impression of me (at least, as far as this is possible via such a rather impersonal medium as email).
1) Current stage of my education.
Right now I am in the final stage of my Diplom thesis in mathematics (the Diplom is roughly equivalent to a combined bachelor and master degree). I expect to complete my thesis in the next few weeks. Subsequently, there are four oral examinations the last of which will probably take place in late autumn or even further towards the end of the year. Passing these will finish my studies.
2) How I got interested in the project.
I learned about Google summer of Code only about one week ago when I accidentally stumbled across the corresponding webpages. I was fascinated by the concept right from the outset, but with regard to the current state of my studies quickly jettisoned the idea of applying. I figured it would be illusionary to try and tackle an additional project of this extent, given that I will probably be spending most of the time in summer learning for my exams.
However, the idea kept lurking in the back of my mind, and since I found myself more and more excited about the project's concept, I thought it over and came to the conclusion that there actually is a very good - and, most importantly, realistic - chance to successfully work on it. By now I am very much willing to give it a try. The point is that I can probably choose the dates of my exams in such a way as to keep the period during which SoC is supposed to take place completely free from any other duties.
At this point you will probably be thinking that I am much too over-enthusiastic and therefore running the risk of completely misjudging my capacities. Please be assured that I definitely won't submit an application unless I can 100% guarantee that I will be able to commit my full time and power to the project. I am well aware that this requires very careful planning and organization. But I proved more than once in the past that precisely this kind of "double burden" makes me tap my full potential (this is also why I am mentioning it at all instead of keeping you in the dark about it). I am sure that in case I should really come to the conclusion that an application is realistic, and should I be chosen, I would be of great benefit for the project.
3) Why Inkscape?
Having decided to wholeheartedly think about getting involved, I browsed the list of mentoring organizations and was delighted to find Inkscape among them. Way back in the last millenium ;) when I was still working under MS Windows I had made my first experiences with Adobe Illustrator and got even more fascinated about computer graphics and visualization than I already was. After my switch to GNU/Linux many years ago I discovered Inkscape and since then have used it working on a handful of projects, most of which were fun ones only of interest to myself. But some examples are actually used as the logos on my choir's website. See the main page at http://www.kammerchor-alumni.de as well as the several subcategories (unfortunately the site is in German, but clicking on the icons shouldn't require any advanced language knowledge ;)).
Recently I have been following the improvements and breathtaking new developments announced on the Inkscape website. More than once I thought about making a contribution (in fact, I already made a tiny one in the form of reporting bug #1598337, but I guess that doesn't really count). Lacking a concrete starting point, however, and above all the necessary time during the preparation of my thesis, I had to postpone the idea. Therefore I was excited to learn about the opportunity of getting involved in the framework of GSoC.
4) My experience in (graphics) programming and open source development
To tell the truth, in Heidelberg the demands for computer science as a minor subject with regard to concrete programming tasks are not the highest. Therefore most of the programming I have done so far were smaller projects for my own amusement.
However, when working on a practical at the visualization group of the Interdisciplinary Center of Scientific Research [1] which was required for my Vordiplom (a kind of pre-degree), I was lucky in that I could bring in an idea of my own which developed into a very fruitful and quite extensive project. It was concerned with the development of a program I dubbed HyperView, which serves as a tool for 3-dimensional visualization of 4-dimensional spheres, using the Hopf fibration. The projects' documentation can be found at
http://pille.iwr.uni-heidelberg.de/~kugeln/
(Luckily, I prepared it in English at the time.) Be warned, however, that the code has not been maintained since the completion of the project in 2003, and I am not even certain that it will currently compile.
In recent times my extensive hobby of making music (singing in particular) and in this connection preparing score arrangements and even composing short pieces has led me to get involved with Lilypond,[2] a free(TM) musical typesetter and automated engraving software. My first small contributions were the creation of a new notehead (requested by a composer on the mailing list), a small bugfix and one or two bug reports. Right now I am working on a couple of small to medium-sized projects ranging from the creation of further noteheads and other symbols to the implementation of a new style for microtonal accidentals (used, for example, in contemporary pieces as well as Eastern European and Asian music). All of these are close to being finished, and I hope them to be included in one of the next few development releases (as soon as I will have submitted them).
As far as my general programming knowledge is concerned, I am proficient in C, C++, HTML, (shell) scripting, and even such an excentric thing as metafont. ;) Furthermore, I am knowledgeable to different extents in a couple of other languages/tools, including Scheme/Lisp, Python, Perl, sed, and awk.
5) Ideas for a SoC project
The most severe problem I am facing right now is that in the short period since mid-week (when I discovered SoC) I haven't yet been able to develop really great ideas about possible projects I could tackle. My primary intention so far has been to get acquainted with the source code (see also point 6 below) and to find out for myself if it would make sense to submit an application (which the way I see it now I would almost certainly answer in the affirmative).
Of course, I browsed your website where first and foremost the description of the planned 3D box tool captured my fascination. I believe that all of the ideas related to it that are mentioned on the webpage are certainly both tractable (although the whole lot is doubtlessly too much for a single person during a SoC project) and promising to be fun projects. The underlying mathematics are definitely comparatively trivial from a mathematician's point of view, but judging from my experience with HyperView (see point 4 above) - albeit only on a gut level, without having thought about details yet - I suppose that a lot of small problems can be avoided by choosing the right design approach. I think that my knowledge of the underlying algebra would definitely prove very useful in this regard.
Unfortunately (for me, at least ;)), I saw that Gail Banszkiewicz has already exchanged her ideas with you about this project (I may have missed other peoples' contributions on the subject since I only skimmed over the mailing list archives). I certainly do not want to come into conflict with her, especially since she has contacted you much earlier and seems to have more precise ideas. So I will have a deeper look at the other projects described on your website and will also try to come up with and crystalize out my own ideas.
On second thought, the shared interest of two people could also be a great advantage because maybe there is a way to split the project into smaller parts which can be tackled more or less independently. If it were possible to agree in some way on a certain design or common interface prior to the start of the project, the two of us (or even more students if interested and accepted) could work independently on their specified task(s). In the end the various features could be combined to yield a much more powerful tool than would have been possible if worked on by a single person alone. Does any one of the mentors who is more into it than I currently am see a possibility for this?
Of course, this is only a vague idea and would certainly require Gail's and other people's approval. And I would like to reemphasize that I definitely don't want to thwart anyone. Just thinking aloud ...
6) Completed tasks and open issues related to an application
Following the recommendations on your website, I have tried to get acquainted with Inkscape's source code and internals. This also served the purpose of deciding for myself if it would make sense to apply. IMHO, the results have been encouraging. ;)
Yesterday I checked out the svn version and compiled it on my system, which worked more or less smoothly. After agreeing on very short notice to participate in a singing project last night, ;) I have been concerned today with fixing bug #1671665 (randomly chosen from the list). This afternoon I was already about to write that my progress looks promising. Waiting until tonight turned out to be a good decision, however, because in the meantime I was able to actually fix the bug. The fix is submitted as patch #1683338. Please feel free to have a look at it and make comments if you wish.
This completes half of the required bugfix task, I believe. It is unlikely that I can work on a second one tomorrow but I will do it in the next couple of days and keep you posted on my progress. As I said, it will also take me a few more days before I can finally decide if working on a project this summer really makes sense. Definitely the last thing I want to do is waste both my and your time with a healf-hearted application that is doomed to failure due to misjudgement and bad planning.
I will get in touch with you again as soon as there are any news, such as ideas for possible projects. In the meantime, if there are any questions or proposaly from your part, please do not hesitate to contact me. I am very much looking forward to hearing your comments, thoughts and oponions.
Until then thank you very much for struggling through this extremely long email!
Best regards, Max
Sorry for the second posting - although you will probably be delighted that it is so short ;). I just realized that in the last one the footnotes were missing. Here they are:
[1] http://www.iwr.uni-heidelberg.de/groups/ngg/ [2] http://www.lilypond.org
participants (1)
-
Maximilian Albert