freenode/#clasp - IRC Chatlog
Search
17:06:54
drmeister
But you know what a URI should look like - does this look like something a server would honor?
17:06:54
drmeister
<script type=\"text/javascript\" src=\"file:/nbextensions/jsme/jsme.nocache\"></script>
17:07:08
drmeister
Or <script type=\"text/javascript\" src=\"nbextensions/jsme/jsme.nocache\"></script>
17:07:15
drmeister
Or <script type=\"text/javascript\" src=\"/nbextensions/jsme/jsme.nocache\"></script>
17:07:55
Shinmera
When you write http://foo.bar, it tells the browser to use the http protocol to look up a resource on host foo.bar
17:08:20
Shinmera
When you write file:///etc/hosts, it tells the browser to use the file protocol to look up a resource on path /etc/hosts.
17:08:48
drmeister
I see - so file:///etc/hosts bypasses the server - it doesn't generate a http request.
17:09:37
drmeister
That first one was what I cooked up after trying a half a dozen more reasonable things.
17:11:10
drmeister
So the current page should have some info that tells it how to handle nbextensions
17:11:56
drmeister
Can I spy on the http requests made browser on behalf of the jupyter notebook page?
17:12:10
Shinmera
The question of how they're mapped between files on disk and URLs is completely up to Jupyter though
17:12:23
drmeister
http://minrk-ipywidgets.readthedocs.io/en/latest/examples/Widget%20Low%20Level.html#Installation
17:15:14
drmeister
Which I'm sure some of which are more "properly" installed nbextensions unlike my hack.
17:18:25
drmeister
What is thwarting my forensic code spelunking skills is that I can't find any example URI's in the other jupyter widget code - they appear to piece them together from various strings.
17:23:00
Shinmera
unless Jupyter does a manual mapping, you should be able to use the same URL path that file uses.
17:23:22
Shinmera
If it does a manual mapping, you're out of luck and will need to figure out how to tell Jupyter about new resources.
17:26:51
drmeister
I see things like http://localhost:8888/nbextensions/nglview-js-widgets/extension.js?v=38234823845238
17:27:14
drmeister
Presumably I don't use src=\"http://localhost:8888/nbextensions/nglview-js-widgets/extension.js?v=38234823845238\"
17:29:21
drmeister
(defparameter *jsme-form* "<script type=\"text/javascript\" src=\"/nbextensions/jsme/jsme.nocache.js\"></script>
17:30:34
drmeister
Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:8888/nbextensions/jsme/jsme.nocache?_=152...
17:31:11
drmeister
Is the second SyntaxError meaningful or did Javascript go off the rails and I can ignore that.
17:31:47
drmeister
Is it a clue or a red herring? I don't see any spurious #\< in the URI that I provided or near it.
17:32:20
Shinmera
why does that url in the error not contain the .js file extension? Are you sure you're doing this right?
17:33:06
drmeister
I'm absolutely certain that I'm NOT doing it right - but I always get those errors in the console - no matter what I put in the src=\"whatever\"
17:35:50
drmeister
(3) (maybe) what magic configuration file do I have to edit to tell the server that the URI translates to the file on my hard drive.
17:37:46
drmeister
I copied jsme.nocache.js into: /Users/meister/anaconda/lib/python3.6/site-packages/nglview-1.0a7-py3.6.egg/share/jupyter/nbextensions/nglview-js-widgets/
17:39:04
drmeister
Now the script URI reads: (defparameter *jsme-form* "<script type=\"text/javascript\" src=\"/nbextensions/nglview-js-widgets/jsme.nocache.js\"></script>
17:40:16
drmeister
Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:8888/nbextensions/nglview-js-widgets/jsme.nocache.js?_=1521653005417
17:41:05
drmeister
The SyntaxError is pissing me off - I didn't add any spurious '<' characters. I only changed what was between the escaped double quotes.
17:42:43
drmeister
Now, there are several other nglview.../nbextensions directories and only one of them can be the real one.
17:44:32
drmeister
You are helping a lot - and I'm not your usual remote debugging experience. I'm just looking for crumbs of information to find the trail to the solution.
17:54:28
drmeister
This isn't helped by the fact that jupyter notebooks changed where they serve these files from in the last two years and I have several installations of jupyter notebooks on my laptop.
18:15:19
drmeister
I discovered that /Users/meister/anaconda/share/jupyter/nbextensions/* is where this javascript is served from.
18:15:52
drmeister
I added a nbextensions/jsme-js-widgets directory next to the nbextensions/nglview-js-widgets directory
18:16:34
drmeister
Then I copied the nglview-js-widgets/extensions.js file into jsme-js-widgets/extensions.js and pointed some of the internals at the jsme-js-widgets/index.js file
18:17:46
drmeister
The server reports: [D 14:10:54.200 NotebookApp] Path jsme-js-widgets/index.js served from /Users/meister/anaconda/share/jupyter/nbextensions/jsme-js-widgets/index.js
18:18:16
drmeister
I had changed the URI in the <script ... to: (defparameter *jsme-form* "<script type=\"text/javascript\" src=\"/nbextensions/jsme-js-widgets/index.js\"></script>
18:18:42
drmeister
So /nbextensions/jsme-js-widgets/index.js is being translated by the server to /Users/meister/anaconda/share/jupyter/nbextensions/jsme-js-widgets/index.js
18:19:35
drmeister
It's a partial success because it appears that that javascript file requests its own resources.
18:24:45
drmeister
The URI that I provide is translated into a directory path on my machine by a kind of complicated process that I am able to hijack by setting up the directories properly and having an appropriate extensions.js file in the properly setup directory.
18:25:28
drmeister
Its a bit of a can of worms. I have to identify and download all of the network resources and set them up properly.
18:27:56
drmeister
The debug output of the jupyter notebook is helpful - it tells me some of the other files that are needed (I'm ready to pull more that may appear if more of these worked).
18:28:27
drmeister
But it's switching from '/nbextensions/jsme-js-widgets/index.js' to '/notebooks/jsa.css' -- that's frustrating.
18:29:05
drmeister
Googling for '/notebooks/whatever' and 'jupyter notebooks' is going to be stupid.
23:24:57
drmeister
It turned out the easiest thing was to install the jsme code in the same directory as the jupyter notebook.
0:50:13
drmeister
I'm not sure I'm going though - the snow between here and GSK is pretty bad for that time in the morning.
2:38:32
drmeister
Well, saner heads prevailed (not mine - I was ready to crawl through snow to get there). My GSK trip has been postponed.