freenode/#clasp - IRC Chatlog
Search
17:17:33
drmeister
I want a jupyter notebook that starts in kiosk mode but that anyone a little more sophisticated can customize.
17:17:46
yitzi
I think with that extension you can create and then export it with nbconvert. Seems fairly straightforward
17:19:38
drmeister
Ok. But how does that help here? It seems like we'd have to open the foo.ipynb file and edit the JSON by hand to hide the cells we want to hide.
17:19:58
yitzi
See https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/nbextensions/hide_input/readme.html
17:21:07
drmeister
Does it mean we have to add some kind of extension to the jupyter notebook/lab environment to support this?
17:24:10
drmeister
Do these extensions include kernel Python code? If so - then we need to write Common Lisp code to mimic it.
17:28:28
yitzi
drmeister: Its rebuilding... you want to explain the "code completion" statement in the PR while we wait?
17:32:34
drmeister
But I'd like to be able to edit code in the input cells and hit tab and see function arguments and docstrings.
17:34:10
drmeister
Ok - what am I doing here? I've purposefully left out the function name. I just put a space there.
17:34:50
drmeister
Then I'd like it to come up with a list of suggestions to put in place right after the open parenthesis.
17:35:31
drmeister
It's like code completion in Python. foo.<point> <tab> -> you get all the methods that apply to 'foo'.
17:37:21
yitzi
And it's already implemented in common-lisp-jupyter. Maybe a little naive, but its there.
17:37:52
drmeister
Yes - the "code_inspect" message is how we would implement this. scymtym is one of our collaborators here who is developing a Common Lisp reader and something like a "language server protocol" that could provide support for this.
17:38:08
yitzi
https://github.com/yitzchak/common-lisp-jupyter/blob/262dab1e79bad0bd010f5d3d0429f8ae36ef0f7d/src/kernel.lisp#L141-L168
17:38:15
drmeister
It requires some fancy programming to predict what is reasonable. scymtym has thought about this a lot more deeply than I have.
17:38:59
drmeister
But I want Common Lisp to be as discoverable and have better programmer assistance tooling than we currently have. Both in slime and in jupyter notebooks.
17:39:39
yitzi
See link above. You just implement "inspect-code" method in your kernel subclass. I have a naive implement currently in common-lisp-jupyter.
17:39:45
drmeister
Yes. I'm familiar with the jupyter facilities that could support this and I'm excited by your generic function implementation of it.
17:41:11
drmeister
I don't implement what I described above - my idea above is still half-baked. I don't even know if it's reasonable.
17:42:18
drmeister
With single dispatch methods as you have in Python - it's easier to come up with a list of methods that apply to a variable. You still need to get an idea of the type of the variable to come up with good suggestions. It's probably really tricky. I think it's a worthwhile thing to try and get right though.
17:42:51
drmeister
That being said. The jupyter notebook input cells are a tedious programming environment for lots of code.
17:43:48
drmeister
Let's see what this docker looks like. nglview in jupyterlab is high priority and then hiding input cells.
17:46:36
yitzi
Look in the upper right hand corner next to the kernel name. Do you see a button with a crossed eye icon?
17:49:06
yitzi
Ok. must have been that extension. Thanks, I'll get back to on the docker image when it works.
18:14:01
drmeister
yitzi: The julia widget example that you have. How does the output work? What kind of widget are you using?
18:17:31
drmeister
yitzi: Within Cando we have code to generate svg files that display two-dimensional images of molecules.
18:19:33
yitzi
To display svg data use `jupyter:svg` defined here https://github.com/yitzchak/common-lisp-jupyter/blob/262dab1e79bad0bd010f5d3d0429f8ae36ef0f7d/src/results.lisp#L241
18:29:15
yitzi
::notify drmeister the julia example is probably in ~/quicklisp/local-projects/common-lisp-jupyter/examples
18:30:20
yitzi
::notify drmeister the julia example uses an "image" widget and sends a png to it. Truly hackish and slooooowwwwww!
19:37:41
drmeister
::notify yitzi - I use a service called irccloud.com - it keeps me logged in to IRC so I don't miss messages to me. I saw your comments about the image/svg widgets.
20:18:02
Colleen
drmeister: yitzi said 1 hour, 49 minutes ago: svg output is done with jupyter:svg and jupyter:svg-file
20:18:02
Colleen
drmeister: yitzi said 1 hour, 48 minutes ago: the julia example is probably in ~/quicklisp/local-projects/common-lisp-jupyter/examples
20:18:02
Colleen
drmeister: yitzi said 1 hour, 47 minutes ago: the julia example uses an "image" widget and sends a png to it. Truly hackish and slooooowwwwww!
20:18:22
drmeister
Removing the where tags or whatever was done with Derivable classes has broken Derivable classes.
22:42:38
Bike
is slot-value-using-class still isn't working for derivables... how far back did you rebuild? that was a change in hierarchy so pretty early
0:05:10
Bike
i mean, the problem here is that slot-value isn't working on derivable objects, and it needs to work on derivable objects
0:07:54
Bike
to explain what's going on, i separated out derivable objects from standard objects, and derivable classes from standard classes, so now derivable classes are no longer standard classes
0:08:32
Bike
we have a superclass std-class that's the superclass of both standard-class and funcallable-standard-class, so i can just make it a superclass of derivable-cxx-class as well and presto
0:09:04
drmeister
I think it's rhetorical for you. For me it's a real question. I've never seen this before.
0:15:01
drmeister
Are we using llvm-dwarfdump for debugging information? I thought we switched to llvm library calls.
0:19:31
drmeister
I'd like to use different values so we can track down why we have missing source info.
0:28:38
Bike
i pushed a fix for the slot-value thing. i actually tried it on a derivable object so i think it should work for you
0:59:35
Bike
yeah, when i made these changes i wanted to try running the static analyzer to make sure it wasn't broken, but you were too busy to tell me i think
1:03:25
Bike
well, i don't intend to make any more changes to this any time soon, but i'll keep that in mind