DragMath

  • user warning: Table './jem/sessions' is marked as crashed and should be repaired query: SELECT COUNT(sid) AS count FROM sessions WHERE timestamp >= 1231455913 AND uid = 0 in /var/www/net.jem-thematic/site/includes/database.mysql.inc on line 174.
  • user warning: Table './jem/sessions' is marked as crashed and should be repaired query: SELECT DISTINCT u.uid, u.name, s.timestamp FROM users u INNER JOIN sessions s ON u.uid = s.uid WHERE s.timestamp >= 1231455913 AND s.uid > 0 ORDER BY s.timestamp DESC in /var/www/net.jem-thematic/site/includes/database.mysql.inc on line 174.

DragMath is a free "drag and drop" equation editor. It is a Java applet which can simply run within a web browser on most computers.

The editor lets users build up mathematical expressions in a traditional two dimensional way, and then output the results in a correctly formed syntax. This is not so easy: mathematical notation contains some ambiguities. Still, we appear to be stuck with traditional notation for the foreseeable future, see for example this article for some comments on notation. This gives some idea of the design of DragMath.

The supplied output formats are MathML, LaTeX, Maple, Maxima. It is also possible to convert the expression to almost any user defined style by creating an XML file with the correct syntax data in it. Details of how to do this are included in the documentation.

Although mathematics is less dependent on language than many things, the applet loads a language file which makes it possible to translate DragMath into other languages. DragMath has currently been translated into: Catalan, Czech, Dutch, English, French, German, Norwegian, Polish, Portuguese (Brazilian), Russian, Spanish and Swedish.

Challenges: 

Create something very simple to use and lightweight to deploy.

We really wanted to make it easy for other people to contribute without them having to recompile the applet. This include adding output formats - you just modify an existing .xml file to create a new output format. Similarly for the languages. This seems to have worked.

Successes: 

Lots of people seem to be using it! We get a number of translations, which is very gratifying.

Lessons learned: 

Make it simple.

Make it easy for others to contribute.

Do one thing well with each project.

Get the right software developer.....!