It has been quite a while since I last made a blog post. I must admit, I’m not much of a blogger. But I do have much to talk about, specifically the coding experience I had this past summer.
As you know from my previous posts, I had applied for Google Summer of Code and sent in a couple of project proposals. Sadly, I wasn’t accepted into the program due to limited slots, but that wasn’t the end of the story. Frédéric Wang (who’s blog can be found here), a fellow Mozilla volunteer and mentor during the 2012 Summer of Code, invited me to work on the project I proposed for despite being rejected from the Summer of Code program. Although I wouldn’t reap the financial benefits from the program, I still would gain lots of experience. So I willingly accepted, and I worked on the project all summer.
The project involved Mozilla’s implementation of MathML tables. MathML is a markup language used along with HTML. It allows web developers to display complex mathematical equations and notation natively within a web browser. One part of the MathML standard involves math tables. These tables are similar to normal HTML tables, but they have a few more features up their sleeves to enable better math rendering.
Although Firefox’s implementation of the MathML math tables was okay, it could certainly use improvement. For example, instead of manipulating rendering rules within native C++ code, the browser was making use of a CSS file to determine all of the rendering rules. As a result, foreign attributes were being injected into the DOM in order to make use of the style sheet. Using this method could have caused compatibility issues with certain MathML markup.
My job this summer was to get rid of the math table rules in the CSS file, and implement those rules into native C++ code. To be honest, I thought it was going to be fairly simple, but how wrong I was! Although I flowed pretty well, I hit a few bumps in the project. These road blocks were simply a product of my misunderstanding of certain code sections. Thankfully, Frédéric came through to save me quite a few times, and other Mozilla employees helped me out as well. That’s what is so great about open source projects. Because a close-nit, friendly community is vital to the success of the project, it is easy to find developers who are willing to help you when you are stuck.
Although I was rejected from Google Summer of Code this year, I certainly look forward to my second attempt in next year. Hopefully I will be able to propose for another Mozilla MathML project. When that time comes, I will update you on my attempt to apply again.