Core Technologies

Python

_images/python-logo.png

Python is a programming language that is becoming increasingly popular for scientific use.

Python Homepage

For those new to Python, we recommend the book Effective Computation in Physics, an excellent primer in scientific Python that starts from the very beginning.

IPython

_images/ipython-logo.jpg

IPython is a powerful interactive command prompt, developed by physicists for scientific computing. At NSLS-II, we use our data collection packages from inside an IPython session. There, we can also retrieve, export, and analyze data.

IPython Homepage

Jupyter (formerly, IPython notebooks)

_images/jupyter-logo.png

Jupyter notebooks (formerly, IPython notebooks) allow users to interact with a Python process from a web browser. They are a useful new tool for collaboration and reproducible science.

Jupyter Homepage

Conda

_images/anaconda-logo.png

Conda is an package manager (i.e., installer). It support “virtual environments,” making it easy to switch between different versions and combinations of software packages.

It is a free product from Continuum Analytics. At NSLS-II, we use it to distribute all our collection and analysis software.

Conda Cheat Sheet

Full Documentation

MongoDB

_images/mongodb-logo.jpg

MongoDB is an open-source document database designed for ease of development and scaling. It supports rich search capability and flexible document specification, which is ideal for scientific workflows. At NSLS-II, we store all experiment metadata and “small” data (i.e., not images) in MongoDB.

MongoDB Homepage