Fleshing up a post-GSoC proposal to improve Krita

JL VT pentalis at gmail.com
Sat Aug 7 13:05:11 CEST 2010


Hello everybody!.

For the executive summary, read the end of this e-mail.

As you can see GSoC is about to finish, but I have the wish to keep
contributing to Krita after it is over.

Unlike the pre-GSoC Pentalis, I have grown wiser and know a bit
better. I'm much more familiar with C++ and Qt than before, as well as
Krita's codebase. In my first half of GSoC, most of my time was spent
trying to overcome trivial obstacles like properly linking the GUI,
using Krita's functions, getting things to work... the algorithm was
the easy part for me, because it involved nearly pure, abstract
thinking. In this second half I've become more proficient at solving
those issues, and while I still stumble upon "dumb" obstacles, they're
of a much more complex nature than the things that first slowed me
down.

And, unlike the pre-GSoC Pentalis, there are two things where I see a
lot room for improvement in Krita:
1.- Documentation, both for users and developers. I believe myself a
most fine example of a documenter, modesty apart, so I think that now
that I know better of how Krita works inside (and outside), I could
prepare a whole manual for users, or numerous how-tos for aspiring
newbie developers. I could cover everything to allow even an artist
inexperienced in programming to make a, say, new paintop or filter, or
prepare a GUI module.
2.- Speed. But I mean ludicrous speed, I'm talking about GPU
acceleration. In this part I am not completely sure of how many parts
of Krita can be GPU accelerated, but most filter functions can surely
be accelerated; my own, for example, as well as the blur filters. I
have no knowledge of how to program OpenGL shaders, but if I could
learn Qt, C++ and Krita, I can learn that.

<<Deep breath>>

After the 20 of August, I need to be absent for a few weeks to present
my thesis and finish my chemistry career once and for all. But after
that is done --hopefully as soon as possible-- I will be free to
pursue any dream.

There is the chance of finding a job as a chemist, which is what I
studied (but don't be mistaken, I have a passion for everything
challenging where knowledge is involved!), it has many upsides
(specially money), but one of the downsides is that I will be working
alone and in an office, and I've really grown to love the community
around Krita, as well as the ever-comforting feeling of working from
home.

As many as you know, my main motivation to join GSoC was the need to
sustain myself, I really couldn't find a satisfying job and this
seemed like an ace card to play. One of my biggest dreams is
developing a game that combines education and entertainment to a whole
new level (and to make a great part of it free as in freedom)- But for
that, I need many skills, and a development computer.

To me, a development computer is a computer so fast, that I can run
Valgrind in it and don't feel I'm trapped in a slow-motion world. I'd
like to learn to debug and benchmark to the finest (applying it on
real systems, like Krita or my game  ;)  ), but getting such a
computer would involve spending everything I'd have earned thanks to
GSoC, that wouldn't be a wise move on my part.

(for prices, check this high-end CPU list
http://www.cpubenchmark.net/high_end_cpus.html , scores are weighted
in such a way that a CPU with 2x the score of another, would feel 2x
as fast, my current CPU has a score of 1,003 (it's in another list)).

I tried to contextualize my intentions so I gave all that background
information to give some foundation to this idea of preparing a
proposal for the Krita community (which I first wanted to discuss
here).

I'd like to try to get something like Lukas' community-sponsored
coding to happen. It's quite obvious that Lukas is a much more
experienced developer compared to me, so I'm not sure what would be
the community's reaction to a similar proposal (even if I manage to
achieve all my goals before the hard pencil's down date, which I'm
determined to do).

So I was thinking of a different way to propose it. A twist could be
to make it goal-oriented instead of time-oriented. I could take a list
of goals, a wishlist from the community, and work on fulfilling it to
get a payment (I know to many it may sound impure to talk about money
like this, but reality has taught me that money is a necessity, so
avoiding it is not a good idea).

I know where my strengths lie, the tasks where I'd be the most
efficient would obviously be those where I feel the most comfortable
or excited, that encompasses the two fields I pointed out above:
speed/stability (Valgrinding, OpenGL-inging) for excitement, and
documentation for comfort (I'm /really/ confident on my ability to
make clear explanations). However, GUI improvements are also fun (but
I'd have to mix them with the other options).

Another advantage of a goal-oriented proposal is that it goes better
with my personality. I'm quite chaotic (but less than my pre-GSoC
self). There's days I don't work on GSoC, then the next day I pull a
16-hour marathon (happened this week). So it's easier for me to commit
to goals than to terms.


====Executive Summary====

I want to keep contributing to Krita, but I need sponsoring. I'd like
to look for community sponsoring.
I considered the possibility of crafting a goal-oriented (do X)
proposal to be better than a time-oriented one (work for X time), as
it would be easier to catch the community's interest given my level of
experience as a developer (just this GSoC), and it would better fit my
personality.
I'd like to work on documenting Krita, or improving Krita's speed
through GPU acceleration. I consider myself to be a most capable
documenter (and teacher in general), and I'm very interested in
learning how to program in OpenGL.
And finally, the sponsoring wouldn't be to sustain myself (just the
first part of GSoC gave me food and shelter for long), it would be to
get a really fast development computer to run Valgrind on till I burn
the CPU fan.


----Final comments----

It may seem too soon to start talking about this topic, but I wanted
to get this out of my system. I have too many ideas running in my head
and I feel better when this head is only populated by a few at a time.

Thanks everyone for reading,
May you have an excellent day.


PS: I proofread this twice, sorry if mistakes slipped.


More information about the kimageshop mailing list