Open Source Project of the Week – IPython

The IPython Notebook is a web-based interactive computational environment where you can combine code execution, text, mathematics, plots and rich media into a single document –  ipython.org

 

ipython.pngThe visual and interactive computing environment, IPython. Source: ipython.org

IPython, which is not an allusion to the Apple product line, takes upon itself the ambitious goal of making scientific education, development and research environments more interactive and consequently more reproducible. To put it more bluntly IPython (with a little help from its friends Sage and Mathics) offers an open source community backed alternative to computing environments like Wolfram Mathematica, Maple and Matlab.

Don’t believe us? Sample this

Fernando Perez, the creator of IPython wrote this blog detailing the history of its formation and community, check it out here. The IPythongithub page is a great place to start getting acquainted with it as well,  be sure to check out their collection of notebooks published by the community. Some of my personal favourites include the Machine Learning Tutorial by Hannes Schulz and Andreas Muller, Learn Data Science by Nitin Borwankar andLectures on Quantum Mechanics and Quantum Optics using QuTiP by J.R. Johnasson.

If you are working in scientific computing, computer science education, data science or research, IPython is your friendly neighborhood open source hero. So without much ado give IPython a test run today, and we will be back next week with another prolific open source project.

Peace, Love and Open Source.

Open Source Project of the Week – Julia

 

Want a programming environment for your next research thesis? Want it to have simple syntax? Want speed of execution and inherent parallelism? Want to ground your mind to the hard reality of life as well? Julia is a breath of fresh air in the often muddled landscape of scientific computing.

They say charity begins at home, so much of julia is written in julia. Some of its defining characteristics are.

  • A JIT compiler

  • Multiple Dispatch

  • Lisp like macros and metaprogramming capabilities.

  • User defined types which are as fast as built in ones.

  • Great performance (reminds you of C).

  • Ability to make calls to C functions directly.

Julia is undergoing rapid development so dont be surprised if you have to pull its latest build from github. As of now the two prominent sub groups or development branches inside Julia are JuliaOpt: A set of libraries for numerically solving linear and nonlinear optimization problems  andJuliaStats: a repository of libraries which enable statistical analysis/pattern recognition from data. There is extensive work going on to create libraries in julia for other applied mathematics areas as well, so keep visiting their site to find out about exciting new developments.

Julia has good visualization capabilities as well, interested people should go through the packages Winston and Gadfly and check out the cool ways to plot data. My personal favourite development from the Julia project is their joining forces with the IPython team to create IJulia, an interactive IPython notebook server powered at the back end by a julia kernel.

 

IJulia: An interactive notebook like interface powered by the Julia kernel.

 

Check out this swanky iJulia notebook which generates a plot comparing the benchmark performance of various languages with respect to the gcc compiler. The comparisons are taken on a set of defined tasks. You can also find a summary of these results on the Julia project home page. Julia is distributed under the M.I.T License. So folks without further ado, install Julia bring out the explorer inside you!

Peace, Love and Open Source.