As many people I learnt Web languages by myself. While I was a middle/high school student, I started to create my personal Web site and played a bit with HTML, CSS and Javascript. I wanted to write about mathematics but I realized quickly that HTML was too limited for all but the simplest mathematical notations. The Web has been invented at the CERN but, quite paradoxically, writing equations and viewing them in browsers were hard at that time! Even until now, most browsers lack this feature and researchers continue to use the Web as just an internet repository where they store their pdf papers. Of course, that was not a satisfying approach to me. I tried Amaya and was impressed by its MathML editor but was disappointed to see that the mathematical formulas were not displayed correctly in Internet Explorer unless one installs the MathPlayer plug-in.

Thus I used one of the ugly workaround possible and wrote my own PHP generator to display mathematical formulas as HTML+CSS. I continued with this dirty approach until someone on the forum of my Website mentioned a new browser that recently released under version 1.0: Firefox. As many people, I realized that my Web site was "optimized" for Internet Explorer and that the source code was not standard at all... It took some time to clean up the source code, validate the pages and make the Javascript programs work with Firefox. Note that MathML was only usable in XHTML and hence your page needed to be a well-formed XML document. After these changes, I started to use the standard MathML language for mathematics, which turned out to have actually been implemented in Gecko since 1999! I contributed to Amaya to improve its mathematical editor and later naturally got involved in Mozilla with simple bugs like validating Web pages containing MathML formulas or small changes to mathml.css and svg.css.

When I joined the project in the year 2007, the Mozilla MathML project was at a turning point. Gecko's MathML layout engine had been almost entirely written and maintained by one volunteer contributor, Roger B. Sidje, but he was about to leave the project. MathML had been severely broken and recently restored by Mozilla's employee Karl Tomlinson. At that time, I did not really know anything about what was going on and just wanted to help. My first serious contribution was the implementation of the <menclose> element. I faced the usual difficulties of newcomers to submit a patch and get it accepted but I am grateful to Karl for his help and patience. After several months, I was finally prude to see the feature I implemented integrated into Firefox...

On August 2009, discussions occurring on moodle were reported to the Mozilla MathML mailing list. Someone was promoting yet another workaround for the lack of MathML support in browsers (using SVG to render formulas) and was arguing that the Mozilla MathML project was stailed. This gave me even more will to contribute to the Mozilla MathML project and I have led the project since then. However, to ensure the continuation of the Mozilla MathML project, it soon became clear that the help of new volunteers was necessary. Indeed, among the people who have contributed to project, only Karl Tomlinson, Bill Giannopoulos, Florian Scholz and I are still involved. Last year only one student, Jonathan Hage, brought a relevant contribution but did not continue after the summer. Some months ago, I also helped my brother to fix some bugs but he currently no longer has time to work on the project...

This summer, many people contacted me to work on MathML bugs. I see several reasons to explain that: the introduction of "mentored bug", the MathML project ideas for the Google Summer of Code and the fact that we finally set up a #mathml channel. I would like to mention in this blog post those who submitted patches and thank them for their hard work. I hope they will continue to be involved in the project and that new contributors will join us!

  • Andrii Zui was selected as a GSOC student to work on dynamic MathML (javascript, <maction>). He fixed several bugs but was unfortunately not able to continue after the mid-term evaluation.
  • Mohit Sinha has worked on improvements to the mtable@align attribute and has continued a bit Andrii's work on maction@toolpip.
  • Quentin Headen has been working on refactoring the <mtable> implementation. This was initially a GSOC idea and the bug blocks many issues related to the current bad implementation.
  • Rami Khader has translated the MathML start page in Arabic. In addition to providing a nice demo of the MathML RTL support, this allowed to discover bug 757125 (fixed in Gecko 15).
  • Xuan Hu has translated the MathML start page in Chinese and is currently working on the <mpadded> element.
  • Raymond Wells has been working on sending MathML parsing errors to the developer console.

As a conclusion, I am glad to see the progresses that have been made since I joined the project. With the inclusion of MathML in HTML5 and the development of the MathJax library, it is now extremely easy to write mathematics on your Web page (e.g. using LaTeX or AsciiMath notations) and serve it as MathML or via other workarounds for browsers that do not support this language (HTML+CSS and SVG). MathJax no longer uses Firefox's MathML support by default but I think it is a good motivation to improve this support so that it will be used again. Wikipedia is switching to MathJax and one can finally choose to display the formulas in MathML instead of raster images (this requires a Wikipedia account at the moment). Tools like LaTeXML allow to convert an entire LaTeX document into HTML+CSS+MathML which I hope will enable researcher to really use the Web. Mozilla is still alone to have a decent native implementation of MathML, but things are starting to change in Webkit. I expect the next releases of Firefox and MathJax to finally fix the Font support issue. Finally, as other Mozillians explained, it is now much easier to attract and welcome new volunteers, even in projects like MathML with less visibility than the main Mozilla projects. I am still wondering whether they will become long-term contributors but the future of the Mozilla MathML project looks more promising than five years ago...