Jupyter, and collaborative filtering continued
Introduction
I came across an interesting Atlantic article recently.1 tl;dr: Wolfram and Jupyter notebooks allow us to express research, especially research involving programming, more precisely and reproducibly than traditional paper papers. Of course, durability is a concern with Wolfram and Jupyter notebooks. However, I wanted to make an honest effort of Jupyter notebooks in this post.
The Jupyter bazaar
In his famous 1997 essay, The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary, Eric Steven Raymond contrasts two development models:
- The cathedral model: code developed between releases is restricted to an exclusive group of software developers.
- The bazaar model: code developed between releases is publicly visible, and basically anyone can contribute.
If Wolfram notebooks are the cathedral, then Jupyter notebooks are the bazaar. Wolfram may be more polished. However, Jupyter is more widely accepted. An open standard, Jupyter notebooks support more than 100 languages (to varying degrees of maturity, of course), and are used in private (e.g. Google) and public (e.g. NASA) institutions across the world.
And now, more collaborative filtering
I wanted to provide a programmatic example of collaborative filtering via Jupyter notebook. Google Colab notebooks, a Google Drive-style hosted Jupyter notebook, fit my use case here. Here's a link to the Colab notebook on collaborative filtering. It's also available in GitHub Gist form.
Conclusion
Go look at the Colab notebook, please!
This post borrows heavily from that article. You should read it; this post is almost a mere paraphrasing. ↩︎