Emacs Hyper Notebook

We are developing a better way to do “Jupyter notebooks” using Emacs. This recovers some of the Research Collab ideas developed by Aaron Krowne. It should integrate features such as writing and task management (e.g., Org) Program evaluation (e.g., Maxima), Typesetting and presentation (e.g., slides via LaTeX), and navigation (e.g., Org Roam for displaying topics as a graph). We should be clear that the various technologies used are slot-fillers and they might be replaced with other things, or augmented (e.g.,Lean for formal verification of some of the above?). A useful input to this process would be implementation of examples without integration. This can then be redone in a more integrated fashion.

An integration using existing technologies will have limitations, once we have this demos then we will see some of the gaps and how more advanced tech could be useful. (For example, Ray’s work with Gerschom could turn out to be useful here.)

Some quick thoughts

  • If it was sitting inside a web container, then maybe it’s a quickstart thing that comes in a user friendly form.

  • Maybe add menu-bar items to make it look like a web browser.

  • Emacs Maxima interface, we might build on it — for Monday 12th October, a quick "15 minutes" talk to catch up

  • ... possible deliverable for later on: a NIST talk?

BACK Could Emacsconf talk become a blog post?joeraycameron

(Notice that with crdt, typing can go on inside folded nodes! Qiantan is thinking about a mode to make overlays shareable, which would change things a bit.)

Partial prototypes

How far can we go... Through Roam? (We could at least talk to Connor about Roam on Twitter?) Through Jupyter? Foam? Glamorous Toolkit? Can we integrate what we’re building with existing tools like these? Do Lenses or other kinds of ACT machinery help with this at all? Would our system potentially play a role as a universal backend?

Feature: Arxana 2020

Revisit Arxana and turn it into something that we can actually use. This is rather closely related to the use of “knowledge graph” formulations we’ve been discussing, since Arxana allows us to combine writing with knowledge representations. In our last round of work with Arxana, we left off at the point of integrating logic programming into the system.

Other related work

  • James Fairbanks (relate this to Betancourt).

Testing

(def a 2)
#'user/a
a
2
(range 10)
(def a 1)
| (0 1 2 3 4 5 6 7 8 9) |
| #'user/a              |
a
1

Implementing a quick demo for Emacs NYC

Notes for the first talk will appear here:

What would we actually want as our org interface?

We had a short problem with this:

1+1;
(error "No such language mode: nil-mode")
...

Backends

jupyter

The jupyter backend works well locally but suffers from a bug when run via tramp. See emacs-jupyter remote debugging

ob-streams

This is work in progress, with some sample content above.

Future work