Ielixir (Elixir and Jupyter)

I spent a few hours this Sunday playing around with ielixir (integrating Elixir in Jupyter), a project from the Google Summer of Code 2015. Pretty slick.

Surprised to see it not mentioned here yet. For anyone interested:



http://blog.jonharrington.org/static/elixir-and-jupyter/index.html

3 Likes

/me is still unsure what this jupyter thing is that they keep hearing about everywhere, not looked in to it yet…

I think originally notebooks were packaged entirely under IPython. But recently the notebook and language-agnostic parts were spin-off under the Jupyter project, while IPython still provides the Python shell and kernel.

At a more basic level, these notebooks enable live code in your documentation. At first I was wondering if it could be used as a learning tool, but the interface seems too clunky for that - I found it easier to just bang stuff out in a repl or actual code editor. But I can see the value of notebooks as a companion tool for scientific and engineering work. I know some people in quantitative finance who use it precisely for documentation purposes for their machine learning and algorithmic stuff.

For web dev, I dunno…

1 Like

Jupyter is pretty cool stuff, however I’m not sure how much added value there is for Elixir given that we already have a reasonably full featured REPL. You might want to look into the irl project iElixir was pretty buggy for me.

Juypter notebooks are a very big deal for people crunching numbers and displaying plots with various Python tools. Data Scientists love it. So do a lot of regular Scientists. It reminds me a lot of Mathematica Notebooks.

3 Likes

As you can probably guess, I like Jupyter a lot and have used it in the past mostly as an extremely nice Python frontend (initially for my master thesis, introduced it at my job later).

The advantage of the Jupyter Notebook over a classic REPL like IEx is that you can store and re-run the whole session. This can be used for teaching (http://nbgrader.readthedocs.io/en/stable/), for “interactive documentation”, or just for poking around in a (running) system. You can also do stuff like inline plots (point me to a good plotting library for Erlang/Elixir and I’ll integrate support for it in ierl) and formatting tabular information as nice HTML tables (planned for QLC queries).

Since this is the BEAM we’re talking about, you can also have cells updated by processes running in the background using the jup_io functions, which allows for some neat dashboard prototyping.

3 Likes