How I got involved with Mozilla and try to bring new contributors

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 validatingWeb pages
containing MathML formulas or small changesto 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.

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 Fontsupport
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...