Cantor is a free software mathematics application for scientific statistics and analysis.It is part of the KDE Software Compilation 4, and was introduced with the 4.4 release as part of the KDE Education Project's kdeedu package.
Cantor is a graphical user interface that delegates its mathematical operations to one of several back ends. Its plugin-based structure allows adding different backends. It can make use of Sage, Maxima, R, KAlgebra, Qalculate!, Python, Scilab and GNU Octave.
Cantor provides a consistent interface to these backends; its project page lists the following features:
Nice Worksheet view for evaluating expressions
View of plotting results inside the worksheet or in a separate window
Typesetting of mathematical formulas using LaTeX
Backend aware syntax highlighting
Plugin based assistant dialogs for common tasks (like integrating a function or entering a matrix)
Cantor was the first KDE project to implement upload to the GetHotNewStuff addon service, which is used to download or upload example worksheets. It provided impetus for improvement of this feature for KDE SC 4.4.
KDE 4.4 will see a new KDE educational application which is a frontend to several existing mathematical software such as R, Sage and Maxima: Cantor. Cantor offers a worksheet as a nice GUI for all those backends and is not targeted to kids but to scientists. More about Cantor will be detailed by the developer when he has time to blog about it!
A.R., the developer, is a newcomer within KDE and this part of the story tells my perception of his integration in our community. This blog post addresses A.R.'s integration and reflects on the general process of contributing to KDE.
So, what does it take to become a KDE contributor?
- the idea: A.R. had an idea of a software that he needs. This is the fuel, the motivation. He then probably wants it to be Free Software. Somehow he chooses KDE. You need to have some use cases for your project.
- the preparation: the idea is taking shape (in Cantor case, the application has been developed based on KDE libs and is working, it quite looks as A.R. wanted it to look). The developer is alone and feels his project will have a better chance to reach the outer world if he is part of a bigger family.
- the big dive: now it is time to ask KDE how to join and what to do. You can do it by mail or by IRC or by contacting someone you know in the project. You don't dive without some very specialized equipment so you'll be invited to read some techbase pages, apply for a svn account and import your code into playground. If you never used svn, this is a challenge but there should be people helping you and guiding you through the process, fixing things along and explaining you what you are unsure about (they are your oxygen tanks!).
This is probably where the community shows his openness or not.
- the never-ending-finishing-touches (struggling for air): you are now familiar with svn and some people already looked at your project and gave you feedback. First feedback is usually about missing features, coding problems (style, i18n, ...) and bugs. So brace yourself because it might feel a bit negative. People also should encourage you.
At that point, you should know several people in the community, some related to your project and also core developers, artists, ..., you communicate via mailing lists, maybe you chat via IRC. You might have come to a KDE event already. You are at ease in KDE world!
I was amazed how A.R. managed to easily and quietly go through all these steps. I suggested to use GHNS in order to share examples and worksheets. Not only A.R. implemented it for download, he also managed to be the first one to implement upload. He contacted Jeremy W, Josef S and Frank K and he thus initiated some impulse to improve GHNS and file sharing. The finishing touches to upload should be tackled for 4.4.
I don't know why A.R. chose KDE or how he took the big dive or how he now feels about KDE, I only crossed his path a few times on IRC so this text is only my own perception of the process.
If you liked this article, subscribe to the feed by clicking the image below to keep informed about new contents of the blog: