summaryrefslogtreecommitdiffstats
path: root/2021/talks/exec.md
diff options
context:
space:
mode:
Diffstat (limited to '2021/talks/exec.md')
-rw-r--r--2021/talks/exec.md77
1 files changed, 77 insertions, 0 deletions
diff --git a/2021/talks/exec.md b/2021/talks/exec.md
new file mode 100644
index 00000000..e4d46aef
--- /dev/null
+++ b/2021/talks/exec.md
@@ -0,0 +1,77 @@
+[[!meta title="Org as an executable format"]]
+[[!meta copyright="Copyright © 2021 Tom Gillespie"]]
+[[!inline pages="internal(2021/info/exec-nav)" raw="yes"]]
+
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Org as an executable format
+Tom Gillespie
+
+Org mode is known for its flexibility, power, and staggeringly diverse
+number of workflows, users, and use cases.
+
+This talk explores just how far we can push the boundaries of the sane
+and sensible with regard to Org workflows.
+
+In particular it will discuss shebang blocks, and elvs: two parts of a
+complete system for creating executable Org files.
+
+Org syntax does not support shebang lines. However, it turns out that
+Org syntax enables something even better &#x2014; shebang blocks.
+
+Org is also (supposedly) not an executable file format. However, by
+combining a shebang block with a Org babel source block, and eval
+local variables (elvs) Org becomes a multi-language executable format.
+
+In this talk we introduce shebang blocks and elvs as a two part system
+that transforms Org files into executable documents that can run on any
+recent version of Emacs.
+
+These ideas are implemented in
+<https://github.com/tgbugs/orgstrap/blob/master/README.org> and
+<https://github.com/tgbugs/orgstrap/blob/master/shebang.org>, and
+orgstrap.el is available as a package on MELPA and can be installed
+via M-x install-package orgstrap.
+
+The talk will open with a demo of how to create an executable Org file
+using the orgstrap machinery.
+
+We then discuss security considerations, and show example use cases.
+
+Finally the talk will cover the details and development of the
+portable shebang block for Org mode that works on a wide variety of
+systems and shells, and on the development of a formal specification
+and a reference implementation for using Org source blocks to
+transform Org files from plain text documents with a bit of markup
+into self describing computational documents, or interactive
+applications.
+
+
+
+# Outline
+
+- 5-10 minutes:
+
+A demo of adding the orgstrap block and elvs,
+adding a shebang block, and then running an org file.
+
+<!--
+- 20 minutes:
+
+Same as above, followed by a walkthrough of the approach orgstrap
+takes for preventing arbitrary code execution, followed by some
+examples uses of orgstrap.
+
+- 40 minutes:
+
+Depending on flow/interest, security overview and the examples
+bits could be swapped and overflow beyond 20 mins, followed by
+a deeper dive into the internals, and a discussion about interest
+in incorporating such functionality into org-mode directly.
+
+-->
+
+[[!inline pages="internal(2021/info/exec-schedule)" raw="yes"]]
+
+[[!inline pages="internal(2021/info/exec-nav)" raw="yes"]]