Re:Interactive Go programming with Jupyter
by chatmasta on Friday April 20, 2018 @07:42AM
(#16883945)
As someone who hasn't worked with Jupyter beyond a simple iPython shell, this comment sent me down a bit of a rabbit hole. If anyone's interested, here are some links.
Jupyter docs for making a kernel: http://jupyter-client.readthedocs.io/en/latest/kernels.html
List of jupyter kernels: https://github.com/jupyter/jupyter/wiki/Jupyter-kernels
Jupyter seems like a cleanly designed piece of software that is easy to integrate with. I like the use of ZeroMQ for the wire protocol.
Sorry it's my job to nitpick. IPython is upper case I and P. We don't want to upset the fruit giant.
Re:Interactive Go programming with Jupyter
by cosmos72 on Friday April 20, 2018 @03:55AM
(#16882942)
It compiles a plugin for each Jupyter cell code with "go build -buildmode=plugin" then loads it.
It's easy to see with Linux "lsof -p LGO_PID": it lists, among others, the loaded shared libraries - there is one per Jupyter cell code.
This is super cool, but I’d like to know more. You can’t reload plugins without changing the plugin path and any shared references won’t get GC’d, from what I remember. I tried to do server handler hot reloading via plugins and ran into this a while ago.
Just playing with the code in the mybinder.org it feels responsive enough. As well as for data analysis, this will be a great way to do those quick checks that I like to do in python to confirm how an api works. I've been meaning to start using golang more and this might be how I do it.