gdoney1701 / COAWST-Test

3 stars 2 forks source link

Try Jupyter dashboard approach #8

Open rsignell-usgs opened 7 years ago

rsignell-usgs commented 7 years ago

This Jupyter dashboard example looks like the approach we were hoping to use: http://dashboards.renci.org:3000

img_2190

rsignell-usgs commented 7 years ago

Chris Calloway showed me this here at scipy2017 in Austin, and he says the source code in on github. It's basically jupyter widgets running as a web page, so all the coding is in python -- no javascript coding required.

@cbcunc, I looked on https://github.com/cbcunc?tab=repositories and it wasn't obvious which repo contained the code. Is it there or elsewhere?

Thanks in advance!!!

cbcunc commented 7 years ago

https://github.com/cbcunc/modnot

required packages:

https://github.com/jupyter/dashboards https://github.com/jupyter-incubator/dashboards_bundlers https://github.com/jupyter-incubator/dashboards_server https://github.com/jupyter/kernel_gateway

for reference:

https://github.com/jupyter-incubator/dashboards_setup

-- Sincerely,

Chris Calloway Applications Analyst University of North Carolina Renaissance Computing Institute (919) 599-3530

On 7/12/17, 5:17 PM, "Rich Signell" notifications@github.com<mailto:notifications@github.com> wrote:

Chris Calloway showed me this here at scipy2017 in Austin, and he says the source code in on github. It's basically jupyter widgets running as a web page, so all the coding is in python -- no javascript coding required.

@cbcunchttps://github.com/cbcunc, I looked on https://github.com/cbcunc?tab=repositories and it wasn't obvious which repo contained the code. Is it there or elsewhere?

Thanks in advance!!!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/gdoney1701/COAWST-Test/issues/8#issuecomment-314899887, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AA4pvCIZfc3-d-kuUWEc5omhgKqjXf0lks5sNTgCgaJpZM4OWGVX.

rsignell-usgs commented 7 years ago

@gdoney1701 , @cbcunc told me the setup was non-trivial, but that he could help us. How about you work on getting a notebook working with widgets and cartopy, and I'll work on getting the environment going. Sound good?

gdoney1701 commented 7 years ago

Ok! I'll keep you updated!

On Jul 12, 2017, at 7:46 PM, Rich Signell notifications@github.com wrote:

@gdoney1701 , @cbcunc told me the setup was non-trivial, but that he could help us. How about you work on getting a notebook working with widgets and cartopy, and I'll work on getting the environment going. Sound good?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

cbcunc commented 7 years ago

@gdoney1701, this tutorial would be very useful to you: https://github.com/mwcraig/scipy2017-jupyter-widgets-tutorial

cbcunc commented 7 years ago

@gdoney1701 Also, there is not a tutorial or even good documentarion for it, but you should refer to the ipympl examples in https://github.com/matplotlib/jupyter-matplotlib. Ipympl turns matplotlib output into a Jupter output widget which can be laid out with Jupyter Dashboard.

cbcunc commented 7 years ago

@rsignell-usgs , here is the environment.yml I exported for the notebook bundler. This is not the environment for publishing to dashboard-server (which is a node.js application). But this environment does show which individual packages came from conda-forge. Be aware, this is an environment created a year ago, so many of the packages are now down-level and many of the problems which requires these package problems probably no longer exist. https://gist.github.com/cbcunc/93450161c446246afd76ce65ae173dbf

cbcunc commented 7 years ago

@rsignell-usgs Here are the steps I used to deploy Jupyter Dashboard Server: https://gist.github.com/cbcunc/3fa77e204ec9bbed8a323a2f80832ca2

cbcunc commented 7 years ago

@rsignell-usgs And here are the kludges I used to manually deploy the dashboard bundle to the dashboard server: https://gist.github.com/cbcunc/3be54ec00e78e657a0df65e65bfb6d92

rsignell-usgs commented 7 years ago

@gdoney1701, you should probably create this exact environment and not the most recent packages/widgets, to avoid problems when it comes to the publishing to the web step.

rsignell-usgs commented 7 years ago

@cbcunc, I was able to follow the step you listed at https://gist.github.com/cbcunc/3fa77e204ec9bbed8a323a2f80832ca2 but I replaced pip install with conda install where I could. The only thing I had to pip install was

pip install jupyter_dashboards_bundlers

