Embracing Jupyter Notebooks at O’Reilly
O’Reilly Media is thrilled to announce that we’re making IPython Notebooks a first-class authoring environment for our publishing program, on par with Word or our Atlas platform. As part of our move to embrace the platform, we’re also experimenting on beta.oreilly.com with new ways for readers to experience this content, like these examples:
- Data visualization with Seaborn
- Introduction to Support Vector Machines
- Simple Line Plots with Matplotlib
- Three-dimensional Plotting in Matplotlib
- An illustrated introduction to the t-SNE algorithm
Why the Notebooks, and why now?
Most of our best ideas over the years have come from “following the alpha geeks,” and with the possible exception of Git and GitHub, the IPython Notebooks have consistently been one of the most requested features for our publishing program. People enjoy writing in the Notebooks, and have created thousands of fascinating projects ranging from courses on data science to detailed explanations of xkcd comics. Knowing that the learner will be actively engaged with the content, not just passively reading, changes the nature of what’s possible.
Of course, it also helps that there is a strong and welcoming community behind it. So welcoming, in fact, that they recently rebranded the projects as Jupyter in recognition that the tool goes well beyond just Python, and now supports over 30 additional languages.
So, if you’re writing in Notebooks (or want to) then we want to hear from you on our work with us page.
What to expect while working with us
While we’re still hammering out the details, here’s a rough outline of what the process will look like:
- You write in the Notebooks, like always.
- You (or we) use Cyrille Rossant’s excellent ipymd plugin to convert the content to Markdown. (Or, you can even just use Markdown as your native format.)
- You check the Markdown version of the Notebooks into Atlas to collaborate with your editor, reviewers, and the O’Reilly production department.
- In addition, you can run our toolchain locally to reduce the “edit -> push -> build -> review” cycle.
Our goal is to build a workflow that will feel familiar to anyone who has used a static site generator like Jekyll or Pelican. And, with GitHub’s new support for ipynb format, along with our overall focus on building an industry-leading workflow based on git, the possibilities for content creators are really amazing.
The new beta.oreilly.com
In addition to this new toolchain to support the Notebooks as an authoring environment, we’re also working on a new way to publish live, beautifully designed Notebooks on beta.oreilly.com. Although it’s still very much in the early stages, here are the key ideas:
- We help you create a Docker image of your Notebook that has all the necessary dependencies and libraries preinstalled.
- On the backend, we use tmpnb to provide a temporary Notebook server that runs a kernel.
- On the frontend, we use our new Thebe widget, which provides a slimmed down Notebook frontend that handles code cells. (Think of Thebe as a way to plug out the “Code” cell box from the Notebook and drop it into a static site.)
For more details, check out my presentation Publishing Workflows for Jupyter..
We’ll be making lots of improvements in this workflow, so stay tuned.