Monday, March 18, 2019

Iodide: A New Tool for Visualizing and Documenting Data

I posted last week about the 30th anniversary of the World Wide Web. Tim Berners-Lee created the Web to help scientists at CERN create and share documentation. The Web went on to much greater things but that need still exists.

About three years ago, I posted about Jupyter, which lets you embed data, visualizations, and live code from 40 different languages into what Jupyter calls a 'notebook'. Jupyter is great for creating notebooks, but it's hard to share the information in the form of a report, for example.

Now there's a new tool from Mozilla, Iodide, that's designed to address the limitations of Jupyter and other similar tools. From the Mozilla article:
So today we’re excited to introduce Iodide, an experimental tool meant to help scientists write beautiful interactive documents using web technologies, all within an iterative workflow that will be familiar to many scientists.
Beyond being just a programming environment for creating living documents in the browser, Iodide attempts to remove friction from communicative workflows by always bundling the editing tool with the clean readable document. This diverges from IDE-style environments that output presentational documents like .pdf files (which are then divorced from the original code) and cell-based notebooks which mix code and presentation elements. In Iodide, you can get both a document that looks however you want it to look, and easy access to the underlying code and editing environment.
Iodide is a tool designed to give scientists a familiar workflow for creating great-looking interactive documents using the full power of the web platform. To accomplish that, we give you a “report” — basically a web page that you can fill in with your content — and some tools for iteratively exploring data and modifying your report to create something you’re ready to share. Once you’re ready, you can send a link directly to your finalized report. If your colleagues and collaborators want to review your code and learn from it, they can drop back to an exploration mode in one click. If they want to experiment with the code and use it as the basis of their own work, with one more click they can fork it and start working on their own version.
As a technical writer, I like that the Explore view, where you create your content, uses a markdown-based editor that supports CSS and relies on JavaScript for the programming interface. To allow for more complex programming than JavaScript can handle, they've created interfaces for Python, which has a plethora of science- and math-based libraries, with interfaces to other languages planned for future releases.

There's a lot in the article that will matter only to scientists or developers. But there's a lot more of interest to a wider audience; for example, Iodide could be a wonderful teaching tool for high school or college math and science classes. I could have used it at the TMX to create interactive reference documentation for our job control software to pull in data from an Excel spreadsheet that was more than 10,000 rows deep. Or perhaps it could be used for API documentation with live code examples.

Iodide is an open source tool and the current release is in alpha so there are likely to be many changes. Based on what I've seen so far, I think it will become a popular tool that may find an audience outside of the audience it was designed for. If you want to use it, you can find out more at iodide.io.


1 comment:

samyuktha said...

Especially find the Markdown export feature in INK for All useful. Was dependent on WordPress for my company website, just made the decision to switch to a static site