shell-novice
shell-novice copied to clipboard
Binder button for launching JupyterLab?
Is there any interest in adding a Binder button so that learners can launch a JupyterLab instance and get access to a terminal running bash shell in the cloud?
JupyterLab 1.0 just dropped on PyPI and conda channels and is quickly becoming a default Python development. I used to always have a terminal window open when using Python or Jupyter but increasingly I am doing all of my terminal work using the terminal from within JupyterLab.
At a minimum it would provide instructors with an alternative teaching environment should they choose to use it without burdening either instructors or learners with additional software installation.
I guess this might be useful for someone struggling to install Bash for whatever reason.
Part of a normal workshop is that learners leave with a working set-up on their own machines, so I would tend to view this Binder suggestion as a back up rather than a recommended alternative approach.
@gcapes Thanks for the feedback! I agree that it should not be the recommended approach: we really do want learners to have a working install of bash on their own machines. I think that the value of the Binder button would be more for instructors who might want to demo bash shell within a familiar working environment for Python users.
I used to develop Python using my favourite text editor, an IPython console and a terminal window. I am increasingly moving towards JupyterLab as it provides all three inside a nice UI. I like to demo my development workflow for learners when I teach and when I teach the shell material I like to show learners that you can use a terminal from within JupyterLab. In this context, I find the Binder button useful as it allows learners to try out the terminal within JupyterLab without having to spend time installing Anaconda/Miniconda (if they don't already have it installed).
Does binder actually offer a bash shell? I thought that was a python/R thing.
Binder provides a number of UIs including JupyterLab and JupyterLab provides notebooks, Python consoles, and terminals inside a common UI.
Here is the link that will launch the Binder that I created for the Software Carpentry Python lesson.
https://mybinder.org/v2/gh/swcarpentry/python-novice-gapminder/binder?urlpath=lab
...once the JupyterLab UI resolves then you can click the terminal button to get access to a terminal running bash inside JupyterLab.
I used a Binder setup for a modified version of the Python Pandas workshop. We weren't doing it as an Intro class but instead as a more specific focus on Pandas and data analysis and we told them in advance that we expected them to know and have familiarity with Python. In that context it worked really well and saved time in terms of installing dependencies, making similar data files available, etc.
Some caveats:
- You need to have a backup in case network is down
- Exporting wasn't striaght-forward so it was difficult for students to keep their changes.
My (unmerged) branch is here.
Some other instructors are attempting a similar thing with this Intro to Python branch @richard-miller
However, I agree that for the basic classes this might not be the best setup as it skips over valuable learning experience with setup.
We would welcome a PR that adds the necessary materials and refers to them in the instructor guide.