summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2022/captions/emacsconf-2022-grail--graila-generalized-representation-and-aggregation-of-information-layers--sameer-pradhan--main--chapters.vtt65
-rw-r--r--2022/info/grail-after.md638
-rw-r--r--2022/info/grail-before.md32
-rw-r--r--2022/organizers-notebook.md523
-rw-r--r--2022/organizers-notebook/index.org162
-rw-r--r--2022/schedule-2022-12-03.md2
-rw-r--r--2022/schedule-2022-12-04.md2
-rw-r--r--2022/schedule-image.md2
8 files changed, 1151 insertions, 275 deletions
diff --git a/2022/captions/emacsconf-2022-grail--graila-generalized-representation-and-aggregation-of-information-layers--sameer-pradhan--main--chapters.vtt b/2022/captions/emacsconf-2022-grail--graila-generalized-representation-and-aggregation-of-information-layers--sameer-pradhan--main--chapters.vtt
new file mode 100644
index 00000000..e907d8ec
--- /dev/null
+++ b/2022/captions/emacsconf-2022-grail--graila-generalized-representation-and-aggregation-of-information-layers--sameer-pradhan--main--chapters.vtt
@@ -0,0 +1,65 @@
+WEBVTT
+
+
+00:00:00.000 --> 00:01:13.399
+Introduction
+
+00:01:13.400 --> 00:02:34.559
+Processing language
+
+00:02:34.560 --> 00:03:43.239
+Annotation
+
+00:03:43.240 --> 00:04:39.679
+Learning from data
+
+00:04:39.680 --> 00:05:44.399
+Manual annotation
+
+00:05:44.400 --> 00:06:22.519
+How can we develop a unified representation?
+
+00:06:22.520 --> 00:06:55.279
+What role might Emacs and Org mode play?
+
+00:06:55.280 --> 00:08:10.799
+The complex structure of language
+
+00:08:10.800 --> 00:10:22.359
+Annotation tools
+
+00:10:22.360 --> 00:12:45.479
+Org mode
+
+00:12:45.480 --> 00:17:36.239
+Example
+
+00:17:36.240 --> 00:19:17.679
+Different readings
+
+00:19:17.680 --> 00:23:31.999
+Spontaneous speech
+
+00:23:32.000 --> 00:24:20.279
+Editing properties in column view
+
+00:24:20.280 --> 00:25:15.279
+Conclusion
+
+00:25:15.280 --> 00:27:20.479
+Bonus material
+
+00:27:20.480 --> 00:28:39.279
+Syntactic analysis
+
+00:28:39.280 --> 00:30:12.599
+Forced alignment
+
+00:30:12.600 --> 00:31:42.879
+Alignment before tokenization
+
+00:31:42.880 --> 00:34:31.319
+Layers
+
+00:34:31.320 --> 00:36:17.000
+Variations
diff --git a/2022/info/grail-after.md b/2022/info/grail-after.md
index f721544b..98d5a049 100644
--- a/2022/info/grail-after.md
+++ b/2022/info/grail-after.md
@@ -1,6 +1,644 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
+<a name="grail-mainVideo-transcript"></a>
+# Transcript
+
+[[!template new="1" text="""Thank you for joining me today. I'm Sameer Pradhan""" start="00:00:00.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""from the Linguistic Data Consortium""" start="00:00:05.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""at the University of Pennsylvania""" start="00:00:07.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and founder of cemantix.org .""" start="00:00:10.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Today we'll be addressing research""" start="00:00:14.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""in computational linguistics,""" start="00:00:16.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""also known as natural language processing""" start="00:00:18.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""a sub area of artificial intelligence""" start="00:00:22.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""with a focus on modeling and predicting""" start="00:00:24.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""complex linguistic structures from various signals.""" start="00:00:27.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""The work we present is limited to text and speech signals.""" start="00:00:31.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""but it can be extended to other signals.""" start="00:00:35.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""We propose an architecture,""" start="00:00:38.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and we call it GRAIL, which allows""" start="00:00:40.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""the representation and aggregation""" start="00:00:42.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of such rich structures in a systematic fashion.""" start="00:00:44.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""I'll demonstrate a proof of concept""" start="00:00:50.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""for representing and manipulating data and annotations""" start="00:00:52.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""for the specific purpose of building""" start="00:00:56.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""machine learning models that simulate understanding.""" start="00:00:58.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""These technologies have the potential for impact""" start="00:01:02.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""in almost every conceivable field""" start="00:01:05.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that generates and uses data.""" start="00:01:09.120" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""We process human language""" start="00:01:13.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""when our brains receive and assimilate""" start="00:01:15.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""various signals which are then manipulated""" start="00:01:16.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and interpreted within a syntactic structure.""" start="00:01:20.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""it's a complex process that I have simplified here""" start="00:01:23.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""for the purpose of comparison to machine learning.""" start="00:01:27.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Recent machine learning models tend to require""" start="00:01:30.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""a large amount of raw, naturally occurring data""" start="00:01:33.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and a varying amount of manually enriched data,""" start="00:01:37.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""commonly known as &quot;annotations&quot;.""" start="00:01:40.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Owing to the complex and numerous nature""" start="00:01:43.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of linguistic phenomena, we have most often used""" start="00:01:45.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""a divide and conquer approach.""" start="00:01:49.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""The strength of this approach is that it allows us""" start="00:01:53.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to focus on a single, or perhaps a few related""" start="00:01:55.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""linguistic phenomena.""" start="00:01:58.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""The weaknesses are the universe of these phenomena""" start="00:02:00.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""keep expanding, as language itself""" start="00:02:03.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""evolves and changes over time,""" start="00:02:07.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and second, this approach requires an additional task""" start="00:02:09.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of aggregating the interpretations,""" start="00:02:13.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""creating more opportunities for computer error.""" start="00:02:14.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Our challenge, then, is to find the sweet spot""" start="00:02:18.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that allows us to encode complex information""" start="00:02:21.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""without the use of manual annotation,""" start="00:02:25.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""or without the additional task of aggregation by computers.""" start="00:02:27.720" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""So what do I mean by &quot;annotation&quot;?""" start="00:02:34.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""In this talk the word annotation refers to""" start="00:02:37.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""the manual assignment of certain attributes""" start="00:02:39.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to portions of a signal which is necessary""" start="00:02:43.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to perform the end task.""" start="00:02:48.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""For example, in order for the algorithm""" start="00:02:51.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to accurately interpret a pronoun,""" start="00:02:54.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""it needs to know that pronoun,""" start="00:02:57.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""what that pronoun refers back to.""" start="00:03:00.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""We may find this task trivial, however,""" start="00:03:03.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""current algorithms repeatedly fail in this task.""" start="00:03:06.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So the complexities of understanding""" start="00:03:10.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""in computational linguistics require annotation.""" start="00:03:13.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""The world annotation itself is a useful example,""" start="00:03:16.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""because it also reminds us""" start="00:03:20.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that words have multiple meetings""" start="00:03:22.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""as annotation itself does—""" start="00:03:25.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""just as I needed to define it in this context,""" start="00:03:27.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""so that my message won't be misinterpreted.""" start="00:03:30.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So, too, must annotators do this for algorithms""" start="00:03:33.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""through the manual intervention.""" start="00:03:39.040" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""Learning from raw data""" start="00:03:43.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""(commonly known as unsupervised learning)""" start="00:03:44.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""poses limitations for machine learning.""" start="00:03:47.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""As I described, modeling complex phenomena""" start="00:03:50.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""need manual annotations.""" start="00:03:53.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""The learning algorithm uses these annotations""" start="00:03:55.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""as examples to build statistical models.""" start="00:03:58.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""This is called supervised learning.""" start="00:04:01.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Without going into too much detail,""" start="00:04:04.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""I'll simply note that the recent popularity""" start="00:04:06.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of the concept of deep learning""" start="00:04:10.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""is that evolutionary step""" start="00:04:12.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""where we have learned to train models""" start="00:04:14.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""using trillions of parameters in ways that they can""" start="00:04:17.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""learn richer hierarchical structures""" start="00:04:20.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""from very large amounts of annotate, unannotated data.""" start="00:04:25.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""These models can then be fine-tuned,""" start="00:04:29.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""using varying amounts of annotated examples""" start="00:04:32.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""depending on the complexity of the task""" start="00:04:35.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to generate better predictions.""" start="00:04:37.640" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""As you might imagine, manually annotating""" start="00:04:39.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""complex, linguistic phenomena""" start="00:04:44.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""can be very specific, labor-intensive task.""" start="00:04:47.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""For example, imagine if we were""" start="00:04:51.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to go back through this presentation""" start="00:04:54.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and connect all the pronouns""" start="00:04:56.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""with the nouns to which they refer.""" start="00:04:58.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Even for a short 18 min presentation,""" start="00:04:59.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""this would require hundreds of annotations.""" start="00:05:03.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""The models we build are only as good""" start="00:05:05.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""as the quality of the annotations we make.""" start="00:05:08.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""We need guidelines""" start="00:05:11.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that ensure that the annotations are done""" start="00:05:12.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""by at least two humans who have substantial agreement""" start="00:05:15.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""with each other in their interpretations.""" start="00:05:19.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""We know that if we try to trade a model using annotations""" start="00:05:22.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that are very subjective, or have more noise,""" start="00:05:25.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""we will receive poor predictions.""" start="00:05:28.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Additionally, there is the concern of introducing""" start="00:05:30.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""various unexpected biases into one's models.""" start="00:05:33.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So annotation is really both an art and a science.""" start="00:05:37.080" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""In the remaining time,""" start="00:05:44.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""we will turn to two fundamental questions.""" start="00:05:47.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""First, how can we develop a unified representation""" start="00:05:50.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of data and annotations""" start="00:05:54.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that encompasses arbitrary levels of linguistic information?""" start="00:05:55.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""There is a long history of attempting to answer""" start="00:05:59.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""this first question.""" start="00:06:03.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""This history is documented in our recent article,""" start="00:06:04.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and you can refer to that article.""" start="00:06:08.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""It will be on the website.""" start="00:06:11.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""It is as if we, as a community,""" start="00:06:16.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""have been searching for our own Holy Grail.""" start="00:06:19.000" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""The second question we will pose is""" start="00:06:22.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""what role might Emacs, along with Org mode,""" start="00:06:26.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""play in this process?""" start="00:06:30.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Well, the solution itself may not be tied to Emacs.""" start="00:06:31.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Emacs has built in capabilities""" start="00:06:35.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that could be useful for evaluating potential solutions.""" start="00:06:38.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""It's also one of the most extensively documented""" start="00:06:42.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""pieces of software and the most customizable""" start="00:06:45.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""piece of software that I have ever come across,""" start="00:06:48.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and many would agree with that.""" start="00:06:51.600" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""In order to approach this second question,""" start="00:06:55.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""we turn to the complex structure of language itself.""" start="00:07:00.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""At first glance, language appears to us""" start="00:07:03.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""as a series of words.""" start="00:07:07.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Words form sentences, sentences form paragraphs,""" start="00:07:09.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and paragraphs form completed text.""" start="00:07:13.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""If this was a sufficient description""" start="00:07:16.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of the complexity of language,""" start="00:07:19.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""all of us would be able to speak and read""" start="00:07:21.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""at least ten different languages.""" start="00:07:24.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""We know it is much more complex than this.""" start="00:07:26.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""There is a rich, underlying recursive tree structure--""" start="00:07:29.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""in fact, many possible tree structures""" start="00:07:33.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""which makes a particular sequence meaningful""" start="00:07:36.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and many others meaningless.""" start="00:07:39.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""One of the better understood tree structures""" start="00:07:42.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""is the syntactic structure.""" start="00:07:45.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""While natural language""" start="00:07:47.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""has rich ambiguities and complexities,""" start="00:07:49.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""programming languages are designed to be parsed""" start="00:07:51.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and interpreted deterministically.""" start="00:07:55.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Emacs has been used for programming very effectively.""" start="00:07:57.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So there is a potential for using Emacs""" start="00:08:02.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""as a tool for annotation.""" start="00:08:05.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""This would significantly improve our current set of tools.""" start="00:08:06.560" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""It is important to note that most of the annotation tools""" start="00:08:10.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that have been developed over the past few decades""" start="00:08:16.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""have relied on graphical interfaces,""" start="00:08:19.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""even those used for enriching textual information.""" start="00:08:22.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Most of the tools in current use""" start="00:08:26.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""are designed for a end user to add very specific,""" start="00:08:30.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""very restricted information.""" start="00:08:36.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""We have not really made use of the potential""" start="00:08:38.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that an editor or a rich editing environment like Emacs""" start="00:08:42.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""can add to the mix.""" start="00:08:45.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Emacs has long enabled the editing of, the manipulation of""" start="00:08:47.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""complex embedded tree structures abundant in source code.""" start="00:08:52.480" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So it's not difficult to imagine that it would have""" start="00:08:56.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""many capabilities that we we need""" start="00:08:58.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to represent actual language.""" start="00:09:00.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""In fact, it already does that with features""" start="00:09:02.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that allow us to quickly navigate""" start="00:09:04.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""through sentences and paragraphs,""" start="00:09:06.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and we don't need a few key strokes.""" start="00:09:07.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Or to add various text properties to text spans""" start="00:09:09.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to create overlays, to name but a few.""" start="00:09:13.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Emacs figured out this way to handle Unicode,""" start="00:09:17.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""so you don't even have to worry about the complexity""" start="00:09:22.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of managing multiple languages.""" start="00:09:26.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""It's built into Emacs. In fact, this is not the first time""" start="00:09:29.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Emacs has been used for linguistic analysis.""" start="00:09:34.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""One of the breakthrough moments in language,""" start="00:09:37.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""natural language processing was the creation""" start="00:09:41.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of manually created syntactic trees""" start="00:09:44.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""for a 1 million word collection""" start="00:09:48.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of Wall Street Journal articles.""" start="00:09:50.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""This was else around 1992""" start="00:09:52.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""before Java or graphical interfaces were common.""" start="00:09:54.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""The tool that was used to create that corpus was Emacs.""" start="00:09:59.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""It was created at UPenn, and is famously known as""" start="00:10:03.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""the Penn Treebank. '92 was about when""" start="00:10:08.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""the Linguistic Data Consortium was also established,""" start="00:10:12.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and it's been about 30 years""" start="00:10:16.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that it has been creating various""" start="00:10:18.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""language-related resources.""" start="00:10:20.720" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""Org mode--in particular, the outlining mode,""" start="00:10:22.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""or rather the enhanced form of outlining mode--""" start="00:10:28.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""allows us to create rich outlines,""" start="00:10:32.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""attaching properties to nodes,""" start="00:10:35.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and provides commands for easily customizing""" start="00:10:37.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""sorting of various pieces of information""" start="00:10:41.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""as per one's requirement.""" start="00:10:43.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""This can also be a very useful tool.""" start="00:10:45.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""This enhanced form of outline-mode adds more power to Emacs.""" start="00:10:50.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""It provides commands for easily customizing""" start="00:10:59.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and filtering information,""" start="00:11:03.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""while at the same time hiding unnecessary context.""" start="00:11:05.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""It also allows structural editing.""" start="00:11:09.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""This can be a very useful tool to enrich corpora""" start="00:11:11.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""where we are focusing on limited amount of phenomena.""" start="00:11:16.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""The two together allow us to create""" start="00:11:20.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""a rich representation""" start="00:11:24.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that can simultaneously capture multiple possible sequences,""" start="00:11:27.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""capture details necessary to recreate the original source,""" start="00:11:33.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""allow the creation of hierarchical representation,""" start="00:11:38.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""provide structural editing capabilities""" start="00:11:42.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that can take advantage of the concept of inheritance""" start="00:11:44.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""within the tree structure.""" start="00:11:47.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Together they allow local manipulations of structures,""" start="00:11:49.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""thereby minimizing data coupling.""" start="00:11:54.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""The concept of tags in Org mode""" start="00:11:56.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""complement the hierarchy part.""" start="00:11:59.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Hierarchies can be very rigid,""" start="00:12:01.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""but to tags on hierarchies,""" start="00:12:03.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""we can have a multifaceted representations.""" start="00:12:06.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""As a matter of fact, Org mode has the ability for the tags""" start="00:12:08.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to have their own hierarchical structure""" start="00:12:12.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""which further enhances the representational power.""" start="00:12:15.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""All of this can be done as a sequence""" start="00:12:18.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of mostly functional data transformations,""" start="00:12:22.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""because most of the capabilities""" start="00:12:25.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""can be configured and customized.""" start="00:12:27.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""It is not necessary to do everything at once.""" start="00:12:29.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Instead, it allows us to incrementally increase""" start="00:12:32.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""the complexity of the representation.""" start="00:12:36.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Finally, all of this can be done""" start="00:12:37.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""in plain-text representation""" start="00:12:39.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""which comes with its own advantages.""" start="00:12:42.360" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""Now let's take a simple example.""" start="00:12:45.480" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""This is a a short video that I'll play.""" start="00:12:50.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""The sentence is &quot;I saw the moon with a telescope,&quot;""" start="00:12:56.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and let's just make a copy of the sentence.""" start="00:12:59.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""What we can do now is to see:""" start="00:13:04.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""what does this sentence comprise?""" start="00:13:09.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""It has a noun phrase &quot;I,&quot;""" start="00:13:11.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""followed by a word &quot;saw.&quot;""" start="00:13:13.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Then &quot;the moon&quot; is another noun phrase,""" start="00:13:17.480" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and &quot;with the telescope&quot; is a prepositional phrase.""" start="00:13:21.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Now one thing that you might remember,""" start="00:13:24.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""from grammar school or syntax is that""" start="00:13:30.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""there is a syntactic structure.""" start="00:13:36.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""And if you in this particular case--""" start="00:13:41.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""because we know that the moon is not typically""" start="00:13:44.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""something that can hold the telescope,""" start="00:13:47.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that the seeing must be done by me or &quot;I,&quot;""" start="00:13:51.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and the telescope must be in my hand,""" start="00:13:56.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""or &quot;I&quot; am viewing the moon with a telescope.""" start="00:14:01.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""However, it is possible that in a different context""" start="00:14:04.480" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""the moon could be referring to an animated character""" start="00:14:13.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""in a animated series, and could actually hold the telescope.""" start="00:14:17.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""And this is one of the most--""" start="00:14:22.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""the oldest and one of the most--""" start="00:14:23.480" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and in that case the situation might be""" start="00:14:24.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that I'm actually seeing the moon holding a telescope...""" start="00:14:26.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""I mean. The moon is holding the telescope,""" start="00:14:30.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and I'm just seeing the moon holding the telescope.""" start="00:14:36.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Complex linguistic ambiguity or linguistic""" start="00:14:40.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""phenomena that requires world knowledge,""" start="00:14:48.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and it's called the PP attachment problem""" start="00:14:53.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""where the propositional phrase attachment""" start="00:14:55.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""can be ambiguous, and various different contextual cues""" start="00:14:59.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""have to be used to resolve the ambiguity.""" start="00:15:04.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So in this case, as you saw,""" start="00:15:06.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""both the readings are technically true,""" start="00:15:09.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""depending on different contexts.""" start="00:15:11.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So one thing we could do is just""" start="00:15:13.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to cut the tree and duplicate it,""" start="00:15:16.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and then let's create another node""" start="00:15:19.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and call it an &quot;OR&quot; node.""" start="00:15:21.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""And because we are saying,""" start="00:15:24.480" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""this is one of the two interpretations.""" start="00:15:26.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Now let's call one interpretation &quot;a&quot;,""" start="00:15:28.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and that interpretation essentially""" start="00:15:32.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""is this child of that node &quot;a&quot;""" start="00:15:36.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and that says that the moon""" start="00:15:39.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""is holding the telescope.""" start="00:15:41.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Now we can create another representation &quot;b&quot;""" start="00:15:44.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""where we capture the other interpretation,""" start="00:15:46.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""where this, the act, the moon or--I am actually""" start="00:15:53.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""holding the telescope,""" start="00:15:59.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and watching the moon using it.""" start="00:16:00.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So now we have two separate interpretations""" start="00:16:06.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""in the same structure,""" start="00:16:09.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and all we do--we're able to do is with this,""" start="00:16:11.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""with very quick key strokes now...""" start="00:16:15.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""While we are at it, let's add another interesting thing,""" start="00:16:18.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""this node that represents &quot;I&quot;:""" start="00:16:22.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""&quot;He.&quot; It can be &quot;She&quot;.""" start="00:16:25.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""It can be &quot;the children,&quot; or it can be &quot;The people&quot;.""" start="00:16:28.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Basically, any entity that has the capability to &quot;see&quot;""" start="00:16:35.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""can be substituted in this particular node.""" start="00:16:45.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Let's see what we have here now.""" start="00:16:53.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""We just are getting sort of a zoom view""" start="00:16:57.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of the entire structure, what we created,""" start="00:17:01.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and essentially you can see that""" start="00:17:04.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""by just, you know, using a few keystrokes,""" start="00:17:08.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""we were able to capture two different interpretations""" start="00:17:11.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of a a simple sentence,""" start="00:17:17.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and they are also able to add""" start="00:17:20.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""these alternate pieces of information""" start="00:17:23.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that could help machine learning algorithms""" start="00:17:27.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""generalize better.""" start="00:17:30.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""All right.""" start="00:17:32.440" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""Now, let's look at the next thing. So in a sense,""" start="00:17:36.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""we can use this power of functional data structures""" start="00:17:40.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to represent various potentially conflicting""" start="00:17:46.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and structural readings of that piece of text.""" start="00:17:50.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""In addition to that, we can also create more texts,""" start="00:17:55.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""each with different structure,""" start="00:17:58.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and have them all in the same place.""" start="00:17:59.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""This allows us to address the interpretation""" start="00:18:01.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of a static sentence that might be occurring in the world,""" start="00:18:04.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""while simultaneously inserting information""" start="00:18:06.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that would add more value to it.""" start="00:18:09.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""This makes the enrichment process also very efficient.""" start="00:18:11.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Additionally, we can envision""" start="00:18:15.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""a power user of the future, or present,""" start="00:18:19.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""who can not only annotate a span,""" start="00:18:24.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""but also edit the information in situ""" start="00:18:27.480" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""in a way that would help machine algorithms""" start="00:18:31.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""generalize better by making more efficient use""" start="00:18:34.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of the annotations.""" start="00:18:36.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So together, Emacs and Org mode can speed up""" start="00:18:37.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""the enrichment of the signals""" start="00:18:41.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""in a way that allows us""" start="00:18:42.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to focus on certain aspects and ignore others.""" start="00:18:44.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Extremely complex landscape of rich structures""" start="00:18:47.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""can be captured consistently,""" start="00:18:50.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""in a fashion that allows computers""" start="00:18:53.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to understand language.""" start="00:18:55.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""We can then build tools to enhance the tasks""" start="00:18:56.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that we do in our everyday life.""" start="00:19:00.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""YAMR is acronym, or the file's type or specification""" start="00:19:03.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that we are creating to capture this new""" start="00:19:10.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""rich representation.""" start="00:19:15.240" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""We'll now look at an example of spontaneous speech""" start="00:19:17.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that occurs in spoken conversations.""" start="00:19:21.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Conversations frequently contain errors in speech:""" start="00:19:24.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""interruptions, disfluencies,""" start="00:19:28.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""verbal sounds such as cough or laugh,""" start="00:19:30.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and other noises.""" start="00:19:33.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""In this sense, spontaneous speech is similar""" start="00:19:35.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to a functional data stream.""" start="00:19:38.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""We cannot take back words that come out of our mouth,""" start="00:19:39.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""but we tend to make mistakes, and we correct ourselves""" start="00:19:42.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""as soon as we realize that we have made--""" start="00:19:47.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""we have misspoken.""" start="00:19:49.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""This process manifests through a combination""" start="00:19:50.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of a handful of mechanisms, including immediate correction""" start="00:19:53.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""after an error, and we do this unconsciously.""" start="00:19:56.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Computers, on the other hand,""" start="00:20:00.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""must be taught to understand these cases.""" start="00:20:02.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""What we see here is a example document or outline,""" start="00:20:06.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""or part of a document that illustrates""" start="00:20:12.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""various different aspects of the representation.""" start="00:20:18.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""We don't have a lot of time to go through""" start="00:20:22.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""many of the details.""" start="00:20:25.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""I would highly encourage you to play a...""" start="00:20:28.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""I'm planning on making some videos, or ascii cinemas,""" start="00:20:31.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that I'll be posting, and you can,""" start="00:20:39.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""if you're interested, you can go through those.""" start="00:20:42.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""The idea here is to try to do""" start="00:20:46.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""a slightly more complex use case.""" start="00:20:50.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""But again, given the time constraint""" start="00:20:54.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and the amount of information""" start="00:20:57.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that needs to fit in the screen,""" start="00:21:00.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""this may not be very informative,""" start="00:21:01.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""but at least it will give you some idea""" start="00:21:05.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of what can be possible.""" start="00:21:08.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""And in this particular case, what you're seeing is that""" start="00:21:10.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""there is a sentence which is &quot;What I'm I'm tr- telling now.&quot;""" start="00:21:13.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Essentially, there is a repetition of the word &quot;I'm&quot;,""" start="00:21:18.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and then there is a partial word""" start="00:21:21.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that somebody tried to say &quot;telling&quot;,""" start="00:21:23.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""but started saying &quot;tr-&quot;, and then corrected themselves""" start="00:21:25.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and said, &quot;telling now.&quot;""" start="00:21:29.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So in this case, you see, we can capture words""" start="00:21:30.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""or a sequence of words, or a sequence of tokens.""" start="00:21:39.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""One thing to... An interesting thing to note is that in NLP,""" start="00:21:44.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""sometimes we have to break typically""" start="00:21:52.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""words that don't have spaces into two separate words,""" start="00:21:55.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""especially contractions like &quot;I'm&quot;,""" start="00:22:01.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""so the syntactic parser needs needs two separate nodes.""" start="00:22:04.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""But anyway, so I'll... You can see that here.""" start="00:22:08.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""The other... This view. What this view shows is that""" start="00:22:11.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""with each of the nodes in the sentence""" start="00:22:15.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""or in the representation,""" start="00:22:19.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""you can have a lot of different properties""" start="00:22:23.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that you can attach to them,""" start="00:22:26.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and these properties are typically hidden,""" start="00:22:27.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""like you saw in the earlier slide.""" start="00:22:30.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""But you can make use of all these properties""" start="00:22:32.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to do various kind of searches and filtering.""" start="00:22:35.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""And on the right hand side here--""" start="00:22:39.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""this is actually not a legitimate syntax--""" start="00:22:43.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""but on the right are descriptions""" start="00:22:48.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of what each of these represent.""" start="00:22:51.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""All the information is also available in the article.""" start="00:22:53.480" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""You can see there... It shows how much rich context""" start="00:22:57.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""you can capture.""" start="00:23:04.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""This is just a closer snapshot""" start="00:23:05.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of the properties on the node,""" start="00:23:08.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and you can see we can have things like,""" start="00:23:10.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""whether the word is a token or not,""" start="00:23:13.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""or that it's incomplete, whether some words""" start="00:23:14.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""might want to be filtered out for parsing,""" start="00:23:17.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and we can say this: PARSE_IGNORE,""" start="00:23:19.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""or some words or restart markers...""" start="00:23:23.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""We can mark, add a RESTART_MARKER, or sometimes,""" start="00:23:25.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""some of these might have durations. Things like that.""" start="00:23:29.240" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""The other fascinating thing of this representation""" start="00:23:32.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""is that you can edit properties in the column view.""" start="00:23:38.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""And suddenly, you have this tabular data structure""" start="00:23:42.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""combined with the hierarchical data structure.""" start="00:23:45.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""And as you can--you may not be able to see it here,""" start="00:23:48.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""but what has also happened here is that""" start="00:23:53.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""some of the tags have been inherited""" start="00:23:56.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""from the earlier nodes.""" start="00:24:01.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""And so you get a much fuller picture of things.""" start="00:24:02.480" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Essentially you, can filter out things""" start="00:24:07.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that you want to process,""" start="00:24:13.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""process them, and then reintegrate it into the whole.""" start="00:24:15.320" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""So, in conclusion, today we have proposed and demonstrated""" start="00:24:20.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""the use of an architecture (GRAIL),""" start="00:24:25.480" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""which allows the representation, manipulation,""" start="00:24:27.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and aggregation of rich linguistic structures""" start="00:24:31.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""in a systematic fashion.""" start="00:24:34.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""We have shown how GRAIL advances the tools""" start="00:24:36.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""available for building machine learning models""" start="00:24:41.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that simulate understanding.""" start="00:24:44.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Thank you very much for your time and attention today.""" start="00:24:46.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""My contact information is on this slide.""" start="00:24:51.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""If you are interested in an additional example""" start="00:24:54.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that demonstrates the representation""" start="00:25:02.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of speech and written text together,""" start="00:25:05.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""please continue watching.""" start="00:25:08.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Otherwise, you can stop here""" start="00:25:10.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and enjoy the rest of the conference.""" start="00:25:12.200" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""Welcome to the bonus material.""" start="00:25:15.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""I'm glad for those of you who are stuck around.""" start="00:25:39.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""We are now going to examine an instance""" start="00:25:43.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of speech and text signals together""" start="00:25:46.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that produce multiple layers.""" start="00:25:49.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""When we have--when we take a spoken conversation""" start="00:25:51.480" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and use the best language processing models available,""" start="00:25:54.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""we suddenly hit a hard spot""" start="00:25:58.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""because the tools are typically not trained""" start="00:26:00.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to filter out the unnecessary cruft""" start="00:26:03.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""in order to automatically interpret""" start="00:26:05.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""the part of what is being said""" start="00:26:07.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that is actually relevant.""" start="00:26:09.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Over time, language researchers""" start="00:26:11.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""have created many interdependent layers of annotations,""" start="00:26:14.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""yet the assumptions underlying them are seldom the same.""" start="00:26:17.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Piecing together such related but disjointed annotations""" start="00:26:21.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""on their predictions poses a huge challenge.""" start="00:26:25.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""This is another place where we can leverage""" start="00:26:28.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""the data model underlying the Emacs editor,""" start="00:26:30.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""along with the structural editing capabilities""" start="00:26:33.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of Org mode to improve current tools.""" start="00:26:35.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Let's take this very simple looking utterance.""" start="00:26:38.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""&quot;Um \{lipsmack\} and that's it. (\{laugh\})&quot;""" start="00:26:42.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Looks like the person-- so this is--""" start="00:26:48.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""what you are seeing here is a transcript of an audio signal""" start="00:26:50.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that has a lip smack and a laugh as part of it,""" start="00:26:54.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and there is also a &quot;Um&quot; like interjection.""" start="00:27:00.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So this has a few interesting noises""" start="00:27:04.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and specific things that would be illustrative""" start="00:27:08.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of what we are going to, how we are going to represent it.""" start="00:27:14.000" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""Okay. So let's say you want to have""" start="00:27:20.480" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""a syntactic analysis of this sentence or utterance.""" start="00:27:25.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""One common technique people use""" start="00:27:28.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""is just to remove the cruft, and, you know,""" start="00:27:30.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""write some rules, clean up the utterance,""" start="00:27:32.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""make it look like it's proper English,""" start="00:27:35.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and then, you know, tokenize it,""" start="00:27:36.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and basically just use standard tools to process it.""" start="00:27:40.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""But in that process, they end up eliminating""" start="00:27:43.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""valid pieces of signal that have meaning to others""" start="00:27:47.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""studying different phenomena of language.""" start="00:27:51.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Here you have the rich transcript,""" start="00:27:52.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""the input to the syntactic parser.""" start="00:27:56.480" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""As you can see, there is a little tokenization happening""" start="00:28:00.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""where you'll be inserting space""" start="00:28:05.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""between &quot;that&quot; and the contracted is ('s),""" start="00:28:07.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and between the period and the &quot;it,&quot;""" start="00:28:12.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and the output of the syntactic parser is shown below.""" start="00:28:15.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""which (surprise) is a S-expression.""" start="00:28:18.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Like I said, the parse trees, when they were created,""" start="00:28:21.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and still largely when they are used, are S-expressions,""" start="00:28:24.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and most of the viewers here""" start="00:28:29.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""should not have much problem reading it.""" start="00:28:33.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""You can see this tree structure""" start="00:28:35.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of this syntactic parser here.""" start="00:28:37.280" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""Now let's say you want to integrate""" start="00:28:39.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""phonetic information or phonetic layer""" start="00:28:40.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that's in the audio signal, and do some analysis.""" start="00:28:44.480" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Now, it would need you to do a few-- take a few steps.""" start="00:28:49.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""First, you would need to align the transcript""" start="00:28:57.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""with the audio. This process is called forced alignment,""" start="00:29:01.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""where you already know what the transcript is,""" start="00:29:06.480" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and you have the audio, and you can get a good alignment""" start="00:29:10.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""using both pieces of information.""" start="00:29:14.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""And this is typically a technique that is used to""" start="00:29:17.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""create training data for training""" start="00:29:20.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""automatic speech recognizers.""" start="00:29:23.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""One interesting thing is that in order to do""" start="00:29:25.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""this forced alignment, you have to keep""" start="00:29:29.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""the non-speech events in transcript,""" start="00:29:32.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""because they consume some audio signal,""" start="00:29:35.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and if you don't have that signal,""" start="00:29:39.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""the alignment process doesn't know exactly...""" start="00:29:41.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""you know, it doesn't do a good job,""" start="00:29:44.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""because it needs to align all parts of the signal""" start="00:29:45.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""with something, either pause or silence or noise or words.""" start="00:29:50.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Interestingly, punctuations really don't factor in,""" start="00:29:55.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""because we don't speak in punctuations.""" start="00:29:59.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So one of the things that you need to do""" start="00:30:01.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""is remove most of the punctuations,""" start="00:30:04.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""although you'll see there are some punctuations""" start="00:30:05.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that can be kept, or that are to be kept.""" start="00:30:08.040" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""And the other thing is that the alignment has to be done""" start="00:30:12.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""before tokenization, as it impacts pronunciation.""" start="00:30:15.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""To show an example: Here you see &quot;that's&quot;.""" start="00:30:20.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""When it's one word,""" start="00:30:24.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""it has a slightly different pronunciation""" start="00:30:26.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""than when it is two words, which is &quot;that is&quot;,""" start="00:30:31.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""like you can see &quot;is.&quot; And so,""" start="00:30:35.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""if you split the tokens or split the words""" start="00:30:38.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""in order for syntactic parser to process it,""" start="00:30:44.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""you would end up getting the wrong phonetic analysis.""" start="00:30:48.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""And if you have--if you process it""" start="00:30:51.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""through the phonetic analysis,""" start="00:30:54.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and you don't know how to integrate it""" start="00:30:55.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""with the tokenized syntax, you can, you know,""" start="00:30:59.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that can be pretty tricky. And a lot of time,""" start="00:31:02.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""people write one-off pieces of code that handle these,""" start="00:31:07.520" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""but the idea here is to try to have a general architecture""" start="00:31:10.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that seamlessly integrates all these pieces.""" start="00:31:14.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Then you do the syntactic parsing of the remaining tokens.""" start="00:31:17.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Then you align the data and the two annotations,""" start="00:31:21.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and then integrate the two layers.""" start="00:31:24.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Once that is done, then you can do all kinds of""" start="00:31:27.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""interesting analysis, and test various hypotheses""" start="00:31:31.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and generate the statistics,""" start="00:31:33.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""but without that you only are dealing""" start="00:31:35.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""with one or the other part.""" start="00:31:39.360" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""Let's just take a quick look at how each of the layers""" start="00:31:42.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that are involved look like.""" start="00:31:48.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So this is &quot;Um \{lipsmack\}, and that's it. \{laugh\}&quot;""" start="00:31:51.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""This is the transcript, and on the right hand side,""" start="00:31:56.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""you see the same thing as a transcript""" start="00:32:00.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""listed in a vertical in a column.""" start="00:32:04.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""You'll see why, in just a second.""" start="00:32:06.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""And there are some place--""" start="00:32:08.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""there are some rows that are empty,""" start="00:32:09.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""some rows that are wider than the others, and we'll see why.""" start="00:32:11.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""The next is the tokenized sentence""" start="00:32:15.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""where you have space added,""" start="00:32:19.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""you know space between these two tokens:""" start="00:32:20.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""&quot;that&quot; and the apostrophe &quot;s&quot; ('s),""" start="00:32:23.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and the &quot;it&quot; and the &quot;period&quot;.""" start="00:32:26.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""And you see on the right hand side""" start="00:32:28.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that the tokens have attributes.""" start="00:32:30.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So there is a token index, and there are 1, 2,""" start="00:32:33.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""you know 0, 1, 2, 3, 4, 5 tokens,""" start="00:32:36.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and each token has a start and end character,""" start="00:32:38.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and space (sp) also has a start and end character,""" start="00:32:41.480" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and space is represented by a &quot;sp&quot;. And there are""" start="00:32:45.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""these other things that we removed,""" start="00:32:50.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""like the &quot;\{LS\}&quot; which is for &quot;\{lipsmack\}&quot;""" start="00:32:54.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and &quot;\{LG\}&quot; which is &quot;\{laugh\}&quot; are showing grayed out,""" start="00:32:56.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and you'll see why some of these things are grayed out""" start="00:32:59.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""in a little bit.""" start="00:33:02.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""This is what the forced alignment tool produces.""" start="00:33:03.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Basically, it takes the transcript,""" start="00:33:11.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and this is the transcript""" start="00:33:17.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that has slightly different symbols,""" start="00:33:19.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""because different tools use different symbols""" start="00:33:24.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and their various configurational things.""" start="00:33:26.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""But this is what is used to get an alignment""" start="00:33:28.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""or time alignment with phones.""" start="00:33:33.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So this column shows the phones, and so each word...""" start="00:33:36.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So, for example, &quot;and&quot; has been aligned with these phones,""" start="00:33:40.080" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and these on the start and end""" start="00:33:43.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""are essentially temporal or time stamps that it aligned--""" start="00:33:46.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that has been aligned to it.""" start="00:33:52.960" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Interestingly, sometimes we don't really have any pause""" start="00:33:54.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""or any time duration between some words""" start="00:34:00.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and those are highlighted as gray here.""" start="00:34:05.160" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""See, there's this space... Actually""" start="00:34:08.200" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""it does not have any temporal content,""" start="00:34:12.760" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""whereas this other space has some duration.""" start="00:34:17.800" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So the ones that have some duration are captured,""" start="00:34:21.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""while the others are the ones that in the earlier diagram""" start="00:34:24.840" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""we saw were left out.""" start="00:34:29.520" video="mainVideo-grail" id="subtitle"]]
+[[!template new="1" text="""And the aligner actually produces multiple files.""" start="00:34:31.320" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""One of the files has a different, slightly different""" start="00:34:37.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""variation on the same information,""" start="00:34:44.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and in this case, you can see""" start="00:34:46.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""that the punctuation is missing,""" start="00:34:50.000" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and the punctuation is, you know, deliberately missing,""" start="00:34:52.400" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""because there is no time associated with it,""" start="00:34:57.600" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and you see that it's not the tokenized sentence--""" start="00:35:02.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""a tokenized word. This... Now it gives you a full table,""" start="00:35:06.440" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and you can't really look into it very carefully.""" start="00:35:17.120" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""But we can focus on the part that seems legible,""" start="00:35:21.240" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""or, you know, properly written sentence,""" start="00:35:25.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""process it and reincorporate it back into the whole.""" start="00:35:28.560" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""So if somebody wants to look at, for example,""" start="00:35:32.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""how many pauses the person made while they were talking,""" start="00:35:35.880" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""And they can actually measure the pause, the number,""" start="00:35:39.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""the duration, and make connections between that""" start="00:35:42.920" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and the rich syntactic structure that is being produced.""" start="00:35:46.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""And in order to do that, you have to get these layers""" start="00:35:49.640" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""to align with each other,""" start="00:35:57.280" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""and this table is just a tabular representation""" start="00:35:59.040" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""of the information that we'll be storing in the YAMR file.""" start="00:36:04.360" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Congratulations! You have reached""" start="00:36:08.680" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""the end of this demonstration.""" start="00:36:11.720" video="mainVideo-grail" id="subtitle"]]
+[[!template text="""Thank you for your time and attention.""" start="00:36:13.480" video="mainVideo-grail" id="subtitle"]]
+
Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20grail%3A%20GRAIL---A%20Generalized%20Representation%20and%20Aggregation%20of%20Information%20Layers)
diff --git a/2022/info/grail-before.md b/2022/info/grail-before.md
index 93a2cd3b..30c5a22d 100644
--- a/2022/info/grail-before.md
+++ b/2022/info/grail-before.md
@@ -1,7 +1,7 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
The following image shows where the talk is in the schedule for Sun 2022-12-04. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="grail">
-<svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Sunday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="/2022/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title> 9:00- 9:05 Sunday opening remarks</title> <rect x="0" y="15" opacity="0.5" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/2022/talks/survey" title="Results of the 2022 Emacs Survey" data-slug="survey"> <title> 9:06- 9:26 Results of the 2022 Emacs Survey</title> <rect x="9" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(38,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> survey</text></g></a> <a href="/2022/talks/orgyear" title="This Year in Org" data-slug="orgyear"> <title> 9:35- 9:45 This Year in Org</title> <rect x="54" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(67,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgyear</text></g></a> <a href="/2022/talks/rolodex" title="Build a Zettelkasten with the Hyperbole Rolodex" data-slug="rolodex"> <title> 9:57-10:22 Build a Zettelkasten with the Hyperbole Rolodex</title> <rect x="89" y="15" opacity="0.5" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(126,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rolodex</text></g></a> <a href="/2022/talks/orgsuperlinks" title="Linking headings with org-super-links (poor-man's Zettelkasten)" data-slug="orgsuperlinks"> <title> 10:40-10:50 Linking headings with org-super-links (poor-man's Zettelkasten)</title> <rect x="156" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(169,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgsuperlinks</text></g></a> <a href="/2022/talks/orgvm" title="orgvm: a simple HTTP server for org" data-slug="orgvm"> <title> 11:10-11:20 orgvm: a simple HTTP server for org</title> <rect x="203" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(216,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgvm</text></g></a> <a href="/2022/talks/hyperorg" title="Powerful productivity with Hyperbole and Org Mode" data-slug="hyperorg"> <title> 1:00- 1:30 Powerful productivity with Hyperbole and Org Mode</title> <rect x="376" y="15" opacity="0.5" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(421,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperorg</text></g></a> <a href="/2022/talks/workflows" title="Org workflows for developers" data-slug="workflows"> <title> 1:50- 2:15 Org workflows for developers</title> <rect x="454" y="15" opacity="0.5" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(491,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> workflows</text></g></a> <a href="/2022/talks/grail" title="GRAIL---A Generalized Representation and Aggregation of Information Layers" data-slug="grail"> <title> 2:35- 2:55 GRAIL---A Generalized Representation and Aggregation of Information Layers</title> <rect stroke-width="3" x="525" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(554,73)"> <text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> grail</text></g></a> <a href="/2022/talks/indieweb" title="Putting Org Mode on the Indieweb" data-slug="indieweb"> <title> 3:25- 3:45 Putting Org Mode on the Indieweb</title> <rect x="603" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(632,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> indieweb</text></g></a> <a href="/2022/talks/devel" title="Emacs development updates" data-slug="devel"> <title> 4:05- 4:15 Emacs development updates</title> <rect x="666" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(679,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> devel</text></g></a> <a href="/2022/talks/fanfare" title="Fanfare for the Common Emacs User" data-slug="fanfare"> <title> 4:25- 4:35 Fanfare for the Common Emacs User</title> <rect x="698" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(711,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> fanfare</text></g></a> <a href="/2022/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 4:50- 5:00 Sunday closing remarks</title> <rect x="737" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(750,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="/2022/talks/rde" title="rde Emacs introduction" data-slug="rde"> <title> 10:00-10:25 rde Emacs introduction</title> <rect x="94" y="75" opacity="0.5" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(131,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rde</text></g></a> <a href="/2022/talks/justl" title="justl: Driving recipes within Emacs" data-slug="justl"> <title> 10:50-11:05 justl: Driving recipes within Emacs</title> <rect x="172" y="75" opacity="0.5" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(193,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> justl</text></g></a> <a href="/2022/talks/rms" title="What I'd like to see in Emacs" data-slug="rms"> <title> 11:15-11:35 What I'd like to see in Emacs</title> <rect x="211" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(240,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rms</text></g></a> <a href="/2022/talks/detached" title="Getting detached from Emacs" data-slug="detached"> <title> 1:01- 1:16 Getting detached from Emacs</title> <rect x="378" y="75" opacity="0.5" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(399,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> detached</text></g></a> <a href="/2022/talks/eshell" title="Top 10 reasons why you should be using Eshell" data-slug="eshell"> <title> 1:40- 1:55 Top 10 reasons why you should be using Eshell</title> <rect x="439" y="75" opacity="0.5" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(460,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eshell</text></g></a> <a href="/2022/talks/async" title="Emacs was async before async was cool" data-slug="async"> <title> 2:20- 2:40 Emacs was async before async was cool</title> <rect x="501" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(530,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> async</text></g></a> <a href="/2022/talks/dbus" title="The Wheels on D-Bus" data-slug="dbus"> <title> 3:15- 3:35 The Wheels on D-Bus</title> <rect x="588" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(617,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> dbus</text></g></a> <a href="/2022/talks/localizing" title="Pre-localizing Emacs" data-slug="localizing"> <title> 4:00- 4:10 Pre-localizing Emacs</title> <rect x="658" y="75" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(671,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> localizing</text></g></a> <a href="/2022/talks/python" title="Short hyperlinks to Python docs" data-slug="python"> <title> 4:30- 4:35 Short hyperlinks to Python docs</title> <rect x="705" y="75" opacity="0.5" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(710,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> python</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></svg>
+<svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Sunday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="/2022/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title> 9:00- 9:05 Sunday opening remarks</title> <rect x="0" y="15" opacity="0.5" width="7" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/2022/talks/survey" title="Results of the 2022 Emacs Survey" data-slug="survey"> <title> 9:06- 9:26 Results of the 2022 Emacs Survey</title> <rect x="9" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(38,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> survey</text></g></a> <a href="/2022/talks/orgyear" title="This Year in Org" data-slug="orgyear"> <title> 9:35- 9:45 This Year in Org</title> <rect x="54" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(67,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgyear</text></g></a> <a href="/2022/talks/rolodex" title="Build a Zettelkasten with the Hyperbole Rolodex" data-slug="rolodex"> <title> 9:57-10:22 Build a Zettelkasten with the Hyperbole Rolodex</title> <rect x="89" y="15" opacity="0.5" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(126,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rolodex</text></g></a> <a href="/2022/talks/orgsuperlinks" title="Linking headings with org-super-links (poor-man's Zettelkasten)" data-slug="orgsuperlinks"> <title> 10:40-10:50 Linking headings with org-super-links (poor-man's Zettelkasten)</title> <rect x="156" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(169,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgsuperlinks</text></g></a> <a href="/2022/talks/orgvm" title="orgvm: a simple HTTP server for org" data-slug="orgvm"> <title> 11:10-11:20 orgvm: a simple HTTP server for org</title> <rect x="203" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(216,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgvm</text></g></a> <a href="/2022/talks/hyperorg" title="Powerful productivity with Hyperbole and Org Mode" data-slug="hyperorg"> <title> 1:00- 1:30 Powerful productivity with Hyperbole and Org Mode</title> <rect x="376" y="15" opacity="0.5" width="47" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(421,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperorg</text></g></a> <a href="/2022/talks/workflows" title="Org workflows for developers" data-slug="workflows"> <title> 1:50- 2:15 Org workflows for developers</title> <rect x="454" y="15" opacity="0.5" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(491,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> workflows</text></g></a> <a href="/2022/talks/grail" title="GRAIL---A Generalized Representation and Aggregation of Information Layers" data-slug="grail"> <title> 2:35- 2:55 GRAIL---A Generalized Representation and Aggregation of Information Layers</title> <rect stroke-width="3" x="525" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(554,73)"> <text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> grail</text></g></a> <a href="/2022/talks/indieweb" title="Putting Org Mode on the Indieweb" data-slug="indieweb"> <title> 3:25- 3:45 Putting Org Mode on the Indieweb</title> <rect x="603" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(632,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> indieweb</text></g></a> <a href="/2022/talks/devel" title="Emacs development updates" data-slug="devel"> <title> 4:05- 4:15 Emacs development updates</title> <rect x="666" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(679,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> devel</text></g></a> <a href="/2022/talks/fanfare" title="Fanfare for the Common Emacs User" data-slug="fanfare"> <title> 4:25- 4:35 Fanfare for the Common Emacs User</title> <rect x="698" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(711,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> fanfare</text></g></a> <a href="/2022/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 4:50- 5:00 Sunday closing remarks</title> <rect x="737" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(750,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="/2022/talks/rde" title="rde Emacs introduction" data-slug="rde"> <title> 10:00-10:25 rde Emacs introduction</title> <rect x="94" y="75" opacity="0.5" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(131,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rde</text></g></a> <a href="/2022/talks/justl" title="justl: Driving recipes within Emacs" data-slug="justl"> <title> 10:50-11:05 justl: Driving recipes within Emacs</title> <rect x="172" y="75" opacity="0.5" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(193,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> justl</text></g></a> <a href="/2022/talks/rms" title="What I'd like to see in Emacs" data-slug="rms"> <title> 11:15-11:35 What I'd like to see in Emacs</title> <rect x="211" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(240,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rms</text></g></a> <a href="/2022/talks/detached" title="Getting detached from Emacs" data-slug="detached"> <title> 1:01- 1:16 Getting detached from Emacs</title> <rect x="378" y="75" opacity="0.5" width="23" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(399,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> detached</text></g></a> <a href="/2022/talks/eshell" title="Top 10 reasons why you should be using Eshell" data-slug="eshell"> <title> 1:40- 1:55 Top 10 reasons why you should be using Eshell</title> <rect x="439" y="75" opacity="0.5" width="23" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(460,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eshell</text></g></a> <a href="/2022/talks/async" title="Emacs was async before async was cool" data-slug="async"> <title> 2:20- 2:40 Emacs was async before async was cool</title> <rect x="501" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(530,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> async</text></g></a> <a href="/2022/talks/dbus" title="The Wheels on D-Bus" data-slug="dbus"> <title> 3:15- 3:35 The Wheels on D-Bus</title> <rect x="588" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(617,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> dbus</text></g></a> <a href="/2022/talks/localizing" title="Pre-localizing Emacs" data-slug="localizing"> <title> 4:00- 4:10 Pre-localizing Emacs</title> <rect x="658" y="75" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(671,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> localizing</text></g></a> <a href="/2022/talks/python" title="Short hyperlinks to Python docs" data-slug="python"> <title> 4:30- 4:35 Short hyperlinks to Python docs</title> <rect x="705" y="75" opacity="0.5" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(710,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> python</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></svg>
</div>
[[!toc ]]
@@ -13,16 +13,40 @@ Status: Q&A finished, IRC and pad will be archived on this page
# Talk
-[[!template id="vid" vidid="grail-mainVideo" src="https://media.emacsconf.org/2022/emacsconf-2022-grail--graila-generalized-representation-and-aggregation-of-information-layers--sameer-pradhan--main.webm" poster="https://media.emacsconf.org/2022/emacsconf-2022-grail--graila-generalized-representation-and-aggregation-of-information-layers--sameer-pradhan--main.png" ${captions}
-size="91M" duration="36:42" other_resources="""[Download --main.webm (91MB)](https://media.emacsconf.org/2022/emacsconf-2022-grail--graila-generalized-representation-and-aggregation-of-information-layers--sameer-pradhan--main.webm)
+[[!template id="vid" vidid="grail-mainVideo" src="https://media.emacsconf.org/2022/emacsconf-2022-grail--graila-generalized-representation-and-aggregation-of-information-layers--sameer-pradhan--main.webm" poster="${poster}" ${captions}
+size="60M" duration="36:42" other_resources="""[Download --main.webm (81MB)](https://media.emacsconf.org/2022/emacsconf-2022-grail--graila-generalized-representation-and-aggregation-of-information-layers--sameer-pradhan--main.webm)
+[Download --main--chapters.vtt](https://media.emacsconf.org/2022/emacsconf-2022-grail--graila-generalized-representation-and-aggregation-of-information-layers--sameer-pradhan--main--chapters.vtt)
[View on Toobnix](https://toobnix.org/w/deH3ktCLYo19Fh19eLo79D)
"""]]
+[[!template id="chapters" vidid="grail-mainVideo" data="""
+00:00:00.000 Introduction
+01:13.400 Processing language
+02:34.560 Annotation
+03:43.240 Learning from data
+04:39.680 Manual annotation
+05:44.400 How can we develop a unified representation?
+06:22.520 What role might Emacs and Org mode play?
+06:55.280 The complex structure of language
+08:10.800 Annotation tools
+10:22.360 Org mode
+12:45.480 Example
+17:36.240 Different readings
+19:17.680 Spontaneous speech
+23:32.000 Editing properties in column view
+24:20.280 Conclusion
+25:15.280 Bonus material
+27:20.480 Syntactic analysis
+28:39.280 Forced alignment
+30:12.600 Alignment before tokenization
+31:42.880 Layers
+34:31.320 Variations
+"""]]
# Q&A
-[[!template id="vid" vidid="grail-qanda" src="https://media.emacsconf.org/2022/emacsconf-2022-grail--graila-generalized-representation-and-aggregation-of-information-layers--sameer-pradhan--answers.webm" poster="https://media.emacsconf.org/2022/emacsconf-2022-grail--graila-generalized-representation-and-aggregation-of-information-layers--sameer-pradhan--answers.png" ${captions}
+[[!template id="vid" vidid="grail-qanda" src="https://media.emacsconf.org/2022/emacsconf-2022-grail--graila-generalized-representation-and-aggregation-of-information-layers--sameer-pradhan--answers.webm" poster="${poster}" ${captions}
size="41M" duration="36:42" other_resources=""""""]]
diff --git a/2022/organizers-notebook.md b/2022/organizers-notebook.md
index 9dd6052b..5923c1a5 100644
--- a/2022/organizers-notebook.md
+++ b/2022/organizers-notebook.md
@@ -6,8 +6,8 @@ This file is automatically exported from [/2022/organizers-notebook/index.org](/
# Table of Contents
-- [Cadence](#cadence)
- [Overall priorities](#overall)
+- [Next comms update](#update)
- [Projects and other long-running tasks](#projects)
- [Ideas for next year](#maybe-projects):nextyear:
- [Things to figure out / decisions to make](#decisions)
@@ -51,117 +51,6 @@ Schedule by status: (gray: waiting, light yellow: processing, yellow: to assign,
![img](schedule.svg)
-<a id="cadence"></a>
-
-# Cadence
-
-<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
-
-
-<colgroup>
-<col class="org-left" />
-
-<col class="org-left" />
-
-<col class="org-left" />
-
-<col class="org-left" />
-
-<col class="org-left" />
-</colgroup>
-<tbody>
-<tr>
-<td class="org-left">Week ending</td>
-<td class="org-left">Work</td>
-<td class="org-left">Speakers</td>
-<td class="org-left">Volunteers</td>
-<td class="org-left">Public</td>
-</tr>
-
-
-<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-09-30 Fri]</span></span></td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left"><a href="#acceptance">acceptance, reply to confirm</a></td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-</tr>
-
-
-<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-09 Sun]</span></span></td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left"><a href="#check-sched">schedule, reply if not okay</a></td>
-<td class="org-left"><a href="#overall">overall priorities</a></td>
-<td class="org-left">&#xa0;</td>
-</tr>
-
-
-<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-16 Sun]</span></span></td>
-<td class="org-left"><a href="#etherpad">Etherpad</a>, <a href="#upload">stream</a></td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">infra update</td>
-<td class="org-left">&#xa0;</td>
-</tr>
-
-
-<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-23 Sun]</span></span></td>
-<td class="org-left"><a href="#upload">file upload</a>, </td>
-<td class="org-left"><a href="#mail-upload">file upload instructions</a>, backstage</td>
-<td class="org-left"><a href="#volunteer-2022-10-23">training</a></td>
-<td class="org-left">&#xa0;</td>
-</tr>
-
-
-<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-30 Sun]</span></span></td>
-<td class="org-left"><a href="#streaming">OBS in the cloud</a></td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">caption kickoff</td>
-<td class="org-left"><a href="#announce-program">schedule</a>, posters?</td>
-</tr>
-
-
-<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-11-06 Sun]</span></span></td>
-<td class="org-left"><a href="#intro">intro, exit</a>, <a href="#dry-run">dry run</a>, prerecs</td>
-<td class="org-left"><a href="#ack-prerec">prerec confirmation</a>/reminder, <a href="#approve-captions">caption progress</a></td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-</tr>
-
-
-<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-11-13 Sun]</span></span></td>
-<td class="org-left">captions</td>
-<td class="org-left">tech check, bio, support links (ex: Liberapay)?</td>
-<td class="org-left"><a href="#shifts">shifts</a></td>
-<td class="org-left">&#xa0;</td>
-</tr>
-
-
-<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-11-20 Sun]</span></span></td>
-<td class="org-left">captions</td>
-<td class="org-left">checkin instructions and schedule updates</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-</tr>
-
-
-<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-11-27 Sun]</span></span></td>
-<td class="org-left">captions</td>
-<td class="org-left">last weekend before EmacsConf</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">watching</td>
-</tr>
-</tbody>
-</table>
-
-
<a id="overall"></a>
# Overall priorities
@@ -201,8 +90,24 @@ interests you!
<td class="org-left">chapter markers</td>
<td class="org-left">edited transcripts</td>
</tr>
+</tbody>
+</table>
+
+Previous priorities;
+
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<colgroup>
+<col class="org-left" />
+
+<col class="org-left" />
+
+<col class="org-left" />
+
+<col class="org-left" />
+</colgroup>
+<tbody>
<tr>
<td class="org-left"><a href="#conforg">conf.org management</a></td>
<td class="org-left">on sachac&rsquo;s laptop</td>
@@ -389,6 +294,15 @@ interests you!
</table>
+<a id="update"></a>
+
+# Next comms update
+
+- next step is to review all the playbacks and publish them
+- <span class="timestamp-wrapper"><span class="timestamp">[2022-12-11 Sun] </span></span> Thank-you notes sent to all the speakers with Toobnix and YouTube URLs, BBB playback info
+- <span class="timestamp-wrapper"><span class="timestamp">[2022-12-10 Sat] </span></span> small-model VTTs uploaded for easier review and chapter markers, still working on large-model transcripts
+
+
<a id="projects"></a>
# Projects and other long-running tasks
@@ -423,6 +337,26 @@ interests you!
## Harvest live talks and Q&A
+### Publish more Q&A recordings
+
+
+#### DONE Write code to make it easy to do so
+
+emacsconf-extract-publish-qa
+
+
+#### SOMEDAY Handwritten needs to be trimmed
+
+
+#### SOMEDAY Sqlite needs trimming
+
+
+#### TODO Add audio-only options to the publishing process
+
+
+#### DONE Fetch the reencoded maint answers and post it to backstage
+
+
### DONE Document this phase of the conference
We&rsquo;re now in the harvesting phase of the conference, where we work on
@@ -637,6 +571,150 @@ To avoid duplicating work, maybe we can use this Etherpad to call dibs on talks
If you&rsquo;re already set up to edit the wiki or you can figure out the slightly complicated setup for editing, feel free to edit the page directly. If not, you can email a Markdown or Org Mode snippet to emacsconf-submit@gnu.org and let me know what page to put it on.
+### STARTED Write some code to copy the events.xml to the backstage
+
+recording timestamp is 2022-12-03T09:41:30.888-08
+bandali user ID is w\_uwwpzp4fjtqq
+joined 2022-12-03T10:07:06.066-08
+aaaaaah, hmm. recording timestamp seems earlier, that might just be when BBB starts the whole thing.
+aha! The raw directory has the whole thing, not just the recorded part, and the recording timestamp is the beginning of the meeting. So let&rsquo;s find out where the actual recording starts.
+
+Maybe StartWebRTCShareEvent ?
+ParticipantStatusChangeEvent might be the webcam start.
+Is it DeskShareStartRTMP ?
+
+
+### TODO Improve visualization for Q&A sessions, especially when there&rsquo;s nothing else to look at
+
+
+#### SOMEDAY Consider the challenge of aligning video segments with a timeline
+
+
+#### SOMEDAY windows - Reducing command-line shortcomings caused by excessive number of FFmpeg inputs - Super User
+
+<https://superuser.com/questions/1369843/reducing-command-line-shortcomings-caused-by-excessive-number-of-ffmpeg-inputs>
+
+
+#### SOMEDAY kkroening/ffmpeg-python: Python bindings for FFmpeg - with complex filtering support
+
+<https://github.com/kkroening/ffmpeg-python>
+
+
+#### SOMEDAY Extension repository - Inkscape Wiki
+
+<https://wiki.inkscape.org/wiki/index.php/Extension_repository#Generator>
+
+
+#### SOMEDAY how to render a long text in an area with automatic wrap - Legacy ImageMagick Discussions Archive
+
+<https://www.imagemagick.org/discourse-server/viewtopic.php?t=27325>
+
+
+#### SOMEDAY svg to tex with svg package and inkscape: make the text to wrap inside a shape - TeX - LaTeX Stack Exchange
+
+<https://tex.stackexchange.com/questions/325711/svg-to-tex-with-svg-package-and-inkscape-make-the-text-to-wrap-inside-a-shape>
+
+
+#### SOMEDAY tikz API documentation
+
+<https://allefeld.github.io/pytikz/tikz/>
+
+
+#### SOMEDAY tikz pgf - Absolute positioning in beamer - TeX - LaTeX Stack Exchange
+
+<https://tex.stackexchange.com/questions/6185/absolute-positioning-in-beamer>
+
+
+#### SOMEDAY CTAN: Package textpos
+
+<https://ctan.org/pkg/textpos>
+
+
+#### SOMEDAY positioning - How do I put some text in specific position on a page horizontally with the prosper class? - TeX - LaTeX Stack Exchange
+
+<https://tex.stackexchange.com/questions/35602/how-do-i-put-some-text-in-specific-position-on-a-page-horizontally-with-the-pros>
+
+
+#### SOMEDAY Exporting LaTeX TikZ as Image Files | Baeldung on Computer Science
+
+<https://www.baeldung.com/cs/exporting-tikz-as-images>
+
+
+#### SOMEDAY OpenAI Whisper tutorial: Whisper - Transcription and diarization (speaker identification) | LabLab
+
+<https://lablab.ai/t/whisper-transcription-and-speaker-identification>
+
+
+#### TODO Consider ffmpeg to make speaker labels so that I can overlay them on webcams.webm
+
+
+#### TODO could be fancy to have an FFMPEG compose the videos with names and webcams on the right side
+
+
+#### SOMEDAY Try using the single webcam view of the speaker
+
+
+### SOMEDAY Think about how I want to format the VTT for the RMS Q&A
+
+
+#### SOMEDAY Use word data, maybe reflow based on it
+
+
+### SOMEDAY Combine webcams and deskshare
+
+
+### TODO Extract comments from IRC
+
+
+#### SOMEDAY Auto-add A: marker for speaker
+
+
+### DONE compare deskshare with webcams
+
+ (mapcar (lambda (o)
+ (cons (emacsconf-get-slug-from-string o)
+ (- (compile-media-get-file-duration-ms o)
+ (compile-media-get-file-duration-ms (replace-regexp-in-string "deskshare" "webcams" o))) )
+
+ )
+ (directory-files emacsconf-cache-dir t "-deskshare.webm"))
+
+
+### Improve segmented audio normalization
+
+
+#### SOMEDAY How to normalize the volume of an audio file in python? - Stack Overflow
+
+<https://stackoverflow.com/questions/42492246/how-to-normalize-the-volume-of-an-audio-file-in-python>
+
+
+#### SOMEDAY Execute Macro from Script - Audacity Forum
+
+<https://forum.audacityteam.org/viewtopic.php?t=121821>
+
+
+### TODO subtitle hyperorg
+
+
+### DONE Check duration
+
+ (/ (apply '+
+ (mapcar #'compile-media-get-file-duration-ms
+ (directory-files emacsconf-cache-dir t "\\(main\\|webcams\\).webm\\|rms.*ogg")))
+ 3600000.0)
+
+28.860543888888888
+
+- 29 hours including Q&A
+- 14 hours of talks, 15 hours of Q&A
+
+(\* 28 0.0075 60)
+12.6
+
+
+### SOMEDAY Copy irc, haven&rsquo;t actually done that yet
+
+
<a id="thanks"></a>
## TODO Send thanks
@@ -649,36 +727,91 @@ Dependencies:
- youtube, toobnix urls
- bbb playback urls
- pads copied
+
+ (defvar emacsconf-mail-thank-speaker-open-youtube t
+ "If non-nil, browse to the YouTube page so we can mention views and stuff.")
+
+ (defun emacsconf-mail-thank-speaker (group &optional template)
+ (interactive (list (emacsconf-mail-complete-email-group)))
+ (delete-other-windows)
+ (with-selected-window
+ (split-window-right)
+ (emacsconf-edit-wiki-page (plist-get (cadr group) :slug))
+ (when (> (length (cdr group)) 1)
+ (mapc
+ (lambda (talk)
+ (with-selected-window (split-window-below)
+ (emacsconf-edit-wiki-page (plist-get talk :slug))))
+ (cddr group))
+ (balance-windows)))
+ (let ((with-bbb (seq-filter (lambda (talk) (plist-get talk :bbb-playback)) (cdr group))))
+ (emacsconf-mail-prepare
+ (or template (emacsconf-mail-merge-get-template "thanks-speaker"))
+ (car group)
+ (list
+ :email (car group)
+ :conf-name emacsconf-name
+ :year
+ emacsconf-year
+ :plural
+ (if (= (length (cdr group)) 1) "" "s")
+ :video-is
+ (if (= (length (cdr group)) 1) "video is" "videos are")
+ :bbb-note
+ (if with-bbb
+ (concat
+ " We'd like to publish the audio (and possibly the video as well)
+ with chapter markers and maybe even captions, depending on
+ volunteers. In case you want to revisit your Q&A session in
+ order to remember anything particularly cool that you'd like to
+ follow up on (or anything particularly sensitive/embarrassing
+ that you'd like us to omit), you can view the BigBlueButton
+ playback at " (mapconcat (lambda (talk) (plist-get talk :bbb-playback)) with-bbb " , ") " . Volunteers will be working on harvesting the Q&A over the next few weeks/months. If you'd like to help with the processing, I've added the files
+ to ${backstage} and documented our harvesting process at
+ https://emacsconf.org/harvesting/ . The files start with --bbb in the backstage area. This is
+ totally optional and just there in case you feel like taking advantage
+ of it. =)")
+ "")
+ :backstage
+ (mapconcat (lambda (talk)
+ (concat "https://media.emacsconf.org/" emacsconf-year "/backstage/#" (plist-get talk :slug)))
+ (cdr group) " , ")
+ :urls
+ (mapconcat (lambda (talk)
+ (plist-get talk :absolute-url))
+ (cdr group) " , ")
+ :toobnix-url
+ (mapconcat (lambda (talk)
+ (plist-get talk :toobnix-url))
+ (cdr group) " , ")
+ :youtube-url
+ (mapconcat (lambda (talk)
+ (plist-get talk :youtube-url))
+ (cdr group) " , ")
+ :speakers-short (plist-get (cadr group) :speakers-short)))
+ (when emacsconf-mail-thank-speaker-open-youtube
+ (mapc (lambda (talk)
+ (when (plist-get talk :youtube-url)) (browse-url (plist-get talk :youtube-url)))
+ (cdr group)))))
#### Template
-Hi ${speakers-short}!
+Hi, ${speakers-short}!
Thank you so much for being part of EmacsConf ${year}! Hundreds of
people enjoyed it, and I&rsquo;m sure even more will come across the videos
in the days to follow.
-Your video is available on the talk page at ${url} , and we&rsquo;ll be
-working on adding the questions and comments from IRC/BBB/Etherpad.
-We&rsquo;d like to publish the audio (and possibly the video as well) with
-chapter markers and maybe even captions depending on volunteers. In
-case you want to revisit your Q&A session in order to remember
-anything particularly cool that you&rsquo;d like to follow up on (or
-anything particularly sensitive/embarrassing that you&rsquo;d like us to
-omit), you can view the BigBlueButton playback at ${bbb-playback} .
-
-You can also do your own processing, if you like. I&rsquo;ve added the files
-to <https://media.emacsconf.org/${year}/backstage/#${slug>} . They start
-with &#x2013;bbb. This is totally optional and just there in case you feel
-like taking advantage of it.
-
-We&rsquo;ve also uploaded your talk video to ToobNix (a PeerTube instance)
-at ${toobnix-url} and YouTube at ${youtube-url} . If you want to
-reupload the video to your own channel, please feel free to do so. If
-you let me know where you&rsquo;ve uploaded it, I can switch our playlist to
-include your version of the video instead. That way, it might be
-easier for you to respond to comments on videos.${wrap}
+Your ${video-is} available on the talk page${plural} at ${urls} , and
+we&rsquo;ve added the discussions from Etherpad/IRC.${bbb-note}${wrap}
+
+We&rsquo;ve also uploaded your talk video${plural} to Toobnix (a PeerTube
+instance) at ${toobnix-url} and YouTube at ${youtube-url} . If you
+want to reupload the video to your own channel, please feel free to do
+so. If you let me know where you&rsquo;ve uploaded it, I think I can switch
+our playlist to include your version of the video instead. That way,
+it might be easier for you to respond to comments on videos.${wrap}
If you would like to share more resources, you can add them to the
talk page or e-mail them to us and we can add them for you.
@@ -1191,12 +1324,12 @@ tags: emacs,emacsconf
(when (and
(file-exists-p
(expand-file-name
- (concat (plist-get o :video-slug) "--final.webm")
+ (concat (plist-get o :video-slug) "--main.webm")
emacsconf-cache-dir))
(null (plist-get o :toobnix-url)))
(format "node dist/server/tools/peertube.js upload -f %s -n %s -l 2 -c 15 -P 2 -t emacs,emacsconf -L en -C emacsconf -d %s"
(expand-file-name
- (concat (plist-get o :video-slug) "--final.webm")
+ (concat (plist-get o :video-slug) "--main.webm")
emacsconf-cache-dir)
(shell-quote-argument
(concat emacsconf-name " " emacsconf-year ": " (plist-get o :title) " - " (plist-get o :speakers-with-pronouns)))
@@ -2054,6 +2187,29 @@ if we can get the anchor plugin
### SOMEDAY Write about setup for vnc
+### SOMEDAY Write about setting org properties from a region, looking at tables, summing it up
+
+
+### SOMEDAY Record animation of changing the schedule
+
+
+### SOMEDAY Write about mail merge
+
+
+### #EmacsConf behind the scenes: Testing the schedule with SVGs
+
+> Org mode allows you to have inline images, and you can return them as the results of Org Babel
+> blocks. I wanted to test different #EmacsConf scheduling strategies quickly. I used Emacs&rsquo;s XML and
+> SVG support to create the SVGs based on the scheduling data I gave it. Splitting my window made it
+> easy to change the schedule, use \`C-c C-c\` to execute the block, and see the schedule image
+> (including any validation notes) in the other window. The code is in
+> <https://git.emacsconf.org/emacsconf-el/tree/emacsconf-schedule.el> .
+>
+> [Screenshot of how I tested #EmacsConf scheduling strategies using inline images in an Org file](https://emacs.ch/system/media_attachments/files/109/485/992/555/721/586/original/7bf3ab2a89fdcaec.png)
+
+<https://emacs.ch/@sachac/109486006078029919>
+
+
<a id="maybe-projects"></a>
# Ideas for next year :nextyear:
@@ -2291,6 +2447,27 @@ jotaemei@social.coop - @sachac I like this idea of a timezone converter for peop
<https://normconf.com/>
+## SOMEDAY Look into properly streaming to YouTube, Toobnix, and 480p
+
+
+## TODO Consider practising with ffmpeg in the cloud so that we can handle last-minute submissions
+
+<https://cloud.google.com/functions/docs/console-quickstart-1st-gen>
+<https://aws.amazon.com/marketplace/pp/prodview-ixe3igo3gsu24#pdp-pricing>
+or a VM
+
+
+### TODO <https://github.com/tuomastik/ffmpeg-google-cloud>
+
+<https://cloud.google.com/functions/docs/console-quickstart-1st-gen>
+
+
+### SOMEDAY Investigate bacalhau compute over data
+
+
+## SOMEDAY Add timer for 5 minute and 2 minute warnings to go to emacsconf-org
+
+
<a id="decisions"></a>
# Things to figure out / decisions to make
@@ -2765,7 +2942,7 @@ AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition)
Saturday Dec 3
-<table id="orgf197298" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<table id="org191b5f0" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@@ -2845,7 +3022,7 @@ publicvoit - pad until 4pm on Sat, until 2pm on Sun
Sunday Dec 4
-<table id="org2d850a1" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<table id="org1aee553" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@@ -3214,8 +3391,6 @@ We tried using q56 before, but it was a little too aggressive. Q=32 is the defau
- [X] abin (meain, ack’d by zaeph)
-<a id="ack-prerec"></a>
-
#### Acknowledge pre-rec submission
(defun emacsconf-mail-acknowledge-submission (talk &optional template)
@@ -3958,7 +4133,7 @@ Probably focus on grabbing the audio first and seeing what&rsquo;s worth keeping
Make a table of the form
-<table id="org3d76db2" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<table id="org8d5c592" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@@ -4075,10 +4250,10 @@ See <https://pad.emacsconf.org/premortem> for more.
- [In case we need to do things manually because the task status hooks don&rsquo;t work](#manual)
- [Alternate stream volunteer wants to stream](#alternate)
- [Video playing error, need to play with mpv manually](#play-mpv-manually):stream:
-- [Shift changes](#org3329c61)
+- [Shift changes](#org873d736)
- [Need to restart 480p stream](#restart-480p):stream:
- [Renamed talk](#renamed):sched:
-- [Need to restart the Toobnix streams so we don&rsquo;t exceed 5 hours](#org4e58b8c)
+- [Need to restart the Toobnix streams so we don&rsquo;t exceed 5 hours](#orgc2028ca)
<a id="common"></a>
@@ -4300,12 +4475,12 @@ mpv &#x2013;vf=negate $url
export SLUG=the ID of the talk
-- [TO\_STREAM -> PLAYING](#org326b43a):stream:
+- [TO\_STREAM -> PLAYING](#org84bcf82):stream:
- [CLOSED\_Q -> OPEN\_Q](#open)
- [OPEN\_Q -> TO\_ARCHIVE](#archive)
-<a id="org326b43a"></a>
+<a id="org84bcf82"></a>
### TO\_STREAM -> PLAYING :stream:
@@ -4374,7 +4549,7 @@ You can skip the intro and play a video by specifying the filename, like this:
play ~/stream/emacsconf-2022-journalism-\*
-<a id="org3329c61"></a>
+<a id="org873d736"></a>
## Shift changes
@@ -4425,7 +4600,7 @@ lspbridge science
health eev
-<a id="org4e58b8c"></a>
+<a id="orgc2028ca"></a>
## TODO Need to restart the Toobnix streams so we don&rsquo;t exceed 5 hours
@@ -4644,8 +4819,6 @@ Process for accepting a talk:
Look for the TO\_CONFIRM status in conf.org, probably include in schedule e-mail
-<a id="check-sched"></a>
-
## DONE Send people schedule information and doublecheck their availability/Q&A preference :sachac:email:speakers:sched:
(defun emacsconf-mail-schedule (group &optional template)
@@ -5159,8 +5332,6 @@ Where:
It&rsquo;s now on front.
-<a id="mail-upload"></a>
-
## DONE Prepare email for nudging speakers to send prerec, and inform on upload workflow :timesensitive:needsowner:
@@ -5359,8 +5530,6 @@ should the captions be outside the wiki?
- SIL fonts choice
-<a id="volunteer-2022-10-23"></a>
-
## DONE Write volunteer update 2022-10-23 :update:
Hello, folks! Here&rsquo;s the weekly update on what&rsquo;s happening backstage
@@ -5515,8 +5684,6 @@ Sacha
### CANCELLED Email speakers because I&rsquo;ll be shutting down the web upload
-<a id="announce-program"></a>
-
## DONE Send schedule-published email for emacsconf-discuss :needsowner:timesensitive:email:
Schedule is now available; post to emacsconf-discuss, emacs-tangents
@@ -6676,6 +6843,52 @@ ffmpeg -y -i emacsconf-2022-rmsted&#x2013;main.ogg -acodec pcm\_s16le -ac 1 -ar
### TODO Move the captioning stuff to the public area
+### TODO Look into getting the confidence intervals out of aeneas, maybe by getting it as an XML
+
+Also look into finetuneas
+
+
+### SOMEDAY A Deep Dive Exploration Applying OpenAI’s Whisper ASR To A PBS NewsHour Broadcast – The GDELT Project
+
+<https://blog.gdeltproject.org/a-deep-dive-exploration-applying-openais-whisper-asr-to-a-pbs-newshour-broadcast/>
+
+
+### SOMEDAY Confidence scores for each word? - Discussion #284 - openai/whisper
+
+<https://github.com/openai/whisper/discussions/284>
+
+
+### SOMEDAY jianfch/stable-ts: Stabilizing timestamps of OpenAI&rsquo;s Whisper outputs down to word-level
+
+<https://github.com/jianfch/stable-ts>
+
+
+### SOMEDAY See if we can get confidence data out of whisper
+
+
+### SOMEDAY Use bbb events to identify speaker changes and overlapping spans that might need closer attention
+
+
+### SOMEDAY Getting Started with Bacalhau | Bacalhau Docs
+
+<https://docs.bacalhau.org/getting-started/installation>
+
+
+### SOMEDAY Use OpenAI Whisper and Bacalhau to transcribe audio and video files | Nerd For Tech
+
+<https://medium.com/nerd-for-tech/how-to-use-bacalhau-and-openai-whisper-to-transcribe-a-youtube-video-7b6ee0135ce2>
+
+
+### SOMEDAY A Deep Dive Exploration Applying OpenAI’s Whisper ASR To A Russian Television News Broadcast – The GDELT Project
+
+<https://blog.gdeltproject.org/a-deep-dive-exploration-applying-openais-whisper-asr-to-a-russian-television-news-broadcast/>
+
+
+### SOMEDAY Benchmarks for T4 & V100 GPUs, comparison with human captioning, and deep dive on non-deterministic output · Discussion #395 · openai/whisper
+
+<https://github.com/openai/whisper/discussions/395>
+
+
## DONE Find a way to accommodate a specific return-speaker
We’re not sure if we’re going to get a presentation or a prerec for them
@@ -7242,8 +7455,6 @@ Sacha Chua
### Captions for approval
-<a id="approve-captions"></a>
-
#### Template
Hi ${speakers-short}!
diff --git a/2022/organizers-notebook/index.org b/2022/organizers-notebook/index.org
index 53f52d2f..0ae9125b 100644
--- a/2022/organizers-notebook/index.org
+++ b/2022/organizers-notebook/index.org
@@ -52,23 +52,6 @@ or ~C-c \~ (~org-match-sparse-tree~) to see anything tagged with your tag.
~org-agenda~ with ~<~ for the file restriction may also be handy.
-* Cadence
-:PROPERTIES:
-:CUSTOM_ID: cadence
-:OWNER: sachac
-:END:
-
-| Week ending | Work | Speakers | Volunteers | Public |
-| [2022-09-30 Fri] | | [[#acceptance][acceptance, reply to confirm]] | | |
-| [2022-10-09 Sun] | | [[#check-sched][schedule, reply if not okay]] | [[#overall][overall priorities]] | |
-| [2022-10-16 Sun] | [[#etherpad][Etherpad]], [[#upload][stream]] | | infra update | |
-| [2022-10-23 Sun] | [[#upload][file upload]], [[#write-viewing][watch pages]] | [[#mail-upload][file upload instructions]], backstage | [[#volunteer-2022-10-23][training]] | |
-| [2022-10-30 Sun] | [[#streaming][OBS in the cloud]] | | caption kickoff | [[#announce-program][schedule]], posters? |
-| [2022-11-06 Sun] | [[#intro][intro, exit]], [[#dry-run][dry run]], prerecs | [[#ack-prerec][prerec confirmation]]/reminder, [[#approve-captions][caption progress]] | | |
-| [2022-11-13 Sun] | captions | tech check, bio, support links (ex: Liberapay)? | [[#shifts][shifts]] | |
-| [2022-11-20 Sun] | captions | checkin instructions and schedule updates | | |
-| [2022-11-27 Sun] | captions | last weekend before EmacsConf | | watching |
-
* Overall priorities
:PROPERTIES:
:CUSTOM_ID: overall
@@ -84,6 +67,9 @@ interests you!
| | Good | Better | Best |
|------------------------+-------------------------------------------+--------------------------------------+--------------------------------------------------------------|
| [[#harvest][harvesting talks & Q&A]] | *recordings trimmed if needed, published* | chapter markers | edited transcripts |
+
+Previous priorities;
+
| [[#conforg][conf.org management]] | on sachac's laptop | S: on res.emacsconf.org | *DONE S/Z: other people know how to work with it* |
| [[#prepare-prerec-process][prerec]] | convert to webm | normalize audio | *[[#mastering][DONE Z: reduce noise]]* |
| [[#publish-live][talk pages]] | DONE S: link to stream, pad, IRC | *S: link to prerec when live* | embed stream, pad, IRC, prerec |
@@ -127,6 +113,53 @@ interests you!
:PROPERTIES:
:CUSTOM_ID: harvest
:END:
+*** Publish more Q&A recordings
+**** TODO Check status
+#+begin_src emacs-lisp :results replace :eval no
+(emacsconf-collect-prop :slug
+ (seq-remove
+ (lambda (o)
+ (or (null (emacsconf-talk-file o "--bbb-webcams.webm"))
+ (and (emacsconf-talk-file o "--answers.webm")
+ (plist-get o :qa-public))))
+ (emacsconf-prepare-for-display (emacsconf-get-talk-info))))
+#+end_src
+
+#+RESULTS:
+:results:
+(journalism handwritten sqlite maint rolodex orgvm detached eshell dbus indieweb localizing fanfare)
+:end:
+
+**** DONE Write code to make it easy to do so
+*****
+CLOSED: [2022-12-12 Mon 12:57]
+:PROPERTIES:
+:Effort: 0:30
+:END:
+:LOGBOOK:
+CLOCK: [2022-12-12 Mon 12:33]--[2022-12-12 Mon 12:57] => 0:24
+:END:
+emacsconf-extract-publish-qa
+**** SOMEDAY Handwritten needs to be trimmed
+:PROPERTIES:
+:CREATED: [2022-12-12 Mon 08:27]
+:END:
+
+**** SOMEDAY Sqlite needs trimming
+:PROPERTIES:
+:CREATED: [2022-12-11 Sun 15:13]
+:END:
+
+**** TODO Add audio-only options to the publishing process
+**** DONE Fetch the reencoded maint answers and post it to backstage
+CLOSED: [2022-12-12 Mon 11:30]
+:PROPERTIES:
+:CREATED: [2022-12-11 Sun 09:53]
+:END:
+:LOGBOOK:
+- State "DONE" from "TODO" [2022-12-12 Mon 11:30]
+:END:
+
*** DONE Document this phase of the conference
CLOSED: [2022-12-08 Thu 20:54]
:PROPERTIES:
@@ -486,101 +519,6 @@ https://lablab.ai/t/whisper-transcription-and-speaker-identification
:CREATED: [2022-12-09 Fri 21:24]
:END:
-*** Publish more Q&A recordings
-**** DONE Write code to make it easy to do so
-CLOSED: [2022-12-12 Mon 12:57]
-:PROPERTIES:
-:Effort: 0:30
-:END:
-:LOGBOOK:
-CLOCK: [2022-12-12 Mon 12:33]--[2022-12-12 Mon 12:57] => 0:24
-:END:
-emacsconf-extract-publish-qa
-**** SOMEDAY Grail is audio only
-:PROPERTIES:
-:CREATED: [2022-12-12 Mon 08:29]
-:END:
-
-**** SOMEDAY Handwritten needs to be trimmed
-:PROPERTIES:
-:CREATED: [2022-12-12 Mon 08:27]
-:END:
-
-**** SOMEDAY Haskell okay, audio only
-:PROPERTIES:
-:CREATED: [2022-12-12 Mon 08:21]
-:END:
-
-**** SOMEDAY Hyperorg could use some visualization
-:PROPERTIES:
-:CREATED: [2022-12-12 Mon 08:16]
-:END:
-
-**** SOMEDAY Health talk okay to post
-:PROPERTIES:
-:CREATED: [2022-12-12 Mon 08:03]
-:END:
-
-**** SOMEDAY Jupyter okay to post
-:PROPERTIES:
-:CREATED: [2022-12-11 Sun 18:33]
-:END:
-
-**** workflows and wayland are okay to post
-**** SOMEDAY Localizing can be published
-:PROPERTIES:
-:CREATED: [2022-12-11 Sun 18:19]
-:END:
-
-**** SOMEDAY Mail talk is okay
-:PROPERTIES:
-:CREATED: [2022-12-11 Sun 17:58]
-:END:
-
-**** SOMEDAY Meetups is good to go
-:PROPERTIES:
-:CREATED: [2022-12-11 Sun 17:37]
-:END:
-
-**** SOMEDAY Add sound files to everything
-:PROPERTIES:
-:CREATED: [2022-12-11 Sun 17:34]
-:END:
-
-**** SOMEDAY Orgsuperlinks audio only
-:PROPERTIES:
-:CREATED: [2022-12-11 Sun 16:24]
-:END:
-
-**** SOMEDAY Rde okay to share
-:PROPERTIES:
-:CREATED: [2022-12-11 Sun 16:14]
-:END:
-
-**** SOMEDAY Science has screenshare, otherwise good to go
-:PROPERTIES:
-:CREATED: [2022-12-11 Sun 15:18]
-:END:
-
-**** SOMEDAY Sqlite needs trimming
-:PROPERTIES:
-:CREATED: [2022-12-11 Sun 15:13]
-:END:
-
-**** SOMEDAY Workflows talk is okay to publish
-:PROPERTIES:
-:CREATED: [2022-12-11 Sun 13:59]
-:END:
-
-**** DONE Fetch the reencoded maint answers and post it to backstage
-CLOSED: [2022-12-12 Mon 11:30]
-:PROPERTIES:
-:CREATED: [2022-12-11 Sun 09:53]
-:END:
-:LOGBOOK:
-- State "DONE" from "TODO" [2022-12-12 Mon 11:30]
-:END:
-
*** TODO Extract comments from IRC
**** SOMEDAY Auto-add A: marker for speaker
:PROPERTIES:
diff --git a/2022/schedule-2022-12-03.md b/2022/schedule-2022-12-03.md
index 7be2c17f..373da653 100644
--- a/2022/schedule-2022-12-03.md
+++ b/2022/schedule-2022-12-03.md
@@ -1 +1 @@
-<div class="schedule-svg-container"><svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Saturday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Saturday</text> <a href="/2022/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"> <title> 9:00- 9:05 Saturday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-open</text></g></a> <a href="/2022/talks/journalism" title="Emacs journalism (or everything's a nail if you hit it with Emacs)" data-slug="journalism"> <title> 9:05- 9:25 Emacs journalism (or everything's a nail if you hit it with Emacs)</title> <rect x="7" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(36,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> journalism</text></g></a> <a href="/2022/talks/school" title="Back to school with Emacs" data-slug="school"> <title> 9:45- 9:55 Back to school with Emacs</title> <rect x="70" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(83,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> school</text></g></a> <a href="/2022/talks/handwritten" title="How to incorporate handwritten notes into Emacs Orgmode" data-slug="handwritten"> <title> 10:05-10:15 How to incorporate handwritten notes into Emacs Orgmode</title> <rect x="101" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(114,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> handwritten</text></g></a> <a href="/2022/talks/science" title="Writing and organizing literature notes for scientific writing" data-slug="science"> <title> 10:45-11:05 Writing and organizing literature notes for scientific writing</title> <rect x="164" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(193,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> science</text></g></a> <a href="/2022/talks/buddy" title="The Emacs Buddy initiative" data-slug="buddy"> <title> 11:25-11:35 The Emacs Buddy initiative</title> <rect x="227" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(240,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buddy</text></g></a> <a href="/2022/talks/meetups" title="Attending and organizing Emacs meetups" data-slug="meetups"> <title> 1:00- 1:20 Attending and organizing Emacs meetups</title> <rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(405,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> meetups</text></g></a> <a href="/2022/talks/buttons" title="Linking personal info with Hyperbole implicit buttons" data-slug="buttons"> <title> 1:40- 1:55 Linking personal info with Hyperbole implicit buttons</title> <rect x="439" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(460,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buttons</text></g></a> <a href="/2022/talks/realestate" title="Real estate and Org table formulas" data-slug="realestate"> <title> 2:15- 2:40 Real estate and Org table formulas</title> <rect x="494" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(531,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> realestate</text></g></a> <a href="/2022/talks/health" title="Health data journaling and visualization with Org Mode and gnuplot" data-slug="health"> <title> 3:00- 3:25 Health data journaling and visualization with Org Mode and gnuplot</title> <rect x="564" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(601,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> health</text></g></a> <a href="/2022/talks/jupyter" title="Edit live Jupyter notebook cells with Emacs" data-slug="jupyter"> <title> 3:45- 4:05 Edit live Jupyter notebook cells with Emacs</title> <rect x="635" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(664,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> jupyter</text></g></a> <a href="/2022/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"> <title> 4:50- 4:55 Saturday closing remarks</title> <rect x="737" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(742,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-close</text></g></a> <a href="/2022/talks/treesitter" title="Tree-sitter beyond syntax highlighting" data-slug="treesitter"> <title> 10:00-10:15 Tree-sitter beyond syntax highlighting</title> <rect x="94" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(115,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> treesitter</text></g></a> <a href="/2022/talks/lspbridge" title="lsp-bridge: a smooth-as-butter asynchronous LSP client" data-slug="lspbridge"> <title> 10:25-10:45 lsp-bridge: a smooth-as-butter asynchronous LSP client</title> <rect x="133" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(162,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> lspbridge</text></g></a> <a href="/2022/talks/asmblox" title="asm-blox: a game based on WebAssembly that no one asked for" data-slug="asmblox"> <title> 10:55-11:15 asm-blox: a game based on WebAssembly that no one asked for</title> <rect x="180" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(209,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> asmblox</text></g></a> <a href="/2022/talks/wayland" title="Emacs should become a Wayland compositor" data-slug="wayland"> <title> 11:25-11:35 Emacs should become a Wayland compositor</title> <rect x="227" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(240,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> wayland</text></g></a> <a href="/2022/talks/sqlite" title="Using SQLite as a data source: a framework and an example" data-slug="sqlite"> <title> 1:00- 1:25 Using SQLite as a data source: a framework and an example</title> <rect x="376" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(413,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sqlite</text></g></a> <a href="/2022/talks/mail" title="Revisiting the anatomy of Emacs mail user agents" data-slug="mail"> <title> 1:50- 2:30 Revisiting the anatomy of Emacs mail user agents</title> <rect x="454" y="75" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(514,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> mail</text></g></a> <a href="/2022/talks/maint" title="Maintaining the Maintainers: Attribution as an Economic Model for Open Source" data-slug="maint"> <title> 2:50- 3:10 Maintaining the Maintainers: Attribution as an Economic Model for Open Source</title> <rect x="549" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(578,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> maint</text></g></a> <a href="/2022/talks/eev" title="Bidirectional links with eev" data-slug="eev"> <title> 3:35- 3:40 Bidirectional links with eev</title> <rect x="619" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(624,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eev</text></g></a> <a href="/2022/talks/haskell" title="Haskell code exploration with Emacs" data-slug="haskell"> <title> 4:05- 4:35 Haskell code exploration with Emacs</title> <rect x="666" y="75" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(711,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> haskell</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></svg></div> \ No newline at end of file
+<div class="schedule-svg-container"><svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Saturday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Saturday</text> <a href="/2022/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"> <title> 9:00- 9:05 Saturday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-open</text></g></a> <a href="/2022/talks/journalism" title="Emacs journalism (or everything's a nail if you hit it with Emacs)" data-slug="journalism"> <title> 9:05- 9:25 Emacs journalism (or everything's a nail if you hit it with Emacs)</title> <rect x="7" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(36,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> journalism</text></g></a> <a href="/2022/talks/school" title="Back to school with Emacs" data-slug="school"> <title> 9:45- 9:55 Back to school with Emacs</title> <rect x="70" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(83,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> school</text></g></a> <a href="/2022/talks/handwritten" title="How to incorporate handwritten notes into Emacs Orgmode" data-slug="handwritten"> <title> 10:05-10:15 How to incorporate handwritten notes into Emacs Orgmode</title> <rect x="101" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(114,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> handwritten</text></g></a> <a href="/2022/talks/science" title="Writing and organizing literature notes for scientific writing" data-slug="science"> <title> 10:45-11:05 Writing and organizing literature notes for scientific writing</title> <rect x="164" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(193,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> science</text></g></a> <a href="/2022/talks/buddy" title="The Emacs Buddy initiative" data-slug="buddy"> <title> 11:25-11:35 The Emacs Buddy initiative</title> <rect x="227" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(240,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buddy</text></g></a> <a href="/2022/talks/meetups" title="Attending and organizing Emacs meetups" data-slug="meetups"> <title> 1:00- 1:20 Attending and organizing Emacs meetups</title> <rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(405,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> meetups</text></g></a> <a href="/2022/talks/buttons" title="Linking personal info with Hyperbole implicit buttons" data-slug="buttons"> <title> 1:40- 1:55 Linking personal info with Hyperbole implicit buttons</title> <rect x="439" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(460,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buttons</text></g></a> <a href="/2022/talks/realestate" title="Real estate and Org table formulas" data-slug="realestate"> <title> 2:15- 2:40 Real estate and Org table formulas</title> <rect x="494" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(531,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> realestate</text></g></a> <a href="/2022/talks/health" title="Health data journaling and visualization with Org Mode and gnuplot" data-slug="health"> <title> 3:00- 3:25 Health data journaling and visualization with Org Mode and gnuplot</title> <rect x="564" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(601,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> health</text></g></a> <a href="/2022/talks/jupyter" title="Edit live Jupyter notebook cells with Emacs" data-slug="jupyter"> <title> 3:45- 4:05 Edit live Jupyter notebook cells with Emacs</title> <rect x="635" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(664,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> jupyter</text></g></a> <a href="/2022/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"> <title> 4:50- 4:55 Saturday closing remarks</title> <rect x="737" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(742,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-close</text></g></a> <a href="/2022/talks/treesitter" title="Tree-sitter beyond syntax highlighting" data-slug="treesitter"> <title> 10:00-10:15 Tree-sitter beyond syntax highlighting</title> <rect x="94" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(115,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> treesitter</text></g></a> <a href="/2022/talks/lspbridge" title="lsp-bridge: a smooth-as-butter asynchronous LSP client" data-slug="lspbridge"> <title> 10:25-10:45 lsp-bridge: a smooth-as-butter asynchronous LSP client</title> <rect x="133" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(162,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> lspbridge</text></g></a> <a href="/2022/talks/asmblox" title="asm-blox: a game based on WebAssembly that no one asked for" data-slug="asmblox"> <title> 10:55-11:15 asm-blox: a game based on WebAssembly that no one asked for</title> <rect x="180" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(209,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> asmblox</text></g></a> <a href="/2022/talks/wayland" title="Emacs should become a Wayland compositor" data-slug="wayland"> <title> 11:25-11:35 Emacs should become a Wayland compositor</title> <rect x="227" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(240,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> wayland</text></g></a> <a href="/2022/talks/sqlite" title="Using SQLite as a data source: a framework and an example" data-slug="sqlite"> <title> 1:00- 1:25 Using SQLite as a data source: a framework and an example</title> <rect x="376" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(413,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sqlite</text></g></a> <a href="/2022/talks/mail" title="Revisiting the anatomy of Emacs mail user agents" data-slug="mail"> <title> 1:50- 2:30 Revisiting the anatomy of Emacs mail user agents</title> <rect x="454" y="75" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(514,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> mail</text></g></a> <a href="/2022/talks/maint" title="Maintaining the Maintainers: Attribution as an Economic Model for Open Source" data-slug="maint"> <title> 2:50- 3:10 Maintaining the Maintainers: Attribution as an Economic Model for Open Source</title> <rect x="549" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(578,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> maint</text></g></a> <a href="/2022/talks/eev" title="Bidirectional links with eev" data-slug="eev"> <title> 3:35- 3:40 Bidirectional links with eev</title> <rect x="619" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(624,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eev</text></g></a> <a href="/2022/talks/haskell" title="Haskell code exploration with Emacs" data-slug="haskell"> <title> 4:05- 4:35 Haskell code exploration with Emacs</title> <rect x="666" y="75" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(711,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> haskell</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></svg></div> \ No newline at end of file
diff --git a/2022/schedule-2022-12-04.md b/2022/schedule-2022-12-04.md
index 99fd81a4..394445b5 100644
--- a/2022/schedule-2022-12-04.md
+++ b/2022/schedule-2022-12-04.md
@@ -1 +1 @@
-<div class="schedule-svg-container"><svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Sunday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="/2022/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title> 9:00- 9:05 Sunday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/2022/talks/survey" title="Results of the 2022 Emacs Survey" data-slug="survey"> <title> 9:06- 9:26 Results of the 2022 Emacs Survey</title> <rect x="9" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(38,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> survey</text></g></a> <a href="/2022/talks/orgyear" title="This Year in Org" data-slug="orgyear"> <title> 9:35- 9:45 This Year in Org</title> <rect x="54" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(67,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgyear</text></g></a> <a href="/2022/talks/rolodex" title="Build a Zettelkasten with the Hyperbole Rolodex" data-slug="rolodex"> <title> 9:57-10:22 Build a Zettelkasten with the Hyperbole Rolodex</title> <rect x="89" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(126,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rolodex</text></g></a> <a href="/2022/talks/orgsuperlinks" title="Linking headings with org-super-links (poor-man's Zettelkasten)" data-slug="orgsuperlinks"> <title> 10:40-10:50 Linking headings with org-super-links (poor-man's Zettelkasten)</title> <rect x="156" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(169,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgsuperlinks</text></g></a> <a href="/2022/talks/orgvm" title="orgvm: a simple HTTP server for org" data-slug="orgvm"> <title> 11:10-11:20 orgvm: a simple HTTP server for org</title> <rect x="203" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(216,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgvm</text></g></a> <a href="/2022/talks/hyperorg" title="Powerful productivity with Hyperbole and Org Mode" data-slug="hyperorg"> <title> 1:00- 1:30 Powerful productivity with Hyperbole and Org Mode</title> <rect x="376" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(421,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperorg</text></g></a> <a href="/2022/talks/workflows" title="Org workflows for developers" data-slug="workflows"> <title> 1:50- 2:15 Org workflows for developers</title> <rect x="454" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(491,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> workflows</text></g></a> <a href="/2022/talks/grail" title="GRAIL---A Generalized Representation and Aggregation of Information Layers" data-slug="grail"> <title> 2:35- 2:55 GRAIL---A Generalized Representation and Aggregation of Information Layers</title> <rect x="525" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(554,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> grail</text></g></a> <a href="/2022/talks/indieweb" title="Putting Org Mode on the Indieweb" data-slug="indieweb"> <title> 3:25- 3:45 Putting Org Mode on the Indieweb</title> <rect x="603" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(632,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> indieweb</text></g></a> <a href="/2022/talks/devel" title="Emacs development updates" data-slug="devel"> <title> 4:05- 4:15 Emacs development updates</title> <rect x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(679,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> devel</text></g></a> <a href="/2022/talks/fanfare" title="Fanfare for the Common Emacs User" data-slug="fanfare"> <title> 4:25- 4:35 Fanfare for the Common Emacs User</title> <rect x="698" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(711,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> fanfare</text></g></a> <a href="/2022/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 4:50- 5:00 Sunday closing remarks</title> <rect x="737" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(750,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="/2022/talks/rde" title="rde Emacs introduction" data-slug="rde"> <title> 10:00-10:25 rde Emacs introduction</title> <rect x="94" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(131,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rde</text></g></a> <a href="/2022/talks/justl" title="justl: Driving recipes within Emacs" data-slug="justl"> <title> 10:50-11:05 justl: Driving recipes within Emacs</title> <rect x="172" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(193,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> justl</text></g></a> <a href="/2022/talks/rms" title="What I'd like to see in Emacs" data-slug="rms"> <title> 11:15-11:35 What I'd like to see in Emacs</title> <rect x="211" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(240,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rms</text></g></a> <a href="/2022/talks/detached" title="Getting detached from Emacs" data-slug="detached"> <title> 1:01- 1:16 Getting detached from Emacs</title> <rect x="378" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(399,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> detached</text></g></a> <a href="/2022/talks/eshell" title="Top 10 reasons why you should be using Eshell" data-slug="eshell"> <title> 1:40- 1:55 Top 10 reasons why you should be using Eshell</title> <rect x="439" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(460,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eshell</text></g></a> <a href="/2022/talks/async" title="Emacs was async before async was cool" data-slug="async"> <title> 2:20- 2:40 Emacs was async before async was cool</title> <rect x="501" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(530,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> async</text></g></a> <a href="/2022/talks/dbus" title="The Wheels on D-Bus" data-slug="dbus"> <title> 3:15- 3:35 The Wheels on D-Bus</title> <rect x="588" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(617,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> dbus</text></g></a> <a href="/2022/talks/localizing" title="Pre-localizing Emacs" data-slug="localizing"> <title> 4:00- 4:10 Pre-localizing Emacs</title> <rect x="658" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(671,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> localizing</text></g></a> <a href="/2022/talks/python" title="Short hyperlinks to Python docs" data-slug="python"> <title> 4:30- 4:35 Short hyperlinks to Python docs</title> <rect x="705" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(710,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> python</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></svg></div> \ No newline at end of file
+<div class="schedule-svg-container"><svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Sunday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="/2022/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title> 9:00- 9:05 Sunday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/2022/talks/survey" title="Results of the 2022 Emacs Survey" data-slug="survey"> <title> 9:06- 9:26 Results of the 2022 Emacs Survey</title> <rect x="9" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(38,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> survey</text></g></a> <a href="/2022/talks/orgyear" title="This Year in Org" data-slug="orgyear"> <title> 9:35- 9:45 This Year in Org</title> <rect x="54" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(67,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgyear</text></g></a> <a href="/2022/talks/rolodex" title="Build a Zettelkasten with the Hyperbole Rolodex" data-slug="rolodex"> <title> 9:57-10:22 Build a Zettelkasten with the Hyperbole Rolodex</title> <rect x="89" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(126,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rolodex</text></g></a> <a href="/2022/talks/orgsuperlinks" title="Linking headings with org-super-links (poor-man's Zettelkasten)" data-slug="orgsuperlinks"> <title> 10:40-10:50 Linking headings with org-super-links (poor-man's Zettelkasten)</title> <rect x="156" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(169,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgsuperlinks</text></g></a> <a href="/2022/talks/orgvm" title="orgvm: a simple HTTP server for org" data-slug="orgvm"> <title> 11:10-11:20 orgvm: a simple HTTP server for org</title> <rect x="203" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(216,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgvm</text></g></a> <a href="/2022/talks/hyperorg" title="Powerful productivity with Hyperbole and Org Mode" data-slug="hyperorg"> <title> 1:00- 1:30 Powerful productivity with Hyperbole and Org Mode</title> <rect x="376" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(421,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperorg</text></g></a> <a href="/2022/talks/workflows" title="Org workflows for developers" data-slug="workflows"> <title> 1:50- 2:15 Org workflows for developers</title> <rect x="454" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(491,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> workflows</text></g></a> <a href="/2022/talks/grail" title="GRAIL---A Generalized Representation and Aggregation of Information Layers" data-slug="grail"> <title> 2:35- 2:55 GRAIL---A Generalized Representation and Aggregation of Information Layers</title> <rect x="525" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(554,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> grail</text></g></a> <a href="/2022/talks/indieweb" title="Putting Org Mode on the Indieweb" data-slug="indieweb"> <title> 3:25- 3:45 Putting Org Mode on the Indieweb</title> <rect x="603" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(632,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> indieweb</text></g></a> <a href="/2022/talks/devel" title="Emacs development updates" data-slug="devel"> <title> 4:05- 4:15 Emacs development updates</title> <rect x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(679,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> devel</text></g></a> <a href="/2022/talks/fanfare" title="Fanfare for the Common Emacs User" data-slug="fanfare"> <title> 4:25- 4:35 Fanfare for the Common Emacs User</title> <rect x="698" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(711,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> fanfare</text></g></a> <a href="/2022/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 4:50- 5:00 Sunday closing remarks</title> <rect x="737" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(750,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="/2022/talks/rde" title="rde Emacs introduction" data-slug="rde"> <title> 10:00-10:25 rde Emacs introduction</title> <rect x="94" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(131,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rde</text></g></a> <a href="/2022/talks/justl" title="justl: Driving recipes within Emacs" data-slug="justl"> <title> 10:50-11:05 justl: Driving recipes within Emacs</title> <rect x="172" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(193,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> justl</text></g></a> <a href="/2022/talks/rms" title="What I'd like to see in Emacs" data-slug="rms"> <title> 11:15-11:35 What I'd like to see in Emacs</title> <rect x="211" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(240,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rms</text></g></a> <a href="/2022/talks/detached" title="Getting detached from Emacs" data-slug="detached"> <title> 1:01- 1:16 Getting detached from Emacs</title> <rect x="378" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(399,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> detached</text></g></a> <a href="/2022/talks/eshell" title="Top 10 reasons why you should be using Eshell" data-slug="eshell"> <title> 1:40- 1:55 Top 10 reasons why you should be using Eshell</title> <rect x="439" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(460,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eshell</text></g></a> <a href="/2022/talks/async" title="Emacs was async before async was cool" data-slug="async"> <title> 2:20- 2:40 Emacs was async before async was cool</title> <rect x="501" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(530,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> async</text></g></a> <a href="/2022/talks/dbus" title="The Wheels on D-Bus" data-slug="dbus"> <title> 3:15- 3:35 The Wheels on D-Bus</title> <rect x="588" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(617,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> dbus</text></g></a> <a href="/2022/talks/localizing" title="Pre-localizing Emacs" data-slug="localizing"> <title> 4:00- 4:10 Pre-localizing Emacs</title> <rect x="658" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(671,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> localizing</text></g></a> <a href="/2022/talks/python" title="Short hyperlinks to Python docs" data-slug="python"> <title> 4:30- 4:35 Short hyperlinks to Python docs</title> <rect x="705" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(710,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> python</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></svg></div> \ No newline at end of file
diff --git a/2022/schedule-image.md b/2022/schedule-image.md
index 1f892a62..b27bb3df 100644
--- a/2022/schedule-image.md
+++ b/2022/schedule-image.md
@@ -1 +1 @@
-<div class="schedule-svg-container"><svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Graphical view of the schedule</title> <g transform="translate(0,0)"> <title> Schedule for Saturday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Saturday</text> <a href="/2022/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"> <title> 9:00- 9:05 Saturday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-open</text></g></a> <a href="/2022/talks/journalism" title="Emacs journalism (or everything's a nail if you hit it with Emacs)" data-slug="journalism"> <title> 9:05- 9:25 Emacs journalism (or everything's a nail if you hit it with Emacs)</title> <rect x="7" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(36,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> journalism</text></g></a> <a href="/2022/talks/school" title="Back to school with Emacs" data-slug="school"> <title> 9:45- 9:55 Back to school with Emacs</title> <rect x="70" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(83,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> school</text></g></a> <a href="/2022/talks/handwritten" title="How to incorporate handwritten notes into Emacs Orgmode" data-slug="handwritten"> <title> 10:05-10:15 How to incorporate handwritten notes into Emacs Orgmode</title> <rect x="101" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(114,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> handwritten</text></g></a> <a href="/2022/talks/science" title="Writing and organizing literature notes for scientific writing" data-slug="science"> <title> 10:45-11:05 Writing and organizing literature notes for scientific writing</title> <rect x="164" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(193,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> science</text></g></a> <a href="/2022/talks/buddy" title="The Emacs Buddy initiative" data-slug="buddy"> <title> 11:25-11:35 The Emacs Buddy initiative</title> <rect x="227" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(240,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buddy</text></g></a> <a href="/2022/talks/meetups" title="Attending and organizing Emacs meetups" data-slug="meetups"> <title> 1:00- 1:20 Attending and organizing Emacs meetups</title> <rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(405,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> meetups</text></g></a> <a href="/2022/talks/buttons" title="Linking personal info with Hyperbole implicit buttons" data-slug="buttons"> <title> 1:40- 1:55 Linking personal info with Hyperbole implicit buttons</title> <rect x="439" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(460,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buttons</text></g></a> <a href="/2022/talks/realestate" title="Real estate and Org table formulas" data-slug="realestate"> <title> 2:15- 2:40 Real estate and Org table formulas</title> <rect x="494" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(531,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> realestate</text></g></a> <a href="/2022/talks/health" title="Health data journaling and visualization with Org Mode and gnuplot" data-slug="health"> <title> 3:00- 3:25 Health data journaling and visualization with Org Mode and gnuplot</title> <rect x="564" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(601,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> health</text></g></a> <a href="/2022/talks/jupyter" title="Edit live Jupyter notebook cells with Emacs" data-slug="jupyter"> <title> 3:45- 4:05 Edit live Jupyter notebook cells with Emacs</title> <rect x="635" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(664,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> jupyter</text></g></a> <a href="/2022/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"> <title> 4:50- 4:55 Saturday closing remarks</title> <rect x="737" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(742,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-close</text></g></a> <a href="/2022/talks/treesitter" title="Tree-sitter beyond syntax highlighting" data-slug="treesitter"> <title> 10:00-10:15 Tree-sitter beyond syntax highlighting</title> <rect x="94" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(115,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> treesitter</text></g></a> <a href="/2022/talks/lspbridge" title="lsp-bridge: a smooth-as-butter asynchronous LSP client" data-slug="lspbridge"> <title> 10:25-10:45 lsp-bridge: a smooth-as-butter asynchronous LSP client</title> <rect x="133" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(162,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> lspbridge</text></g></a> <a href="/2022/talks/asmblox" title="asm-blox: a game based on WebAssembly that no one asked for" data-slug="asmblox"> <title> 10:55-11:15 asm-blox: a game based on WebAssembly that no one asked for</title> <rect x="180" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(209,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> asmblox</text></g></a> <a href="/2022/talks/wayland" title="Emacs should become a Wayland compositor" data-slug="wayland"> <title> 11:25-11:35 Emacs should become a Wayland compositor</title> <rect x="227" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(240,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> wayland</text></g></a> <a href="/2022/talks/sqlite" title="Using SQLite as a data source: a framework and an example" data-slug="sqlite"> <title> 1:00- 1:25 Using SQLite as a data source: a framework and an example</title> <rect x="376" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(413,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sqlite</text></g></a> <a href="/2022/talks/mail" title="Revisiting the anatomy of Emacs mail user agents" data-slug="mail"> <title> 1:50- 2:30 Revisiting the anatomy of Emacs mail user agents</title> <rect x="454" y="75" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(514,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> mail</text></g></a> <a href="/2022/talks/maint" title="Maintaining the Maintainers: Attribution as an Economic Model for Open Source" data-slug="maint"> <title> 2:50- 3:10 Maintaining the Maintainers: Attribution as an Economic Model for Open Source</title> <rect x="549" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(578,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> maint</text></g></a> <a href="/2022/talks/eev" title="Bidirectional links with eev" data-slug="eev"> <title> 3:35- 3:40 Bidirectional links with eev</title> <rect x="619" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(624,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eev</text></g></a> <a href="/2022/talks/haskell" title="Haskell code exploration with Emacs" data-slug="haskell"> <title> 4:05- 4:35 Haskell code exploration with Emacs</title> <rect x="666" y="75" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(711,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> haskell</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></g> <g transform="translate(0,150)"> <title> Schedule for Sunday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="/2022/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title> 9:00- 9:05 Sunday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/2022/talks/survey" title="Results of the 2022 Emacs Survey" data-slug="survey"> <title> 9:06- 9:26 Results of the 2022 Emacs Survey</title> <rect x="9" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(38,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> survey</text></g></a> <a href="/2022/talks/orgyear" title="This Year in Org" data-slug="orgyear"> <title> 9:35- 9:45 This Year in Org</title> <rect x="54" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(67,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgyear</text></g></a> <a href="/2022/talks/rolodex" title="Build a Zettelkasten with the Hyperbole Rolodex" data-slug="rolodex"> <title> 9:57-10:22 Build a Zettelkasten with the Hyperbole Rolodex</title> <rect x="89" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(126,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rolodex</text></g></a> <a href="/2022/talks/orgsuperlinks" title="Linking headings with org-super-links (poor-man's Zettelkasten)" data-slug="orgsuperlinks"> <title> 10:40-10:50 Linking headings with org-super-links (poor-man's Zettelkasten)</title> <rect x="156" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(169,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgsuperlinks</text></g></a> <a href="/2022/talks/orgvm" title="orgvm: a simple HTTP server for org" data-slug="orgvm"> <title> 11:10-11:20 orgvm: a simple HTTP server for org</title> <rect x="203" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(216,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgvm</text></g></a> <a href="/2022/talks/hyperorg" title="Powerful productivity with Hyperbole and Org Mode" data-slug="hyperorg"> <title> 1:00- 1:30 Powerful productivity with Hyperbole and Org Mode</title> <rect x="376" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(421,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperorg</text></g></a> <a href="/2022/talks/workflows" title="Org workflows for developers" data-slug="workflows"> <title> 1:50- 2:15 Org workflows for developers</title> <rect x="454" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(491,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> workflows</text></g></a> <a href="/2022/talks/grail" title="GRAIL---A Generalized Representation and Aggregation of Information Layers" data-slug="grail"> <title> 2:35- 2:55 GRAIL---A Generalized Representation and Aggregation of Information Layers</title> <rect x="525" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(554,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> grail</text></g></a> <a href="/2022/talks/indieweb" title="Putting Org Mode on the Indieweb" data-slug="indieweb"> <title> 3:25- 3:45 Putting Org Mode on the Indieweb</title> <rect x="603" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(632,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> indieweb</text></g></a> <a href="/2022/talks/devel" title="Emacs development updates" data-slug="devel"> <title> 4:05- 4:15 Emacs development updates</title> <rect x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(679,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> devel</text></g></a> <a href="/2022/talks/fanfare" title="Fanfare for the Common Emacs User" data-slug="fanfare"> <title> 4:25- 4:35 Fanfare for the Common Emacs User</title> <rect x="698" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(711,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> fanfare</text></g></a> <a href="/2022/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 4:50- 5:00 Sunday closing remarks</title> <rect x="737" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(750,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="/2022/talks/rde" title="rde Emacs introduction" data-slug="rde"> <title> 10:00-10:25 rde Emacs introduction</title> <rect x="94" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(131,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rde</text></g></a> <a href="/2022/talks/justl" title="justl: Driving recipes within Emacs" data-slug="justl"> <title> 10:50-11:05 justl: Driving recipes within Emacs</title> <rect x="172" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(193,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> justl</text></g></a> <a href="/2022/talks/rms" title="What I'd like to see in Emacs" data-slug="rms"> <title> 11:15-11:35 What I'd like to see in Emacs</title> <rect x="211" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(240,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rms</text></g></a> <a href="/2022/talks/detached" title="Getting detached from Emacs" data-slug="detached"> <title> 1:01- 1:16 Getting detached from Emacs</title> <rect x="378" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(399,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> detached</text></g></a> <a href="/2022/talks/eshell" title="Top 10 reasons why you should be using Eshell" data-slug="eshell"> <title> 1:40- 1:55 Top 10 reasons why you should be using Eshell</title> <rect x="439" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(460,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eshell</text></g></a> <a href="/2022/talks/async" title="Emacs was async before async was cool" data-slug="async"> <title> 2:20- 2:40 Emacs was async before async was cool</title> <rect x="501" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(530,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> async</text></g></a> <a href="/2022/talks/dbus" title="The Wheels on D-Bus" data-slug="dbus"> <title> 3:15- 3:35 The Wheels on D-Bus</title> <rect x="588" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(617,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> dbus</text></g></a> <a href="/2022/talks/localizing" title="Pre-localizing Emacs" data-slug="localizing"> <title> 4:00- 4:10 Pre-localizing Emacs</title> <rect x="658" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(671,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> localizing</text></g></a> <a href="/2022/talks/python" title="Short hyperlinks to Python docs" data-slug="python"> <title> 4:30- 4:35 Short hyperlinks to Python docs</title> <rect x="705" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(710,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> python</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></g></svg></div> \ No newline at end of file
+<div class="schedule-svg-container"><svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Graphical view of the schedule</title> <g transform="translate(0,0)"> <title> Schedule for Saturday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Saturday</text> <a href="/2022/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"> <title> 9:00- 9:05 Saturday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-open</text></g></a> <a href="/2022/talks/journalism" title="Emacs journalism (or everything's a nail if you hit it with Emacs)" data-slug="journalism"> <title> 9:05- 9:25 Emacs journalism (or everything's a nail if you hit it with Emacs)</title> <rect x="7" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(36,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> journalism</text></g></a> <a href="/2022/talks/school" title="Back to school with Emacs" data-slug="school"> <title> 9:45- 9:55 Back to school with Emacs</title> <rect x="70" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(83,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> school</text></g></a> <a href="/2022/talks/handwritten" title="How to incorporate handwritten notes into Emacs Orgmode" data-slug="handwritten"> <title> 10:05-10:15 How to incorporate handwritten notes into Emacs Orgmode</title> <rect x="101" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(114,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> handwritten</text></g></a> <a href="/2022/talks/science" title="Writing and organizing literature notes for scientific writing" data-slug="science"> <title> 10:45-11:05 Writing and organizing literature notes for scientific writing</title> <rect x="164" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(193,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> science</text></g></a> <a href="/2022/talks/buddy" title="The Emacs Buddy initiative" data-slug="buddy"> <title> 11:25-11:35 The Emacs Buddy initiative</title> <rect x="227" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(240,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buddy</text></g></a> <a href="/2022/talks/meetups" title="Attending and organizing Emacs meetups" data-slug="meetups"> <title> 1:00- 1:20 Attending and organizing Emacs meetups</title> <rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(405,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> meetups</text></g></a> <a href="/2022/talks/buttons" title="Linking personal info with Hyperbole implicit buttons" data-slug="buttons"> <title> 1:40- 1:55 Linking personal info with Hyperbole implicit buttons</title> <rect x="439" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(460,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buttons</text></g></a> <a href="/2022/talks/realestate" title="Real estate and Org table formulas" data-slug="realestate"> <title> 2:15- 2:40 Real estate and Org table formulas</title> <rect x="494" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(531,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> realestate</text></g></a> <a href="/2022/talks/health" title="Health data journaling and visualization with Org Mode and gnuplot" data-slug="health"> <title> 3:00- 3:25 Health data journaling and visualization with Org Mode and gnuplot</title> <rect x="564" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(601,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> health</text></g></a> <a href="/2022/talks/jupyter" title="Edit live Jupyter notebook cells with Emacs" data-slug="jupyter"> <title> 3:45- 4:05 Edit live Jupyter notebook cells with Emacs</title> <rect x="635" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(664,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> jupyter</text></g></a> <a href="/2022/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"> <title> 4:50- 4:55 Saturday closing remarks</title> <rect x="737" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(742,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-close</text></g></a> <a href="/2022/talks/treesitter" title="Tree-sitter beyond syntax highlighting" data-slug="treesitter"> <title> 10:00-10:15 Tree-sitter beyond syntax highlighting</title> <rect x="94" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(115,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> treesitter</text></g></a> <a href="/2022/talks/lspbridge" title="lsp-bridge: a smooth-as-butter asynchronous LSP client" data-slug="lspbridge"> <title> 10:25-10:45 lsp-bridge: a smooth-as-butter asynchronous LSP client</title> <rect x="133" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(162,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> lspbridge</text></g></a> <a href="/2022/talks/asmblox" title="asm-blox: a game based on WebAssembly that no one asked for" data-slug="asmblox"> <title> 10:55-11:15 asm-blox: a game based on WebAssembly that no one asked for</title> <rect x="180" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(209,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> asmblox</text></g></a> <a href="/2022/talks/wayland" title="Emacs should become a Wayland compositor" data-slug="wayland"> <title> 11:25-11:35 Emacs should become a Wayland compositor</title> <rect x="227" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(240,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> wayland</text></g></a> <a href="/2022/talks/sqlite" title="Using SQLite as a data source: a framework and an example" data-slug="sqlite"> <title> 1:00- 1:25 Using SQLite as a data source: a framework and an example</title> <rect x="376" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(413,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sqlite</text></g></a> <a href="/2022/talks/mail" title="Revisiting the anatomy of Emacs mail user agents" data-slug="mail"> <title> 1:50- 2:30 Revisiting the anatomy of Emacs mail user agents</title> <rect x="454" y="75" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(514,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> mail</text></g></a> <a href="/2022/talks/maint" title="Maintaining the Maintainers: Attribution as an Economic Model for Open Source" data-slug="maint"> <title> 2:50- 3:10 Maintaining the Maintainers: Attribution as an Economic Model for Open Source</title> <rect x="549" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(578,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> maint</text></g></a> <a href="/2022/talks/eev" title="Bidirectional links with eev" data-slug="eev"> <title> 3:35- 3:40 Bidirectional links with eev</title> <rect x="619" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(624,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eev</text></g></a> <a href="/2022/talks/haskell" title="Haskell code exploration with Emacs" data-slug="haskell"> <title> 4:05- 4:35 Haskell code exploration with Emacs</title> <rect x="666" y="75" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(711,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> haskell</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></g> <g transform="translate(0,150)"> <title> Schedule for Sunday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="/2022/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title> 9:00- 9:05 Sunday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/2022/talks/survey" title="Results of the 2022 Emacs Survey" data-slug="survey"> <title> 9:06- 9:26 Results of the 2022 Emacs Survey</title> <rect x="9" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(38,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> survey</text></g></a> <a href="/2022/talks/orgyear" title="This Year in Org" data-slug="orgyear"> <title> 9:35- 9:45 This Year in Org</title> <rect x="54" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(67,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgyear</text></g></a> <a href="/2022/talks/rolodex" title="Build a Zettelkasten with the Hyperbole Rolodex" data-slug="rolodex"> <title> 9:57-10:22 Build a Zettelkasten with the Hyperbole Rolodex</title> <rect x="89" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(126,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rolodex</text></g></a> <a href="/2022/talks/orgsuperlinks" title="Linking headings with org-super-links (poor-man's Zettelkasten)" data-slug="orgsuperlinks"> <title> 10:40-10:50 Linking headings with org-super-links (poor-man's Zettelkasten)</title> <rect x="156" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(169,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgsuperlinks</text></g></a> <a href="/2022/talks/orgvm" title="orgvm: a simple HTTP server for org" data-slug="orgvm"> <title> 11:10-11:20 orgvm: a simple HTTP server for org</title> <rect x="203" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(216,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgvm</text></g></a> <a href="/2022/talks/hyperorg" title="Powerful productivity with Hyperbole and Org Mode" data-slug="hyperorg"> <title> 1:00- 1:30 Powerful productivity with Hyperbole and Org Mode</title> <rect x="376" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(421,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperorg</text></g></a> <a href="/2022/talks/workflows" title="Org workflows for developers" data-slug="workflows"> <title> 1:50- 2:15 Org workflows for developers</title> <rect x="454" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(491,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> workflows</text></g></a> <a href="/2022/talks/grail" title="GRAIL---A Generalized Representation and Aggregation of Information Layers" data-slug="grail"> <title> 2:35- 2:55 GRAIL---A Generalized Representation and Aggregation of Information Layers</title> <rect x="525" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(554,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> grail</text></g></a> <a href="/2022/talks/indieweb" title="Putting Org Mode on the Indieweb" data-slug="indieweb"> <title> 3:25- 3:45 Putting Org Mode on the Indieweb</title> <rect x="603" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(632,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> indieweb</text></g></a> <a href="/2022/talks/devel" title="Emacs development updates" data-slug="devel"> <title> 4:05- 4:15 Emacs development updates</title> <rect x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(679,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> devel</text></g></a> <a href="/2022/talks/fanfare" title="Fanfare for the Common Emacs User" data-slug="fanfare"> <title> 4:25- 4:35 Fanfare for the Common Emacs User</title> <rect x="698" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(711,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> fanfare</text></g></a> <a href="/2022/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 4:50- 5:00 Sunday closing remarks</title> <rect x="737" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(750,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="/2022/talks/rde" title="rde Emacs introduction" data-slug="rde"> <title> 10:00-10:25 rde Emacs introduction</title> <rect x="94" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(131,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rde</text></g></a> <a href="/2022/talks/justl" title="justl: Driving recipes within Emacs" data-slug="justl"> <title> 10:50-11:05 justl: Driving recipes within Emacs</title> <rect x="172" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(193,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> justl</text></g></a> <a href="/2022/talks/rms" title="What I'd like to see in Emacs" data-slug="rms"> <title> 11:15-11:35 What I'd like to see in Emacs</title> <rect x="211" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(240,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rms</text></g></a> <a href="/2022/talks/detached" title="Getting detached from Emacs" data-slug="detached"> <title> 1:01- 1:16 Getting detached from Emacs</title> <rect x="378" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(399,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> detached</text></g></a> <a href="/2022/talks/eshell" title="Top 10 reasons why you should be using Eshell" data-slug="eshell"> <title> 1:40- 1:55 Top 10 reasons why you should be using Eshell</title> <rect x="439" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(460,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eshell</text></g></a> <a href="/2022/talks/async" title="Emacs was async before async was cool" data-slug="async"> <title> 2:20- 2:40 Emacs was async before async was cool</title> <rect x="501" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(530,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> async</text></g></a> <a href="/2022/talks/dbus" title="The Wheels on D-Bus" data-slug="dbus"> <title> 3:15- 3:35 The Wheels on D-Bus</title> <rect x="588" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(617,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> dbus</text></g></a> <a href="/2022/talks/localizing" title="Pre-localizing Emacs" data-slug="localizing"> <title> 4:00- 4:10 Pre-localizing Emacs</title> <rect x="658" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect> <g transform="translate(671,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> localizing</text></g></a> <a href="/2022/talks/python" title="Short hyperlinks to Python docs" data-slug="python"> <title> 4:30- 4:35 Short hyperlinks to Python docs</title> <rect x="705" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect> <g transform="translate(710,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> python</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></g></svg></div> \ No newline at end of file