Monday, January 25, 2010

Merging computational and communication interface in computer algebra systems

Computer algebra systems (CAS) generally do not integrate with any communication interface. Essentially the computational interface of CAS is the only interface provided. For communication we generally have to rely upon an external program like kopete (http://kopete.kde.org/) or pidgin (http://www.pidgin.im/). Even though kopete and pidgin do provide a tex plugin to display mathematical content it is still tedious to switch between the computational interface and communication interface, that is, computing somewhere and then copying the results and so on.
This situation can be changed in the following way (probably) - imagine a mathematical worksheet where we do the computations but then we run into need for help. I want that part of the worksheet to be visible to the person I want to communicate but probably not the whole of the worksheet. Essentially this would mean the whole communication will be focused on that part of the worksheet. The communication could as well be multi-party communication - like IRC.
So what would be the possible work flow to bring about this functionality? Imagine the following - the worksheet is completely free form that we can place text, equations, tables, graphs etc anywhere. Any part of the worksheet is also selectable just by dragging the mouse. Hence, I drag the mouse and select the region of the worksheet that I want to discussion on. By the side of the selection area a pop-up comes like the one comes by the side of plasma applets in KDE4 desktop. The text part of the communication can be handeled by this pop-up (other possibilities are not ruled out like voice and video communication) whereas the computational part will be handeled by the worksheet itself. Hence, I can compute then and there thereby providing seamless integration of computational and communication interface. Of course other concerns undo has to be built into the system.
In which kind of systems this can be useful? Well a CAS to support such a design might have the following two properties
  1. It has a distributed or client-server architecture there allowing CAS worksheets to communicate with each other.
  2. It has a natural interface where mathematical symbols can be displayed naturally.
  3. It is web enabled.
I dont think a lot of CAS support all these facilities and I am not really sure how much would be the cost of implementing such an interface, however, SAGE (www.sagemath.org) really comes close and has the potential for such an implementation.

Potential Advantages
  1. Communities and worksheets are closely integrated
  2. There would be no difference between communication and computation interface
  3. May be mathematics becomes more fun and exploratory.

Sunday, January 24, 2010

How did I get cantor build on my laptop

It started when I had Debian 5.0 (lenny) installed on my machine. I tried to upgrade it to testing and unstable but things did not work out very smooth and for some reason I lost the complete graphical display. Then I went to #kde-edu on freenode and asked people for suggestions. Some people suggested me to install opensuse11.2, which I did.
For some reason I was badly missing synaptic package manager and breadth of packages that Debian provides. So finally I decided to use a distribution based on Debian. There seemed to be many options (http://www.debian.org/misc/children-distros) but I choose ubuntu. Hence I downloaded ubuntu 9.10 (Karmic) and installed it. But then while searching for a more "development friendly" ( not much concern for stability and so on) distribution I found that kubuntu (http://www.kubuntu.org/) would be a better distribution, probably because it had explicit focus on KDE.
If ubuntu is already loaded it is quite easy to move to kubuntu and edubuntu, install the kubuntu-desktop which is present in synaptic - essentially it will install many more kde packages. But the kde version with kubuntu 9.10 (karmic Kaola) is 4.2.3 however I needed the 4.4 libraries to build cantor on.
It is easy to upgrade KDE using ppa (personal package archives). Very clear instructions are given here (https://help.ubuntu.com/community/Repositories/Kubuntu). Once KDE has been upgraded follow exactly the instructions given here (http://edu.kde.org/cantor/obtain.php) to build cantor.
It is very likely that in the first attempt build errors will be encountered like ZLIB (missing: LIBRARY HEADER) and so on. I went through the error messages carefully and and searched the corresponding packages in synaptic. All of the essential packages were available. After installing all the packages I could build and install cantor ( a mathematical frontend for sage, maxima, R and so on).
However in all these process following things must be noted
  1. Debian and/or Debian based distributions have tremendous package management utility.
  2. During build process continuous availability of the Internet is a necessity.
  3. The headers and libraries are included in *-dev packages and hence only the binary is not sufficient for development. Need to install the required development packages.
  4. On kubuntu in order to run a command from command line with super user previlages use the following $sudo sh -c "make install".