Mon 5 - Sat 10 December 2022 Auckland, New Zealand
Tue 6 Dec 2022 15:50 - 16:10 at Seminar Room LG004 - Talks III Chair(s): Jun Kato, Sam Lau

This talk introduces Livebook, an open source computational notebook platform written in the Elixir programming language.

The presentation will contain demos of several features in Livebook and discuss how they are implemented and their rationale. We will explore three main topics listed next.

Part 1: Reproducible notebooks must be functional

Reproducibility of notebooks has been a common topic over the last years. Recent developments aim to address the problem by making notebooks reactive. However, while reactive notebooks help tackle the problem of out-of-order cell evaluation, notebooks are still stateful, and can quickly become hard to reproduce unless users are careful in their coding practices (sometimes referred as Bring Your Own Discipline).

Livebook is powered by Elixir, a functional programming language, that promotes immutability. Our notebooks are reproducible (down to package management), predictable (reduced side-effects as a functional language), and versionable (a subset of Markdown). In this section we will discuss how those features were implemented and some of trade-offs made.

Part 2: Meta-programmable notebooks with Smart cells

Meta-programming is the writing of computer programs that write or manipulate other programs (or themselves) as their data. Notebooks often interact with programs via rich output. But what if we could use rich input to generate programs instead?

That’s the design goal behind Smart cells. Smart cells are UI components that write code. A Smart cell can only interact with the notebook environment by emitting code that is fully auditable by the users. This allows Smart cells to provide an accessible entry-point for developers, both for learning and automation purposes, while removing the “low ceiling” limitation often found in low-code/no-code tools.

Smart cells are highly inspired by the work on Mage by Mary Beth Kery et al. We will see some Smart cells in action and explore their underlying design.

Part 3: Live programming

Finally, we will explore our most recent efforts in adding live programming features to Livebook.

Elixir is a functional programming language, which runs on the Erlang VM. The Erlang VM is known to power telecommunication systems and also really large systems, such as Whatsapp. The Erlang VM is designed to build concurrent and distributed software through the actor model, where independent processes (lightweight threads of execution) communicate through messages.

“Message-passing”, “supervision trees”, “pipelines”, and others are common terms found on materials for new Elixir developers. The question we want to answer is: could a notebook platform be used to make those concepts more accessible to developers?

My goal are to present Livebook as a platform for experimentation while advocating for Elixir as a programming language for exploring concepts such as functional programming and the actor model within teaching.

Tue 6 Dec

Displayed time zone: Auckland, Wellington change

15:30 - 17:00
Talks IIILIVE at Seminar Room LG004
Chair(s): Jun Kato National Institute of Advanced Industrial Science and Technology (AIST), Sam Lau University of California at San Diego
Education-aware Interactive Machine Teaching: Training Autonomous Game AgentsVirtual
Chunqi Zhao , I-Chao Shen , Tsukasa Fukusato The University of Tokyo, Jun Kato National Institute of Advanced Industrial Science and Technology (AIST), Takeo Igarashi The University of Tokyo
Flowie, a Collaborative Projection EditorIn-person
Meta-programmable functional notebooks with LivebookPre-recorded
José Valim Dashbit
Live 2D Compositional ProgrammingIn-person
Michael Homer Victoria University of Wellington
Link to publication
Ampleforth: A Live Literate EditorVirtual