To get the npm stuff to work, I did have to:

chown -R rsignell /usr/local
chown -R rsignell /usr/lib/node_modules

and I also got these deprecation warnings:

(rsmbund) rsignell@gamone:~/github/rsmbund> npm install -g jupyter-dashboards-server
npm WARN deprecated jupyter-js-services@0.15.2: This package has moved to @jupyterlab/services
npm WARN deprecated phosphor-disposable@1.0.5: update to @phosphor/disposable package
npm WARN deprecated phosphor-signaling@1.2.0: update to @phosphor/signaling package
npm WARN deprecated phosphor-arrays@1.0.6: update to @phosphor/algorithm package
npm WARN deprecated phosphor-codemirror@0.0.1: package is no longer maintained
npm WARN deprecated phosphor-domutil@1.2.0: use the @phosphor/ packages
npm WARN deprecated phosphor-di@0.9.0: update to @phosphor/application package
npm WARN deprecated phosphor-dragdrop@0.9.1: update to @phosphor/dragdrop package
npm WARN deprecated phosphor-keymap@0.8.0: update to @phosphor/commands package
npm WARN deprecated phosphor-messaging@1.0.6: update to @phosphor/messaging package
npm WARN deprecated phosphor-properties@2.0.0: update to @phosphor/properties package
npm WARN deprecated phosphor-commandpalette@0.2.0: update to @phosphor/widgets package
npm WARN deprecated phosphor-dockpanel@0.9.7: update to @phosphor/widgets package
npm WARN deprecated phosphor-boxengine@1.0.1: update to @phosphor/widgets package
npm WARN deprecated phosphor-queue@1.0.5: update to @phosphor/collections package
npm WARN deprecated phosphor-nodewrapper@1.0.6: update to @phosphor/widgets package

but in the end it seemed to work.

Should I be in a position to start/test the dashboard server now?

gdoney1701 commented 7 years ago

@cbcunc I get an error when trying to install the environment at https://gist.github.com/cbcunc/93450161c446246afd76ce65ae173dbf saying that a number of packages are missing in the current win-64 channels. I'm not sure if I have all the packages I need. Here is the list of what wouldn't install:

- cairo 1.14.6 0
  - fontconfig 2.11.1 5
  - freetype 2.6.3 1
  - geos 3.5.1 1
  - gettext 0.19.7 1
  - glib 2.51.0 2
  - harfbuzz 1.0.6 3
  - hdf5 1.8.17 8
  - icu 56.1 4
  - jupyter_cms 0.6.1 py35_0
  - libffi 3.2.1 2
  - libiconv 1.14 4
  - libpng 1.6.26 0
  - libsodium 1.0.10 0
  - libtiff 4.0.6 7
  - libxml2 2.9.4 3
  - libxslt 1.1.29 1
  - ncurses 5.9 10
  - openssl 1.0.2h 3
  - pango 1.40.3 0
  - pcre 8.38 1
  - pixman 0.34.0 0
  - ptyprocess 0.5.1 py35_0
  - pyqt 4.11.4 py35_1
  - qt 4.8.7 3
  - readline 6.2 0
  - sqlite 3.13.0 1
  - terminado 0.6 py35_0
  - tk 8.5.19 1
  - zeromq 4.1.5 0
  - zlib 1.2.8 3
  - libgcc 5.2.0 0
  - libgfortran 3.0.0 1
  - mkl 11.3.3 0  
cbcunc commented 7 years ago

@rsignell-usgs, I don't see how this could exist on Win64. If you have to use Windows, I would suggest running a VirtualBox image of something 'nix. I did all this on Centos 7.

rsignell-usgs commented 7 years ago

Grant is just trying to do the notebook part on windows. I'm setting up the dashboard stuff on Linux. Which widgets should he use?

rsignell-usgs commented 7 years ago

@gdoney1701, hmm, perhaps that isn't the best approach then. I'll talk to @cbcunc and see if we can make this simpler. Really for your environment all we need to do is make sure we don't use widgets that are too advanced.

rsignell-usgs commented 7 years ago

@gdoney1701, we just tested here and you can forget about that explicit @cbcunc environment. Just t use your IOOS3 environment and then downgrade ipywidgets by doing:

conda install ipywidgets=5.2.2

which will also downgrade ipyleaflet. Then we should be good, in that those notebooks should work on the jupyter dashboard server we will eventually deploy them on.