The Jupyter project offers interactive ways to write software with technology like JupyterLab and Jupyter Notebook. This software is commonly used for data analysis, but what you might not know (and the Jupyter community didn't expect) is how many things you can do with it.
Here are my top five unexpected and creative ways to use Jupyter.
1. Manipulate images
There are great open source tools out there for image editing and manipulation—from those that rival Photoshop to the experimental work of Glimpse. Even with all those options, sometimes I just don't want to leave the world of Python.
Luckily, Jupyter is a great option for doing light image manipulation. Taking advantage of the fact that Jupyter directly shows Pillow objects as images lets you experiment with pictures as much as you want. I even used it to make a coloring book page for my child.
2. Make an SSH jumpbox remote control
With some SSH-forwarding magic, you can make Jupyter your remote console on the other side of a firewall.
3. Develop web applications
One of my favorite ways to use Jupyter is for an unexpected kind of software development. I gave a talk where I developed a web application in real time using a Jupyter notebook. The talk concluded with a simple form that is XSS- and CSS-safe and included some light server-side computation.
A day-to-day Jupyter user may not expect it to be a great web development environment, but it's a remarkably powerful one.
4. Pull reports from your favorite services
Data analysis in JupyterLab is a common use, but what about self-improvement analysis?
You can use Jupyter to analyze your calendar. If your favorite services allow API export, or even let you export a CSV, you can correlate those against your calendar. If you find out that you were posting on social media when your calendar said you were supposed to be in a meeting with your manager, however, Jupyter can't do much to help you!
5. Develop games
My favorite way to expand the expectations of what I can accomplish in a Jupyter Notebook is by building a game with my child. I wrote about this previously, with a step-by-step tutorial on writing a game using PursuedPyBear and Jupyter.
This iterative approach to game development is especially helpful when trying to figure out game mechanics. It's a game-changer (sorry, I had to) to be able to change the rules mid-game.
You can even use IPywidgets to modify the numeric parameters, as this video shows.
JupyterLab and Jupyter Notebooks offer an incredible environment for experimenting. Download this guide that contains tutorials on the surprising ways to use Jupyter.
How are you using it in creative ways? Share your favorites in the comments below.