Mathtex Report - sympy/sympy GitHub Wiki

Introduction

My name is Freddie Witherden and I participated in Google Summer of Code 2009. I currently study Physics at Imperial College London and am going into my second year. Although my project was officially being mentored by John Hunter, of matplotlib, I was closely involved with the SymPy project throughout. The objective of the project was to externalise the LaTeX rendering engine in matplotlib into its own project.

Progress

Although I was not extremely familiar with the code before starting Google Summer of Code I did have a good working knowledge of LaTeX as well as the needs of the community. In fact, my main motivation for doing the project was to solve a real-world problem that I was having.

It is my experience that the most successful projects are those in which the team has a vested interest in their success. Having this also helped to provide me with additional motivation while working on the project.

The first few weeks were spent familiarising myself with the code and setting up a basic structure for the project. While most Summer of Code proposals involve working with an existing project mine was the opposite -- splitting an existing project up. The knock-on effect of this was that I had to focus more time on administration and project management than most students. This is not inherently bad -- but it did reduce the amount of coding I was able to accomplish.

The externalisation was completed within the first month. The remaining time was spent implementing users requests, adding regression tests, tiding up the structure of the project and of course, fixing bugs. In addition a week or so of the project was spent working on matplotlib. The goal was to get matplotlib to use the newly externalised library. This was successful, however the work still needs to be merged back into the main-line of matplotlib.

Conclusion & Future Directions

Overall the project was a success. In doing so I learned both how to set-up and administer a project as well how to better respond to users requests. The final product ("deliverable") is both functional and easy to use. However, there is still much to be done. I plan to continue working on the project for the foreseeable future.

⚠️ **GitHub.com Fallback** ⚠️