Yesterday afternoon, I spotted a sentence in a Planet Mozilla Projects page which shocked me to no end. Benoit Jacob was advocating the end of MathML in Mozilla code. The thread has attracted a lot of responses, and the tone largely opposed to his proposal.
Personally, I’m opposed to it as well. MathML is one of those frontiers which has immense unexplored potential. Can you imagine writing e-mails to instructors with inline mathematics formulae, or including equations in an instant messaging chat? I can and have imagined exactly that for as long as I can remember. I tried once upon a time to bring MathML into Mozilla Composer with my Abacus project, but determined it was too hard and too hacky to be a true solution.
This is precisely why I’ve been working on my prototype XML editor, Verbosio. It’s supposed to be a complete rewrite of how we create and edit web pages. The idea is that a language like MathML is simply a Mozilla add-on to the editor. Unfortunately I’ve been buried with both full-time work and college to make any real progress on my Verbosio project on my own.
I’ve said for years that I didn’t want to attract a larger audience on an unproven principle. Maybe that’s the wrong decision in this open-source Mozilla community. While I still believe in the idea, I’ve become my own bottleneck. It’s far past time for me to swallow my pride and admit that.
It’s been about six weeks since the Dev Day, and I’m looking at myself wondering what happened to my little MathML editor in XUL project. Oh, I’ve been working on it semi-regularly, but not as much as I’d like to. Other things have taken a priority.
Today, I went looking in my e-mail archives, and I was a little disturbed to see that one of the most important contacts — someone I’d spoken to over the phone — was no longer in my e-mail archives. Considering this gentleman’s company was prepared to offer me a contract to finish my editor, I’m feeling really dumb right now.
If you’re still out there, whoever you are, please send me an e-mail, quick! I’m still interested, and I’m getting myself back on the ball.
(The hiatus was caused primarily by trying to figure out how to load and/or save a file… I finally caved in and installed JSLib. A little tinkering and it looks like I’m in business.)
I took a moment recently to write down my thoughts, after doing a little coding on the MathML Editor in XUL project for abacus.mozdev.org (yes, I know, the site is still vanilla).
As of 22 Feb, here’s what my notes say:
* The template editor now works, at least in terms of creating templates.
* Interactions with the server (storing templates, retrieving them, selecting them for editing) don’t work.
* I need to launch abacus.mozdev.org and see if I can actually run this little PHP+MySQL-based applet on the site. If not, I need another home for the templates under development.
* Undecided how to handle xml:lang and the markup language selection. (I figured it out the next day, but I haven’t coded it in yet.)
* The actual MathML editor itself is not yet developed.
***** Documentation very badly needed, or no one will ever understand how to use the thing.
* MySQL database design is almost ready; I still have to have some way of figuring out how to tag a set of templates as a ‘release’, and how to give those templates a proper version number.
* The “fill-in-the-blank” widget works.
* The “fitb-set” widget (for designating a repeated section of code including fitb’s) doesn’t work yet.
* I don’t have a demo using the MathML editor built yet.
* I need to export a SQL query to rebuild the tables from scratch, for docs.
* I need to reorganize what I do have for the mozdev file system
* I need to write a primer on how to use MathML and the MathML editor’s mEdit namespace together
* I need to reorganize the template editor to better use the screen space it has, with my DOM utilities to keep everything synchronized.
* I need to finish the serverpost specs.
* I need to support subsets of common controls (say, a login & password together) in the serverpost.
* If possible, I need to tie in the template editor with Bugzilla for mozdev if possible (probably just through an iframe).
* I need a system for an editor to specify how many fitb elements to generate, given fitb-set elements.
* I need to lock down the usage of the mEdit namespace to prevent mischief.
* I need some sort of icon picker that will let the template developer (a human being) choose an icon to represent a particular mathematical operation.
**** I need to document all this stuff so that people reading this blog entry will have some idea what I’m actually talking about. (Oh, wait, I said that already, didn’t I?) 😉
Don’t worry, guys, answers are coming. Give me a computer that runs Apache locally and has a recent Mozilla, and you’ll see some of the toys I’m building. Maybe at Dev Day three days hence.
UPDATE: After Dev Day, caillon mentioned to me someone else is almost done building a MathML editor. I really would like to find out who and take a look at what they’ve got (both source code and appearance).
Bits and pieces
There’s three separate applets here, none of which is a full-fledged application. But it’s getting closer…
One of them, mathOverlay.xml, I introduced here back in June 2003. So that hasn’t changed.
The MathML_test.xul file is intended as a controllable user-interface for actually editing MathML expressions; the idea is that the selected overlay will replace a white textbox in the master expression, and the text in the master will go to the matching white box in the overlay.
The templateEditor2.xul file is the basis for a template, or overlay, editor. Ideally, contributors will write overlay templates for multiple human languages, multiple XML languages (SVG, or XHTML, anyone?), and simply multiple presentation templates for any one human-XML combination (translation: alternate texts).
Using parallel MathML markup, we can have one content MathML section cross-referenced to as many presentation MathML (or other markup languages) fragments as you desire (for your language and preferred wordage).
That’s the concept. Implementation is taking a bit longer, and I’ll probably have this file available on abacus.mozdev.org with documentation within two weeks. Please do play with it; it’s offered under the Mozilla tri-license (MPL/GPL/LGPL) scheme. I just didn’t put that in the files yet.
Warning: This may not work yet in your Mozilla. It depends on a patch which fixes XUL DOM’s insertBefore and replaceChild methods (which are definitely broken)
The Open Source Convention has just put out a call for speakers at its 2004 Portland, Oregon event. As my parents live right across the Columbia River in Vancouver, WA, I’m going to be there.
For some time I’ve been working solo on a project to edit MathML in Mozilla, using an XUL interface. There’s nothing released yet, but the (empty) site is at abacus.mozdev.org .
Basically I’m seeking advice on whether I should set up a session to talk about this project. My inclination is “yes”, because MathML editing in Mozilla is something that would benefit a lot of technical people. Daniel Glazman (formerly of Netscape, and lead engineer for Nvu.org) has called the concept a “killer app”.
I’d like your opinions as well. Is it worthwhile?
New topic for my forum: Number Crunching, for all the mathematics-related ideas I have.
Had an interesting idea, and decided to go after it: what would it take to overlay one MathML expression in parallel markup (see Chapter 5 of the MathML 2.0 spec for details) onto another?
The proof-of-concept is a two-file zip included by link here.