<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Daniel Nüst on Medium]]></title>
        <description><![CDATA[Stories by Daniel Nüst on Medium]]></description>
        <link>https://medium.com/@nuest?source=rss-676530bc2914------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*7JOkTDaBZB60z4u52mwYRQ.jpeg</url>
            <title>Stories by Daniel Nüst on Medium</title>
            <link>https://medium.com/@nuest?source=rss-676530bc2914------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Wed, 15 Apr 2026 16:44:02 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@nuest/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[elife sprint: Integrating Stencila and Binder]]></title>
            <link>https://blog.jupyter.org/elife-sprint-integrating-stencila-and-binder-18834e9ad584?source=rss-676530bc2914------2</link>
            <guid isPermaLink="false">https://medium.com/p/18834e9ad584</guid>
            <category><![CDATA[reproducible-research]]></category>
            <category><![CDATA[stencila]]></category>
            <category><![CDATA[binders]]></category>
            <category><![CDATA[jupyter]]></category>
            <category><![CDATA[open-scholarship]]></category>
            <dc:creator><![CDATA[Daniel Nüst]]></dc:creator>
            <pubDate>Mon, 10 Dec 2018 10:15:32 GMT</pubDate>
            <atom:updated>2018-12-10T10:15:32.099Z</atom:updated>
            <content:encoded><![CDATA[<p><em>This article reports on a project, integrating Stencila and Binder, which started at the eLife Innovation Sprint 2018 (</em><a href="https://twitter.com/hashtag/eLifeSprint?src=hash">#eLifeSprint</a><em>). A longer version has been cross-posted on multiple blogs (</em><a href="https://elifesciences.org/labs/d42fe2b9/integrating-binder-and-stencila-the-building-blocks-to-increased-open-communication-and-transparency"><em>eLife Labs</em></a><em>, </em><a href="https://stenci.la/blog/2018-11-20-stencila-binder/"><em>Stencila,</em></a><em> </em><a href="https://o2r.info/2018/11/21/elife-sprint-integrating-stencila-and-binder/"><em>o2r</em></a><em>).</em></p><p><a href="https://elifesciences.org/">eLife</a>, an open science journal published by the non-profit organisation eLife Sciences Publications from the UK, hosted the first <a href="https://elifesciences.org/labs/bdd4c9aa/elife-innovation-sprint-2018-project-roundup">eLife Innovation Sprint 2018</a> as part of their <a href="https://elifesciences.org/about/innovation">Innovation Initiative</a> in Cambridge, UK:<em> “[..] a two-day gathering of 62 researchers, designers, developers, technologists, science communicators and more, with the goal of developing prototypes of innovations that bring cutting-edge technology to open research communication.” </em>One of the <a href="https://elifesciences.org/labs/bdd4c9aa/elife-innovation-sprint-2018-project-roundup">13</a> projects at the <a href="https://elifesciences.org/inside-elife/b4ed92e1/innovation-collaboration-and-creativity-at-the-heart-of-the-elife-innovation-sprint-2018">excellently organised event</a> was an <strong>integration of </strong><a href="https://mybinder.readthedocs.io/"><strong>Binder</strong></a><strong> and </strong><a href="https://stenci.la/"><strong>Stencila</strong></a>.</p><p>This article reports on the project’s results and changes made to Binder-related tools. <strong>Today, Binder has first class Stencila support.</strong> Read the full story at the <a href="https://elifesciences.org/labs/d42fe2b9/integrating-binder-and-stencila-the-building-blocks-to-increased-open-communication-and-transparency">eLife Labs blog post</a> or try out to open Stencila documents from any online code repository on <a href="https://mybinder.org/">mybinder.org</a> with the click of a single button:</p><figure><a href="https://mybinder.org/v2/gh/binder-examples/stencila-py/master?urlpath=stencila"><img alt="" src="https://cdn-images-1.medium.com/max/317/1*H28MLVCxQzhuXzKzbMyiZA.png" /></a><figcaption>Click the Binder badge to open a Stencila document on mybinder.org</figcaption></figure><p>This project is a collaboration between <a href="https://github.com/minrk">Min</a> from the <a href="https://www.simula.no/people/benjaminrk">Simula Research Laboratory</a>, Norway, a core developer of <a href="https://mybinder.readthedocs.io/en/latest/">Binder</a> and related tools, <a href="https://github.com/nuest">Daniel</a> from the <a href="https://o2r.info">o2r</a> project at the <a href="https://www.uni-muenster.de/Geoinformatics/">Institute for Geoinformatics</a>, Germany, <a href="https://github.com/nokome">and Nokome</a>, initiator and developer of Stencila. The final changes were made with the help of <a href="https://github.com/betatim">Tim</a>. Thanks! The project was also part of the <a href="https://mozilla.github.io/global-sprint/">Mozilla Global Sprint 2018</a>, see <a href="https://github.com/mozilla/global-sprint/issues/317">mozilla/global-sprint#317</a>.</p><h3>The building blocks and a challenge</h3><p><strong>Stencila Desktop</strong> is an <a href="https://elifesciences.org/labs/c496b8bb/stencila-an-office-suite-for-reproducible-research">office suite for reproducible research documents</a>. It allows scientists to use languages like R and Python within familiar and intuitive word processor and spreadsheet user interfaces to lower the barriers to reproducible research for those with little or no software development skills. <strong>Binder</strong> (a part of <a href="https://jupyter.org/">Project Jupyter</a>) makes it simple to generate reproducible computing environments from code repositories (e.g. GitHub or GitLab, see <a href="https://github.com/binder-examples/">binder examples</a>) and <a href="https://mybinder.org/">mybinder.org</a> is the most prominent example. Binder uses <a href="https://repo2docker.readthedocs.io/">repo2docker</a>, for generating Dockerfiles (a human- and machine-readable recipe for setting up a computational environmentt used by the popular <a href="https://en.wikipedia.org/wiki/Docker_(software)">Docker</a> container software) and building Docker images from software projects. While containers have become a commodity for developers, researchers still struggle to grasp and control the complexity of computational environments. This is where the two building blocks join: <strong>Running Stencila as part of a Binder helps researchers to communicate their work openly, to collaborate effectively with other scientists, and to ensure a high quality and transparency of their workflow and findings. </strong>Min and Daniel <a href="https://docs.google.com/document/d/1WPMY-Al7WMdjlepKvvLiIxFrQPHFbADMNuwszs8xMHk/edit">formulated their goal in the sprint project form</a>: <em>“[..] to connect them so that users can edit reproducible documents (DAR files) as part of a Binder project”.</em></p><h3>Connecting Stencila and Jupyter: nbstencilaproxy</h3><p>Stencila has “execution contexts”, an equivalent to Jupyter’s “kernels”. The contexts use code dependency analysis and return execution results as data values to enable a reactive, functional execution model. To open Stencila documents on binder, these execution contexts must be installed and configured in the environment created by repo2docker. This is achieved with a new software project initiated at the sprint: nbstencilaproxy - a Jupyter notebook server extension and proxy for Stencila.</p><p>The projects consists of a <strong>Python module</strong> with the Jupyter notebook server and “non-server” extensions of the same name, and a <a href="https://github.com/minrk/nbstencilaproxy/commit/93dabbd890397aaad0d8efb316f7e1f2129e52f3">bundled</a> <strong>JavaScript module</strong> (of the same name). The Python module allows proper versioned installation, dependency management, and installation from an established software repository. It takes care of the plumbing between the user interface and the services in the background, so that the binder is viewable over one port in the browser, while the many different background components run on their own ports. The “no server” extension adds a “Stencila session” menu entry and conveniently lives in the same directory structure as the server extension. The JavaScript module manages the required JavaScript dependencies and provides an well-defined structure for the code files. It serves the Dar document and provides access to the Stencila host.</p><p>repo2docker was extended with <a href="https://github.com/jupyter/repo2docker/pull/309/commits/eaa29ef3343442419df8cdd022f3e91ae9262926">automatic detection of Dar documents</a>, including the <a href="https://github.com/jupyter/repo2docker/pull/457">languages and execution context</a>s. As with most Binder repositories, a no configuration is needed for most common user cases: users can open a Dar document on Binder and trust the required environment to provide all required software. Daniel created a few <strong>example repositories</strong> to provide a starting point for users. The binder team generously welcomed <a href="https://o2r.info/2018/11/21/elife-sprint-integrating-stencila-and-binder/">the changes to mybinder.org</a> and and the examples to the <a href="https://github.com/binder-examples/">binder examples organisation</a> on GitHub:</p><p><a href="https://github.com/binder-examples/stencila-py"><strong>https://github.com/binder-examples/stencila-py</strong></a> contains Python code cells, using both the Jupyter and plain Python execution contexts:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*BHjQbPTLV3XHoNqG.png" /></figure><figure><a href="https://mybinder.org/v2/gh/binder-examples/stencila-py/master?urlpath=stencila"><img alt="" src="https://cdn-images-1.medium.com/max/317/1*H28MLVCxQzhuXzKzbMyiZA.png" /></a><figcaption>Click the Binder badge to open a Stencila document with Python code on mybinder.org</figcaption></figure><p><a href="https://github.com/binder-examples/stencila-r"><strong>https://github.com/binder-examples/stencila-r</strong></a> contains R code cells and two plots:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*osOwhBZGwlnr5FNk.png" /></figure><figure><a href="https://mybinder.org/v2/gh/binder-examples/stencila-r/master?urlpath=stencila"><img alt="" src="https://cdn-images-1.medium.com/max/317/1*H28MLVCxQzhuXzKzbMyiZA.png" /></a><figcaption>Click the Binder badge to open a Stencila document with R code on mybinder.org</figcaption></figure><p>One of the cool features of Stencila are the reactive cells, as demonstrated in a tweet following the feature release:</p><h3>Tim Head on Twitter</h3><p>Thanks to @nordholmen working on @stencila support for https://t.co/Zlj6FrYgBw you now have reactive cells with Python code on @mybinderteam! Give it a go https://t.co/ToIuQPq0Fy https://t.co/Wjyf1kiH9B</p><p>Binder + Stencila is a demonstration of the power that the Open Source and Open Science community can foster. Many people are working together on the organisational and technological challenges of science today towards full research transparency and reproducibility, even if we use computers to an unprecedented level. Many small contributions on “side projects” such as these can make a difference, and connecting these two great projects hopefully helps to solve some problem in science down the road.</p><p>Join the public <a href="https://gitter.im/stencila/stencila">Stencila</a> and <a href="https://gitter.im/jupyterhub/binder">binder</a> chats to stay in touch or get help. We look forward to see scientists using nbstencilaproxy for communicating their work and new challenges that come with it.</p><h3>eLife Innovation on Twitter</h3><p>eLifeSprint-ers @minrk and @nordholmen are working to connect #JupyterNotebooks / #Binder with DAR / #Texture / @Stencila, so that users can edit reproducible documents as part of a Binder project https://t.co/2GoGNydsmX (@mybinderteam @ProjectJupyter @_substance)</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=18834e9ad584" width="1" height="1" alt=""><hr><p><a href="https://blog.jupyter.org/elife-sprint-integrating-stencila-and-binder-18834e9ad584">elife sprint: Integrating Stencila and Binder</a> was originally published in <a href="https://blog.jupyter.org">Jupyter Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>