…and how cool they are!
Intro to Python Notebooks
“Notebooks” are web applications that run on the browser which basically give you, the user, an interface to a virtual machine that runs an out-of-the-box environment. They are based on the Jupyter Notebook project — an open-source project that brings machine learning development to your browser! No more virtual environment set-up hassle from now on. Which is great news since a lot of developers want to deal only with data science projects and not get derailed from that by needing to configure and set up their computers.
By using “notebooks”, you don’t have to set up an environment to begin with. Building machine learning applications now comes out of the box with notebooks.
Why They’re Useful
Ease of use:They are useful because they reduce the time that a developer takes to set up his/her environment: install packages, update them to the required versions, and any other network or file-structure configurations that take time to set-up. And all that needs to be done BEFORE jumping into developing the apps themselves. Now, with notebooks, everything is set-up and ready to go in a matter of seconds.
Collaboration: Notebooks can be shared easily and built upon incrementally. This allows projects to be worked on in a flexible manner. You don’t need to waste time anymore with getting the latest version of your project and sending in your updated version or dealing with conflicting versions and editing mistakes. It works like a Google Drive document which is being constantly updated (or a Git repository).
Portability: Notebooks are easy ways to bundle and upload to a shareable web page. The tools are evolving, the theory of data science is developing and Jupyter Notebooks now reduces deployment time to a matter of seconds. This makes it an invaluable tool for education platforms which showcase projects and tutorials. Other collaborative online projects can take advantage of this trait and leverage it to its needs. Google has built some tools which make use of Jupiter Notebooks.
Nice Interface: the interface has a modern look and provides many useful controls. Code can also be run one block at a time, which makes debugging easier. Certain subsystems of the notebook server are designed to be extended or overridden by users. This means that the notebooks are customisable.
How Do I Use Them?
There is an increasing number of third parties who make use of notebooks on their platforms.
- Colaboratory, or “Colab” for short, is a product from Google Research. Colab enables users to write and execute python code through the browser. It is especially well suited to machine learning, data analysis and education. Colaboratory is a hosted Jupyter notebook service that requires no setup to use, while providing free access to computing resources.
Collaboratory is great for testing some machine learning projects that you found on github.
- Kaggle: an joint educational platform and experimentation platform. Users create they’re own solutions and implement machine learning algorithms. The site has numerous “kernels” from which people can investigate how their peers tackled a problem and what they used to optimise their results. This platform is a great hub for community and learning within the machine learning space.
Sites like Kaggle brings community together making it easy for machine learning developers to learn from each other.
- Personal server: for any private uses (in which you prefer to avoid sharing your work via github or any other public platform) you can spin up your own server that serves Jupyter Notebooks. You can also customise them to fit your project needs or even your own branding!
Being an open-source project, there is always the option of tayloring your own custom Jupyter Notebook-based solution.
The Notebooks have enabled users to access computing resources and to prototype machine learning agents quickly and without hassle in out-of-the-box environments, reducing the set-up time to 0.
It is a huge leap that made it possible for communities to access and tweak their own implementations, improving on one-another and establishing machine-learning development further into the open-source space.