What to use when you are building a scientific search engine
Published on Aug 08, 2014 | By Simon Engelke | Permalink
The tools I used for Google Summer of Code 2014
During the pasts months I had to decide what programming languages, frameworks, programs, operating system and database I wanted to use for programming the search engine for materials as part of Google Summer of Code 2014. In the end I switched from a PC to Mac, mainly because of GihHub and MeteorJS which run in my experience better on that operating system, and the new MacBook Pro Retina has an overwhelming performance compared to my outdated Asus notebook.
Python
Previously I was coding in Java, but the programming for the MaterialsProject was done in Python what let me switch languages. Additional reasons are the supportive community and usage by scientists, including many free packages, as well as the support of regular expressions and natural language processing. I can highly recommend Google’s Python Class which is freely available online and a great introduction to Python when one has already some experience in another programming language.
MongoDB
The Materials Project had switched to MongoDB what made my decision easy for compatibility reasons. Furthermore, its flexibility was helpful for a project like mine which had the need for adaption by adding new extraction and features along the way. Another highlight for me was Mongo University where I took M101P: MongoDB for Developers and M101JS: MongoDB for Node.js Developers for free and which in addition to The Little MongoDB Book by Karl Seguin provided great resources to learn MongoDB.
MeteorJS
For the front-end I came along Meteor, recommended by a colleague at LBNL. The Java script framework has great advantages like simplicity in setting up, many meteor packages, live page updates and free and easy test deploying on someprojectname.meteor.com. Currently, it is still in beta what can cause code to stop working when a new version is released. Nevertheless, there is a strong community around it and in Berlin I can recommend the very helpful Meteor Meetup.
Sublime Text 2
Everyone has probably their own favorite text editor for coding, but I personally really like SublimeT ext 2 because of its nice look as well as the available plugins. Furthermore, it can be tested for free without time restrictions which is great to get a proper feel for it.
GitHub
GitHub is great to save code, see differences in between development and collaborate. I was able to get a free student plan with five private repositories. On my previous windows computer it was not working properly, but since I switched to an MacBook I can highly recommend it.
Helpouts
I tried out Google Helpouts and was amazed by the helpful guidance by an co-founder of Modulus. The offer of Helpouts are changin quickly, but it is worth checking out to find some free direct advice and help.
Stack Overflow
Last but not least, discovering Stack Overflow was mind blowing. The idea that people worldwide help each other out, was amazing and answers were provided very promptly. Definitively worth looking into!