Remixing: A Deep Dive
Remixing enables effortless reuse and sharing.
Reproducing the same results on different computers is a time consuming process. Differences in operating systems, configurations, and dependency versions can make it difficult or impossible to run code. Technical issues shouldn't distract data scientists and programmers from solving the problems they are actually trying to solve.
Remix a notebook and an identical copy is created including the complete technology stack down to the operating system. A remixed notebook can run without any additional installs or setup; the same results are instantly reproducible. Make changes. Experiment. If you hit a dead end, you can always remix another copy.
Nextjournal accomplishes this by automatically versioning every aspect of a notebook. This provides several benefits:
Access to previous drafts from custom code to earlier software dependencies
Effortless collaboration across machines with full accreditation
- Published results that are runnable by your peers anywhere in the world, at any point in the future
Standing on the Shoulders of Giants
Scientists never truly work alone. We are at our best when leveraging the greatness of others. At its core, Nextjournal is a communication and collaboration tool that helps make science more open for others to contribute. Remixing is at the core of this effort.
Here are three scenarios that illustrate how remixing can enable reproducibility, encourage experimentation, and engender collaboration.
Sharing and Reproducibility
Janet receives an eMail about her research. Her original published paper relied on a now-deprecated Python package called NumbaPro. After hours of effort, the team cannot reproduce Janet's work because they cannot find a configuration that works with the newer Numba package. Perhaps she could help?
Janet's quite busy, but the research looks interesting. She opens up the old notebook, looks at the new Numba package, and immediately sees the issue. Rather than explain the issue and risk prolonging the back-and-forth, she uploads the notebook to Nextjournal and makes a few quick changes. Her peers hit the remix button and get to work.
Perhaps even more important than the simplicity of sharing, Janet knows she will never have this dependency problem again. It doesn't mater if a repository moves or a package is deprecated. Nextjournal saves the version you used for your article and ensures reproducibility in any web browser at any point in the future.
Abduba is a data scientist with a deadline. Late one night, he stumbles on a new software package that might save him significant time down the road. He doesn't mind investing some energy to see if it's the right fit, but he doesn't want to lose the work he's done if it ends up being a dead end.
Since Abduba is using Nextjournal, he simply publishes his article-in-progress and hits the remix button. Remixing duplicates the article: from his custom code all the way down to the operating system, including everything in between. Newly installed dependencies and changes to the code don't affect his original article. He is free to experiment.
Nick studies artificial intelligence at the University of Illinois. He met Kylie at a conference last month and they realized their research overlaps in significant areas. Since she works at the University of Hamburg, the two will have to figure out a sensible remote working relationship.
Nick shares his work-in-progress article on Nextjournal. Kylie can immediately see how Nick's choice of data skews his results, but hesitates to make any changes. Having used Nextjournal for some time, Nick tells Kylie that it's okay to remix the article and make all the changes she wants. When Kylie shares the new URL a few days later, Nick reads through the article and now understands what she was saying.
The new data inspires a few changes. Rather than waiting for Kylie to finish her work, Nick remixes her article and optimizes his code for new data. Through the entire process - Nick's original article, Kylie's remix, and Nick's remix - all original work remains intact. Kylie can continue to edit her own article, or now that they are on the same page, they can edit the latest remix together.
Remixing provides the benefit of automatic attribution. The notebook's original source is embedded in the header. This immutable reference always points back to the exact version of the notebook being remixed. This provides context for the decisions made later by different authors plus credit where credit is due.