Agenda for the ROOT Hacking Session
o Introduction: ROOT, ROOT and Jupyter integration, ROOTaaS, foreseen usage patterns at CERN
o Our goal of providing integration with python notebooks and standalone C++ kernel: the challenge of avoiding code duplication
o ROOT and Cling Kernel: further opportunities for reducing duplication, discussion about building the ROOT kernel on top of the cling one.
Topics to be tackled
o Asynchronous capturing of output from C/C++ libraries, especially in a native python notebook, analogies and differences with the well known ctypes case.
o Tab completion: discussion of the interplay with cling, introduction to tab completion (intput, output, the regular expression), regular expression vs metakernel, "->" in the python hook, completion on global functions, single word completion in the kernel case
o Syntax highlighting: how to properly do it, will Jupyter provide a recommended way to do this especially with multilanguage notebooks?
o Magics: can we reuse the same magics in the metakernel and python modes?
o Rerun cells in C++: not only possible as the language forbids that but we can unload transactions.
Jupyterhub related topics
o Jupyterhub: discuss the details of the current CERN configuration for interaction with the IDP with SSO, possible evolutions, multiple proxies, general interest of the solution.
o Spawning containers with Kubernetes, Mesos and Jupyterhub.
o Future of Jupyterhub, editors, terminals and forthcoming features.