Real FOSS appreciation
So, it’s been roughly a year since my first commit to kdelibs. According to Ohloh it’s been in November 2008. And boy have I learned much in this year. I learned C++ just to be able to contribute to KDE, since I thought it would be awesome to be able to “fix your own itch”. I have to say: It was the best decision I ever made.
I really came to appreciate FOSS in a whole new light: Contributing to a big project like KDE gets you in contact with lots of nice people. And they will help you get things done. What’s better is that in the process you learn lots of things. And I mean lots. I can now use GDB, Valgrind, now my way around some parts of the KDE/Qt API, can investigate performance related questions… And since these are such huge topics, there’s always more to learn, much more!
I doubt someone could learn that much by reading books or writing his own little application without the help of a community. The wealth of possibilities inside KDE will increase your horizon constantly. And there is tons of very good code to study! Want to know why something is not working? Look at the source. Still not helping? Ask your fellow developers. I really have to say it’s an awesome feeling to be part of this big community.
Fixing an itch: Qalculate! backend for Cantor
You know, I’m officially a Physics student, I just happen to be way more interested in programming (the practical part of it, not really that much the theoretical part).
Since I started with Physics two years ago, I always required a good calculator, esp. for experimental physics. The best calculator I found was Qalculate!, especially it’s great support for units and constants made me solve tedious exercises in a fraction of the time it required my fellow students that could not use Qalculate (it only runs on Linux). Really, it’s an outstanding piece of software in my opinion.
But to get to the point: Qalculate was the last KDE 3 app on my desktop, and I wanted to change that. Now I read about Cantor, esp. once fellow KDevelop hacker Apol wrote about his KAlgebra backend for Cantor, and I knew: This is the perfect fit for libqalculate!
So last week I started and already have a somewhat working backend available:
This once again showed the utterly insane greateness of FOSS: I started to hack on the backend and looked at the existing backends for guidance. I also contacted arieder, the author of Cantor, directly and chatted with him, getting help. But I did not only /take/. I reviewed his API, gave suggestions, reported whishes and bugs and eventually hacked a little bit on the sources themselves. Imagine this in a corporate environment: I’d probably have had to report in some shabby tracker and wait ages for my feature request to be closed as wontfix…
And while writing the backend I had this realization that also triggered this blog post: I actually did something useful in a few days. I could never have imagined being in that position one year ago. I always thought that C++ was a bit of black magic, especially writing things from scratch. But now… Now I’m somehow able to grasp code and come up with something working in a few days.
The problem this brings, is of course that you can easily loose track and overload yourself with work… I could spent lots of hours in any part of KDE. My TODO alone bears for KatePart, KDevelop-PHP, KDevelop itself, Quanta, …. You name it! I think this will become a fun holiday ;-)
PS: Just a quick note: I really think that Cantor will become a great and useful application for science students. It will be your central application for any calculations, either numeric (e.g. Qalculate) or symbolic (e.g. Maxima).