Issues with the "modern" JupyterLab and how to fix them

Greetings!

Executive Summary:

  • The existing JupyterLab interface is confusing, even for expert computer users and programmers.

  • There is a very easy fix: Re-implement the “classic” notebook interface.  If all the eye-candy is important, then the features of the classic interface need to be imported into the new one.



First of all, I really like the GoPiGo robot.  It’s interesting and “chewy” in ways that I haven’t experienced since I started hacking a 16k Atari 600 XL to increase it to 64k.

Unfortunately, the user interface for the JupyterLab doesn’t help.

Don’t get me wrong.  I appreciate the fact that the DexterOS environment is designed for rank beginners who want to play with robotics without needing a PhD in Rocket Science.  However, the number of things you can do in bloxter is relatively limited and the user is encouraged to migrate to Python as soon as possible.

Moving to the “Code in Python” pages, you are immediately confronted with the JupyterLab environment, and there are a number of immediate issues that confront the user:

  1. Some of the JupyterLab environment’s content depends on resources that cannot be accessed while in the DexterOS environment.

Viz.:
https://forum.dexterindustries.com/t/you-cant-get-there-from-here-dexter-os-cannot-reach-important-resources/5899

Also note:

Help%20isn't%20very%20helpful

Note that every single “reference” item on this menu is a dependency that is unreachable.

  1. When the user first enters the JupyterLab interface, the first thing he is confronted with is a page that says he can’t do anything there.

Viz.:

You%20can't%20do%20anything%20while%20here


As I see and understand it, you create "notebooks" that supposedly contain programs that are a part of a project that the "notebook" encapsulates.

However, this first page is confusing.

JupyterLab%20-%20what%20do%20I%20do%20next


  • Where are the “notebooks”?

  • Where are the “programs”?

  • Where is this “the Launcher” that I am supposed to use?




Further investigation discloses that there is a "classic notebook" style which solves 99.99999....99999% of the problems.  Opening the help menu drop-down in the new-style JupyterLab shows an entry called "Launch Classic Notebook"  
 

Viz.:

Launch%20Classic%20Notebook


Once you launch the classic notebook, you are given a page that is much easier to use.

Jupyter%20Classic%20Notebook


Here you have access to a folder-tree that makes more sense, access to examples and USEFUL  documentation along with two programs that, (IMHO), should be on the front page of the DexterOS web page:

  • The Hardware Test  program.
  • The First Ride Around  program.

Both of which provide important and possibly essential ways to validate the basic build of your 'bot before you go crazy contacting support.  
 

The%20'new'%20button


Even the "New" button is useful, providing easy access to a terminal window, along with the ability to create a new folder or file.
 

Summary:
If I could ask one thing  of the maintainers that would make everything so much easier  it would be to revert back to the old-style JupyterLab interface.

Jim “JR”

I just downloaded a fresh copy of the latest DexterOS image (dexteros2.2.2_final.zip) unzipped and burned it to an SD card.

When I connect to the robot, I see this screen:
001

When I click “Code in Python”, I see this screen:
002

The notebooks “First Ride Around.ipynb” and “Hardware Testing.ipynb” are both right there and execute as expected after double clicking them and pressing shift-return to step through them.

It seems that most of what you are asking for is already here - I have not installed anything additional to the base DexterOS image or changed any of the configuration.

I’ll admit that I am not new to Jupyter Lab, I have it installed on a standalone pi that I use occasionally. Most of what I know I’ve learned from just clicking around in it and experimenting.

When I click the “Help” tab in Jupyter Lab, I see this:
003

This is missing a lot of the entries from the screen capture you posted. The links for “JupyterLab Reference”, “Markdown Reference”, and “Notebook Reference” work for me - the content opens in a tab in Jupyter.
004
If these pages are not loading from the SD card, I’m not sure how I’m getting out to the internet. I’m only connected to the robot over wifi (via the default access point). I’ll have to investigate further to see if I’m somehow getting a path to the internet. Otherwise, you an access all of the help pages for Jupyter Lab, Markdown, Notebook, Python, IPython, etc… through any computer that has an internet connection.

-Kevin

I tried on 3 different computers, and it seems that as long as I had internet access on the computer that connected to Jupyter Lab on the GoPiGo, the help pages would load over that connection.

-Kevin

What happens if you boot with the USB drive removed?

I didn’t have any USB drive installed

I have figured out what’s happening and a, (partial), workaround:

  1. It appears that JupyterLab does NOT  work with the latest Firefox Quantum. At least not the one on the ESR distribution channel.

  2. Opening the 'bot’s home page in Chrome allows JupyterLab’s home screen to behave as @kev.r mentioned above.

  3. In any event, the reference materials noted on the help tab still do not load anything and are still un-reachable.

I would beg to suggest that this represents a significant design defect as you cannot guarantee that any one particular user will have Chrome installed. Examining the JupyterLab home page located at https://jupyterlab.readthedocs.io/en/stable/index.html# does not specify a particular browser requirement.

In my own case, the ONLY  reason I have Chrome installed at all, is for the times when I view foreign-language web sites; because Chrome auto-translates the pages for me.  Aside from that, I use Firefox.  It is my default browser and my browser of choice.

Please consider fixing this in the next release.

Thanks!

Jim “JR”

CC: @RobertLucian @cleoqc

I tried the latest standard and ESR versions of Firefox on Windows and MacOs and all work fine with JupyterLab for me:
FireFox_esr

What Windows OS? What version of Firefox? 32 or 64 bit?

Mine is Win7 64 bit using 64 bit Firefox.

Win10 64 bit & Firefox 64 bit

JupyterLab also works well connecting to GoPiGo3 from my standalone Raspberry Pi 3 Model B+ running standard Raspbian Stretch Desktop OS and the default Chromium browser:

pi3b%20chromium

I also installed Firefox ESR on the Pi3. It works fine with JupyterLab but it is a bit slow / laggy. Performance is better with the Chromium browser. Still a bit slower than when connecting form my Mac or Windows computers, but definitely acceptable (what’s to be expected on a $35 computer?).

I noted in one of my previous posts that when I brought up the help menu it didn’t have all the entries from the screen capture you posted - they are all there when I have a python 3 notebook open:
help_menu

All the references from the help menu come up when I select them:

JupyterLab_Ref

matplotlib_ref

My Pi3 is connected to the internet through a wired connection and connected to the GoPiGo3 wirelessly. The help references don’t come up when I disconnect the wired internet connection, but the rest of the JupyterLab interface works fine without any internet connection.

-Kevin