summaryrefslogtreecommitdiffstats
path: root/2020/subtitles
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2020/subtitles/emacsconf-2020--00-opening-remarks-autogen.vtt604
-rw-r--r--2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.vtt2
-rw-r--r--2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula-autogen.vtt361
-rw-r--r--2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula-autogen.vtt1336
-rw-r--r--2020/subtitles/emacsconf-2020--09-orgmode-your-life-in-plain-text--rainer-koenig-autogen.vtt454
-rw-r--r--2020/subtitles/emacsconf-2020--11-the-org-gtd-package-opinions-about-getting-things-done--aldric-autogen.vtt1195
-rw-r--r--2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier-autogen.vtt1447
-rw-r--r--2020/subtitles/emacsconf-2020--13-experience-report-steps-to-emacs-hyper-notebooks--joseph-corneli-raymond-puzio-cameron-ray-smith-autogen.vtt1081
-rw-r--r--2020/subtitles/emacsconf-2020--14-readme-driven-design--adam-ard-autogen.vtt1426
-rw-r--r--2020/subtitles/emacsconf-2020--15-moving-from-jekyll-to-orgmode-an-experience-report--adolfo-villafiorita-autogen.vtt1183
-rw-r--r--2020/subtitles/emacsconf-2020--16-org-roam-presentation-demonstration-and-whats-on-the-horizon--leo-vivier-autogen.vtt1801
-rw-r--r--2020/subtitles/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan-autogen.vtt1795
-rw-r--r--2020/subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier-autogen.vtt1804
-rw-r--r--2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt709
-rw-r--r--2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt1606
-rw-r--r--2020/subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.vtt3301
-rw-r--r--2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt2386
-rw-r--r--2020/subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--questions--tuan-anh-nguyen-autogen.vtt1087
-rw-r--r--2020/subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--tuan-anh-nguyen-autogen.vtt1522
-rw-r--r--2020/subtitles/emacsconf-2020--25-traverse-complex-json-structures-with-live-feedback-counsel-jq--zen-monk-alain-m-lafon-autogen.vtt757
-rw-r--r--2020/subtitles/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--pierce-wang-autogen.vtt769
-rw-r--r--2020/subtitles/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--questions--pierce-wang-autogen.vtt769
-rw-r--r--2020/subtitles/emacsconf-2020--27-state-of-retro-gaming-in-emacs-chip8--vasilij-wasamasa-schneidermann-autogen.vtt913
-rw-r--r--2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.vtt4993
-rw-r--r--2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo-autogen.vtt634
-rw-r--r--2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--questions--gabriele-bozzola-sbozzolo-autogen.vtt385
-rw-r--r--2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--grant-shangreaux-autogen.vtt859
-rw-r--r--2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--questions--grant-shangreaux-autogen.vtt412
-rw-r--r--2020/subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.vtt2215
-rw-r--r--2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt1708
-rw-r--r--2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt1714
-rw-r--r--2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.vtt508
-rw-r--r--2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley-autogen.vtt460
-rw-r--r--2020/subtitles/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman-autogen.vtt2833
-rw-r--r--2020/subtitles/emacsconf-2020--40-closing-remarks-part-1-autogen.vtt205
-rw-r--r--2020/subtitles/emacsconf-2020--40-closing-remarks-part-2-autogen.vtt1000
-rw-r--r--2020/subtitles/emacsconf-2020--41-opening-remarks-autogen.vtt1036
-rw-r--r--2020/subtitles/emacsconf-2020--42-closing-remarks-autogen.vtt2905
38 files changed, 50174 insertions, 1 deletions
diff --git a/2020/subtitles/emacsconf-2020--00-opening-remarks-autogen.vtt b/2020/subtitles/emacsconf-2020--00-opening-remarks-autogen.vtt
new file mode 100644
index 00000000..3dfb9f5b
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--00-opening-remarks-autogen.vtt
@@ -0,0 +1,604 @@
+WEBVTT
+
+00:00:03.919 --> 00:00:05.279
+all right
+
+00:00:05.279 --> 00:00:08.400
+hello and uh welcome to EmacsConf
+
+00:00:08.400 --> 00:00:11.920
+2020. um I'm Amin Bandali
+
+00:00:11.920 --> 00:00:14.920
+and I have with me my fellow
+
+00:00:14.920 --> 00:00:16.560
+co-organizers uh
+
+00:00:16.560 --> 00:00:20.720
+Leo Vivier and Sacha Chua
+
+00:00:20.720 --> 00:00:24.160
+and we're very excited to be doing this
+
+00:00:24.160 --> 00:00:25.439
+conference again this year
+
+00:00:25.439 --> 00:00:28.240
+it's already been a year since the last
+
+00:00:28.240 --> 00:00:28.560
+one
+
+00:00:28.560 --> 00:00:32.079
+gosh the time flies by but
+
+00:00:32.079 --> 00:00:35.680
+um yeah so I guess
+
+00:00:35.680 --> 00:00:38.960
+without further ado let's get into
+
+00:00:38.960 --> 00:00:41.520
+the conference so hello again and
+
+00:00:41.520 --> 00:00:43.520
+welcome to EmacsConf 2020.
+
+00:00:43.520 --> 00:00:47.039
+we're very happy to have you here um
+
+00:00:47.039 --> 00:00:49.360
+so we're gonna start right off the bat
+
+00:00:49.360 --> 00:00:50.239
+with
+
+00:00:50.239 --> 00:00:53.600
+um a huge series of thank yous to um
+
+00:00:53.600 --> 00:00:56.000
+free software foundation especially the
+
+00:00:56.000 --> 00:00:57.120
+tech team
+
+00:00:57.120 --> 00:00:59.760
+for um you know their continued support
+
+00:00:59.760 --> 00:01:01.600
+and for letting us use
+
+00:01:01.600 --> 00:01:04.559
+um their big blue button instance uh for
+
+00:01:04.559 --> 00:01:05.360
+this very
+
+00:01:05.360 --> 00:01:07.840
+um presentation that you're watching um
+
+00:01:07.840 --> 00:01:09.680
+to for us to be able to deliver it using
+
+00:01:09.680 --> 00:01:10.720
+only free software
+
+00:01:10.720 --> 00:01:14.640
+um that's very generous of them
+
+00:01:14.640 --> 00:01:18.240
+thank you so much next up I want to
+
+00:01:18.240 --> 00:01:19.920
+thank all my co-organizers and
+
+00:01:19.920 --> 00:01:21.600
+volunteers um
+
+00:01:21.600 --> 00:01:24.640
+so this list is in alphabetical or order
+
+00:01:24.640 --> 00:01:26.880
+but um yeah so there's myself there's
+
+00:01:26.880 --> 00:01:28.479
+bobbin 192.
+
+00:01:28.479 --> 00:01:31.360
+there's david bremner um david o'toole
+
+00:01:31.360 --> 00:01:32.159
+um
+
+00:01:32.159 --> 00:01:35.360
+mpls corbin or corbin bruce public
+
+00:01:35.360 --> 00:01:38.560
+voigt which is carl boyd um
+
+00:01:38.560 --> 00:01:41.759
+sasha chu of course and zeph which is
+
+00:01:41.759 --> 00:01:44.799
+uh who is leo vva um thank you all so
+
+00:01:44.799 --> 00:01:45.520
+much
+
+00:01:45.520 --> 00:01:48.399
+so now I'll pass it on to sasha chua for
+
+00:01:48.399 --> 00:01:48.880
+a
+
+00:01:48.880 --> 00:01:52.000
+quick um overview of the schedule
+
+00:01:52.000 --> 00:01:54.640
+we have a lot of fun fun talks scheduled
+
+00:01:54.640 --> 00:01:56.640
+for today and tomorrow
+
+00:01:56.640 --> 00:01:59.280
+you can find it at the Emacs con
+
+00:01:59.280 --> 00:02:01.520
+schedule which I will open up in the tab
+
+00:02:01.520 --> 00:02:03.600
+and here we go so I'll give you a quick
+
+00:02:03.600 --> 00:02:04.880
+overview of the schedule
+
+00:02:04.880 --> 00:02:06.960
+you can drop in of course all the times
+
+00:02:06.960 --> 00:02:09.039
+are approximate despite the misleading
+
+00:02:09.039 --> 00:02:11.280
+these specific time stamps so please
+
+00:02:11.280 --> 00:02:13.760
+check back in on the Emacs comp channel
+
+00:02:13.760 --> 00:02:14.800
+or
+
+00:02:14.800 --> 00:02:16.160
+or keep checking the schedule throughout
+
+00:02:16.160 --> 00:02:18.400
+the day as things things get updated
+
+00:02:18.400 --> 00:02:20.400
+we'll start off with some user stories
+
+00:02:20.400 --> 00:02:22.000
+and uh and then we'll dive
+
+00:02:22.000 --> 00:02:24.400
+right into how Emacs can be used for
+
+00:02:24.400 --> 00:02:26.080
+lots of different things
+
+00:02:26.080 --> 00:02:28.000
+uh emax configuration of course is a
+
+00:02:28.000 --> 00:02:29.840
+huge part of using Emacs like a tinker
+
+00:02:29.840 --> 00:02:31.120
+with it and so we've got a couple of
+
+00:02:31.120 --> 00:02:31.760
+talks
+
+00:02:31.760 --> 00:02:35.040
+about that in the afternoon it's a lot
+
+00:02:35.040 --> 00:02:36.160
+of org talks
+
+00:02:36.160 --> 00:02:39.280
+so if if you're into org
+
+00:02:39.280 --> 00:02:40.879
+the whole afternoon you've got these
+
+00:02:40.879 --> 00:02:43.040
+things to play with next day
+
+00:02:43.040 --> 00:02:44.800
+so sunday we have a lot of development
+
+00:02:44.800 --> 00:02:46.239
+oriented talks we have
+
+00:02:46.239 --> 00:02:48.400
+a development update from john weekly
+
+00:02:48.400 --> 00:02:50.480
+and a number of talks about Emacs list
+
+00:02:50.480 --> 00:02:52.640
+or packages that that help you with
+
+00:02:52.640 --> 00:02:54.160
+working with code
+
+00:02:54.160 --> 00:02:56.239
+you also have some talks that need to be
+
+00:02:56.239 --> 00:02:57.920
+moved to the second day for
+
+00:02:57.920 --> 00:03:00.000
+uh for scheduling reasons but overall
+
+00:03:00.000 --> 00:03:01.680
+the second day is mostly about
+
+00:03:01.680 --> 00:03:03.040
+development
+
+00:03:03.040 --> 00:03:05.599
+no matter what uh what uh you're
+
+00:03:05.599 --> 00:03:06.879
+interested in I hope you'll find
+
+00:03:06.879 --> 00:03:07.360
+something
+
+00:03:07.360 --> 00:03:11.760
+in the schedule for you
+
+00:03:11.760 --> 00:03:13.760
+and then how do you actually participate
+
+00:03:13.760 --> 00:03:15.200
+how do you actually watch and
+
+00:03:15.200 --> 00:03:16.720
+ask questions and all of that let's turn
+
+00:03:16.720 --> 00:03:18.319
+it over to leo
+
+00:03:18.319 --> 00:03:19.920
+sure so hi there everyone it's a
+
+00:03:19.920 --> 00:03:21.280
+pleasure to meet you all I'm really
+
+00:03:21.280 --> 00:03:23.040
+happy to be part of the team this year
+
+00:03:23.040 --> 00:03:25.280
+so uh this year we've decided to change
+
+00:03:25.280 --> 00:03:26.159
+things a little
+
+00:03:26.159 --> 00:03:28.799
+uh compared to what we did last year so
+
+00:03:28.799 --> 00:03:29.440
+um
+
+00:03:29.440 --> 00:03:31.519
+everything is on the link that will
+
+00:03:31.519 --> 00:03:32.480
+pre-paste
+
+00:03:32.480 --> 00:03:34.400
+in the chat right now but to participate
+
+00:03:34.400 --> 00:03:36.560
+I suppose if you're hearing us right now
+
+00:03:36.560 --> 00:03:38.480
+you found the link to follow us which is
+
+00:03:38.480 --> 00:03:43.120
+very good so it's live.emacsconf.org
+
+00:03:43.120 --> 00:03:46.080
+for the questions uh we use a pad where
+
+00:03:46.080 --> 00:03:47.200
+you can both
+
+00:03:47.200 --> 00:03:48.959
+add your questions and if you feel like
+
+00:03:48.959 --> 00:03:50.480
+adding notes as well you know you are
+
+00:03:50.480 --> 00:03:51.920
+completely free to do so
+
+00:03:51.920 --> 00:03:54.480
+I believe you already have 42 people
+
+00:03:54.480 --> 00:03:56.319
+which are on there so
+
+00:03:56.319 --> 00:03:58.239
+if someone one of the other organizers
+
+00:03:58.239 --> 00:03:59.680
+could paste the link there that would be
+
+00:03:59.680 --> 00:04:00.799
+splendid
+
+00:04:00.799 --> 00:04:02.959
+uh for chatting with us or with the
+
+00:04:02.959 --> 00:04:04.640
+other people attending the conference
+
+00:04:04.640 --> 00:04:07.920
+we are using isc and there are three
+
+00:04:07.920 --> 00:04:09.599
+channels that you need to pay attention
+
+00:04:09.599 --> 00:04:10.959
+to the first one
+
+00:04:10.959 --> 00:04:13.120
+is #emacsconf where the general
+
+00:04:13.120 --> 00:04:14.239
+discussion will be
+
+00:04:14.239 --> 00:04:16.560
+happening so if you have any reactions
+
+00:04:16.560 --> 00:04:18.000
+to what you're hearing if you are
+
+00:04:18.000 --> 00:04:19.199
+excited about
+
+00:04:19.199 --> 00:04:20.400
+the new things you've discovered you
+
+00:04:20.400 --> 00:04:22.400
+know that's the channel to be using
+
+00:04:22.400 --> 00:04:25.440
+we also have #emacsconf-accessible
+
+00:04:25.440 --> 00:04:27.520
+which is community-run and it's for
+
+00:04:27.520 --> 00:04:28.960
+people who
+
+00:04:28.960 --> 00:04:30.320
+you know if you want to volunteer and
+
+00:04:30.320 --> 00:04:32.400
+describe to uh
+
+00:04:32.400 --> 00:04:33.680
+people what is going on during the
+
+00:04:33.680 --> 00:04:34.960
+conference either because they can't
+
+00:04:34.960 --> 00:04:36.479
+hear because they can't see you know
+
+00:04:36.479 --> 00:04:38.240
+feel free to do so that would be a nice
+
+00:04:38.240 --> 00:04:40.720
+help to us and for the speakers more
+
+00:04:40.720 --> 00:04:42.960
+specifically if you have
+
+00:04:42.960 --> 00:04:44.800
+any problem whatsoever or if you need to
+
+00:04:44.800 --> 00:04:46.320
+check something with us
+
+00:04:46.320 --> 00:04:49.680
+we will be in iEmacsConff.org and
+
+00:04:49.680 --> 00:04:51.759
+feel free to message us there and we'll
+
+00:04:51.759 --> 00:04:54.000
+try to take care of your problem as soon
+
+00:04:54.000 --> 00:04:55.360
+as possible
+
+00:04:55.360 --> 00:04:58.160
+we also have another thing this year so
+
+00:04:58.160 --> 00:04:59.120
+as we will be
+
+00:04:59.120 --> 00:05:02.160
+having talks one after the other if you
+
+00:05:02.160 --> 00:05:03.520
+happen to be
+
+00:05:03.520 --> 00:05:05.120
+if you want to continue the discussion
+
+00:05:05.120 --> 00:05:07.840
+basically we invite you to use
+
+00:05:07.840 --> 00:05:09.360
+jitsi to be able to continue the
+
+00:05:09.360 --> 00:05:11.280
+discussion either with the speaker if
+
+00:05:11.280 --> 00:05:12.720
+the speaker is willing to do so
+
+00:05:12.720 --> 00:05:14.400
+or just with the community of users and
+
+00:05:14.400 --> 00:05:15.759
+for that will leave you
+
+00:05:15.759 --> 00:05:18.880
+organize yourself on isc okay I believe
+
+00:05:18.880 --> 00:05:19.520
+that's me
+
+00:05:19.520 --> 00:05:23.360
+uh should I hand you back the
+
+00:05:23.360 --> 00:05:25.759
+uh speech I can't find a way to say this
+
+00:05:25.759 --> 00:05:26.960
+in english so
+
+00:05:26.960 --> 00:05:30.000
+just say yeah I mean go go take it away
+
+00:05:30.000 --> 00:05:33.120
+sure thank you okay sure
+
+00:05:33.120 --> 00:05:36.240
+thank you um so first off let me address
+
+00:05:36.240 --> 00:05:37.039
+this um
+
+00:05:37.039 --> 00:05:39.600
+the webcam placement on this laptop is
+
+00:05:39.600 --> 00:05:40.400
+very weird
+
+00:05:40.400 --> 00:05:43.039
+it's right at the bottom and if you see
+
+00:05:43.039 --> 00:05:44.800
+me looking up like this I'm actually
+
+00:05:44.800 --> 00:05:45.600
+looking at the
+
+00:05:45.600 --> 00:05:47.759
+um my second monitor which has the
+
+00:05:47.759 --> 00:05:48.720
+stream
+
+00:05:48.720 --> 00:05:52.800
+um so yeah sorry about that um
+
+00:05:52.800 --> 00:05:55.600
+but yeah so we have a mailing list um
+
+00:05:55.600 --> 00:05:56.720
+which of course
+
+00:05:56.720 --> 00:05:58.400
+isn't going to be super active at this
+
+00:05:58.400 --> 00:06:00.639
+very moment because everyone's watching
+
+00:06:00.639 --> 00:06:03.280
+but before and after the conference um
+
+00:06:03.280 --> 00:06:03.680
+you know
+
+00:06:03.680 --> 00:06:05.600
+please feel free to subscribe to uh
+
+00:06:05.600 --> 00:06:07.520
+emacsconf-discuss
+
+00:06:07.520 --> 00:06:10.240
+um for various updates and posts about
+
+00:06:10.240 --> 00:06:11.199
+the conference
+
+00:06:11.199 --> 00:06:14.240
+um follow-ups um like announcements for
+
+00:06:14.240 --> 00:06:15.280
+example when we
+
+00:06:15.280 --> 00:06:16.800
+put out the videos after the conference
+
+00:06:16.800 --> 00:06:18.160
+we will make an announcement on that
+
+00:06:18.160 --> 00:06:20.240
+list
+
+00:06:20.240 --> 00:06:24.560
+and next up we have conduct guidelines
+
+00:06:24.560 --> 00:06:28.240
+which are a series of
+
+00:06:28.240 --> 00:06:30.240
+basically guidelines that we would very
+
+00:06:30.240 --> 00:06:32.479
+much appreciate everyone
+
+00:06:32.479 --> 00:06:34.720
+participating in the conference abide by
+
+00:06:34.720 --> 00:06:36.240
+and um
+
+00:06:36.240 --> 00:06:38.240
+to to help make you know the event a
+
+00:06:38.240 --> 00:06:40.000
+great experience for everyone
+
+00:06:40.000 --> 00:06:43.120
+um yeah I think that's about it
+
+00:06:43.120 --> 00:06:48.000
+do you guys have anything else to add
+
+00:06:48.000 --> 00:06:51.440
+gonna get so good alrighty um
+
+00:06:51.440 --> 00:06:54.479
+so if you're just joining us once again
+
+00:06:54.479 --> 00:06:57.840
+hello and welcome to EmacsConf 2020.
+
+00:06:57.840 --> 00:07:00.960
+um I guess we'll go ahead and uh start
+
+00:07:00.960 --> 00:07:01.599
+with
+
+00:07:01.599 --> 00:07:05.840
+queueing up the talks
diff --git a/2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.vtt b/2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.vtt
index a591af7d..2f1b1ad1 100644
--- a/2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.vtt
+++ b/2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.vtt
@@ -4,7 +4,7 @@ WEBVTT
(Amin: Alrighty, Leo Vivier, take it away.)
00:00:03.760 --> 00:00:05.839
-Okay, well, thank you, Amin. So you've
+Okay, well, thank you. I'm in. So you've
00:00:05.839 --> 00:00:06.879
just had a
diff --git a/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula-autogen.vtt b/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula-autogen.vtt
new file mode 100644
index 00000000..9cbec458
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula-autogen.vtt
@@ -0,0 +1,361 @@
+WEBVTT
+
+00:00:00.080 --> 00:00:01.680
+for the list of questions in whatever
+
+00:00:01.680 --> 00:00:03.520
+order you like
+
+00:00:03.520 --> 00:00:06.160
+okay so I see what package is used um
+
+00:00:06.160 --> 00:00:08.000
+probably cemex mode
+
+00:00:08.000 --> 00:00:10.400
+um right so the main package that was
+
+00:00:10.400 --> 00:00:11.360
+being demoed
+
+00:00:11.360 --> 00:00:14.480
+um that is not yet on melpa in fact I
+
+00:00:14.480 --> 00:00:16.720
+haven't even decided on a name for it
+
+00:00:16.720 --> 00:00:19.359
+um I've alternately alternately called
+
+00:00:19.359 --> 00:00:22.080
+it epistemic mode I've called it
+
+00:00:22.080 --> 00:00:26.000
+um england I called it uh
+
+00:00:26.000 --> 00:00:28.560
+all kinds of things but at the moment
+
+00:00:28.560 --> 00:00:30.240
+you can find it on my github there's a
+
+00:00:30.240 --> 00:00:31.439
+link
+
+00:00:31.439 --> 00:00:32.960
+in the presentation itself if you go to
+
+00:00:32.960 --> 00:00:35.600
+github slash account about
+
+00:00:35.600 --> 00:00:38.879
+um the package there it's currently
+
+00:00:38.879 --> 00:00:39.840
+named indra
+
+00:00:39.840 --> 00:00:42.879
+I'm not sure um
+
+00:00:42.879 --> 00:00:46.800
+packages actually yes the second one is
+
+00:00:46.800 --> 00:00:49.920
+red that was the name that I selected um
+
+00:00:49.920 --> 00:00:53.280
+last night um and that's because it
+
+00:00:53.280 --> 00:00:53.920
+might that
+
+00:00:53.920 --> 00:00:55.760
+there's a concept in tibetan buddhism
+
+00:00:55.760 --> 00:00:57.520
+that seems like it might have something
+
+00:00:57.520 --> 00:00:58.480
+to do with
+
+00:00:58.480 --> 00:00:59.840
+the kinds of concepts we're talking
+
+00:00:59.840 --> 00:01:01.600
+about with this package so I just
+
+00:01:01.600 --> 00:01:04.000
+thought it would be a good name for it
+
+00:01:04.000 --> 00:01:05.760
+so you can look up that concept
+
+00:01:05.760 --> 00:01:09.920
+and get a sense of it on wikipedia
+
+00:01:09.920 --> 00:01:13.119
+next question is how to deal with dwarak
+
+00:01:13.119 --> 00:01:15.759
+dwarjak or however that's pronounced
+
+00:01:15.759 --> 00:01:16.960
+this is always bug me
+
+00:01:16.960 --> 00:01:20.400
+is there an x-mod map mode so the thing
+
+00:01:20.400 --> 00:01:22.400
+with this is it's kind of surprising but
+
+00:01:22.400 --> 00:01:23.360
+although vim
+
+00:01:23.360 --> 00:01:26.000
+was originally developed um you know
+
+00:01:26.000 --> 00:01:27.200
+with the idea of
+
+00:01:27.200 --> 00:01:29.520
+the key bindings being on the home rule
+
+00:01:29.520 --> 00:01:32.000
+it turns out that that is actually not a
+
+00:01:32.000 --> 00:01:33.119
+major aspect
+
+00:01:33.119 --> 00:01:36.400
+of the vim editing experience so
+
+00:01:36.400 --> 00:01:38.560
+people who use the dvorak layout
+
+00:01:38.560 --> 00:01:40.720
+actually end up using the same keys as
+
+00:01:40.720 --> 00:01:42.640
+they do on the normal qwerty layout so
+
+00:01:42.640 --> 00:01:44.720
+they don't remap anything
+
+00:01:44.720 --> 00:01:48.159
+because the uh the the sort of
+
+00:01:48.159 --> 00:01:51.040
+the power that vim or the the
+
+00:01:51.040 --> 00:01:52.240
+flexibility the
+
+00:01:52.240 --> 00:01:55.600
+spiral that bim enables on qwerty layout
+
+00:01:55.600 --> 00:01:56.880
+keyboards is exactly
+
+00:01:56.880 --> 00:01:58.719
+preserved even on a door jack keyboard
+
+00:01:58.719 --> 00:01:59.920
+even though you your
+
+00:01:59.920 --> 00:02:01.920
+fingers are not in the same positions
+
+00:02:01.920 --> 00:02:04.399
+it's not a big deal actually
+
+00:02:04.399 --> 00:02:09.119
+um and then I mostly use default model
+
+00:02:09.119 --> 00:02:10.879
+provided by vanilla Emacs and work and
+
+00:02:10.879 --> 00:02:12.319
+org mode for text editing can you give
+
+00:02:12.319 --> 00:02:13.840
+me some examples
+
+00:02:13.840 --> 00:02:15.920
+of how the user can use the concept of
+
+00:02:15.920 --> 00:02:17.280
+mode mode
+
+00:02:17.280 --> 00:02:20.840
+to do some interesting
+
+00:02:20.840 --> 00:02:24.640
+um so probably the main thing would be
+
+00:02:24.640 --> 00:02:25.120
+the
+
+00:02:25.120 --> 00:02:27.920
+the keystrokes would be less uh
+
+00:02:27.920 --> 00:02:28.959
+contrived
+
+00:02:28.959 --> 00:02:32.080
+so they the the fewer modes you have
+
+00:02:32.080 --> 00:02:36.560
+the more modifiers you need
+
+00:02:36.560 --> 00:02:39.840
+in order to um do whatever it is that
+
+00:02:39.840 --> 00:02:41.280
+you're trying to do because you've got
+
+00:02:41.280 --> 00:02:44.800
+essentially with a max model you've got
+
+00:02:44.800 --> 00:02:48.080
+a completely flat
+
+00:02:48.080 --> 00:02:50.959
+keyboard structure and so all of the
+
+00:02:50.959 --> 00:02:52.160
+different things that you might
+
+00:02:52.160 --> 00:02:55.680
+want to express are all mapped to a flat
+
+00:02:55.680 --> 00:02:58.720
+keyboard uh set of keys
+
+00:02:58.720 --> 00:03:02.840
+so with um with this kind of
+
+00:03:02.840 --> 00:03:06.400
+modal structure the more modes you have
+
+00:03:06.400 --> 00:03:09.200
+the more the individual keystrokes
+
+00:03:09.200 --> 00:03:10.400
+become
+
+00:03:10.400 --> 00:03:13.200
+shorter and shorter so that could be one
+
+00:03:13.200 --> 00:03:14.959
+benefit that would be provided
+
+00:03:14.959 --> 00:03:17.519
+with many modes your keystrokes would
+
+00:03:17.519 --> 00:03:18.000
+generally
+
+00:03:18.000 --> 00:03:20.080
+be a single keystroke long for even
+
+00:03:20.080 --> 00:03:22.080
+relatively complex tasks
+
+00:03:22.080 --> 00:03:24.159
+because you're setting the context
+
+00:03:24.159 --> 00:03:25.440
+beforehand
+
+00:03:25.440 --> 00:03:27.200
+so you already say oh I'm going to be
+
+00:03:27.200 --> 00:03:30.840
+talking about this org buffer
+
+00:03:30.840 --> 00:03:33.440
+agenda and then
+
+00:03:33.440 --> 00:03:36.319
+um the all the keystrokes that you do at
+
+00:03:36.319 --> 00:03:39.599
+that point would be in relation to that
+
+00:03:39.599 --> 00:03:42.159
+um okay I think we have time for like
+
+00:03:42.159 --> 00:03:44.080
+one more short question
+
+00:03:44.080 --> 00:03:46.879
+one more short question okay let's see
+
+00:03:46.879 --> 00:03:48.879
+how do new modes come into existence you
+
+00:03:48.879 --> 00:03:50.400
+can make them yourself
+
+00:03:50.400 --> 00:03:53.040
+um and you can specify them in Emacs
+
+00:03:53.040 --> 00:03:53.760
+lisp
+
+00:03:53.760 --> 00:03:56.159
+if you like but there's also simple you
+
+00:03:56.159 --> 00:03:59.040
+can also do it visually as we did
+
+00:03:59.040 --> 00:04:02.720
+um but the yeah defining them
+
+00:04:02.720 --> 00:04:04.799
+is essentially built on top of hydra but
+
+00:04:04.799 --> 00:04:07.519
+it could also be built on top of evil or
+
+00:04:07.519 --> 00:04:09.120
+any other modal interface provider
+
+00:04:09.120 --> 00:04:12.840
+there's an abstraction layer
+
+00:04:12.840 --> 00:04:15.920
+okay thank you so much for your talk and
+
+00:04:15.920 --> 00:04:17.919
+for the live q a
+
+00:04:17.919 --> 00:04:21.440
+sure thank you yes feel free to um take
+
+00:04:21.440 --> 00:04:22.880
+up the rest of the questions either via
+
+00:04:22.880 --> 00:04:23.759
+irc or
+
+00:04:23.759 --> 00:04:25.680
+on the pad on on your own time off the
+
+00:04:25.680 --> 00:04:26.960
+stream
+
+00:04:26.960 --> 00:04:28.639
+perfect yeah I'll go ahead and put in
+
+00:04:28.639 --> 00:04:30.000
+some answers there
+
+00:04:30.000 --> 00:04:32.240
+awesome thank you all right thank you
+
+00:04:32.240 --> 00:04:33.120
+have a good one
+
+00:04:33.120 --> 00:04:36.880
+thanks you too
diff --git a/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula-autogen.vtt b/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula-autogen.vtt
new file mode 100644
index 00000000..e4508034
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula-autogen.vtt
@@ -0,0 +1,1336 @@
+WEBVTT
+
+00:00:02.960 --> 00:00:04.960
+far away in the heavenly abode of the
+
+00:00:04.960 --> 00:00:06.560
+great god indra
+
+00:00:06.560 --> 00:00:08.320
+there is a wonderful net which has been
+
+00:00:08.320 --> 00:00:10.160
+hung by some cunning artificer
+
+00:00:10.160 --> 00:00:12.080
+in such a manner that it stretches out
+
+00:00:12.080 --> 00:00:14.320
+infinitely in all directions
+
+00:00:14.320 --> 00:00:15.920
+in accordance with the extravagant
+
+00:00:15.920 --> 00:00:18.240
+tastes of deities the artificer has hung
+
+00:00:18.240 --> 00:00:20.960
+a single glittering jewel in each eye of
+
+00:00:20.960 --> 00:00:22.080
+the net
+
+00:00:22.080 --> 00:00:24.000
+and since the net itself is infinite the
+
+00:00:24.000 --> 00:00:26.480
+jewels are infinite in number
+
+00:00:26.480 --> 00:00:28.400
+there hang the jewels glittering like
+
+00:00:28.400 --> 00:00:30.480
+stars in the first magnitude
+
+00:00:30.480 --> 00:00:33.440
+a wonderful sight to behold were we to
+
+00:00:33.440 --> 00:00:34.800
+select one of these jewels for
+
+00:00:34.800 --> 00:00:35.680
+inspection
+
+00:00:35.680 --> 00:00:37.760
+we would discover that in its polished
+
+00:00:37.760 --> 00:00:39.520
+surface there are reflected
+
+00:00:39.520 --> 00:00:41.920
+all the other jewels in the net infinite
+
+00:00:41.920 --> 00:00:43.360
+in number
+
+00:00:43.360 --> 00:00:45.600
+if we look still more closely we would
+
+00:00:45.600 --> 00:00:47.840
+see that each of the jewels reflected in
+
+00:00:47.840 --> 00:00:48.960
+this one jewel
+
+00:00:48.960 --> 00:00:52.239
+reflects all the others this is the
+
+00:00:52.239 --> 00:00:54.000
+metaphor of indra's net
+
+00:00:54.000 --> 00:00:56.840
+which is told in some schools of
+
+00:00:56.840 --> 00:00:59.359
+philosophy let's keep this metaphor in
+
+00:00:59.359 --> 00:01:00.160
+mind
+
+00:01:00.160 --> 00:01:01.920
+because it'll help us understand the
+
+00:01:01.920 --> 00:01:03.760
+Emacs extension that we're about to
+
+00:01:03.760 --> 00:01:06.960
+discuss
+
+00:01:06.960 --> 00:01:10.080
+so in editing text there's two
+
+00:01:10.080 --> 00:01:13.200
+main paradigms one
+
+00:01:13.200 --> 00:01:16.880
+is um editing at the ground level
+
+00:01:16.880 --> 00:01:19.439
+where the characters that we type
+
+00:01:19.439 --> 00:01:22.159
+actually appear on the screen
+
+00:01:22.159 --> 00:01:25.960
+the changes we make actually occur
+
+00:01:25.960 --> 00:01:28.479
+[Music]
+
+00:01:28.479 --> 00:01:30.720
+the other editing paradigm is where we
+
+00:01:30.720 --> 00:01:33.439
+escape to a higher level
+
+00:01:33.439 --> 00:01:36.000
+and now the characters that we type are
+
+00:01:36.000 --> 00:01:36.479
+not
+
+00:01:36.479 --> 00:01:39.040
+they don't actually appear on the screen
+
+00:01:39.040 --> 00:01:41.600
+because we're not at the ground level
+
+00:01:41.600 --> 00:01:44.799
+with the text we are at a higher level
+
+00:01:44.799 --> 00:01:48.479
+looking down at the text
+
+00:01:48.479 --> 00:01:51.920
+and regarding the text referring to
+
+00:01:51.920 --> 00:01:54.640
+this world of text in terms of a
+
+00:01:54.640 --> 00:01:56.159
+language
+
+00:01:56.159 --> 00:01:57.920
+for instance we could describe this
+
+00:01:57.920 --> 00:02:00.640
+world as having words and paragraphs and
+
+00:02:00.640 --> 00:02:02.079
+sentences and
+
+00:02:02.079 --> 00:02:04.640
+lines and so on and we could reason
+
+00:02:04.640 --> 00:02:05.360
+about this
+
+00:02:05.360 --> 00:02:08.800
+text in terms of these
+
+00:02:08.800 --> 00:02:11.440
+textual entities and this textual
+
+00:02:11.440 --> 00:02:13.120
+language
+
+00:02:13.120 --> 00:02:15.920
+this is the second paradigm of text
+
+00:02:15.920 --> 00:02:18.640
+editing
+
+00:02:18.640 --> 00:02:22.800
+and when we're in the second paradigm
+
+00:02:22.800 --> 00:02:24.800
+there is a way to go down to ground
+
+00:02:24.800 --> 00:02:26.480
+level you hit enter
+
+00:02:26.480 --> 00:02:28.160
+now or we'll hit enter to go down to the
+
+00:02:28.160 --> 00:02:30.480
+ground level and you can hit escape
+
+00:02:30.480 --> 00:02:33.200
+to go back out to the referential level
+
+00:02:33.200 --> 00:02:35.200
+enter to go down to ground level
+
+00:02:35.200 --> 00:02:37.280
+and escape to go up to the referential
+
+00:02:37.280 --> 00:02:40.160
+level
+
+00:02:40.160 --> 00:02:44.879
+now in vim the nouns
+
+00:02:44.879 --> 00:02:48.239
+in this world of text all
+
+00:02:48.239 --> 00:02:50.959
+share the same referential plane which
+
+00:02:50.959 --> 00:02:51.519
+we call
+
+00:02:51.519 --> 00:02:54.319
+normal mode so in normal mode all of the
+
+00:02:54.319 --> 00:02:54.959
+nouns
+
+00:02:54.959 --> 00:02:57.360
+of the world of text are available
+
+00:02:57.360 --> 00:02:58.959
+whether it's words or sentences or
+
+00:02:58.959 --> 00:03:00.959
+paragraphs
+
+00:03:00.959 --> 00:03:04.400
+and they all share this same
+
+00:03:04.400 --> 00:03:08.319
+referential plane and there's uh
+
+00:03:08.319 --> 00:03:11.120
+they sort of compete for space on the
+
+00:03:11.120 --> 00:03:12.720
+keyboard
+
+00:03:12.720 --> 00:03:15.760
+um so an alternative uh
+
+00:03:15.760 --> 00:03:17.680
+way to structure these modes is instead
+
+00:03:17.680 --> 00:03:19.280
+of having a single mode where all the
+
+00:03:19.280 --> 00:03:21.840
+nouns coexist
+
+00:03:21.840 --> 00:03:24.959
+peacefully or otherwise you instead
+
+00:03:24.959 --> 00:03:30.400
+have a dedicated mode for every noun
+
+00:03:30.400 --> 00:03:33.040
+so in that case what happens is because
+
+00:03:33.040 --> 00:03:35.440
+your modal spaces are now much smaller
+
+00:03:35.440 --> 00:03:37.280
+you're just talking about words or
+
+00:03:37.280 --> 00:03:38.720
+paragraphs or
+
+00:03:38.720 --> 00:03:42.560
+lines or something the keys that you use
+
+00:03:42.560 --> 00:03:45.760
+can be much more targeted
+
+00:03:45.760 --> 00:03:48.560
+and you can use the same keystrokes in
+
+00:03:48.560 --> 00:03:50.400
+in all of your modes and they would have
+
+00:03:50.400 --> 00:03:52.000
+the same ideas behind them but
+
+00:03:52.000 --> 00:03:53.280
+they would have different effects
+
+00:03:53.280 --> 00:03:55.519
+depending on which context you're using
+
+00:03:55.519 --> 00:03:57.519
+so it's the same keystrokes different
+
+00:03:57.519 --> 00:03:59.120
+contexts
+
+00:03:59.120 --> 00:04:01.360
+and the advantage of that is it's often
+
+00:04:01.360 --> 00:04:02.480
+easier
+
+00:04:02.480 --> 00:04:05.519
+to change context than it is to
+
+00:04:05.519 --> 00:04:09.040
+learn new key bindings so let's see
+
+00:04:09.040 --> 00:04:12.080
+an example of how that works we go into
+
+00:04:12.080 --> 00:04:13.680
+character mode and if you look at the
+
+00:04:13.680 --> 00:04:14.000
+mode
+
+00:04:14.000 --> 00:04:15.439
+line at the bottom of the screen there
+
+00:04:15.439 --> 00:04:18.720
+you'll see that we're in character mode
+
+00:04:18.720 --> 00:04:21.519
+and now when we move up down left and
+
+00:04:21.519 --> 00:04:23.919
+right we're moving by character
+
+00:04:23.919 --> 00:04:28.479
+we can also transform the text and
+
+00:04:28.479 --> 00:04:30.240
+the transformations occur in terms of
+
+00:04:30.240 --> 00:04:32.400
+character
+
+00:04:32.400 --> 00:04:34.320
+you can also go into word mode and in
+
+00:04:34.320 --> 00:04:35.520
+word mode
+
+00:04:35.520 --> 00:04:38.560
+the transformations that you do are on
+
+00:04:38.560 --> 00:04:40.000
+words
+
+00:04:40.000 --> 00:04:42.320
+and you try you your movement is also in
+
+00:04:42.320 --> 00:04:43.440
+terms of words
+
+00:04:43.440 --> 00:04:45.600
+so that's the level of granularity that
+
+00:04:45.600 --> 00:04:46.560
+you have
+
+00:04:46.560 --> 00:04:49.520
+you could also go to line mode and when
+
+00:04:49.520 --> 00:04:50.720
+you're in line mode
+
+00:04:50.720 --> 00:04:53.759
+you go up and down by line and you can
+
+00:04:53.759 --> 00:04:54.240
+move
+
+00:04:54.240 --> 00:04:57.520
+lines up and down left and right and so
+
+00:04:57.520 --> 00:04:59.120
+on
+
+00:04:59.120 --> 00:05:00.880
+and the transformations you do are in
+
+00:05:00.880 --> 00:05:02.800
+terms of lines
+
+00:05:02.800 --> 00:05:08.400
+you could also go to window mode where
+
+00:05:08.400 --> 00:05:10.639
+now the objects that you're referring to
+
+00:05:10.639 --> 00:05:12.400
+are windows and you can
+
+00:05:12.400 --> 00:05:15.759
+move spatially amongst the windows or
+
+00:05:15.759 --> 00:05:17.520
+make do transformations on the windows
+
+00:05:17.520 --> 00:05:20.850
+using the same keystrokes
+
+00:05:20.850 --> 00:05:22.840
+[Music]
+
+00:05:22.840 --> 00:05:25.360
+um
+
+00:05:25.360 --> 00:05:28.720
+so let's go to
+
+00:05:28.720 --> 00:05:32.800
+um right and so um the one of the things
+
+00:05:32.800 --> 00:05:35.280
+the the principles that play here is
+
+00:05:35.280 --> 00:05:36.880
+something called the rumpelstiltskin
+
+00:05:36.880 --> 00:05:38.000
+principle which is something
+
+00:05:38.000 --> 00:05:40.720
+that's known in computer science which
+
+00:05:40.720 --> 00:05:42.320
+is that if you can name something then
+
+00:05:42.320 --> 00:05:43.759
+you have that you have power
+
+00:05:43.759 --> 00:05:46.720
+then you have power over it so this is
+
+00:05:46.720 --> 00:05:48.560
+kind of an adaptation of that principle
+
+00:05:48.560 --> 00:05:50.479
+which says that if you can
+
+00:05:50.479 --> 00:05:52.320
+name something and if you can talk about
+
+00:05:52.320 --> 00:05:54.000
+it then it's a noun
+
+00:05:54.000 --> 00:05:55.360
+[Music]
+
+00:05:55.360 --> 00:05:56.960
+in your editing language and if it's a
+
+00:05:56.960 --> 00:05:58.960
+noun then it has
+
+00:05:58.960 --> 00:06:01.520
+it's a mode so if we can talk about it
+
+00:06:01.520 --> 00:06:02.319
+it's a noun
+
+00:06:02.319 --> 00:06:05.039
+if it's a noun then it's a mode and one
+
+00:06:05.039 --> 00:06:06.479
+of the things we've been talking a lot
+
+00:06:06.479 --> 00:06:07.039
+about
+
+00:06:07.039 --> 00:06:10.800
+is modes so in fact
+
+00:06:10.800 --> 00:06:14.240
+uh by this principle modes also
+
+00:06:14.240 --> 00:06:17.280
+should be a mode
+
+00:06:17.280 --> 00:06:19.039
+you should have a mode that can reason
+
+00:06:19.039 --> 00:06:21.120
+in terms of modes as objects just like
+
+00:06:21.120 --> 00:06:22.080
+you have
+
+00:06:22.080 --> 00:06:23.759
+modes where you can reason in terms of
+
+00:06:23.759 --> 00:06:26.560
+words or lines as objects
+
+00:06:26.560 --> 00:06:28.800
+and so let's do that let's go to mode
+
+00:06:28.800 --> 00:06:30.479
+mode
+
+00:06:30.479 --> 00:06:34.000
+when you go to mode mode you see that uh
+
+00:06:34.000 --> 00:06:36.080
+the objects that are depicted here are
+
+00:06:36.080 --> 00:06:37.919
+the modes that are
+
+00:06:37.919 --> 00:06:40.960
+that are present in the buffer
+
+00:06:40.960 --> 00:06:44.880
+which we knew about um because the
+
+00:06:44.880 --> 00:06:46.400
+style of editing that we had in this
+
+00:06:46.400 --> 00:06:48.720
+buffer was the vim style of editing
+
+00:06:48.720 --> 00:06:50.479
+where there's an insert mode at the
+
+00:06:50.479 --> 00:06:52.400
+ground level and a normal mode that you
+
+00:06:52.400 --> 00:06:53.039
+can escape
+
+00:06:53.039 --> 00:06:57.280
+to you insert enter the ground level
+
+00:06:57.280 --> 00:07:00.479
+enter to the insert mode and escape to
+
+00:07:00.479 --> 00:07:02.880
+normal mode and when you look at the
+
+00:07:02.880 --> 00:07:03.680
+mode mode
+
+00:07:03.680 --> 00:07:06.160
+representation you see that in fact that
+
+00:07:06.160 --> 00:07:10.479
+is the structure that's depicted
+
+00:07:10.479 --> 00:07:12.720
+but in different situations you might
+
+00:07:12.720 --> 00:07:14.080
+find
+
+00:07:14.080 --> 00:07:16.080
+that you that these modes are not the
+
+00:07:16.080 --> 00:07:17.680
+ones that you want you want something
+
+00:07:17.680 --> 00:07:19.360
+more tailored for the specific
+
+00:07:19.360 --> 00:07:20.880
+application
+
+00:07:20.880 --> 00:07:23.050
+for instance if you're editing
+
+00:07:23.050 --> 00:07:24.240
+[Music]
+
+00:07:24.240 --> 00:07:27.360
+lisp code uh or or code in general but
+
+00:07:27.360 --> 00:07:30.880
+list code is a particular example
+
+00:07:30.880 --> 00:07:32.960
+you might want to take advantage of the
+
+00:07:32.960 --> 00:07:34.000
+structure of
+
+00:07:34.000 --> 00:07:37.599
+the code and for lisp code in particular
+
+00:07:37.599 --> 00:07:40.960
+we have a mode called symax mode
+
+00:07:40.960 --> 00:07:44.240
+which is able to reason
+
+00:07:44.240 --> 00:07:46.720
+about your code in terms of its tree
+
+00:07:46.720 --> 00:07:47.919
+structure
+
+00:07:47.919 --> 00:07:50.560
+so you can use the same keystrokes hkl
+
+00:07:50.560 --> 00:07:51.120
+goes
+
+00:07:51.120 --> 00:07:53.440
+left right up and down but you also have
+
+00:07:53.440 --> 00:07:54.960
+other keystrokes that are more
+
+00:07:54.960 --> 00:07:58.080
+specialized to the application
+
+00:07:58.080 --> 00:08:01.520
+and you can run the code and
+
+00:08:01.520 --> 00:08:06.960
+we'll see that happen here in a minute
+
+00:08:06.960 --> 00:08:10.080
+and you can make changes to it really
+
+00:08:10.080 --> 00:08:12.240
+quickly
+
+00:08:12.240 --> 00:08:18.000
+and see the effects of those changes
+
+00:08:18.000 --> 00:08:19.440
+and you're doing this all in a mode
+
+00:08:19.440 --> 00:08:21.360
+that's convenient for
+
+00:08:21.360 --> 00:08:23.199
+this particular application which is
+
+00:08:23.199 --> 00:08:25.039
+editing lisp code
+
+00:08:25.039 --> 00:08:28.960
+and that is in this case symmex mode
+
+00:08:28.960 --> 00:08:31.039
+so typically when you're editing code
+
+00:08:31.039 --> 00:08:32.640
+like this you'd want to be
+
+00:08:32.640 --> 00:08:34.800
+in insert mode actually typing out the
+
+00:08:34.800 --> 00:08:36.640
+code
+
+00:08:36.640 --> 00:08:38.320
+and then you'd want to escape to simex
+
+00:08:38.320 --> 00:08:40.959
+mode rather than normal mode
+
+00:08:40.959 --> 00:08:42.159
+and then you could escape again and
+
+00:08:42.159 --> 00:08:44.080
+you'd end up in normal mode
+
+00:08:44.080 --> 00:08:46.720
+so this if we go to mode mode we see is
+
+00:08:46.720 --> 00:08:48.000
+depicted
+
+00:08:48.000 --> 00:08:51.040
+as this tower where insert is at the
+
+00:08:51.040 --> 00:08:52.800
+bottom and normal is at the top but
+
+00:08:52.800 --> 00:08:54.800
+symmex mode is in between
+
+00:08:54.800 --> 00:08:57.200
+the two you could also change that if
+
+00:08:57.200 --> 00:08:58.800
+you like if you don't want cmx mode to
+
+00:08:58.800 --> 00:09:00.640
+be there you could just
+
+00:09:00.640 --> 00:09:03.760
+move it to the top and now you find some
+
+00:09:03.760 --> 00:09:05.600
+mixes at the top and you enter down to
+
+00:09:05.600 --> 00:09:06.160
+normal
+
+00:09:06.160 --> 00:09:07.600
+you can see it on the status bar at the
+
+00:09:07.600 --> 00:09:10.480
+bottom there enter to insert
+
+00:09:10.480 --> 00:09:13.839
+escape to normal escape to symmex and
+
+00:09:13.839 --> 00:09:16.480
+in fact you can even add more modes if
+
+00:09:16.480 --> 00:09:19.380
+you don't like the existing ones
+
+00:09:19.380 --> 00:09:21.519
+[Music]
+
+00:09:21.519 --> 00:09:23.839
+and now we have an additional mode here
+
+00:09:23.839 --> 00:09:25.440
+we have window mode it goes down to
+
+00:09:25.440 --> 00:09:27.519
+symmex goes down to normal
+
+00:09:27.519 --> 00:09:30.320
+enter the insert escape to normal escape
+
+00:09:30.320 --> 00:09:33.600
+to smx escape the window
+
+00:09:33.600 --> 00:09:37.600
+um so we've talked okay so another thing
+
+00:09:37.600 --> 00:09:41.760
+actually to note here is that in editing
+
+00:09:41.760 --> 00:09:45.360
+modes um
+
+00:09:45.360 --> 00:09:46.720
+if you look at the mode line at the
+
+00:09:46.720 --> 00:09:48.399
+bottom of the screen
+
+00:09:48.399 --> 00:09:50.640
+you'll see that we are currently in this
+
+00:09:50.640 --> 00:09:51.519
+buffer
+
+00:09:51.519 --> 00:09:54.560
+we are currently in line mode
+
+00:09:54.560 --> 00:09:57.600
+and I'm going to hit enter now and
+
+00:09:57.600 --> 00:09:58.720
+you'll see that when I hit
+
+00:09:58.720 --> 00:10:01.519
+enter nothing is happening it's still in
+
+00:10:01.519 --> 00:10:02.160
+line mode
+
+00:10:02.160 --> 00:10:05.120
+if you'd escape it's still in line mode
+
+00:10:05.120 --> 00:10:07.200
+and you can find out the reason for that
+
+00:10:07.200 --> 00:10:10.640
+by taking another meta jump out of this
+
+00:10:10.640 --> 00:10:12.800
+and you'll see that in fact the reason
+
+00:10:12.800 --> 00:10:15.279
+is that we're currently in line mode
+
+00:10:15.279 --> 00:10:17.360
+and line mode is the only one available
+
+00:10:17.360 --> 00:10:19.519
+in this tower
+
+00:10:19.519 --> 00:10:21.760
+for editing the modes that are in
+
+00:10:21.760 --> 00:10:24.880
+operation in your ground level
+
+00:10:24.880 --> 00:10:26.560
+and in fact line mode is all you need
+
+00:10:26.560 --> 00:10:28.320
+here because this is just
+
+00:10:28.320 --> 00:10:30.320
+uh the nature of how these modes are
+
+00:10:30.320 --> 00:10:32.079
+laid out is
+
+00:10:32.079 --> 00:10:35.040
+in in rows and so line mode is the most
+
+00:10:35.040 --> 00:10:36.399
+appropriate thing here
+
+00:10:36.399 --> 00:10:37.680
+but you could change it to something
+
+00:10:37.680 --> 00:10:39.740
+else if you like
+
+00:10:39.740 --> 00:10:40.959
+[Music]
+
+00:10:40.959 --> 00:10:44.160
+and then now we've seen two towers we've
+
+00:10:44.160 --> 00:10:44.560
+seen
+
+00:10:44.560 --> 00:10:48.079
+the vim tower and we've seen
+
+00:10:48.079 --> 00:10:53.680
+also the symex tower the the lisp tower
+
+00:10:53.680 --> 00:10:56.959
+and it turns out that because we've been
+
+00:10:56.959 --> 00:10:58.880
+talking about towers now
+
+00:10:58.880 --> 00:11:01.519
+by the rumpelstiltskin principle towers
+
+00:11:01.519 --> 00:11:02.800
+also
+
+00:11:02.800 --> 00:11:06.399
+um can be talked about
+
+00:11:06.399 --> 00:11:09.279
+and therefore they also are a mode so
+
+00:11:09.279 --> 00:11:11.200
+how do we go to tower mode
+
+00:11:11.200 --> 00:11:14.640
+and the way we go tower mode is we do
+
+00:11:14.640 --> 00:11:19.200
+we go in a slightly different direction
+
+00:11:19.200 --> 00:11:20.800
+and we find that we are now in tower
+
+00:11:20.800 --> 00:11:23.360
+mode
+
+00:11:23.360 --> 00:11:27.440
+and we see that there are many towers
+
+00:11:27.440 --> 00:11:29.279
+available so we're now
+
+00:11:29.279 --> 00:11:32.640
+we're we're seeing several possible
+
+00:11:32.640 --> 00:11:36.240
+towers that we have written
+
+00:11:36.240 --> 00:11:39.120
+um to be available and for use in
+
+00:11:39.120 --> 00:11:41.440
+different buffers and you can edit them
+
+00:11:41.440 --> 00:11:44.000
+on the fly for instance let's enter this
+
+00:11:44.000 --> 00:11:46.630
+tower
+
+00:11:46.630 --> 00:11:48.000
+[Music]
+
+00:11:48.000 --> 00:11:49.920
+and now you see that in the bottom of
+
+00:11:49.920 --> 00:11:51.519
+the in the mode line you see that we're
+
+00:11:51.519 --> 00:11:52.480
+going
+
+00:11:52.480 --> 00:11:54.240
+across all of these different modes that
+
+00:11:54.240 --> 00:11:56.480
+were in the tower
+
+00:11:56.480 --> 00:11:58.800
+and you could escape and you could even
+
+00:11:58.800 --> 00:12:00.399
+move things around you could put window
+
+00:12:00.399 --> 00:12:00.880
+mode
+
+00:12:00.880 --> 00:12:02.399
+all the way at the bottom right above
+
+00:12:02.399 --> 00:12:04.079
+insert mode
+
+00:12:04.079 --> 00:12:06.880
+let's see that happen there it is window
+
+00:12:06.880 --> 00:12:09.839
+is right above insert
+
+00:12:09.839 --> 00:12:13.040
+so on and the tower always reflects your
+
+00:12:13.040 --> 00:12:14.240
+current position
+
+00:12:14.240 --> 00:12:15.760
+so if you're in buffer mode here and you
+
+00:12:15.760 --> 00:12:17.600
+go down to line mode
+
+00:12:17.600 --> 00:12:19.120
+when you go back to mode mode you see
+
+00:12:19.120 --> 00:12:22.480
+that we are in line mode
+
+00:12:22.480 --> 00:12:24.000
+but in practice you wouldn't have a
+
+00:12:24.000 --> 00:12:26.160
+tower this elaborate because
+
+00:12:26.160 --> 00:12:28.959
+you'd rather have several smaller towers
+
+00:12:28.959 --> 00:12:29.440
+you
+
+00:12:29.440 --> 00:12:33.360
+enter that you alternate between
+
+00:12:33.360 --> 00:12:36.639
+um okay so one
+
+00:12:36.639 --> 00:12:39.839
+other thing of interest here is that
+
+00:12:39.839 --> 00:12:42.240
+when you're in tower mode
+
+00:12:42.240 --> 00:12:43.839
+if you look at the status line at the
+
+00:12:43.839 --> 00:12:45.920
+bottom there we are currently
+
+00:12:45.920 --> 00:12:49.200
+in buffer mode while we are in tower
+
+00:12:49.200 --> 00:12:49.839
+mode
+
+00:12:49.839 --> 00:12:51.600
+and tower mode actually isn't a mode
+
+00:12:51.600 --> 00:12:53.519
+really neither is mode mode they're
+
+00:12:53.519 --> 00:12:53.920
+really
+
+00:12:53.920 --> 00:12:58.000
+referential planes or meta planes
+
+00:12:58.000 --> 00:13:00.959
+um in any case you can see that we're in
+
+00:13:00.959 --> 00:13:03.120
+buffer mode and we can take a meta jump
+
+00:13:03.120 --> 00:13:04.560
+out of this to confirm
+
+00:13:04.560 --> 00:13:07.120
+that buffer mode is the only mode
+
+00:13:07.120 --> 00:13:08.000
+available
+
+00:13:08.000 --> 00:13:10.560
+when we're editing towers because that's
+
+00:13:10.560 --> 00:13:11.200
+the one
+
+00:13:11.200 --> 00:13:14.240
+we need given that our towers are
+
+00:13:14.240 --> 00:13:15.200
+represented
+
+00:13:15.200 --> 00:13:23.200
+in individual buffers
+
+00:13:23.200 --> 00:13:26.000
+right so let's uh let's see where we're
+
+00:13:26.000 --> 00:13:26.320
+at
+
+00:13:26.320 --> 00:13:28.240
+trump's still skin principle we talked
+
+00:13:28.240 --> 00:13:30.160
+about mode mode
+
+00:13:30.160 --> 00:13:32.240
+um we talked about the strange loop
+
+00:13:32.240 --> 00:13:33.920
+application of
+
+00:13:33.920 --> 00:13:37.820
+ground level modes in meta levels
+
+00:13:37.820 --> 00:13:39.600
+[Music]
+
+00:13:39.600 --> 00:13:42.240
+and yeah we saw the different towers and
+
+00:13:42.240 --> 00:13:43.199
+in fact
+
+00:13:43.199 --> 00:13:46.639
+you can we're currently in
+
+00:13:46.639 --> 00:13:50.720
+vim tower
+
+00:13:50.720 --> 00:13:53.120
+where you can go to Emacs tower and now
+
+00:13:53.120 --> 00:13:54.720
+with a single keystroke you can
+
+00:13:54.720 --> 00:13:55.760
+alternate
+
+00:13:55.760 --> 00:13:59.040
+between e-max
+
+00:13:59.040 --> 00:14:02.399
+and vim which are represented which are
+
+00:14:02.399 --> 00:14:05.519
+modeled as towers
+
+00:14:05.519 --> 00:14:09.279
+um
+
+00:14:09.279 --> 00:14:13.360
+okay so
+
+00:14:13.360 --> 00:14:15.360
+so there's uh the one thing that we've
+
+00:14:15.360 --> 00:14:17.040
+sort of alluded to is that there are two
+
+00:14:17.040 --> 00:14:18.160
+directions
+
+00:14:18.160 --> 00:14:20.480
+that you can travel in when you're going
+
+00:14:20.480 --> 00:14:22.399
+through this framework
+
+00:14:22.399 --> 00:14:25.120
+one lev one direction is uh and we'll
+
+00:14:25.120 --> 00:14:33.760
+visualize it with uh like so
+
+00:14:33.760 --> 00:14:35.120
+there's two directions you can travel
+
+00:14:35.120 --> 00:14:37.040
+and you can either go sideways or you
+
+00:14:37.040 --> 00:14:38.399
+can go up and down
+
+00:14:38.399 --> 00:14:40.399
+if you go sideways you're changing your
+
+00:14:40.399 --> 00:14:41.680
+perspective
+
+00:14:41.680 --> 00:14:45.440
+so normal mode word mode line mode
+
+00:14:45.440 --> 00:14:47.360
+window mode and so on are all different
+
+00:14:47.360 --> 00:14:49.120
+perspectives on your under on your
+
+00:14:49.120 --> 00:14:51.680
+ground editing experience
+
+00:14:51.680 --> 00:14:53.040
+and the other direction you can travel
+
+00:14:53.040 --> 00:14:55.519
+in is up or down which takes you
+
+00:14:55.519 --> 00:14:57.920
+through meta levels so you go from the
+
+00:14:57.920 --> 00:14:59.600
+ground level editing experience
+
+00:14:59.600 --> 00:15:01.920
+up to mode mode and then up to the tower
+
+00:15:01.920 --> 00:15:03.440
+plane and so on
+
+00:15:03.440 --> 00:15:07.040
+or uh yeah and so on
+
+00:15:07.040 --> 00:15:10.800
+um yeah so this all sounds
+
+00:15:10.800 --> 00:15:14.880
+very complex but the truth is
+
+00:15:14.880 --> 00:15:18.160
+it's not really that complicated
+
+00:15:18.160 --> 00:15:21.519
+even though it feels that way the reason
+
+00:15:21.519 --> 00:15:22.959
+it isn't that complicated
+
+00:15:22.959 --> 00:15:26.480
+is because no matter how many levels
+
+00:15:26.480 --> 00:15:28.800
+up or down you go and no matter where
+
+00:15:28.800 --> 00:15:30.160
+you are
+
+00:15:30.160 --> 00:15:32.399
+whether you're in at the ground level
+
+00:15:32.399 --> 00:15:34.079
+editing the actual text
+
+00:15:34.079 --> 00:15:36.000
+or whether you're at a meta level some
+
+00:15:36.000 --> 00:15:37.600
+unknown meta level and you don't know
+
+00:15:37.600 --> 00:15:39.279
+where you are
+
+00:15:39.279 --> 00:15:42.320
+no matter where you are the way in which
+
+00:15:42.320 --> 00:15:44.399
+you interact with it
+
+00:15:44.399 --> 00:15:47.519
+is the same at every level
+
+00:15:47.519 --> 00:15:52.000
+and that is the great power of um
+
+00:15:52.000 --> 00:15:55.440
+this approach is that
+
+00:15:55.440 --> 00:15:58.720
+all of the different levels um are the
+
+00:15:58.720 --> 00:16:00.880
+same
+
+00:16:00.880 --> 00:16:03.839
+and in fact the complexity of the whole
+
+00:16:03.839 --> 00:16:05.759
+is exactly identical to the
+
+00:16:05.759 --> 00:16:08.720
+complexity of each part so if you know
+
+00:16:08.720 --> 00:16:10.000
+how to edit words
+
+00:16:10.000 --> 00:16:12.959
+in the ground level buffer and you know
+
+00:16:12.959 --> 00:16:13.440
+how to move
+
+00:16:13.440 --> 00:16:15.839
+lines around using line mode then you
+
+00:16:15.839 --> 00:16:16.720
+know how to edit
+
+00:16:16.720 --> 00:16:19.519
+any aspect of your editing experience at
+
+00:16:19.519 --> 00:16:22.800
+any level
+
+00:16:22.800 --> 00:16:23.310
+so
+
+00:16:23.310 --> 00:16:26.240
+[Music]
+
+00:16:26.240 --> 00:16:30.079
+um
+
+00:16:30.079 --> 00:16:32.000
+so this is a pre-release demo this
+
+00:16:32.000 --> 00:16:33.839
+doesn't exist on melpa
+
+00:16:33.839 --> 00:16:36.880
+yet but you can follow updates um
+
+00:16:36.880 --> 00:16:40.079
+at this repo on github
+
+00:16:40.079 --> 00:16:44.079
+and if you can also be a beta tester or
+
+00:16:44.079 --> 00:16:45.199
+something like that if you like that
+
+00:16:45.199 --> 00:16:46.000
+would be very
+
+00:16:46.000 --> 00:16:49.199
+uh helpful and you can learn more about
+
+00:16:49.199 --> 00:16:50.560
+this at
+
+00:16:50.560 --> 00:16:53.920
+dream.org which is where I house
+
+00:16:53.920 --> 00:16:55.920
+the research that I work on and in
+
+00:16:55.920 --> 00:16:57.279
+particular
+
+00:16:57.279 --> 00:17:00.800
+the research on epistemic levels is what
+
+00:17:00.800 --> 00:17:03.600
+inspired this particular Emacs extension
+
+00:17:03.600 --> 00:17:06.480
+you can also learn about dialectical
+
+00:17:06.480 --> 00:17:08.480
+inheritance attribution which is the
+
+00:17:08.480 --> 00:17:10.880
+basis of
+
+00:17:10.880 --> 00:17:14.559
+a new economic system that could be fair
+
+00:17:14.559 --> 00:17:16.959
+and could lead to a prosperous and happy
+
+00:17:16.959 --> 00:17:19.439
+world
+
+00:17:19.439 --> 00:17:22.799
+and um yeah you can follow me on
+
+00:17:22.799 --> 00:17:26.319
+twitter at countwajoula and
+
+00:17:26.319 --> 00:17:31.919
+that's it thank you
diff --git a/2020/subtitles/emacsconf-2020--09-orgmode-your-life-in-plain-text--rainer-koenig-autogen.vtt b/2020/subtitles/emacsconf-2020--09-orgmode-your-life-in-plain-text--rainer-koenig-autogen.vtt
new file mode 100644
index 00000000..35ef9d1f
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--09-orgmode-your-life-in-plain-text--rainer-koenig-autogen.vtt
@@ -0,0 +1,454 @@
+WEBVTT
+
+00:00:02.480 --> 00:00:03.199
+so
+
+00:00:03.199 --> 00:00:06.240
+hi there this is reiner I have a 10
+
+00:00:06.240 --> 00:00:08.559
+minute time slot at the imax conf
+
+00:00:08.559 --> 00:00:11.759
+and I will show you a quick uh walk
+
+00:00:11.759 --> 00:00:13.519
+through my gtd
+
+00:00:13.519 --> 00:00:17.039
+system in order mode so
+
+00:00:17.039 --> 00:00:19.520
+let's start with capturing we want to
+
+00:00:19.520 --> 00:00:20.640
+capture
+
+00:00:20.640 --> 00:00:24.080
+what we do here so the idea
+
+00:00:24.080 --> 00:00:27.279
+is I press f6 and I say I want to make a
+
+00:00:27.279 --> 00:00:29.599
+small project because this video
+
+00:00:29.599 --> 00:00:33.120
+will be a small project so the thing is
+
+00:00:33.120 --> 00:00:35.120
+record a video
+
+00:00:35.120 --> 00:00:38.239
+for imax imx
+
+00:00:38.239 --> 00:00:42.000
+conf 2020
+
+00:00:42.000 --> 00:00:45.920
+video is recorded edited
+
+00:00:45.920 --> 00:00:49.360
+and uploaded and we can also
+
+00:00:49.360 --> 00:00:52.160
+set the timeline because we want to
+
+00:00:52.160 --> 00:00:53.680
+upload it and the time
+
+00:00:53.680 --> 00:00:56.640
+the deadline for uploads is we know it
+
+00:00:56.640 --> 00:00:59.440
+already the 14th of november
+
+00:00:59.440 --> 00:01:02.719
+so let me put this in here see this is
+
+00:01:02.719 --> 00:01:03.600
+done
+
+00:01:03.600 --> 00:01:05.760
+and now because it's a project I mean I
+
+00:01:05.760 --> 00:01:07.600
+could say just one task to record a
+
+00:01:07.600 --> 00:01:09.280
+video but it's
+
+00:01:09.280 --> 00:01:12.159
+too much so let's split it down in a few
+
+00:01:12.159 --> 00:01:40.400
+small tasks so the next one
+
+00:01:40.400 --> 00:01:43.439
+so you see I've just typed a few
+
+00:01:43.439 --> 00:01:46.159
+quick tasks we can see them if we look
+
+00:01:46.159 --> 00:01:46.640
+in the
+
+00:01:46.640 --> 00:01:50.240
+capture file
+
+00:01:50.240 --> 00:01:52.399
+so you see there's my project entry and
+
+00:01:52.399 --> 00:01:54.479
+there are all my tasks and since it's a
+
+00:01:54.479 --> 00:01:56.799
+project I can now
+
+00:01:56.799 --> 00:02:00.240
+make it easy I just indent every task by
+
+00:02:00.240 --> 00:02:05.360
+one
+
+00:02:05.360 --> 00:02:14.480
+and then
+
+00:02:14.480 --> 00:02:18.560
+so
+
+00:02:18.560 --> 00:02:23.120
+okay so you see we have one
+
+00:02:23.120 --> 00:02:27.360
+project here and this one we refile now
+
+00:02:27.360 --> 00:02:34.840
+to our
+
+00:02:34.840 --> 00:02:36.160
+backlog
+
+00:02:36.160 --> 00:02:42.000
+so if we look in our backlog
+
+00:02:42.000 --> 00:02:45.599
+you see my project with all the tasks
+
+00:02:45.599 --> 00:02:52.480
+so now next one
+
+00:02:52.480 --> 00:02:55.040
+and I pretend now I'm doing a weekly
+
+00:02:55.040 --> 00:02:56.720
+review
+
+00:02:56.720 --> 00:03:01.040
+see makes me
+
+00:03:01.040 --> 00:03:04.080
+and I already did some things and now
+
+00:03:04.080 --> 00:03:07.120
+the point where I am
+
+00:03:07.120 --> 00:03:10.319
+is schedule tasks with no date
+
+00:03:10.319 --> 00:03:15.200
+those are all those tasks so I have a
+
+00:03:15.200 --> 00:03:17.519
+weekly review help but that says okay
+
+00:03:17.519 --> 00:03:19.040
+show me everything
+
+00:03:19.040 --> 00:03:22.080
+that I need to schedule plan
+
+00:03:22.080 --> 00:03:25.280
+so schedule this class we do
+
+00:03:25.280 --> 00:03:30.879
+everything
+
+00:03:30.879 --> 00:03:35.040
+so everything is scheduled now
+
+00:03:35.040 --> 00:03:38.239
+and we can check off that and so on
+
+00:03:38.239 --> 00:03:42.000
+we can I have a plan
+
+00:03:42.000 --> 00:03:44.959
+for every day that's my free plan I
+
+00:03:44.959 --> 00:03:46.879
+press f6
+
+00:03:46.879 --> 00:03:50.239
+and I say pp plan
+
+00:03:50.239 --> 00:03:53.439
+private things you see there is the
+
+00:03:53.439 --> 00:03:57.360
+first day 12th of november german
+
+00:03:57.360 --> 00:04:01.120
+and now I can
+
+00:04:01.120 --> 00:04:03.200
+look at what I have to do today you see
+
+00:04:03.200 --> 00:04:04.239
+my my uh
+
+00:04:04.239 --> 00:04:07.040
+agenda view is very long and I just want
+
+00:04:07.040 --> 00:04:09.360
+to focus on a few tasks so
+
+00:04:09.360 --> 00:04:14.000
+I copied them to my
+
+00:04:14.000 --> 00:04:22.639
+daily plan
+
+00:04:22.639 --> 00:04:25.680
+I just want to show you so I have a
+
+00:04:25.680 --> 00:04:29.919
+daily plan for every day and that means
+
+00:04:29.919 --> 00:04:33.919
+this one is what I see
+
+00:04:33.919 --> 00:04:37.680
+and this one is gone
+
+00:04:37.680 --> 00:04:41.360
+so now let's pretend we are working on
+
+00:04:41.360 --> 00:04:43.600
+the first refine the requirements for
+
+00:04:43.600 --> 00:04:44.960
+the video
+
+00:04:44.960 --> 00:04:48.320
+and we had a look and uh okay
+
+00:04:48.320 --> 00:04:51.520
+I can mark this task as done here
+
+00:04:51.520 --> 00:04:53.520
+because I knew the requirements the main
+
+00:04:53.520 --> 00:04:54.840
+ct
+
+00:04:54.840 --> 00:04:57.759
+done format
+
+00:04:57.759 --> 00:05:01.199
+is 720p
+
+00:05:01.199 --> 00:05:05.199
+webm codec
+
+00:05:05.199 --> 00:05:09.440
+so this one is done and I can mark it
+
+00:05:09.440 --> 00:05:10.960
+off here
+
+00:05:10.960 --> 00:05:14.560
+as well so now I have marked it off
+
+00:05:14.560 --> 00:05:17.600
+everywhere and the good thing of my
+
+00:05:17.600 --> 00:05:19.600
+daily plan is that I can't
+
+00:05:19.600 --> 00:05:21.600
+really see it all the day and I stick to
+
+00:05:21.600 --> 00:05:23.520
+this what I decided in the morning what
+
+00:05:23.520 --> 00:05:24.639
+I want to do
+
+00:05:24.639 --> 00:05:27.120
+so let's go to the next one make a quick
+
+00:05:27.120 --> 00:05:28.080
+test
+
+00:05:28.080 --> 00:05:38.000
+yeah I did the test already
+
+00:05:38.000 --> 00:05:40.720
+uh I will do a small trick I say okay I
+
+00:05:40.720 --> 00:05:42.639
+record the video here
+
+00:05:42.639 --> 00:05:46.960
+video recorded and then let me do
+
+00:05:46.960 --> 00:05:55.120
+what to show
+
+00:05:55.120 --> 00:05:58.319
+now I'm recording the video so
+
+00:05:58.319 --> 00:06:01.280
+let's see what we do we had capture we
+
+00:06:01.280 --> 00:06:02.240
+had
+
+00:06:02.240 --> 00:06:05.440
+weekly review we had daily planning
+
+00:06:05.440 --> 00:06:09.919
+and how are we processing this very nice
+
+00:06:09.919 --> 00:06:12.319
+so let's pretend the video is recorded
+
+00:06:12.319 --> 00:06:17.520
+ct done
+
+00:06:17.520 --> 00:06:20.479
+let me put this to next again start
+
+00:06:20.479 --> 00:06:21.120
+cardi
+
+00:06:21.120 --> 00:06:27.280
+and live to time lapse
+
+00:06:27.280 --> 00:06:30.319
+and after recording it
+
+00:06:30.319 --> 00:06:33.759
+I pre pretend this is done now
+
+00:06:33.759 --> 00:06:39.039
+ct done
+
+00:06:39.039 --> 00:06:42.400
+and then I have a video ready and then
+
+00:06:42.400 --> 00:06:44.639
+let's pretend I did the upload
+
+00:06:44.639 --> 00:06:50.639
+as well done radio uploaded
+
+00:06:50.639 --> 00:06:55.280
+cc so I can say everything now is done
+
+00:06:55.280 --> 00:06:58.319
+save it so tomorrow I see what I did
+
+00:06:58.319 --> 00:06:59.199
+yesterday
+
+00:06:59.199 --> 00:07:02.560
+and here I'm completely
+
+00:07:02.560 --> 00:07:06.000
+done we have the weekly review
+
+00:07:06.000 --> 00:07:09.680
+and we put another
+
+00:07:09.680 --> 00:07:12.639
+buffer here because I want to show you
+
+00:07:12.639 --> 00:07:15.199
+the the final step of my weekly review
+
+00:07:15.199 --> 00:07:16.960
+if you see the
+
+00:07:16.960 --> 00:07:19.199
+if you see there's a final step that
+
+00:07:19.199 --> 00:07:21.599
+says select finish tasks and make a bulk
+
+00:07:21.599 --> 00:07:24.160
+archive action so if you look at my
+
+00:07:24.160 --> 00:07:26.560
+uh imax coin thing okay the project is
+
+00:07:26.560 --> 00:07:27.440
+done as well
+
+00:07:27.440 --> 00:07:31.360
+project ct done
+
+00:07:31.360 --> 00:07:34.880
+and then what I can do is now see
+
+00:07:34.880 --> 00:07:38.160
+a weekly review helper
+
+00:07:38.160 --> 00:07:41.680
+finish tasks and I could
+
+00:07:41.680 --> 00:07:44.720
+make a bike
+
+00:07:44.720 --> 00:07:48.639
+operation that says archive everything
+
+00:07:48.639 --> 00:07:50.639
+but at the moment I don't need to do
+
+00:07:50.639 --> 00:07:52.720
+that because we have
+
+00:07:52.720 --> 00:07:56.720
+a tree structure so it's cxa I have this
+
+00:07:56.720 --> 00:08:00.080
+task away and the task is done so that's
+
+00:08:00.080 --> 00:08:02.800
+it that's my system you see from
+
+00:08:02.800 --> 00:08:06.080
+capturing tasks to scheduling tasks to
+
+00:08:06.080 --> 00:08:08.000
+putting it on the daily plan
+
+00:08:08.000 --> 00:08:09.759
+performing it and at the end when
+
+00:08:09.759 --> 00:08:11.120
+everything is done
+
+00:08:11.120 --> 00:08:13.199
+and the next weekly review they will go
+
+00:08:13.199 --> 00:08:14.879
+to the ici file
+
+00:08:14.879 --> 00:08:17.199
+because it's finished thank you for
+
+00:08:17.199 --> 00:08:21.759
+watching that's it
diff --git a/2020/subtitles/emacsconf-2020--11-the-org-gtd-package-opinions-about-getting-things-done--aldric-autogen.vtt b/2020/subtitles/emacsconf-2020--11-the-org-gtd-package-opinions-about-getting-things-done--aldric-autogen.vtt
new file mode 100644
index 00000000..2942e07d
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--11-the-org-gtd-package-opinions-about-getting-things-done--aldric-autogen.vtt
@@ -0,0 +1,1195 @@
+WEBVTT
+
+00:00:01.680 --> 00:00:03.439
+Hello, and welcome
+
+00:00:03.439 --> 00:00:07.200
+to my Org GTD talk.
+
+00:00:07.200 --> 00:00:10.400
+I wrote this package because myself
+
+00:00:10.400 --> 00:00:12.719
+overwhelmed with all the stuff I had to
+
+00:00:12.719 --> 00:00:14.320
+manage at working at home
+
+00:00:14.320 --> 00:00:17.359
+and I'd heard about gtd saw someone
+
+00:00:17.359 --> 00:00:18.720
+using it with
+
+00:00:18.720 --> 00:00:22.320
+just a small notebook
+
+00:00:22.320 --> 00:00:24.720
+and I wanted to do it in Emacs because
+
+00:00:24.720 --> 00:00:25.920
+well
+
+00:00:25.920 --> 00:00:29.199
+max can do everything right so
+
+00:00:29.199 --> 00:00:31.359
+I'm going to jump in quickly so just so
+
+00:00:31.359 --> 00:00:34.559
+you know here's kind of a list of the
+
+00:00:34.559 --> 00:00:36.960
+resources obviously org gtd which you
+
+00:00:36.960 --> 00:00:38.719
+can find there you can open an issue ask
+
+00:00:38.719 --> 00:00:41.120
+me questions there about it
+
+00:00:41.120 --> 00:00:43.280
+I use org edna a package for state
+
+00:00:43.280 --> 00:00:45.360
+triggers I'm going to show this briefly
+
+00:00:45.360 --> 00:00:46.160
+when I
+
+00:00:46.160 --> 00:00:49.840
+finish item in a project
+
+00:00:49.840 --> 00:00:52.000
+org agenda property you will see in the
+
+00:00:52.000 --> 00:00:53.440
+agenda it's going to show
+
+00:00:53.440 --> 00:00:57.360
+to whom an action has been delegated to
+
+00:00:57.360 --> 00:01:00.960
+and you will see orgrome briefly as a
+
+00:01:00.960 --> 00:01:02.559
+reference because that is what I have
+
+00:01:02.559 --> 00:01:04.080
+chosen for
+
+00:01:04.080 --> 00:01:06.960
+my knowledge archival tool you can
+
+00:01:06.960 --> 00:01:07.360
+choose
+
+00:01:07.360 --> 00:01:12.640
+whatever you prefer
+
+00:01:12.640 --> 00:01:15.520
+um this is a quick quick reminder on
+
+00:01:15.520 --> 00:01:15.840
+what
+
+00:01:15.840 --> 00:01:18.479
+gtd is and how it works uh this is not a
+
+00:01:18.479 --> 00:01:19.680
+lesson on
+
+00:01:19.680 --> 00:01:22.640
+presentation on gtd because that would
+
+00:01:22.640 --> 00:01:23.360
+be
+
+00:01:23.360 --> 00:01:25.680
+well other people have done it better
+
+00:01:25.680 --> 00:01:27.920
+than me
+
+00:01:27.920 --> 00:01:30.320
+so in short um everything goes into the
+
+00:01:30.320 --> 00:01:31.280
+inbox
+
+00:01:31.280 --> 00:01:34.320
+and then you process the inbox and you
+
+00:01:34.320 --> 00:01:35.600
+decide what to do if
+
+00:01:35.600 --> 00:01:37.200
+it could be actionable or not if it's
+
+00:01:37.200 --> 00:01:39.119
+actionable it could be a project
+
+00:01:39.119 --> 00:01:40.799
+or it could be a single action which you
+
+00:01:40.799 --> 00:01:42.159
+could delegate
+
+00:01:42.159 --> 00:01:45.759
+or soon or schedule or just do
+
+00:01:45.759 --> 00:01:48.079
+do it if it's not actionable you could
+
+00:01:48.079 --> 00:01:49.680
+just throw it away
+
+00:01:49.680 --> 00:01:51.759
+incubate it for later or move it into
+
+00:01:51.759 --> 00:01:53.600
+your files
+
+00:01:53.600 --> 00:01:57.520
+reference
+
+00:01:57.520 --> 00:02:01.920
+over here
+
+00:02:01.920 --> 00:02:05.119
+you can see the global bindings
+
+00:02:05.119 --> 00:02:08.959
+or or gtd those are the the actions that
+
+00:02:08.959 --> 00:02:11.599
+the functions I have made available this
+
+00:02:11.599 --> 00:02:12.319
+is
+
+00:02:12.319 --> 00:02:14.000
+in progress there's more to come some
+
+00:02:14.000 --> 00:02:15.760
+stuff is probably missing but
+
+00:02:15.760 --> 00:02:17.360
+it's grown mostly from my own personal
+
+00:02:17.360 --> 00:02:22.400
+use so far so it doesn't have things
+
+00:02:22.400 --> 00:02:25.520
+and the bottom right you can see the
+
+00:02:25.520 --> 00:02:27.200
+agenda
+
+00:02:27.200 --> 00:02:28.560
+one thing I wanted to do with this
+
+00:02:28.560 --> 00:02:31.599
+package was leverage org mode as much as
+
+00:02:31.599 --> 00:02:32.959
+possible
+
+00:02:32.959 --> 00:02:36.319
+so I tried to not reinvent
+
+00:02:36.319 --> 00:02:40.160
+the wheel as much as I could that meant
+
+00:02:40.160 --> 00:02:43.599
+reusing the agenda you can see here
+
+00:02:43.599 --> 00:02:45.599
+a couple of the things that are made
+
+00:02:45.599 --> 00:02:47.920
+available or kind of
+
+00:02:47.920 --> 00:02:49.760
+custom customized or configure it for
+
+00:02:49.760 --> 00:02:54.319
+you some of the opinions that or gtd has
+
+00:02:54.319 --> 00:02:56.400
+up here for instance you can see a
+
+00:02:56.400 --> 00:02:57.840
+delegated action
+
+00:02:57.840 --> 00:03:01.040
+so a delegated action is
+
+00:03:01.040 --> 00:03:03.200
+as someone to whom it's delegated it's
+
+00:03:03.200 --> 00:03:04.720
+my parents in this case
+
+00:03:04.720 --> 00:03:06.080
+it has the name of the action ask
+
+00:03:06.080 --> 00:03:08.239
+parents what gift they want
+
+00:03:08.239 --> 00:03:11.599
+it's marked as the tag as the state
+
+00:03:11.599 --> 00:03:14.800
+of wait because I'm waiting
+
+00:03:14.800 --> 00:03:17.280
+and it is scheduled because you should
+
+00:03:17.280 --> 00:03:18.080
+ping people
+
+00:03:18.080 --> 00:03:20.239
+or check on the status status of a task
+
+00:03:20.239 --> 00:03:21.840
+when you're waiting for it so you don't
+
+00:03:21.840 --> 00:03:25.680
+forget about it or it gets lost forever
+
+00:03:25.680 --> 00:03:27.599
+I have a scheduled action to give a talk
+
+00:03:27.599 --> 00:03:30.560
+that's what I'm doing right now
+
+00:03:30.560 --> 00:03:33.440
+and I have an incubated action which is
+
+00:03:33.440 --> 00:03:35.599
+also scheduled to make money through the
+
+00:03:35.599 --> 00:03:36.640
+lottery this is a
+
+00:03:36.640 --> 00:03:38.640
+thing to take a look at for you know
+
+00:03:38.640 --> 00:03:41.120
+later decide later what I want to do
+
+00:03:41.120 --> 00:03:42.560
+it might be actionable it might not be I
+
+00:03:42.560 --> 00:03:44.560
+just I don't know right now or I didn't
+
+00:03:44.560 --> 00:03:46.239
+know when I
+
+00:03:46.239 --> 00:03:49.280
+processed it so I incubated it
+
+00:03:49.280 --> 00:03:52.319
+underneath we have all the things that
+
+00:03:52.319 --> 00:03:53.200
+are
+
+00:03:53.200 --> 00:03:59.360
+direct actions for me to take
+
+00:03:59.360 --> 00:04:01.439
+all right you see a little bit of the
+
+00:04:01.439 --> 00:04:03.200
+preparation seeps through the actual
+
+00:04:03.200 --> 00:04:04.080
+talk
+
+00:04:04.080 --> 00:04:05.519
+so I have here two I have a single
+
+00:04:05.519 --> 00:04:07.920
+action of a steal the android uh andreas
+
+00:04:07.920 --> 00:04:09.840
+gtd configuration
+
+00:04:09.840 --> 00:04:12.879
+and an action to read the gtd book it's
+
+00:04:12.879 --> 00:04:16.320
+part of a project
+
+00:04:16.320 --> 00:04:21.680
+so most of the day-to-day operation with
+
+00:04:21.680 --> 00:04:23.840
+with this package should come through
+
+00:04:23.840 --> 00:04:26.000
+just having the agenda open
+
+00:04:26.000 --> 00:04:29.600
+and having having it be your your source
+
+00:04:29.600 --> 00:04:31.199
+for the information you need to know so
+
+00:04:31.199 --> 00:04:31.919
+that you can
+
+00:04:31.919 --> 00:04:34.960
+do the right thing so let's take a look
+
+00:04:34.960 --> 00:04:35.440
+at
+
+00:04:35.440 --> 00:04:37.440
+what's underneath all of this really
+
+00:04:37.440 --> 00:04:39.600
+quickly
+
+00:04:39.600 --> 00:04:42.320
+we have there's three primary files um
+
+00:04:42.320 --> 00:04:43.360
+we have the inbox
+
+00:04:43.360 --> 00:04:45.759
+I'm gonna process it in a second because
+
+00:04:45.759 --> 00:04:46.400
+there's
+
+00:04:46.400 --> 00:04:48.880
+two things here one thing to cancel like
+
+00:04:48.880 --> 00:04:50.000
+an action to
+
+00:04:50.000 --> 00:04:51.919
+not take it's nothing and then something
+
+00:04:51.919 --> 00:04:53.919
+I will just put into org roam just so
+
+00:04:53.919 --> 00:04:54.479
+you can
+
+00:04:54.479 --> 00:04:58.960
+see that there is the incubate file
+
+00:04:58.960 --> 00:05:00.240
+you can see here make money through the
+
+00:05:00.240 --> 00:05:02.000
+lottery
+
+00:05:02.000 --> 00:05:04.800
+captured refiled here and scheduled to
+
+00:05:04.800 --> 00:05:06.560
+so it would show up in the agenda
+
+00:05:06.560 --> 00:05:10.000
+right at a given time and on the right
+
+00:05:10.000 --> 00:05:13.039
+you have the actionable file and this is
+
+00:05:13.039 --> 00:05:14.560
+the one that has the most information
+
+00:05:14.560 --> 00:05:15.919
+because
+
+00:05:15.919 --> 00:05:18.960
+where most things should go so
+
+00:05:18.960 --> 00:05:20.560
+I have the single actions they all go
+
+00:05:20.560 --> 00:05:22.720
+underneath here and so
+
+00:05:22.720 --> 00:05:24.479
+this is marked as next because it's an
+
+00:05:24.479 --> 00:05:26.240
+action for me to take
+
+00:05:26.240 --> 00:05:28.240
+uh delegated is marked as weight it is
+
+00:05:28.240 --> 00:05:29.600
+not an action for me to take it's an
+
+00:05:29.600 --> 00:05:31.199
+action for somebody else to take but it
+
+00:05:31.199 --> 00:05:32.400
+is scheduled because
+
+00:05:32.400 --> 00:05:37.919
+I may wanna I can check in at some point
+
+00:05:37.919 --> 00:05:38.400
+uh
+
+00:05:38.400 --> 00:05:39.759
+things that are scheduled like give a
+
+00:05:39.759 --> 00:05:43.120
+talk do not have a to-do or next or wait
+
+00:05:43.120 --> 00:05:44.960
+state because they are not bound that
+
+00:05:44.960 --> 00:05:46.400
+way they are time-bound
+
+00:05:46.400 --> 00:05:48.080
+so they will show up in the agenda when
+
+00:05:48.080 --> 00:05:50.320
+the time comes I shouldn't act on them
+
+00:05:50.320 --> 00:05:53.840
+or I can't act on them beforehand
+
+00:05:53.840 --> 00:05:55.280
+you can see here I have two projects a
+
+00:05:55.280 --> 00:05:56.880
+test project and I will
+
+00:05:56.880 --> 00:05:58.880
+do something with this in a second and
+
+00:05:58.880 --> 00:06:00.080
+then there's this
+
+00:06:00.080 --> 00:06:01.919
+package make a gte package there's a
+
+00:06:01.919 --> 00:06:04.000
+project here for me to create this back
+
+00:06:04.000 --> 00:06:07.520
+it's made a bunch of actions and
+
+00:06:07.520 --> 00:06:09.759
+I'm going to show you two things here
+
+00:06:09.759 --> 00:06:11.440
+one is
+
+00:06:11.440 --> 00:06:14.639
+since I was trying to leverage org mode
+
+00:06:14.639 --> 00:06:16.400
+as much as possible
+
+00:06:16.400 --> 00:06:20.479
+I didn't try to create very clever
+
+00:06:20.479 --> 00:06:24.080
+operations because org mode has a lot of
+
+00:06:24.080 --> 00:06:27.199
+very powerful tools already
+
+00:06:27.199 --> 00:06:29.600
+so there's automations I could I can add
+
+00:06:29.600 --> 00:06:31.039
+but I thought it might be
+
+00:06:31.039 --> 00:06:34.240
+better to leave more things into the
+
+00:06:34.240 --> 00:06:35.680
+hands of the user
+
+00:06:35.680 --> 00:06:38.000
+so here in this case this test project
+
+00:06:38.000 --> 00:06:39.199
+we can just archive
+
+00:06:39.199 --> 00:06:42.479
+right that's just
+
+00:06:42.479 --> 00:06:45.680
+control c control x control a is the org
+
+00:06:45.680 --> 00:06:46.840
+archive
+
+00:06:46.840 --> 00:06:52.000
+action save this
+
+00:06:52.000 --> 00:06:54.479
+so now if I if we go to the you know
+
+00:06:54.479 --> 00:06:56.160
+this will create an archive file
+
+00:06:56.160 --> 00:06:59.440
+which will have this this information
+
+00:06:59.440 --> 00:07:00.560
+for later perusal
+
+00:07:00.560 --> 00:07:03.840
+brutal if you're interested that's
+
+00:07:03.840 --> 00:07:05.360
+that's one thing if we go back to the
+
+00:07:05.360 --> 00:07:07.199
+agenda for a second
+
+00:07:07.199 --> 00:07:10.479
+um you can see
+
+00:07:10.479 --> 00:07:14.080
+these things here uh org so by the way
+
+00:07:14.080 --> 00:07:16.479
+uh this this parents here with the org
+
+00:07:16.479 --> 00:07:19.120
+agenda property this is what shows here
+
+00:07:19.120 --> 00:07:22.319
+right and here if I finish read the gtd
+
+00:07:22.319 --> 00:07:23.680
+book
+
+00:07:23.680 --> 00:07:27.680
+I mark it as done now refresh
+
+00:07:27.680 --> 00:07:31.919
+you'll see that another item shows up
+
+00:07:31.919 --> 00:07:34.720
+and that is where org edna comes in when
+
+00:07:34.720 --> 00:07:37.280
+an action is marked as done in a project
+
+00:07:37.280 --> 00:07:39.759
+the net the next to do action is
+
+00:07:39.759 --> 00:07:41.360
+automatically marked as next so your
+
+00:07:41.360 --> 00:07:43.759
+agenda is automatically updated
+
+00:07:43.759 --> 00:07:46.400
+this was one of the nice things for me
+
+00:07:46.400 --> 00:07:48.400
+because I didn't want to have to
+
+00:07:48.400 --> 00:07:50.400
+open my file go find the action mark it
+
+00:07:50.400 --> 00:07:51.919
+as done find the next one mark it as
+
+00:07:51.919 --> 00:07:53.440
+next and so forth
+
+00:07:53.440 --> 00:07:57.280
+so I didn't want to bother with it
+
+00:07:57.280 --> 00:07:58.960
+um oh actually you know what let me show
+
+00:07:58.960 --> 00:08:00.960
+you something else
+
+00:08:00.960 --> 00:08:04.080
+this uh simple
+
+00:08:04.080 --> 00:08:07.120
+project I don't need this timestamp to
+
+00:08:07.120 --> 00:08:07.840
+be here but
+
+00:08:07.840 --> 00:08:09.680
+I like having a capture timestamp here
+
+00:08:09.680 --> 00:08:13.039
+so I'm gonna make one up
+
+00:08:13.039 --> 00:08:15.919
+so this is the most convenient thing
+
+00:08:15.919 --> 00:08:16.879
+that I think
+
+00:08:16.879 --> 00:08:17.919
+this is one of the most convenient
+
+00:08:17.919 --> 00:08:20.720
+things that I get out of is binding
+
+00:08:20.720 --> 00:08:22.960
+the next really convenient thing is the
+
+00:08:22.960 --> 00:08:24.400
+way this gets processed
+
+00:08:24.400 --> 00:08:27.440
+let me show you this um
+
+00:08:27.440 --> 00:08:30.080
+when you process the the entire inbox
+
+00:08:30.080 --> 00:08:31.440
+what you see is
+
+00:08:31.440 --> 00:08:33.440
+the items one at a time so you can work
+
+00:08:33.440 --> 00:08:34.560
+with them
+
+00:08:34.560 --> 00:08:36.320
+you can see at the bottom where you can
+
+00:08:36.320 --> 00:08:38.320
+work with them without being distracted
+
+00:08:38.320 --> 00:08:40.320
+you can see at the bottom the the list
+
+00:08:40.320 --> 00:08:42.399
+of things you can do which are all the
+
+00:08:42.399 --> 00:08:45.120
+decisions you can take from gtd right in
+
+00:08:45.120 --> 00:08:45.760
+this case
+
+00:08:45.760 --> 00:08:48.959
+this is one to throw out so press t you
+
+00:08:48.959 --> 00:08:50.959
+have the option to make modifications to
+
+00:08:50.959 --> 00:08:52.320
+this if you want to
+
+00:08:52.320 --> 00:08:55.200
+if you have any reason to store it then
+
+00:08:55.200 --> 00:08:56.240
+you finish editing
+
+00:08:56.240 --> 00:08:58.160
+you can add a tag if you want to because
+
+00:08:58.160 --> 00:09:00.080
+this might still be interesting
+
+00:09:00.080 --> 00:09:02.720
+and then enter and it's done so
+
+00:09:02.720 --> 00:09:03.920
+important knowledge
+
+00:09:03.920 --> 00:09:06.959
+I'm going to hit a for archive it
+
+00:09:06.959 --> 00:09:10.880
+and then um I'm gonna start looking at
+
+00:09:10.880 --> 00:09:12.160
+orgrom
+
+00:09:12.160 --> 00:09:20.800
+so this is uh important knowledge
+
+00:09:20.800 --> 00:09:23.519
+I have to get to this that's it I've
+
+00:09:23.519 --> 00:09:24.640
+captured it
+
+00:09:24.640 --> 00:09:27.920
+uh it is done I uh
+
+00:09:27.920 --> 00:09:30.959
+go back to buffer
+
+00:09:30.959 --> 00:09:34.080
+and I can market control c then
+
+00:09:34.080 --> 00:09:35.360
+there's no archiving because this is
+
+00:09:35.360 --> 00:09:37.279
+just knowledge there's no
+
+00:09:37.279 --> 00:09:38.800
+tagging it's just knowledge but then the
+
+00:09:38.800 --> 00:09:40.320
+simple project I want to show you this
+
+00:09:40.320 --> 00:09:41.040
+because
+
+00:09:41.040 --> 00:09:42.800
+there's some automation that's pretty
+
+00:09:42.800 --> 00:09:44.640
+helpful so
+
+00:09:44.640 --> 00:09:48.839
+in the simple project I have my first
+
+00:09:48.839 --> 00:09:50.000
+action
+
+00:09:50.000 --> 00:09:53.920
+second action third action
+
+00:09:53.920 --> 00:09:55.360
+and you see this is all I'm writing I'm
+
+00:09:55.360 --> 00:09:56.720
+not adding any of the states any of the
+
+00:09:56.720 --> 00:10:00.399
+tags they're going to be added by
+
+00:10:00.399 --> 00:10:04.320
+so um here I can add a
+
+00:10:04.320 --> 00:10:05.839
+I can add a tag if I want to this
+
+00:10:05.839 --> 00:10:07.360
+project I don't care
+
+00:10:07.360 --> 00:10:09.920
+right now but you know I leave the tags
+
+00:10:09.920 --> 00:10:11.279
+to the user so they're not super
+
+00:10:11.279 --> 00:10:11.920
+relevant
+
+00:10:11.920 --> 00:10:15.440
+to me as a package
+
+00:10:15.440 --> 00:10:19.279
+provider and this is where we are this
+
+00:10:19.279 --> 00:10:19.600
+is
+
+00:10:19.600 --> 00:10:21.200
+the whole thing so now if we go back to
+
+00:10:21.200 --> 00:10:23.519
+the agenda
+
+00:10:23.519 --> 00:10:27.600
+I have a first action right and
+
+00:10:27.600 --> 00:10:30.720
+if I go to the actionable file and now
+
+00:10:30.720 --> 00:10:32.959
+see I have a simple project that has my
+
+00:10:32.959 --> 00:10:34.079
+first action as next
+
+00:10:34.079 --> 00:10:36.880
+second option to do third action as to
+
+00:10:36.880 --> 00:10:38.079
+do
+
+00:10:38.079 --> 00:10:41.360
+uh so what I've you know
+
+00:10:41.360 --> 00:10:42.880
+as you can see I hope what I've tried to
+
+00:10:42.880 --> 00:10:47.200
+do is take all of the kind of
+
+00:10:47.200 --> 00:10:50.880
+all the tedium out of working with
+
+00:10:50.880 --> 00:10:52.560
+with emacs and org mode when working
+
+00:10:52.560 --> 00:10:54.880
+with your actions so you could focus on
+
+00:10:54.880 --> 00:10:57.200
+what you want to do what you need to do
+
+00:10:57.200 --> 00:10:58.640
+what you care about and the package
+
+00:10:58.640 --> 00:10:59.279
+would
+
+00:10:59.279 --> 00:11:04.880
+take care of the rest so
+
+00:11:04.880 --> 00:11:06.240
+the last thing I wanted to take a quick
+
+00:11:06.240 --> 00:11:08.000
+look at was some of the the tests
+
+00:11:08.000 --> 00:11:08.640
+there's
+
+00:11:08.640 --> 00:11:11.120
+the code is available here but you can
+
+00:11:11.120 --> 00:11:13.440
+see the code
+
+00:11:13.440 --> 00:11:14.800
+you on see the code on github if you
+
+00:11:14.800 --> 00:11:16.880
+want um
+
+00:11:16.880 --> 00:11:18.720
+I've had some trouble writing good tests
+
+00:11:18.720 --> 00:11:20.320
+for this because org mode was written at
+
+00:11:20.320 --> 00:11:22.000
+a time before
+
+00:11:22.000 --> 00:11:26.000
+testing was quite as important
+
+00:11:26.000 --> 00:11:29.200
+I think or valued quite the same way
+
+00:11:29.200 --> 00:11:31.440
+let's put it this way
+
+00:11:31.440 --> 00:11:34.320
+and as a result a number of things
+
+00:11:34.320 --> 00:11:34.959
+actually
+
+00:11:34.959 --> 00:11:37.200
+it might also be a feature of emacs at
+
+00:11:37.200 --> 00:11:38.240
+the time I don't know
+
+00:11:38.240 --> 00:11:40.560
+but a lot of things in order mode aren't
+
+00:11:40.560 --> 00:11:42.480
+very testable and so
+
+00:11:42.480 --> 00:11:45.519
+what I ended up doing was just having an
+
+00:11:45.519 --> 00:11:49.440
+actual directory in which I
+
+00:11:49.440 --> 00:11:53.360
+actually um with files
+
+00:11:53.360 --> 00:11:55.279
+right so like I don't have much mocking
+
+00:11:55.279 --> 00:11:57.120
+I can do I can't just do a bunch of fake
+
+00:11:57.120 --> 00:11:58.639
+files fake directories
+
+00:11:58.639 --> 00:12:01.200
+so I actually go through the process
+
+00:12:01.200 --> 00:12:03.360
+actually create files and then actually
+
+00:12:03.360 --> 00:12:05.040
+have emacs pointing at this
+
+00:12:05.040 --> 00:12:08.839
+directory to process and get the
+
+00:12:08.839 --> 00:12:10.240
+information
+
+00:12:10.240 --> 00:12:12.240
+so I have to define the key to test that
+
+00:12:12.240 --> 00:12:13.920
+gets bounded properly
+
+00:12:13.920 --> 00:12:18.160
+I have to set the capture templates um
+
+00:12:18.160 --> 00:12:19.839
+other capture templates are how you know
+
+00:12:19.839 --> 00:12:21.839
+things get added I have a wrapper
+
+00:12:21.839 --> 00:12:25.600
+control uh or gtd capture essentially is
+
+00:12:25.600 --> 00:12:27.279
+a wrapper around the capture that
+
+00:12:27.279 --> 00:12:29.920
+makes sure the inbox is there and then
+
+00:12:29.920 --> 00:12:32.000
+captures to the inbox
+
+00:12:32.000 --> 00:12:36.240
+right and
+
+00:12:36.240 --> 00:12:39.360
+making sure the items show in the agenda
+
+00:12:39.360 --> 00:12:41.519
+when I'm done with the with processing
+
+00:12:41.519 --> 00:12:42.639
+was a little bit
+
+00:12:42.639 --> 00:12:45.519
+tricky I had a bug and I had to to fix
+
+00:12:45.519 --> 00:12:46.800
+it so I just wrote this
+
+00:12:46.800 --> 00:12:49.600
+this test but it's uh it's pretty
+
+00:12:49.600 --> 00:12:50.480
+convenient
+
+00:12:50.480 --> 00:12:51.839
+now to have that because it gives me a
+
+00:12:51.839 --> 00:12:54.000
+bunch of sanity so again I have a
+
+00:12:54.000 --> 00:12:55.040
+capture and this is
+
+00:12:55.040 --> 00:12:56.000
+I wanted to be able to do this
+
+00:12:56.000 --> 00:12:58.480
+automatically but ojtd but or capture
+
+00:12:58.480 --> 00:12:59.680
+itself
+
+00:12:59.680 --> 00:13:02.079
+is not super testable right now so the
+
+00:13:02.079 --> 00:13:03.200
+way it's
+
+00:13:03.200 --> 00:13:04.480
+the way you test it is just by
+
+00:13:04.480 --> 00:13:07.519
+programmatically calling it which
+
+00:13:07.519 --> 00:13:09.279
+is not exactly what I wanted because I
+
+00:13:09.279 --> 00:13:10.639
+wanted something more like
+
+00:13:10.639 --> 00:13:13.200
+the user action but I'll you know what I
+
+00:13:13.200 --> 00:13:15.519
+can get
+
+00:13:15.519 --> 00:13:17.040
+and then I can I'll just insert these
+
+00:13:17.040 --> 00:13:19.360
+words into the buffer and then
+
+00:13:19.360 --> 00:13:21.760
+I'll finalize the capture then I have
+
+00:13:21.760 --> 00:13:23.519
+another I have a test package here
+
+00:13:23.519 --> 00:13:26.160
+called with simulated input which
+
+00:13:26.160 --> 00:13:29.920
+um basically calls this and then enters
+
+00:13:29.920 --> 00:13:33.040
+these uh these user actions right so
+
+00:13:33.040 --> 00:13:34.800
+like the letter s
+
+00:13:34.800 --> 00:13:39.040
+control c c and then return and that is
+
+00:13:39.040 --> 00:13:41.360
+uh you know choosing a single action
+
+00:13:41.360 --> 00:13:42.480
+then finishing the edit
+
+00:13:42.480 --> 00:13:45.360
+and then adding zero and not adding tags
+
+00:13:45.360 --> 00:13:46.480
+you
+
+00:13:46.480 --> 00:13:48.639
+as you can tell there's a strong layer
+
+00:13:48.639 --> 00:13:50.320
+of disconnect between the tests
+
+00:13:50.320 --> 00:13:53.760
+and what they represent that's a work in
+
+00:13:53.760 --> 00:13:56.560
+progress
+
+00:13:56.560 --> 00:13:59.680
+um so I have like four tests
+
+00:13:59.680 --> 00:14:02.320
+it's not a lot but I want to I intend to
+
+00:14:02.320 --> 00:14:03.680
+add more as I keep on adding more
+
+00:14:03.680 --> 00:14:05.040
+behavior
+
+00:14:05.040 --> 00:14:09.519
+and I would like this to be eventually
+
+00:14:09.519 --> 00:14:14.320
+a sane starting point for gt
+
+00:14:14.320 --> 00:14:16.079
+there's there's a lot of people like
+
+00:14:16.079 --> 00:14:18.720
+like andre I like reiner like
+
+00:14:18.720 --> 00:14:20.959
+I mean if you search for org mode and
+
+00:14:20.959 --> 00:14:22.160
+gtd you'll find
+
+00:14:22.160 --> 00:14:25.279
+a lot of blog entries a lot of
+
+00:14:25.279 --> 00:14:27.600
+entries a lot of articles that explain
+
+00:14:27.600 --> 00:14:29.360
+how to connect it together how to think
+
+00:14:29.360 --> 00:14:31.199
+that way how to use all the tools that
+
+00:14:31.199 --> 00:14:34.880
+orgmod makes available
+
+00:14:34.880 --> 00:14:38.399
+and hopefully this package is a way to
+
+00:14:38.399 --> 00:14:40.320
+get started without having to write too
+
+00:14:40.320 --> 00:14:41.040
+much
+
+00:14:41.040 --> 00:14:45.920
+of your own code um
+
+00:14:45.920 --> 00:14:47.279
+then eventually you can move away from
+
+00:14:47.279 --> 00:14:48.720
+the package if you want if you realize
+
+00:14:48.720 --> 00:14:50.000
+that you are developing different
+
+00:14:50.000 --> 00:14:52.000
+opinions and you don't want to
+
+00:14:52.000 --> 00:14:54.160
+if gtd doesn't work this way for you if
+
+00:14:54.160 --> 00:14:55.519
+you have a different way
+
+00:14:55.519 --> 00:14:57.839
+it is a better fit for the way you want
+
+00:14:57.839 --> 00:14:59.279
+to organize your life
+
+00:14:59.279 --> 00:15:02.720
+then you know move away from the package
+
+00:15:02.720 --> 00:15:05.920
+in the meanwhile I welcome all thoughts
+
+00:15:05.920 --> 00:15:07.839
+I welcome contributions I welcome
+
+00:15:07.839 --> 00:15:10.079
+questions bug reports everything
+
+00:15:10.079 --> 00:15:13.920
+so you know come say hi try the package
+
+00:15:13.920 --> 00:15:17.040
+and uh yeah see you
+
+00:15:17.040 --> 00:15:20.560
+I'll see you online
diff --git a/2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier-autogen.vtt b/2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier-autogen.vtt
new file mode 100644
index 00000000..dbced2db
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier-autogen.vtt
@@ -0,0 +1,1447 @@
+WEBVTT
+
+00:00:00.240 --> 00:00:01.520
+I mean we are ahead of the schedule a
+
+00:00:01.520 --> 00:00:03.679
+little bit but I mean we also was a
+
+00:00:03.679 --> 00:00:05.680
+little bit earlier in the day
+
+00:00:05.680 --> 00:00:09.040
+so yeah yeah I'd say that's fine go for
+
+00:00:09.040 --> 00:00:10.800
+it take it away
+
+00:00:10.800 --> 00:00:14.240
+sure thank you so am I live already
+
+00:00:14.240 --> 00:00:16.640
+you are now unmuted um yep your life
+
+00:00:16.640 --> 00:00:17.359
+hello
+
+00:00:17.359 --> 00:00:18.880
+spell it so I'll just start the timer to
+
+00:00:18.880 --> 00:00:20.720
+make sure that I don't go overboard
+
+00:00:20.720 --> 00:00:22.720
+all right so you are now muted okay good
+
+00:00:22.720 --> 00:00:24.160
+to go now so
+
+00:00:24.160 --> 00:00:26.960
+hello again everyone so I hope you had
+
+00:00:26.960 --> 00:00:28.240
+well quite a lot of talks
+
+00:00:28.240 --> 00:00:30.880
+ever since the last one I did and all
+
+00:00:30.880 --> 00:00:32.000
+more interesting
+
+00:00:32.000 --> 00:00:35.040
+uh one after the other so um
+
+00:00:35.040 --> 00:00:36.559
+you know I'm a bit in a bit of a weird
+
+00:00:36.559 --> 00:00:38.239
+spot right now because I'm supposed to
+
+00:00:38.239 --> 00:00:39.760
+be presenting to you as you can see on
+
+00:00:39.760 --> 00:00:40.239
+my screen
+
+00:00:40.239 --> 00:00:42.879
+one big-ass awk file multiple tiny ones
+
+00:00:42.879 --> 00:00:44.960
+finally the end of the debate
+
+00:00:44.960 --> 00:00:48.160
+and it sounds about as clickbaity
+
+00:00:48.160 --> 00:00:49.760
+as you can possibly get with those
+
+00:00:49.760 --> 00:00:51.280
+topics and by the way
+
+00:00:51.280 --> 00:00:54.000
+uh credit where credit is due the title
+
+00:00:54.000 --> 00:00:55.760
+is not mine it's actually from bastian
+
+00:00:55.760 --> 00:00:57.039
+gary the current old
+
+00:00:57.039 --> 00:01:00.719
+maintainer and yeah I wanted to
+
+00:01:00.719 --> 00:01:03.199
+talk to you a little bit today about
+
+00:01:03.199 --> 00:01:04.879
+this question because
+
+00:01:04.879 --> 00:01:07.600
+if you are used to going on our slash
+
+00:01:07.600 --> 00:01:09.040
+emacs you know the subreddit that we
+
+00:01:09.040 --> 00:01:09.600
+have
+
+00:01:09.600 --> 00:01:11.840
+if you go on I can use often you know
+
+00:01:11.840 --> 00:01:13.200
+it's a question that
+
+00:01:13.200 --> 00:01:16.000
+you see pop-up every once in a while
+
+00:01:16.000 --> 00:01:17.520
+should I be using
+
+00:01:17.520 --> 00:01:20.640
+one big file or should I be using
+
+00:01:20.640 --> 00:01:24.159
+a lot of tiny files and I believe you
+
+00:01:24.159 --> 00:01:24.799
+know
+
+00:01:24.799 --> 00:01:27.600
+we've got defenders on both sides if I
+
+00:01:27.600 --> 00:01:29.520
+just show you one examples
+
+00:01:29.520 --> 00:01:32.479
+so we have carl voigt okay so he's one
+
+00:01:32.479 --> 00:01:35.280
+of the organizers for the conference
+
+00:01:35.280 --> 00:01:37.920
+he hears the guy who probably has the
+
+00:01:37.920 --> 00:01:40.000
+biggest augment files
+
+00:01:40.000 --> 00:01:42.000
+right now in all the people I know and
+
+00:01:42.000 --> 00:01:43.759
+god knows I know plenty of people use
+
+00:01:43.759 --> 00:01:44.479
+old mode
+
+00:01:44.479 --> 00:01:46.880
+but if you just look at this line I hope
+
+00:01:46.880 --> 00:01:48.320
+it's not too small you just
+
+00:01:48.320 --> 00:01:51.360
+make it a little larger but
+
+00:01:51.360 --> 00:01:56.719
+carl basically has a file with 126
+
+00:01:56.719 --> 00:02:01.759
+000 lines and I'm just going to pause
+
+00:02:01.759 --> 00:02:04.560
+and try to have you imagine how large a
+
+00:02:04.560 --> 00:02:06.399
+file it actually is
+
+00:02:06.399 --> 00:02:08.399
+just think about all of these lines
+
+00:02:08.399 --> 00:02:10.000
+being tasked in your days
+
+00:02:10.000 --> 00:02:12.080
+think about all those lines being about
+
+00:02:12.080 --> 00:02:13.200
+little thoughts
+
+00:02:13.200 --> 00:02:14.400
+you know that you've had throughout the
+
+00:02:14.400 --> 00:02:17.200
+day or project that you were working on
+
+00:02:17.200 --> 00:02:19.680
+and it's massive and you know one of the
+
+00:02:19.680 --> 00:02:20.720
+problem that
+
+00:02:20.720 --> 00:02:23.920
+uh calvoit actually approaches on
+
+00:02:23.920 --> 00:02:27.680
+this topic is that it takes him roughly
+
+00:02:27.680 --> 00:02:30.160
+20 seconds to get his old agenda going
+
+00:02:30.160 --> 00:02:32.400
+which is a massive amount of time
+
+00:02:32.400 --> 00:02:35.680
+I mean we have very fast computers now
+
+00:02:35.680 --> 00:02:37.720
+you know ever since e-max was created in
+
+00:02:37.720 --> 00:02:39.200
+1976
+
+00:02:39.200 --> 00:02:42.319
+computers I have no idea how much faster
+
+00:02:42.319 --> 00:02:43.440
+they've gotten
+
+00:02:43.440 --> 00:02:47.760
+and yet you know for earth 1000 lines
+
+00:02:47.760 --> 00:02:49.599
+emac seems to be choking and it's
+
+00:02:49.599 --> 00:02:51.120
+certainly not reasonable in a way to
+
+00:02:51.120 --> 00:02:52.720
+have to wait 20 seconds
+
+00:02:52.720 --> 00:02:55.360
+just for your entire file to be passed
+
+00:02:55.360 --> 00:02:57.040
+so basically what I want to do
+
+00:02:57.040 --> 00:02:58.480
+and by the way I forgot to do the
+
+00:02:58.480 --> 00:03:00.879
+presentation but I'm leova I did this
+
+00:03:00.879 --> 00:03:02.879
+before for those who were around
+
+00:03:02.879 --> 00:03:05.519
+and I um help maintain a software which
+
+00:03:05.519 --> 00:03:06.640
+is called orgrom
+
+00:03:06.640 --> 00:03:08.560
+and that's the expertise that I have on
+
+00:03:08.560 --> 00:03:09.840
+the topic
+
+00:03:09.840 --> 00:03:11.760
+actually if you go online I do have a
+
+00:03:11.760 --> 00:03:13.599
+github page I will make sure that you
+
+00:03:13.599 --> 00:03:15.440
+have all the links available afterwards
+
+00:03:15.440 --> 00:03:18.640
+but I do publish my init files
+
+00:03:18.640 --> 00:03:20.720
+and you can see if you scroll at the
+
+00:03:20.720 --> 00:03:22.319
+bottom I have a little demonstration
+
+00:03:22.319 --> 00:03:23.200
+which shows you
+
+00:03:23.200 --> 00:03:25.519
+the fancy things that I can do with my
+
+00:03:25.519 --> 00:03:27.440
+old mood setup and that might be even
+
+00:03:27.440 --> 00:03:28.159
+interesting
+
+00:03:28.159 --> 00:03:30.720
+in lights of the talk you've just had
+
+00:03:30.720 --> 00:03:32.319
+about gtd stuff because
+
+00:03:32.319 --> 00:03:34.080
+the first one is about how I end all my
+
+00:03:34.080 --> 00:03:36.159
+projects the second one is about
+
+00:03:36.159 --> 00:03:39.680
+the flow from a task uh as I work on it
+
+00:03:39.680 --> 00:03:40.000
+so
+
+00:03:40.000 --> 00:03:41.519
+I won't spend too much time on this but
+
+00:03:41.519 --> 00:03:43.120
+basically that's my expertise
+
+00:03:43.120 --> 00:03:45.440
+I have spent eight years working with
+
+00:03:45.440 --> 00:03:46.959
+working with org mode
+
+00:03:46.959 --> 00:03:48.959
+three of them actually thinking about
+
+00:03:48.959 --> 00:03:50.720
+writing packages
+
+00:03:50.720 --> 00:03:54.080
+and the thing is if I go into a little
+
+00:03:54.080 --> 00:03:55.680
+bit of details and obviously it's only a
+
+00:03:55.680 --> 00:03:57.760
+lighting talk so I won't have time to
+
+00:03:57.760 --> 00:04:00.720
+actually go really in depth about it but
+
+00:04:00.720 --> 00:04:01.840
+there is something
+
+00:04:01.840 --> 00:04:03.599
+in the ultimate libraries which is
+
+00:04:03.599 --> 00:04:05.200
+called org elements
+
+00:04:05.200 --> 00:04:07.000
+and you have the name right there org
+
+00:04:07.000 --> 00:04:08.319
+element.el
+
+00:04:08.319 --> 00:04:11.439
+dot el being for e-lisp file and as you
+
+00:04:11.439 --> 00:04:12.319
+can see
+
+00:04:12.319 --> 00:04:14.799
+the page it's on the work wiki so it's
+
+00:04:14.799 --> 00:04:16.239
+accessible by everyone
+
+00:04:16.239 --> 00:04:19.280
+but it's basically the api that
+
+00:04:19.280 --> 00:04:23.759
+org mode uses to pass all mode files
+
+00:04:23.759 --> 00:04:26.400
+so for those who don't know passing
+
+00:04:26.400 --> 00:04:27.199
+means basically
+
+00:04:27.199 --> 00:04:29.360
+checking a file checking all the content
+
+00:04:29.360 --> 00:04:30.880
+of the file and extracting all the
+
+00:04:30.880 --> 00:04:32.880
+information that we need from that file
+
+00:04:32.880 --> 00:04:34.960
+and as you can imagine you all have
+
+00:04:34.960 --> 00:04:36.560
+augmented files in your mind
+
+00:04:36.560 --> 00:04:38.240
+well you know they can be fairly complex
+
+00:04:38.240 --> 00:04:39.840
+you know you can have properties
+
+00:04:39.840 --> 00:04:41.759
+you can have contextual information like
+
+00:04:41.759 --> 00:04:43.040
+if you write a line
+
+00:04:43.040 --> 00:04:45.199
+which starts at column zero which means
+
+00:04:45.199 --> 00:04:46.560
+at the left
+
+00:04:46.560 --> 00:04:48.000
+you know it doesn't have the same
+
+00:04:48.000 --> 00:04:49.680
+meaning whether or not it is
+
+00:04:49.680 --> 00:04:52.639
+before the beginning of a headline or if
+
+00:04:52.639 --> 00:04:54.160
+it is after the beginning of a red line
+
+00:04:54.160 --> 00:04:55.199
+you know it's going to be
+
+00:04:55.199 --> 00:04:57.759
+relatively different hierarchically
+
+00:04:57.759 --> 00:04:58.960
+speaking
+
+00:04:58.960 --> 00:05:01.759
+and so the problem when it comes to the
+
+00:05:01.759 --> 00:05:02.639
+question of
+
+00:05:02.639 --> 00:05:05.759
+many files versus one big file or
+
+00:05:05.759 --> 00:05:08.560
+few big files is that we always have to
+
+00:05:08.560 --> 00:05:09.600
+keep in mind
+
+00:05:09.600 --> 00:05:12.880
+what org elements want you to do
+
+00:05:12.880 --> 00:05:15.680
+and the thing is there are plenty of
+
+00:05:15.680 --> 00:05:17.440
+problems when it comes to passing file
+
+00:05:17.440 --> 00:05:18.400
+the first one
+
+00:05:18.400 --> 00:05:21.360
+being obviously that emacs is a single
+
+00:05:21.360 --> 00:05:22.160
+thread
+
+00:05:22.160 --> 00:05:24.880
+process or has some threading
+
+00:05:24.880 --> 00:05:26.400
+capabilities we're not going to go into
+
+00:05:26.400 --> 00:05:28.639
+the details right now that's not my goal
+
+00:05:28.639 --> 00:05:32.400
+but it makes it incredibly hard to
+
+00:05:32.400 --> 00:05:35.919
+parallelize uh passing processes as
+
+00:05:35.919 --> 00:05:39.280
+we currently with the current technology
+
+00:05:39.280 --> 00:05:42.320
+and so you'd have to imagine that if you
+
+00:05:42.320 --> 00:05:44.080
+have a very large files if you go back
+
+00:05:44.080 --> 00:05:46.479
+to the example of carl voice from before
+
+00:05:46.479 --> 00:05:49.199
+100 000 lines that means that you have
+
+00:05:49.199 --> 00:05:50.000
+to scan
+
+00:05:50.000 --> 00:05:52.320
+through every single line basically
+
+00:05:52.320 --> 00:05:53.759
+because sometimes let's just say that
+
+00:05:53.759 --> 00:05:56.080
+you have a property drawer for instance
+
+00:05:56.080 --> 00:05:59.440
+which tells you oh okay uh this tree
+
+00:05:59.440 --> 00:06:03.520
+has the tag foo so the problem is there
+
+00:06:03.520 --> 00:06:05.120
+are multiple ways for you
+
+00:06:05.120 --> 00:06:08.720
+to define a tag okay so you can use the
+
+00:06:08.720 --> 00:06:11.840
+usual way which is about wrapping in
+
+00:06:11.840 --> 00:06:14.000
+columns the tag at the end of a heading
+
+00:06:14.000 --> 00:06:16.160
+so for instance if I I'm not going to
+
+00:06:16.160 --> 00:06:17.360
+switch to emac that's going to waste too
+
+00:06:17.360 --> 00:06:18.240
+much time
+
+00:06:18.240 --> 00:06:21.039
+but that's one way to say your time but
+
+00:06:21.039 --> 00:06:21.520
+say
+
+00:06:21.520 --> 00:06:23.520
+you have tag inheritance which means
+
+00:06:23.520 --> 00:06:25.360
+that when you have a parent with a tag
+
+00:06:25.360 --> 00:06:28.160
+you also want the child to inherit the
+
+00:06:28.160 --> 00:06:29.520
+tag so if you have
+
+00:06:29.520 --> 00:06:32.400
+first heading with the typhoo you have
+
+00:06:32.400 --> 00:06:33.680
+the first subheading
+
+00:06:33.680 --> 00:06:37.520
+and the tag foo is implied now imagine
+
+00:06:37.520 --> 00:06:39.680
+having to do that with a file that is
+
+00:06:39.680 --> 00:06:41.039
+completely nested
+
+00:06:41.039 --> 00:06:44.160
+a file that has maybe 9 10
+
+00:06:44.160 --> 00:06:47.280
+11 levels of depth to it
+
+00:06:47.280 --> 00:06:49.039
+it's mind-bogglingly complicated for the
+
+00:06:49.039 --> 00:06:51.039
+software to do that knowing that I've
+
+00:06:51.039 --> 00:06:52.639
+told you about tags
+
+00:06:52.639 --> 00:06:55.919
+but any property can be inheritable
+
+00:06:55.919 --> 00:06:58.639
+anything like priorities even though why
+
+00:06:58.639 --> 00:07:00.240
+would you do this
+
+00:07:00.240 --> 00:07:03.759
+you can have groups you can all this and
+
+00:07:03.759 --> 00:07:05.599
+as someone who went through the trouble
+
+00:07:05.599 --> 00:07:07.199
+of optimizing his old agenda so
+
+00:07:07.199 --> 00:07:08.560
+basically if we go back to the
+
+00:07:08.560 --> 00:07:11.280
+gifts gifs oh god we've already had this
+
+00:07:11.280 --> 00:07:12.160
+discussion
+
+00:07:12.160 --> 00:07:14.479
+between the git and magit and now I've
+
+00:07:14.479 --> 00:07:16.400
+started jeff and gif and I only have one
+
+00:07:16.400 --> 00:07:18.080
+more minute left to do so so let's just
+
+00:07:18.080 --> 00:07:19.599
+say I'm going to say gif
+
+00:07:19.599 --> 00:07:23.599
+just to spice people so if you go on
+
+00:07:23.599 --> 00:07:26.880
+the way I organize my agenda what I did
+
+00:07:26.880 --> 00:07:29.120
+in order to keep my agenda build time
+
+00:07:29.120 --> 00:07:30.960
+under two seconds
+
+00:07:30.960 --> 00:07:33.440
+is that I've rewritten a whole lot of
+
+00:07:33.440 --> 00:07:35.520
+codes to be able to pass my organ gender
+
+00:07:35.520 --> 00:07:36.560
+files
+
+00:07:36.560 --> 00:07:40.080
+so the thing is I'm going to be talking
+
+00:07:40.080 --> 00:07:41.360
+more about this later
+
+00:07:41.360 --> 00:07:43.440
+I only have let's say one minutes to
+
+00:07:43.440 --> 00:07:44.479
+conclude
+
+00:07:44.479 --> 00:07:47.440
+so as you've gathered I'm not going to
+
+00:07:47.440 --> 00:07:48.479
+be giving you the answer
+
+00:07:48.479 --> 00:07:51.039
+right now I'm going to be talking about
+
+00:07:51.039 --> 00:07:53.440
+orgrum a little later which is about
+
+00:07:53.440 --> 00:07:55.680
+following the principle of having many
+
+00:07:55.680 --> 00:07:57.759
+small files
+
+00:07:57.759 --> 00:08:01.120
+but as someone who has been using
+
+00:08:01.120 --> 00:08:02.960
+one large file to manage my life you
+
+00:08:02.960 --> 00:08:04.879
+know I'm sitting on the fence
+
+00:08:04.879 --> 00:08:08.319
+I do not know which one is the best
+
+00:08:08.319 --> 00:08:10.560
+but I hope that my presentation has
+
+00:08:10.560 --> 00:08:12.240
+given you a little id
+
+00:08:12.240 --> 00:08:15.199
+of what goes on behind the principles
+
+00:08:15.199 --> 00:08:15.520
+and
+
+00:08:15.520 --> 00:08:16.560
+you also need to think about the
+
+00:08:16.560 --> 00:08:18.560
+philosophy behind the organization of
+
+00:08:18.560 --> 00:08:19.120
+your notes
+
+00:08:19.120 --> 00:08:21.039
+but I hope to be approaching this topic
+
+00:08:21.039 --> 00:08:23.280
+with you in about
+
+00:08:23.280 --> 00:08:25.360
+two hours or so maybe one hour actually
+
+00:08:25.360 --> 00:08:27.520
+so I'm actually finished I've decided to
+
+00:08:27.520 --> 00:08:28.960
+leave you two minutes of questions
+
+00:08:28.960 --> 00:08:31.520
+so uh if someone could feed me the
+
+00:08:31.520 --> 00:08:32.880
+question that might be best
+
+00:08:32.880 --> 00:08:34.399
+because I don't want oh actually I can
+
+00:08:34.399 --> 00:08:36.240
+just open the year
+
+00:08:36.240 --> 00:08:39.919
+I can just open it give me a second okay
+
+00:08:39.919 --> 00:08:40.800
+ah
+
+00:08:40.800 --> 00:08:43.039
+just loading up huh I might stop showing
+
+00:08:43.039 --> 00:08:43.839
+my screen
+
+00:08:43.839 --> 00:08:46.959
+that might make it easier so I mean if
+
+00:08:46.959 --> 00:08:47.519
+you can make
+
+00:08:47.519 --> 00:08:49.360
+myself big now on the screen that would
+
+00:08:49.360 --> 00:08:52.000
+be splendid yeah sure
+
+00:08:52.000 --> 00:08:55.839
+thank you so uh where are we
+
+00:08:55.839 --> 00:08:58.720
+question 12. okay so what's better one
+
+00:08:58.720 --> 00:09:00.160
+big file
+
+00:09:00.160 --> 00:09:02.160
+I did is it did a job to tell me that I
+
+00:09:02.160 --> 00:09:03.120
+haven't answered the question because
+
+00:09:03.120 --> 00:09:04.240
+someone just
+
+00:09:04.240 --> 00:09:06.320
+asked me the question well personally if
+
+00:09:06.320 --> 00:09:08.080
+I were to give you a quick answer in
+
+00:09:08.080 --> 00:09:08.560
+like
+
+00:09:08.560 --> 00:09:11.600
+20 seconds personally I think it's a
+
+00:09:11.600 --> 00:09:13.920
+question that is contextually based
+
+00:09:13.920 --> 00:09:15.680
+do you want something that is efficient
+
+00:09:15.680 --> 00:09:17.839
+as far as optimization is concerned
+
+00:09:17.839 --> 00:09:21.200
+then you need to think about
+
+00:09:21.200 --> 00:09:23.440
+this and personally for all the
+
+00:09:23.440 --> 00:09:24.640
+organization that I do
+
+00:09:24.640 --> 00:09:26.640
+all this stuff all the to-do's that I
+
+00:09:26.640 --> 00:09:27.760
+handle
+
+00:09:27.760 --> 00:09:30.080
+I like to do this in one simple big file
+
+00:09:30.080 --> 00:09:31.519
+because you benefit from all the
+
+00:09:31.519 --> 00:09:33.760
+refiling capabilities of log mode
+
+00:09:33.760 --> 00:09:36.320
+so I would do that but for knowledge
+
+00:09:36.320 --> 00:09:37.200
+management
+
+00:09:37.200 --> 00:09:40.080
+for note-taking and all this well I'd
+
+00:09:40.080 --> 00:09:41.279
+much rather follow the
+
+00:09:41.279 --> 00:09:42.959
+orgrom way of doing things which is
+
+00:09:42.959 --> 00:09:44.480
+about having many
+
+00:09:44.480 --> 00:09:48.240
+small files okay I'm not getting any
+
+00:09:48.240 --> 00:09:50.000
+more questions I'm not sure if there is
+
+00:09:50.000 --> 00:09:52.080
+one on ise that could be fed to me
+
+00:09:52.080 --> 00:09:53.040
+otherwise I'm
+
+00:09:53.040 --> 00:09:56.399
+happy to to uh pass over to the next uh
+
+00:09:56.399 --> 00:09:57.040
+speaker
+
+00:09:57.040 --> 00:09:59.360
+and by the way just before I finish your
+
+00:09:59.360 --> 00:10:01.360
+world is a lie it's not a three-piece
+
+00:10:01.360 --> 00:10:04.399
+suit I'm wearing jeans below so I hope
+
+00:10:04.399 --> 00:10:06.520
+that satisfies your curiosity
+
+00:10:06.520 --> 00:10:10.640
+[Music]
+
+00:10:10.640 --> 00:10:12.640
+okay there's one more question appearing
+
+00:10:12.640 --> 00:10:15.040
+but otherwise one big file to have
+
+00:10:15.040 --> 00:10:17.680
+everything so I'm putting you on the
+
+00:10:17.680 --> 00:10:19.760
+spot I believe it was such a short talk
+
+00:10:19.760 --> 00:10:21.040
+you know the problem is
+
+00:10:21.040 --> 00:10:23.600
+I just wanted to give you a little
+
+00:10:23.600 --> 00:10:24.720
+answer
+
+00:10:24.720 --> 00:10:26.959
+a little you know path of thinking on
+
+00:10:26.959 --> 00:10:27.920
+this topic
+
+00:10:27.920 --> 00:10:29.839
+but obviously it's a topic I could be
+
+00:10:29.839 --> 00:10:31.600
+spending 40 minutes on but
+
+00:10:31.600 --> 00:10:33.200
+I'm going to be drained you're going to
+
+00:10:33.200 --> 00:10:35.120
+be drained nobody's going to be happy if
+
+00:10:35.120 --> 00:10:35.680
+I do this
+
+00:10:35.680 --> 00:10:39.440
+so
+
+00:10:39.440 --> 00:10:41.200
+and someone asked me if I switch between
+
+00:10:41.200 --> 00:10:42.880
+british and french accents
+
+00:10:42.880 --> 00:10:46.560
+so a little a little secret for you um
+
+00:10:46.560 --> 00:10:48.480
+when I'm stressed I tend to relate to a
+
+00:10:48.480 --> 00:10:49.760
+french accent
+
+00:10:49.760 --> 00:10:53.760
+so you can measure the amount of stress
+
+00:10:53.760 --> 00:10:56.160
+that I'm feeling during this talk
+
+00:10:56.160 --> 00:10:58.880
+with the amount of h's that I drop and
+
+00:10:58.880 --> 00:11:00.560
+the amount of uh
+
+00:11:00.560 --> 00:11:02.720
+sheer fright that you can see sometimes
+
+00:11:02.720 --> 00:11:04.399
+in my eyes when I'm thinking about what
+
+00:11:04.399 --> 00:11:08.240
+to say next
+
+00:11:08.240 --> 00:11:10.880
+all right sir so I mean do you believe
+
+00:11:10.880 --> 00:11:11.360
+we can
+
+00:11:11.360 --> 00:11:14.240
+leave it at that and uh I'll be you
+
+00:11:14.240 --> 00:11:15.519
+people will see plenty more with me
+
+00:11:15.519 --> 00:11:17.040
+later on anyway
+
+00:11:17.040 --> 00:11:20.000
+right um so looking at the schedule I
+
+00:11:20.000 --> 00:11:20.640
+think
+
+00:11:20.640 --> 00:11:23.920
+your talk has until like 202 meaning
+
+00:11:23.920 --> 00:11:27.120
+like five or six minutes from now oh
+
+00:11:27.120 --> 00:11:28.000
+right
+
+00:11:28.000 --> 00:11:30.000
+yeah so if you do like to take like one
+
+00:11:30.000 --> 00:11:31.680
+or two questions to add two more
+
+00:11:31.680 --> 00:11:33.920
+questions by all means
+
+00:11:33.920 --> 00:11:37.040
+okay so uh someone has asked me what is
+
+00:11:37.040 --> 00:11:38.320
+the emacs icon
+
+00:11:38.320 --> 00:11:40.640
+icon sorry see another french accent
+
+00:11:40.640 --> 00:11:42.880
+here uh in my status bar
+
+00:11:42.880 --> 00:11:44.880
+uh oh sorry I'm not sharing anymore uh I
+
+00:11:44.880 --> 00:11:46.640
+might just share again just so that
+
+00:11:46.640 --> 00:11:49.200
+everyone can catch a glimpse of that
+
+00:11:49.200 --> 00:11:53.120
+uh there we go allow
+
+00:11:53.120 --> 00:11:54.880
+so it should be so if you could make me
+
+00:11:54.880 --> 00:11:56.240
+small again I'm in I'm not sure if it's
+
+00:11:56.240 --> 00:11:56.959
+going to do it
+
+00:11:56.959 --> 00:12:00.480
+by itself but I do have a little icon
+
+00:12:00.480 --> 00:12:01.839
+here in my status bar
+
+00:12:01.839 --> 00:12:04.480
+which is basically a way to interact
+
+00:12:04.480 --> 00:12:05.760
+with all protocol
+
+00:12:05.760 --> 00:12:07.279
+uh I'm not going to look for it right
+
+00:12:07.279 --> 00:12:09.120
+now but it's uh
+
+00:12:09.120 --> 00:12:10.800
+it's a browser extension that is
+
+00:12:10.800 --> 00:12:12.399
+developed by one of my friends
+
+00:12:12.399 --> 00:12:15.680
+over at ranger whose name is v phone and
+
+00:12:15.680 --> 00:12:16.160
+uh
+
+00:12:16.160 --> 00:12:18.240
+it's very useful I'm someone who uses a
+
+00:12:18.240 --> 00:12:19.680
+lot of uh
+
+00:12:19.680 --> 00:12:22.320
+of uh all protocols and by the way I
+
+00:12:22.320 --> 00:12:23.040
+used to teach
+
+00:12:23.040 --> 00:12:25.279
+english okay to high schoolers and they
+
+00:12:25.279 --> 00:12:27.279
+were supremely worried
+
+00:12:27.279 --> 00:12:29.600
+when I show them my status line and they
+
+00:12:29.600 --> 00:12:30.800
+so kill
+
+00:12:30.800 --> 00:12:34.000
+and explore in my status line so as
+
+00:12:34.000 --> 00:12:36.560
+fellow emacs users you know that
+
+00:12:36.560 --> 00:12:37.839
+obviously kill
+
+00:12:37.839 --> 00:12:40.880
+means to kill a selection of text and
+
+00:12:40.880 --> 00:12:44.320
+keep it inside your clipboard
+
+00:12:44.320 --> 00:12:47.279
+but for my students who you know they
+
+00:12:47.279 --> 00:12:48.320
+were very worried
+
+00:12:48.320 --> 00:12:51.600
+about what their professor was up to
+
+00:12:51.600 --> 00:12:53.600
+doing his nights
+
+00:12:53.600 --> 00:12:55.120
+so let's see if we've got more questions
+
+00:12:55.120 --> 00:12:56.560
+so I'm showing you the questions on the
+
+00:12:56.560 --> 00:12:57.920
+rainbow so let's see if
+
+00:12:57.920 --> 00:13:00.560
+we've got more so people are posting a
+
+00:13:00.560 --> 00:13:01.920
+lot of questions now
+
+00:13:01.920 --> 00:13:03.920
+so how do you feel about archiving files
+
+00:13:03.920 --> 00:13:06.399
+in old mode and how can that work in
+
+00:13:06.399 --> 00:13:09.360
+so one of the thing when we think about
+
+00:13:09.360 --> 00:13:10.240
+optimization
+
+00:13:10.240 --> 00:13:13.920
+is yes archiving done trees
+
+00:13:13.920 --> 00:13:16.240
+is a good idea because it means that if
+
+00:13:16.240 --> 00:13:17.920
+we go back to the org element the way it
+
+00:13:17.920 --> 00:13:18.720
+works
+
+00:13:18.720 --> 00:13:20.399
+and we'll get into technical details
+
+00:13:20.399 --> 00:13:22.079
+afterwards I'm giving a presentation
+
+00:13:22.079 --> 00:13:24.079
+about all grown technical suspect
+
+00:13:24.079 --> 00:13:26.880
+aspects sorry so I'll have a chance to
+
+00:13:26.880 --> 00:13:28.399
+expand a little more on this
+
+00:13:28.399 --> 00:13:31.360
+but basically all elements need to uh
+
+00:13:31.360 --> 00:13:32.160
+every time
+
+00:13:32.160 --> 00:13:35.279
+it sees a to do it has to consider it
+
+00:13:35.279 --> 00:13:38.320
+even though it is a done to do why
+
+00:13:38.320 --> 00:13:40.000
+because let's say for instance that in
+
+00:13:40.000 --> 00:13:41.839
+your agenda you want to activate
+
+00:13:41.839 --> 00:13:45.519
+log mode which is going to show the
+
+00:13:45.519 --> 00:13:48.959
+tasks which are done now you could be
+
+00:13:48.959 --> 00:13:49.519
+clever
+
+00:13:49.519 --> 00:13:51.440
+and say oh okay the old agenda does not
+
+00:13:51.440 --> 00:13:53.360
+need to show don items so it's not going
+
+00:13:53.360 --> 00:13:54.880
+to look for them
+
+00:13:54.880 --> 00:13:56.959
+but the problem is that all elements is
+
+00:13:56.959 --> 00:13:58.720
+always called it always needs to pass
+
+00:13:58.720 --> 00:13:59.519
+the buffer
+
+00:13:59.519 --> 00:14:01.839
+you know uh nicodego as you who is the
+
+00:14:01.839 --> 00:14:03.519
+french developer who's worked a whole
+
+00:14:03.519 --> 00:14:05.040
+lot on all elements
+
+00:14:05.040 --> 00:14:07.440
+has gone through a lot of trouble to
+
+00:14:07.440 --> 00:14:08.399
+optimize all
+
+00:14:08.399 --> 00:14:11.600
+elements but the problem is
+
+00:14:11.600 --> 00:14:13.279
+there's just so much that we can do with
+
+00:14:13.279 --> 00:14:14.720
+a concurrent process
+
+00:14:14.720 --> 00:14:18.560
+and right now it leaves somewhat
+
+00:14:18.560 --> 00:14:21.120
+uh you know things to be desired but
+
+00:14:21.120 --> 00:14:22.079
+we're working on it
+
+00:14:22.079 --> 00:14:24.800
+and one more time I feel like I spent
+
+00:14:24.800 --> 00:14:25.839
+half of this talk
+
+00:14:25.839 --> 00:14:28.000
+teasing my next talks but I'll be
+
+00:14:28.000 --> 00:14:29.360
+talking more about this
+
+00:14:29.360 --> 00:14:31.279
+in my future talks in about one to two
+
+00:14:31.279 --> 00:14:32.639
+hours
+
+00:14:32.639 --> 00:14:34.959
+so continuing with questions how big are
+
+00:14:34.959 --> 00:14:36.079
+my org files
+
+00:14:36.079 --> 00:14:37.760
+so in the background I'm just going to
+
+00:14:37.760 --> 00:14:39.839
+check how many lines I have in my main
+
+00:14:39.839 --> 00:14:40.720
+file
+
+00:14:40.720 --> 00:14:42.959
+so in my own file so the one I told you
+
+00:14:42.959 --> 00:14:44.079
+about where I keep all
+
+00:14:44.079 --> 00:14:47.279
+my to do gtd stuff I have
+
+00:14:47.279 --> 00:14:50.720
+38 000 lines which is
+
+00:14:50.720 --> 00:14:54.000
+you know it's sizable definitely
+
+00:14:54.000 --> 00:14:57.040
+but I do archive a lot of stuff
+
+00:14:57.040 --> 00:14:58.480
+so that might be a slight difference
+
+00:14:58.480 --> 00:15:00.880
+between uh my myself and carl voight
+
+00:15:00.880 --> 00:15:02.079
+even though I don't remember if they
+
+00:15:02.079 --> 00:15:04.880
+actually archive stuff
+
+00:15:04.880 --> 00:15:06.639
+so does it not consume more resources
+
+00:15:06.639 --> 00:15:08.480
+and time to load multiple files
+
+00:15:08.480 --> 00:15:10.839
+files than a large file or the same
+
+00:15:10.839 --> 00:15:12.560
+content now
+
+00:15:12.560 --> 00:15:15.839
+theoretically yes having many files
+
+00:15:15.839 --> 00:15:19.279
+open concurrently is slightly slower
+
+00:15:19.279 --> 00:15:22.240
+than having one main file opened
+
+00:15:22.240 --> 00:15:24.160
+now the problem is for those of you who
+
+00:15:24.160 --> 00:15:25.279
+have large files
+
+00:15:25.279 --> 00:15:27.199
+you may have noticed that when you are
+
+00:15:27.199 --> 00:15:29.360
+scrolling in a very large file
+
+00:15:29.360 --> 00:15:32.560
+it starts taking quite a bit of time why
+
+00:15:32.560 --> 00:15:34.480
+it's because you know in old mode you
+
+00:15:34.480 --> 00:15:35.920
+have a lot of content
+
+00:15:35.920 --> 00:15:38.959
+that is hidden so when you have
+
+00:15:38.959 --> 00:15:40.959
+the view mode which hides as much stuff
+
+00:15:40.959 --> 00:15:43.040
+as possible means meaning that you only
+
+00:15:43.040 --> 00:15:43.600
+see
+
+00:15:43.600 --> 00:15:45.360
+the top heading and I'm checking the
+
+00:15:45.360 --> 00:15:46.880
+time I mean don't worry I'm I'm finished
+
+00:15:46.880 --> 00:15:50.240
+on this one
+
+00:15:50.240 --> 00:15:52.160
+when you're hiding a whole lot of stuff
+
+00:15:52.160 --> 00:15:53.360
+you know orgmo
+
+00:15:53.360 --> 00:15:54.720
+needs to keep track or I should say
+
+00:15:54.720 --> 00:15:56.959
+emacs needs to keep track of which areas
+
+00:15:56.959 --> 00:15:58.160
+of text to show
+
+00:15:58.160 --> 00:16:00.560
+and which areas of text to hide and the
+
+00:16:00.560 --> 00:16:02.320
+problem is that when you're hiding stuff
+
+00:16:02.320 --> 00:16:04.480
+let's say you're moving from line the
+
+00:16:04.480 --> 00:16:06.320
+first heading to the second heading
+
+00:16:06.320 --> 00:16:08.639
+but you've got like 10 000 lines between
+
+00:16:08.639 --> 00:16:09.839
+those two headings
+
+00:16:09.839 --> 00:16:11.519
+well he max needs to compute the
+
+00:16:11.519 --> 00:16:13.680
+difference between the two passages
+
+00:16:13.680 --> 00:16:15.680
+and that takes quite a lot of time and
+
+00:16:15.680 --> 00:16:17.040
+in that that's my
+
+00:16:17.040 --> 00:16:18.560
+why you might realize that it's a little
+
+00:16:18.560 --> 00:16:20.560
+choppy when you start scrolling in large
+
+00:16:20.560 --> 00:16:21.199
+files
+
+00:16:21.199 --> 00:16:22.560
+anyway I could be answering questions
+
+00:16:22.560 --> 00:16:24.480
+about org mode for literally two hours
+
+00:16:24.480 --> 00:16:25.120
+straight
+
+00:16:25.120 --> 00:16:26.720
+so I'm gonna end it over to the next
+
+00:16:26.720 --> 00:16:28.639
+speakers and I'll be seeing
+
+00:16:28.639 --> 00:16:31.759
+seeing you guys a little later thank you
+
+00:16:31.759 --> 00:16:33.440
+very much leo
+
+00:16:33.440 --> 00:16:36.959
+oh thank you yes bye
+
+00:16:36.959 --> 00:16:39.839
+bye
diff --git a/2020/subtitles/emacsconf-2020--13-experience-report-steps-to-emacs-hyper-notebooks--joseph-corneli-raymond-puzio-cameron-ray-smith-autogen.vtt b/2020/subtitles/emacsconf-2020--13-experience-report-steps-to-emacs-hyper-notebooks--joseph-corneli-raymond-puzio-cameron-ray-smith-autogen.vtt
new file mode 100644
index 00000000..eb176536
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--13-experience-report-steps-to-emacs-hyper-notebooks--joseph-corneli-raymond-puzio-cameron-ray-smith-autogen.vtt
@@ -0,0 +1,1081 @@
+WEBVTT
+
+00:00:00.320 --> 00:00:03.280
+um so hi I'm joe corneli
+
+00:00:03.280 --> 00:00:05.920
+uh this is work I did with ray puzio and
+
+00:00:05.920 --> 00:00:06.879
+cameron smith
+
+00:00:06.879 --> 00:00:10.559
+um and they're the main protagonists in
+
+00:00:10.559 --> 00:00:11.599
+this story they
+
+00:00:11.599 --> 00:00:14.960
+are uh researchers who've been working
+
+00:00:14.960 --> 00:00:17.840
+on theoretical biology um so in a
+
+00:00:17.840 --> 00:00:20.160
+typical project they may use manxima
+
+00:00:20.160 --> 00:00:23.760
+and julia their work for biology physics
+
+00:00:23.760 --> 00:00:24.800
+and computer science
+
+00:00:24.800 --> 00:00:27.199
+computer science and the latest work in
+
+00:00:27.199 --> 00:00:29.439
+progress is on branching processes for
+
+00:00:29.439 --> 00:00:30.800
+cancer modeling so
+
+00:00:30.800 --> 00:00:34.719
+how can um Emacs possibly help
+
+00:00:34.719 --> 00:00:37.360
+let's let's have a look uh moving code
+
+00:00:37.360 --> 00:00:38.399
+and data between these different
+
+00:00:38.399 --> 00:00:39.680
+programs by hand is
+
+00:00:39.680 --> 00:00:42.000
+annoying on separate workflows for
+
+00:00:42.000 --> 00:00:43.200
+writing up notes and preparing
+
+00:00:43.200 --> 00:00:44.399
+publications
+
+00:00:44.399 --> 00:00:46.000
+is perhaps even more annoying all of
+
+00:00:46.000 --> 00:00:48.640
+it's time consuming and error-prone
+
+00:00:48.640 --> 00:00:52.000
+um so what about maybe using jupiter
+
+00:00:52.000 --> 00:00:53.760
+uh we found something called script of
+
+00:00:53.760 --> 00:00:55.199
+scripts and it solves some of those
+
+00:00:55.199 --> 00:00:58.399
+problems because you can use
+
+00:00:58.399 --> 00:01:01.120
+maximum and julia together but we were
+
+00:01:01.120 --> 00:01:02.640
+quite happy to explore emacs based
+
+00:01:02.640 --> 00:01:05.199
+solutions being emax enthusiasts and we
+
+00:01:05.199 --> 00:01:05.840
+even
+
+00:01:05.840 --> 00:01:07.760
+got cameron to be enthusiastic about
+
+00:01:07.760 --> 00:01:09.200
+doing emacs so that
+
+00:01:09.200 --> 00:01:11.600
+went nice so just here's a little
+
+00:01:11.600 --> 00:01:12.400
+feature grid
+
+00:01:12.400 --> 00:01:15.360
+of emacs org versus just sort of your
+
+00:01:15.360 --> 00:01:16.400
+generic
+
+00:01:16.400 --> 00:01:19.040
+um tools that are in a different more
+
+00:01:19.040 --> 00:01:20.960
+general ecosystem so as you can see it's
+
+00:01:20.960 --> 00:01:21.520
+quite
+
+00:01:21.520 --> 00:01:23.360
+feature complete you've got your maximo
+
+00:01:23.360 --> 00:01:25.520
+mode julia mode you can use both of them
+
+00:01:25.520 --> 00:01:27.119
+inside of org mode
+
+00:01:27.119 --> 00:01:28.720
+you can present things with word tree
+
+00:01:28.720 --> 00:01:30.240
+slide you can set up a
+
+00:01:30.240 --> 00:01:33.280
+wiki inside of orgrome this is one I
+
+00:01:33.280 --> 00:01:33.680
+found
+
+00:01:33.680 --> 00:01:35.759
+rather recently you can even use
+
+00:01:35.759 --> 00:01:37.759
+compatibly with orgrome something called
+
+00:01:37.759 --> 00:01:38.799
+log seek
+
+00:01:38.799 --> 00:01:41.520
+which is in the browser um so that's
+
+00:01:41.520 --> 00:01:42.159
+nice
+
+00:01:42.159 --> 00:01:44.320
+um you can do real-time collaborative
+
+00:01:44.320 --> 00:01:45.840
+editing um
+
+00:01:45.840 --> 00:01:47.840
+either in a kind of pairing style or in
+
+00:01:47.840 --> 00:01:49.280
+a more etherpad style
+
+00:01:49.280 --> 00:01:51.520
+obviously you can manage your references
+
+00:01:51.520 --> 00:01:54.159
+you can typeset whatever you want um you
+
+00:01:54.159 --> 00:01:55.759
+can publish work in progress on a blog
+
+00:01:55.759 --> 00:01:57.439
+and the fern is another one of these
+
+00:01:57.439 --> 00:01:58.159
+external
+
+00:01:58.159 --> 00:02:00.560
+org mode tools it's not actually any mac
+
+00:02:00.560 --> 00:02:01.360
+but works with
+
+00:02:01.360 --> 00:02:03.680
+org mode stuff and you know so we're
+
+00:02:03.680 --> 00:02:04.399
+good to go
+
+00:02:04.399 --> 00:02:06.640
+uh with all of that so what does that
+
+00:02:06.640 --> 00:02:08.000
+look like well here's
+
+00:02:08.000 --> 00:02:09.679
+a little example from before they were
+
+00:02:09.679 --> 00:02:11.599
+doing um
+
+00:02:11.599 --> 00:02:12.800
+before we started really thinking
+
+00:02:12.800 --> 00:02:14.560
+seriously about this stuff so this is
+
+00:02:14.560 --> 00:02:15.599
+just maxima
+
+00:02:15.599 --> 00:02:17.440
+well maximo doesn't have a long running
+
+00:02:17.440 --> 00:02:19.280
+process by default if you've ever used
+
+00:02:19.280 --> 00:02:20.160
+python
+
+00:02:20.160 --> 00:02:22.480
+uh you have something called sessions uh
+
+00:02:22.480 --> 00:02:23.920
+they don't have that for maxim at least
+
+00:02:23.920 --> 00:02:24.959
+not by default
+
+00:02:24.959 --> 00:02:27.599
+um so how what was the workaround
+
+00:02:27.599 --> 00:02:29.360
+there's this thing called uh
+
+00:02:29.360 --> 00:02:32.480
+solve for you here and um
+
+00:02:32.480 --> 00:02:34.879
+that shows up down below again in these
+
+00:02:34.879 --> 00:02:36.319
+angle brackets which you've seen maybe
+
+00:02:36.319 --> 00:02:37.360
+in someone else's talk
+
+00:02:37.360 --> 00:02:40.480
+uh which means go to the previous uh
+
+00:02:40.480 --> 00:02:41.920
+thing that was named soul for you
+
+00:02:41.920 --> 00:02:43.920
+and do that all over again so they do
+
+00:02:43.920 --> 00:02:45.280
+that over again
+
+00:02:45.280 --> 00:02:47.440
+and here's the little maxima code for
+
+00:02:47.440 --> 00:02:49.519
+defining you saw so you've now defined
+
+00:02:49.519 --> 00:02:50.560
+you saw
+
+00:02:50.560 --> 00:02:51.920
+and then you can use it in the next
+
+00:02:51.920 --> 00:02:54.000
+expression you get out a nice juicy
+
+00:02:54.000 --> 00:02:56.560
+zero at the end but it's a little bit a
+
+00:02:56.560 --> 00:02:57.200
+little bit
+
+00:02:57.200 --> 00:02:58.959
+like cartridge in a pear tree to have to
+
+00:02:58.959 --> 00:03:00.640
+redefine everything every time
+
+00:03:00.640 --> 00:03:02.560
+so this is clearly at the level of work
+
+00:03:02.560 --> 00:03:04.159
+around um maybe just
+
+00:03:04.159 --> 00:03:06.879
+one more time going looking through that
+
+00:03:06.879 --> 00:03:07.920
+um
+
+00:03:07.920 --> 00:03:11.599
+that stuff um
+
+00:03:11.599 --> 00:03:13.760
+sorry so uh looking through that stuff
+
+00:03:13.760 --> 00:03:15.280
+this is we're going to need something
+
+00:03:15.280 --> 00:03:17.200
+like that probably for stitching
+
+00:03:17.200 --> 00:03:19.599
+maxima and julie julia together so it's
+
+00:03:19.599 --> 00:03:20.319
+good to
+
+00:03:20.319 --> 00:03:21.680
+look a little bit about how that might
+
+00:03:21.680 --> 00:03:23.920
+work so first of all you can cache
+
+00:03:23.920 --> 00:03:25.680
+results so if you wanted to save the
+
+00:03:25.680 --> 00:03:26.480
+date
+
+00:03:26.480 --> 00:03:28.480
+out of block one at a certain time and
+
+00:03:28.480 --> 00:03:29.920
+then use
+
+00:03:29.920 --> 00:03:32.239
+use it again later so at the time when I
+
+00:03:32.239 --> 00:03:33.280
+ran this code
+
+00:03:33.280 --> 00:03:34.640
+you can see I've got two slightly
+
+00:03:34.640 --> 00:03:36.720
+different time stamps down below one's
+
+00:03:36.720 --> 00:03:38.560
+the cached result and the other was the
+
+00:03:38.560 --> 00:03:40.319
+result of reevaluating
+
+00:03:40.319 --> 00:03:42.640
+the block so you can move things around
+
+00:03:42.640 --> 00:03:43.760
+um and that's
+
+00:03:43.760 --> 00:03:46.000
+that's going to be useful but you know
+
+00:03:46.000 --> 00:03:47.280
+that's not really the main problem the
+
+00:03:47.280 --> 00:03:48.080
+main problem is
+
+00:03:48.080 --> 00:03:50.799
+making maxima long running so kind of
+
+00:03:50.799 --> 00:03:51.440
+the
+
+00:03:51.440 --> 00:03:53.920
+core of this talk is a new observant
+
+00:03:53.920 --> 00:03:56.400
+facility which is a general purpose
+
+00:03:56.400 --> 00:03:59.280
+way to do that kind of thing which
+
+00:03:59.280 --> 00:04:00.560
+involves a very simple
+
+00:04:00.560 --> 00:04:04.239
+change to obcor uh so we'll give a quick
+
+00:04:04.239 --> 00:04:05.360
+overview of that and show
+
+00:04:05.360 --> 00:04:08.480
+an example um so here's the example
+
+00:04:08.480 --> 00:04:11.760
+um a very simple sort of silly example
+
+00:04:11.760 --> 00:04:13.040
+uh what does it mean to have a long
+
+00:04:13.040 --> 00:04:14.640
+running process here I've set this
+
+00:04:14.640 --> 00:04:15.920
+display2d
+
+00:04:15.920 --> 00:04:18.560
+to be false um which just means that
+
+00:04:18.560 --> 00:04:19.440
+things are going to come
+
+00:04:19.440 --> 00:04:22.320
+come across in 1d and then I ask it to
+
+00:04:22.320 --> 00:04:23.040
+expand
+
+00:04:23.040 --> 00:04:25.199
+uh something and I get latex by default
+
+00:04:25.199 --> 00:04:27.280
+so so that's what it means is I've sent
+
+00:04:27.280 --> 00:04:28.639
+something in and it's going to come
+
+00:04:28.639 --> 00:04:30.240
+across in one view which is great
+
+00:04:30.240 --> 00:04:32.080
+um maybe you'll also notice that there's
+
+00:04:32.080 --> 00:04:34.560
+no semicolon if you're a maxima fan
+
+00:04:34.560 --> 00:04:36.720
+um and things are coming across as tech
+
+00:04:36.720 --> 00:04:38.400
+so those were some little bonus features
+
+00:04:38.400 --> 00:04:40.320
+and I'll show you how that works later
+
+00:04:40.320 --> 00:04:41.040
+so
+
+00:04:41.040 --> 00:04:45.440
+um the change to obcor is as follows uh
+
+00:04:45.440 --> 00:04:48.880
+um we uh actually this should say uh
+
+00:04:48.880 --> 00:04:51.520
+instead of stream here it should say um
+
+00:04:51.520 --> 00:04:52.479
+servant
+
+00:04:52.479 --> 00:04:54.800
+sorry uh we tried an experimental
+
+00:04:54.800 --> 00:04:56.160
+version what's called stream so now it's
+
+00:04:56.160 --> 00:04:58.160
+called servant but all it does is it
+
+00:04:58.160 --> 00:05:01.520
+overrides uh or babel execute laying for
+
+00:05:01.520 --> 00:05:02.639
+arbitrary laying
+
+00:05:02.639 --> 00:05:05.919
+if you have um a servant
+
+00:05:05.919 --> 00:05:07.840
+in your in your params so that's the
+
+00:05:07.840 --> 00:05:09.759
+change that hasn't been
+
+00:05:09.759 --> 00:05:11.919
+pushed out or sent as a patch to anybody
+
+00:05:11.919 --> 00:05:13.759
+but it's a pretty minor change
+
+00:05:13.759 --> 00:05:16.960
+um here's an overview without the code
+
+00:05:16.960 --> 00:05:19.080
+of just a high level overview of
+
+00:05:19.080 --> 00:05:20.720
+observant.el so
+
+00:05:20.720 --> 00:05:22.160
+it stores information about these
+
+00:05:22.160 --> 00:05:24.479
+processes in a hash table
+
+00:05:24.479 --> 00:05:26.080
+it can do pre-processing and
+
+00:05:26.080 --> 00:05:27.600
+post-processing
+
+00:05:27.600 --> 00:05:29.759
+um it does all these things it stores
+
+00:05:29.759 --> 00:05:30.720
+the output
+
+00:05:30.720 --> 00:05:32.479
+I mentioned here that in principle we
+
+00:05:32.479 --> 00:05:34.080
+could store lots of output and have a
+
+00:05:34.080 --> 00:05:35.280
+kind of browsable
+
+00:05:35.280 --> 00:05:36.560
+history although we don't do that
+
+00:05:36.560 --> 00:05:38.880
+presently um but that's what observant
+
+00:05:38.880 --> 00:05:40.639
+does is it does what you might expect
+
+00:05:40.639 --> 00:05:41.440
+and here's the
+
+00:05:41.440 --> 00:05:45.440
+here's the maxima kind of um
+
+00:05:45.440 --> 00:05:48.160
+on-ramp uh to get maxima brought in so
+
+00:05:48.160 --> 00:05:49.600
+you have to obviously have a maximum
+
+00:05:49.600 --> 00:05:51.360
+process you can call
+
+00:05:51.360 --> 00:05:54.960
+um put hash uh this is the preprocessing
+
+00:05:54.960 --> 00:05:57.840
+thing I mentioned adding in some tech um
+
+00:05:57.840 --> 00:05:58.960
+and adding in
+
+00:05:58.960 --> 00:06:01.520
+uh or deleting rather a substring and
+
+00:06:01.520 --> 00:06:03.120
+here here is why you delete the
+
+00:06:03.120 --> 00:06:03.759
+substring
+
+00:06:03.759 --> 00:06:06.960
+is because um maxima thinks it's a good
+
+00:06:06.960 --> 00:06:08.240
+idea to tell you false
+
+00:06:08.240 --> 00:06:10.080
+once you once you run check on things
+
+00:06:10.080 --> 00:06:11.759
+you've got to delete that back out to
+
+00:06:11.759 --> 00:06:13.680
+get something kind of coherent out of it
+
+00:06:13.680 --> 00:06:16.960
+but so this is how to set up maximal um
+
+00:06:16.960 --> 00:06:19.280
+that's enough really of the demo is not
+
+00:06:19.280 --> 00:06:20.000
+really a demos for
+
+00:06:20.000 --> 00:06:21.919
+show and tell but uh this is an
+
+00:06:21.919 --> 00:06:23.600
+experience report I wanted to talk about
+
+00:06:23.600 --> 00:06:25.440
+the experience of doing this
+
+00:06:25.440 --> 00:06:28.080
+so some some negatives like we tried to
+
+00:06:28.080 --> 00:06:30.160
+get emacs jupiter working
+
+00:06:30.160 --> 00:06:33.199
+prior to prior to working on the um
+
+00:06:33.199 --> 00:06:36.000
+observant and we couldn't get it doing
+
+00:06:36.000 --> 00:06:37.919
+everything we wanted despite a bit of
+
+00:06:37.919 --> 00:06:40.160
+heavy lifting and debugging and stuff so
+
+00:06:40.160 --> 00:06:41.840
+that's not not finished that was a bit
+
+00:06:41.840 --> 00:06:42.880
+difficult
+
+00:06:42.880 --> 00:06:45.360
+um on the other hand working on
+
+00:06:45.360 --> 00:06:47.759
+observing was fun and pretty lightweight
+
+00:06:47.759 --> 00:06:48.479
+and easy
+
+00:06:48.479 --> 00:06:50.400
+um we got some experience co-editing
+
+00:06:50.400 --> 00:06:52.400
+things with these real-time tools
+
+00:06:52.400 --> 00:06:54.479
+obviously the stack is somewhat work in
+
+00:06:54.479 --> 00:06:55.919
+progress um
+
+00:06:55.919 --> 00:06:58.000
+so I just wanted to give a shout out to
+
+00:06:58.000 --> 00:07:00.800
+crdt which was really fun
+
+00:07:00.800 --> 00:07:03.919
+and champion was making bug fiction
+
+00:07:03.919 --> 00:07:07.039
+bug fixes for that as we go similarly
+
+00:07:07.039 --> 00:07:08.960
+for fern and log seek the maintainers
+
+00:07:08.960 --> 00:07:10.160
+were really responsive
+
+00:07:10.160 --> 00:07:12.960
+um and so that was nice we did try to
+
+00:07:12.960 --> 00:07:14.560
+get emacs running in the browser
+
+00:07:14.560 --> 00:07:15.840
+thinking it would be really nice for
+
+00:07:15.840 --> 00:07:16.880
+people who
+
+00:07:16.880 --> 00:07:19.520
+um didn't want to install it to get a
+
+00:07:19.520 --> 00:07:21.120
+chance to just try it
+
+00:07:21.120 --> 00:07:23.120
+uh but actually browsers capture things
+
+00:07:23.120 --> 00:07:24.479
+like uh control n
+
+00:07:24.479 --> 00:07:27.120
+and so that's that was a bit annoying
+
+00:07:27.120 --> 00:07:28.479
+but we did get lots of great feedback
+
+00:07:28.479 --> 00:07:29.759
+and interaction with people including
+
+00:07:29.759 --> 00:07:31.599
+around this conference so thank you
+
+00:07:31.599 --> 00:07:33.759
+to those who we've had discussions with
+
+00:07:33.759 --> 00:07:35.599
+um
+
+00:07:35.599 --> 00:07:37.680
+so future work okay so maybe you
+
+00:07:37.680 --> 00:07:38.639
+remember I didn't
+
+00:07:38.639 --> 00:07:41.039
+give a talk a few years back on arcana
+
+00:07:41.039 --> 00:07:42.400
+so what what
+
+00:07:42.400 --> 00:07:44.479
+might this have to do with org mode and
+
+00:07:44.479 --> 00:07:45.919
+that's always the question one asks
+
+00:07:45.919 --> 00:07:47.039
+about arcata
+
+00:07:47.039 --> 00:07:48.720
+well so arcana one of the things it does
+
+00:07:48.720 --> 00:07:50.319
+is transclusions and so that could be
+
+00:07:50.319 --> 00:07:51.680
+actually very helpful
+
+00:07:51.680 --> 00:07:54.000
+in connection with this combined notes
+
+00:07:54.000 --> 00:07:55.520
+and write-up workflow so you might have
+
+00:07:55.520 --> 00:07:56.479
+a
+
+00:07:56.479 --> 00:07:58.400
+forward mode uh and some of these
+
+00:07:58.400 --> 00:08:00.800
+results we got back as raw results
+
+00:08:00.800 --> 00:08:03.199
+could go right into your write up in a
+
+00:08:03.199 --> 00:08:03.919
+kind of
+
+00:08:03.919 --> 00:08:07.520
+convenient way at a level above um
+
+00:08:07.520 --> 00:08:09.039
+transparently a level above the notebook
+
+00:08:09.039 --> 00:08:11.280
+so you'd have the notebook alongside the
+
+00:08:11.280 --> 00:08:13.440
+write-up in that case
+
+00:08:13.440 --> 00:08:15.599
+which is a sort of variation on the
+
+00:08:15.599 --> 00:08:16.800
+literate programming
+
+00:08:16.800 --> 00:08:19.120
+workflow this is speculative who knows
+
+00:08:19.120 --> 00:08:20.000
+the other thought is
+
+00:08:20.000 --> 00:08:22.080
+it just relates to the idea of network
+
+00:08:22.080 --> 00:08:23.520
+programming so we can imagine these
+
+00:08:23.520 --> 00:08:24.800
+networks of
+
+00:08:24.800 --> 00:08:26.639
+computational nodes maybe sitting inside
+
+00:08:26.639 --> 00:08:28.800
+of orgrome calling each other
+
+00:08:28.800 --> 00:08:31.199
+um and you would want to maintain some
+
+00:08:31.199 --> 00:08:32.560
+kind of model of that
+
+00:08:32.560 --> 00:08:34.959
+process and a sort of general question
+
+00:08:34.959 --> 00:08:36.640
+is how do we have a remote control for
+
+00:08:36.640 --> 00:08:38.320
+long-running processes you could do that
+
+00:08:38.320 --> 00:08:40.240
+in lisp or closure but
+
+00:08:40.240 --> 00:08:42.479
+maybe we could have something a little
+
+00:08:42.479 --> 00:08:44.080
+bit like that here
+
+00:08:44.080 --> 00:08:45.839
+um so conclusions what have we actually
+
+00:08:45.839 --> 00:08:48.080
+addressed well uh we addressed uh
+
+00:08:48.080 --> 00:08:50.080
+accessing any long-running process with
+
+00:08:50.080 --> 00:08:51.600
+a simple or mode interface
+
+00:08:51.600 --> 00:08:52.959
+obviously we're not the only people to
+
+00:08:52.959 --> 00:08:54.880
+think about notebooks but we think that
+
+00:08:54.880 --> 00:08:56.880
+emacs has some advantages
+
+00:08:56.880 --> 00:08:58.880
+related to reproducible research and
+
+00:08:58.880 --> 00:09:01.120
+interdisciplinary collaboration so let's
+
+00:09:01.120 --> 00:09:01.680
+just
+
+00:09:01.680 --> 00:09:03.120
+say that we think something is
+
+00:09:03.120 --> 00:09:04.880
+reproducible if it's actually teachable
+
+00:09:04.880 --> 00:09:07.200
+to someone new and they can do it
+
+00:09:07.200 --> 00:09:09.279
+org mode seems very useful for that many
+
+00:09:09.279 --> 00:09:11.680
+of the other talks have touched on this
+
+00:09:11.680 --> 00:09:14.399
+interdisciplinary collaboration is great
+
+00:09:14.399 --> 00:09:16.000
+this was an interdisciplinary
+
+00:09:16.000 --> 00:09:17.839
+collaboration on some level but
+
+00:09:17.839 --> 00:09:19.680
+what about you know future work for
+
+00:09:19.680 --> 00:09:21.600
+bringing in scenario planners simulation
+
+00:09:21.600 --> 00:09:22.320
+scientists
+
+00:09:22.320 --> 00:09:24.480
+and local farmers and building something
+
+00:09:24.480 --> 00:09:25.519
+that they can all
+
+00:09:25.519 --> 00:09:27.200
+use that's more than the sum of the
+
+00:09:27.200 --> 00:09:29.200
+parts so a little
+
+00:09:29.200 --> 00:09:30.720
+future work for everybody else here so
+
+00:09:30.720 --> 00:09:32.160
+we think science should be widely
+
+00:09:32.160 --> 00:09:33.120
+teachable
+
+00:09:33.120 --> 00:09:34.560
+shareable semi-automated
+
+00:09:34.560 --> 00:09:36.720
+transdisciplinary and real time
+
+00:09:36.720 --> 00:09:40.399
+like EmacsConf so you can get in touch
+
+00:09:40.399 --> 00:09:43.279
+uh via these methods and the code which
+
+00:09:43.279 --> 00:09:44.560
+is very much early stage work in
+
+00:09:44.560 --> 00:09:45.200
+progress
+
+00:09:45.200 --> 00:09:46.640
+as this was meant to be an experience
+
+00:09:46.640 --> 00:09:48.800
+report not a it's all done here it is
+
+00:09:48.800 --> 00:09:49.920
+polished report
+
+00:09:49.920 --> 00:09:51.680
+um it's also online if you'd like to
+
+00:09:51.680 --> 00:09:53.360
+have a look so that's the end of the
+
+00:09:53.360 --> 00:09:54.560
+talk and I don't know if there's time
+
+00:09:54.560 --> 00:09:55.279
+for questions
+
+00:09:55.279 --> 00:09:57.440
+or not but um I'm at your disposal now
+
+00:09:57.440 --> 00:10:00.240
+thank you you are now unmuted
+
+00:10:00.240 --> 00:10:04.079
+um many thanks for the tough job
+
+00:10:04.079 --> 00:10:07.120
+uh let's see we have about I think four
+
+00:10:07.120 --> 00:10:08.880
+minutes four questions
+
+00:10:08.880 --> 00:10:10.880
+um and we have a couple of questions on
+
+00:10:10.880 --> 00:10:12.320
+the pad would you like to read them
+
+00:10:12.320 --> 00:10:14.240
+yourself or should I read them to you
+
+00:10:14.240 --> 00:10:16.560
+uh just for sake of easy management why
+
+00:10:16.560 --> 00:10:18.079
+don't you read them out if that's okay
+
+00:10:18.079 --> 00:10:21.279
+yeah sure uh so they ask have you looked
+
+00:10:21.279 --> 00:10:22.240
+into trying
+
+00:10:22.240 --> 00:10:25.440
+sage math I've long uh long wanted
+
+00:10:25.440 --> 00:10:33.760
+nothing org files
+
+00:10:33.760 --> 00:10:36.959
+right and I and I wrote the answer that
+
+00:10:36.959 --> 00:10:39.279
+we should be possible because one can
+
+00:10:39.279 --> 00:10:44.839
+call it from a command
+
+00:10:44.839 --> 00:10:46.399
+okay
+
+00:10:46.399 --> 00:10:48.640
+and I see there's another sagemath
+
+00:10:48.640 --> 00:10:50.079
+question that you seem to have answered
+
+00:10:50.079 --> 00:10:52.100
+as well so I guess I won't repeat that
+
+00:10:52.100 --> 00:10:54.880
+[Music]
+
+00:10:54.880 --> 00:10:56.959
+there's let's not forget about embedded
+
+00:10:56.959 --> 00:11:00.640
+calc in emacs
+
+00:11:00.640 --> 00:11:03.680
+so so the first demos actually were with
+
+00:11:03.680 --> 00:11:05.040
+calc so that's that's
+
+00:11:05.040 --> 00:11:06.640
+useful uh although I think it was a
+
+00:11:06.640 --> 00:11:07.839
+different kind of a different command
+
+00:11:07.839 --> 00:11:08.240
+line
+
+00:11:08.240 --> 00:11:11.839
+well that was the next calc yeah
+
+00:11:11.839 --> 00:11:13.839
+so sure there is there is calc so that
+
+00:11:13.839 --> 00:11:15.680
+would be calculus and
+
+00:11:15.680 --> 00:11:19.120
+calc is already in org mode yeah
+
+00:11:19.120 --> 00:11:25.680
+yeah yeah
+
+00:11:25.680 --> 00:11:39.760
+um still looking for questions
+
+00:11:39.760 --> 00:11:41.760
+okay I think that's about it I don't see
+
+00:11:41.760 --> 00:11:44.320
+any questions on the ether pad
+
+00:11:44.320 --> 00:11:47.440
+and let's see
+
+00:11:47.440 --> 00:11:53.040
+anything on irc
+
+00:11:53.040 --> 00:11:55.760
+um nothing but phrases and everyone
+
+00:11:55.760 --> 00:11:56.720
+thanking you
+
+00:11:56.720 --> 00:11:59.120
+thank you all right you're welcome
+
+00:11:59.120 --> 00:12:00.240
+thanks a lot uh
+
+00:12:00.240 --> 00:12:02.880
+we'll see you guys around then cheers
+
+00:12:02.880 --> 00:12:06.800
+and see you around
diff --git a/2020/subtitles/emacsconf-2020--14-readme-driven-design--adam-ard-autogen.vtt b/2020/subtitles/emacsconf-2020--14-readme-driven-design--adam-ard-autogen.vtt
new file mode 100644
index 00000000..3179635f
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--14-readme-driven-design--adam-ard-autogen.vtt
@@ -0,0 +1,1426 @@
+WEBVTT
+
+00:00:03.600 --> 00:00:04.400
+hello
+
+00:00:04.400 --> 00:00:06.560
+welcome to readme driven design in Emacs
+
+00:00:06.560 --> 00:00:08.400
+by adam aard
+
+00:00:08.400 --> 00:00:10.800
+if you're a programmer you're accustomed
+
+00:00:10.800 --> 00:00:12.559
+to putting a readme file at the root of
+
+00:00:12.559 --> 00:00:13.759
+your project
+
+00:00:13.759 --> 00:00:16.400
+and it's usually a markdown file but if
+
+00:00:16.400 --> 00:00:17.600
+you use an org
+
+00:00:17.600 --> 00:00:20.720
+more an org mode file instead you can
+
+00:00:20.720 --> 00:00:22.560
+take advantage of the great features
+
+00:00:22.560 --> 00:00:24.400
+that org mode provides including
+
+00:00:24.400 --> 00:00:25.920
+literate programming
+
+00:00:25.920 --> 00:00:28.000
+which lets you generate your source code
+
+00:00:28.000 --> 00:00:31.840
+and markdown documentation dynamically
+
+00:00:31.840 --> 00:00:34.719
+I want to walk you through a little bit
+
+00:00:34.719 --> 00:00:37.120
+of what this looks like
+
+00:00:37.120 --> 00:00:39.440
+when you start a project especially if
+
+00:00:39.440 --> 00:00:41.280
+if you use something like github you
+
+00:00:41.280 --> 00:00:43.320
+begin with an automatically generated
+
+00:00:43.320 --> 00:00:47.039
+readme.md file so just delete that
+
+00:00:47.039 --> 00:00:50.239
+and instead create a readme.org file
+
+00:00:50.239 --> 00:00:51.920
+starting with an empty org file like you
+
+00:00:51.920 --> 00:00:54.800
+see here you can begin
+
+00:00:54.800 --> 00:00:56.559
+by recording important information about
+
+00:00:56.559 --> 00:00:59.440
+your project goals you can add diagrams
+
+00:00:59.440 --> 00:01:01.920
+code snippets to-do lists time tracking
+
+00:01:01.920 --> 00:01:03.520
+and much more
+
+00:01:03.520 --> 00:01:05.360
+I'm going to drop in some documentation
+
+00:01:05.360 --> 00:01:07.760
+that I r that I've written about
+
+00:01:07.760 --> 00:01:10.840
+about my project here so you can kind of
+
+00:01:10.840 --> 00:01:12.240
+see
+
+00:01:12.240 --> 00:01:15.280
+what this would look like
+
+00:01:15.280 --> 00:01:17.119
+so as you can see I have a title and a
+
+00:01:17.119 --> 00:01:20.320
+description and then a sub section
+
+00:01:20.320 --> 00:01:23.840
+as well as some code snippets
+
+00:01:23.840 --> 00:01:25.520
+and you can see that orgmo does a great
+
+00:01:25.520 --> 00:01:28.240
+job of formatting lists and
+
+00:01:28.240 --> 00:01:31.280
+code sections diagrams and so forth
+
+00:01:31.280 --> 00:01:33.920
+it's good or it's as good or better than
+
+00:01:33.920 --> 00:01:35.040
+markdown
+
+00:01:35.040 --> 00:01:37.520
+but when you use it in the Emacs you can
+
+00:01:37.520 --> 00:01:38.880
+do a lot more
+
+00:01:38.880 --> 00:01:40.479
+for example you can dynamically create
+
+00:01:40.479 --> 00:01:43.360
+diagrams using graphviz
+
+00:01:43.360 --> 00:01:45.200
+from a text description so if you go to
+
+00:01:45.200 --> 00:01:46.560
+this source block here
+
+00:01:46.560 --> 00:01:49.439
+and hit control c control c you'll see
+
+00:01:49.439 --> 00:01:51.439
+that we generate a
+
+00:01:51.439 --> 00:01:55.439
+diagram dynamically you can run
+
+00:01:55.439 --> 00:01:59.200
+so you can run these code snippets in
+
+00:01:59.200 --> 00:02:00.799
+place and get the results
+
+00:02:00.799 --> 00:02:03.040
+to show up inside of your your file
+
+00:02:03.040 --> 00:02:08.000
+which is a really powerful paradigm
+
+00:02:08.000 --> 00:02:10.640
+but most important most importantly for
+
+00:02:10.640 --> 00:02:11.520
+the
+
+00:02:11.520 --> 00:02:14.800
+purposes my purpose is here
+
+00:02:14.800 --> 00:02:17.200
+orgmo provides you the ability to do
+
+00:02:17.200 --> 00:02:19.520
+literate programming
+
+00:02:19.520 --> 00:02:21.440
+so take a quick look at this diagram
+
+00:02:21.440 --> 00:02:23.200
+that I generated here
+
+00:02:23.200 --> 00:02:25.360
+and gives you a quick overview of what I
+
+00:02:25.360 --> 00:02:27.520
+mean by literate programming
+
+00:02:27.520 --> 00:02:31.200
+and how I'm using it you can see
+
+00:02:31.200 --> 00:02:33.920
+that we start with a readme.org file on
+
+00:02:33.920 --> 00:02:34.720
+top
+
+00:02:34.720 --> 00:02:36.879
+at this point we can do one of two
+
+00:02:36.879 --> 00:02:37.920
+things
+
+00:02:37.920 --> 00:02:41.280
+tangle or weave tangle is used to
+
+00:02:41.280 --> 00:02:42.720
+describe the process of
+
+00:02:42.720 --> 00:02:46.319
+generating source code while weave
+
+00:02:46.319 --> 00:02:47.599
+is the process of generating
+
+00:02:47.599 --> 00:02:49.840
+documentation these are terms that
+
+00:02:49.840 --> 00:02:51.920
+donald knuth used
+
+00:02:51.920 --> 00:02:53.840
+and he's the one that came up with the
+
+00:02:53.840 --> 00:02:55.519
+idea of literate programming
+
+00:02:55.519 --> 00:02:59.920
+in the early 1980s
+
+00:02:59.920 --> 00:03:01.519
+but this is really all that there is to
+
+00:03:01.519 --> 00:03:04.480
+it you just
+
+00:03:04.480 --> 00:03:06.400
+who are simply using literate illiterate
+
+00:03:06.400 --> 00:03:07.840
+source file
+
+00:03:07.840 --> 00:03:10.319
+in this case the readme.org to generate
+
+00:03:10.319 --> 00:03:11.680
+the rest of the project
+
+00:03:11.680 --> 00:03:17.120
+the rest of the project files basically
+
+00:03:17.120 --> 00:03:20.959
+so let's dig in to the details of how
+
+00:03:20.959 --> 00:03:22.640
+this works
+
+00:03:22.640 --> 00:03:24.560
+and I hope you hopefully you'll see how
+
+00:03:24.560 --> 00:03:26.159
+cool this is
+
+00:03:26.159 --> 00:03:28.959
+so returning to the file here let's
+
+00:03:28.959 --> 00:03:31.120
+assume we have enough documentation now
+
+00:03:31.120 --> 00:03:32.080
+that we want to get started
+
+00:03:32.080 --> 00:03:34.159
+coding so maybe we'll just start with
+
+00:03:34.159 --> 00:03:35.519
+like a hello world
+
+00:03:35.519 --> 00:03:38.159
+app just so we can make sure that our
+
+00:03:38.159 --> 00:03:41.519
+environment is set up correctly
+
+00:03:41.519 --> 00:03:47.120
+so let's get started with a code block
+
+00:03:47.120 --> 00:03:49.519
+so I created a little snippet to help me
+
+00:03:49.519 --> 00:03:50.319
+add
+
+00:03:50.319 --> 00:03:52.239
+a source block for literate programming
+
+00:03:52.239 --> 00:03:53.599
+quickly
+
+00:03:53.599 --> 00:03:56.959
+and there's not much to it
+
+00:03:56.959 --> 00:03:58.799
+but there is some important annotations
+
+00:03:58.799 --> 00:04:01.599
+here so there's
+
+00:04:01.599 --> 00:04:04.080
+excuse me there's a there's a property
+
+00:04:04.080 --> 00:04:05.200
+called tangle
+
+00:04:05.200 --> 00:04:09.360
+and that takes a value of a file name
+
+00:04:09.360 --> 00:04:13.280
+and then there's also a no web property
+
+00:04:13.280 --> 00:04:18.880
+called no export
+
+00:04:18.880 --> 00:04:23.759
+and basically
+
+00:04:23.759 --> 00:04:26.800
+basically the no export will explain
+
+00:04:26.800 --> 00:04:28.639
+that a little bit
+
+00:04:28.639 --> 00:04:32.080
+more later um it has has to do with how
+
+00:04:32.080 --> 00:04:33.919
+the tangling
+
+00:04:33.919 --> 00:04:37.600
+is uh done in the tangle step versus the
+
+00:04:37.600 --> 00:04:39.280
+weave step and I'll explain that a
+
+00:04:39.280 --> 00:04:41.199
+little bit more but the tangle
+
+00:04:41.199 --> 00:04:45.199
+field just simply tells tells uh
+
+00:04:45.199 --> 00:04:48.320
+Emacs where it needs to generate the
+
+00:04:48.320 --> 00:04:50.320
+main.go file and where it needs to put
+
+00:04:50.320 --> 00:04:55.360
+it on the file system
+
+00:04:55.360 --> 00:04:57.680
+uh you'll you'll notice that we we're
+
+00:04:57.680 --> 00:04:59.040
+going to use go
+
+00:04:59.040 --> 00:05:01.440
+that's just the language that I've been
+
+00:05:01.440 --> 00:05:02.160
+using
+
+00:05:02.160 --> 00:05:05.360
+the most lately uh but
+
+00:05:05.360 --> 00:05:07.360
+this programming strategy is language
+
+00:05:07.360 --> 00:05:08.400
+agnostic
+
+00:05:08.400 --> 00:05:12.080
+you could use any language or any mix
+
+00:05:12.080 --> 00:05:14.720
+of languages you could create some files
+
+00:05:14.720 --> 00:05:16.560
+in python some files and go
+
+00:05:16.560 --> 00:05:19.520
+some files in in lisp or whatever you
+
+00:05:19.520 --> 00:05:21.520
+want
+
+00:05:21.520 --> 00:05:24.720
+and so but let's
+
+00:05:24.720 --> 00:05:28.000
+uh let's create just a little hello
+
+00:05:28.000 --> 00:05:29.440
+world
+
+00:05:29.440 --> 00:05:32.320
+let's use another snippet here to
+
+00:05:32.320 --> 00:05:33.520
+generate
+
+00:05:33.520 --> 00:05:36.560
+the basics of a go program
+
+00:05:36.560 --> 00:05:40.240
+so I'm just going to print
+
+00:05:40.240 --> 00:05:44.960
+hello world
+
+00:05:44.960 --> 00:05:48.560
+so that's and then
+
+00:05:48.560 --> 00:05:52.320
+let's make it a section in our
+
+00:05:52.320 --> 00:05:55.280
+file so now you can see we've got this
+
+00:05:55.280 --> 00:05:56.400
+snippet
+
+00:05:56.400 --> 00:05:59.600
+um when you have a source block in
+
+00:05:59.600 --> 00:06:01.600
+inside of org mode you can easily pop
+
+00:06:01.600 --> 00:06:02.880
+into a
+
+00:06:02.880 --> 00:06:04.960
+language specific buffer by typing
+
+00:06:04.960 --> 00:06:07.680
+control c single quote
+
+00:06:07.680 --> 00:06:10.240
+so you can see now I have a a go a
+
+00:06:10.240 --> 00:06:12.160
+buffer that's in go mode
+
+00:06:12.160 --> 00:06:14.240
+and gives you all the ability to edit
+
+00:06:14.240 --> 00:06:15.520
+like you would
+
+00:06:15.520 --> 00:06:18.800
+normally if you hit ctrl c
+
+00:06:18.800 --> 00:06:20.800
+single quote again then it goes back and
+
+00:06:20.800 --> 00:06:22.639
+any changes you
+
+00:06:22.639 --> 00:06:25.280
+make would will be updated there but you
+
+00:06:25.280 --> 00:06:26.160
+can do quite a bit
+
+00:06:26.160 --> 00:06:28.000
+just inside of here too there's quite a
+
+00:06:28.000 --> 00:06:29.199
+bit of
+
+00:06:29.199 --> 00:06:33.360
+language specific
+
+00:06:33.360 --> 00:06:35.440
+functionality just in place and so you
+
+00:06:35.440 --> 00:06:36.880
+don't always have to go over to a
+
+00:06:36.880 --> 00:06:38.080
+separate buffer
+
+00:06:38.080 --> 00:06:42.319
+but it's a it's a nice option sometimes
+
+00:06:42.319 --> 00:06:44.319
+but now that you have the code in here
+
+00:06:44.319 --> 00:06:46.720
+you're going to want to run it
+
+00:06:46.720 --> 00:06:48.560
+but right now it just lives here in this
+
+00:06:48.560 --> 00:06:50.240
+documentation
+
+00:06:50.240 --> 00:06:52.160
+so you need to get a copy of it into a
+
+00:06:52.160 --> 00:06:53.840
+separate file
+
+00:06:53.840 --> 00:06:57.440
+and that's the tangle process that you
+
+00:06:57.440 --> 00:07:01.360
+you need to follow there so I'm gonna
+
+00:07:01.360 --> 00:07:03.360
+drop in a little bit more doc a little
+
+00:07:03.360 --> 00:07:05.280
+bit more
+
+00:07:05.280 --> 00:07:12.240
+documentation really quick here
+
+00:07:12.240 --> 00:07:17.360
+okay all right so just kind of as a
+
+00:07:17.360 --> 00:07:21.520
+kind of as a side note I like to follow
+
+00:07:21.520 --> 00:07:24.800
+this process uh whenever having whenever
+
+00:07:24.800 --> 00:07:26.639
+I have an operation to perform I
+
+00:07:26.639 --> 00:07:28.880
+I'd like to document it here with a
+
+00:07:28.880 --> 00:07:31.680
+snippet that can be executed in line
+
+00:07:31.680 --> 00:07:33.280
+then I don't have to leave org mode and
+
+00:07:33.280 --> 00:07:34.639
+I don't have to try to remember what I
+
+00:07:34.639 --> 00:07:36.800
+did later so instead of just
+
+00:07:36.800 --> 00:07:38.960
+trying to do an operation the first time
+
+00:07:38.960 --> 00:07:40.319
+I do something I take the
+
+00:07:40.319 --> 00:07:41.680
+take the time to figure out what it is
+
+00:07:41.680 --> 00:07:43.440
+and document it and so then it's
+
+00:07:43.440 --> 00:07:44.879
+recorded
+
+00:07:44.879 --> 00:07:48.400
+and so here we find that to do a tangle
+
+00:07:48.400 --> 00:07:49.120
+operation
+
+00:07:49.120 --> 00:07:51.680
+you run the command or babel tangled
+
+00:07:51.680 --> 00:07:52.560
+which is a
+
+00:07:52.560 --> 00:07:55.840
+e-list command so if you hit ctrl c
+
+00:07:55.840 --> 00:07:59.199
+ctrl c to run it in place you get the
+
+00:07:59.199 --> 00:08:00.080
+result
+
+00:08:00.080 --> 00:08:02.720
+of main dot go which basically is
+
+00:08:02.720 --> 00:08:03.759
+telling us that
+
+00:08:03.759 --> 00:08:07.680
+we've tangled one file called main.go
+
+00:08:07.680 --> 00:08:11.039
+and you can see that that's true
+
+00:08:11.039 --> 00:08:14.000
+if you go to the file system and you
+
+00:08:14.000 --> 00:08:14.400
+look
+
+00:08:14.400 --> 00:08:17.840
+so now in uh in our demo directory
+
+00:08:17.840 --> 00:08:20.960
+we have a readme.org we have that png
+
+00:08:20.960 --> 00:08:22.479
+that we generated but we also have a
+
+00:08:22.479 --> 00:08:23.440
+main.go
+
+00:08:23.440 --> 00:08:26.080
+and if you if you visit that file you'll
+
+00:08:26.080 --> 00:08:27.759
+see that it's just the source code that
+
+00:08:27.759 --> 00:08:29.280
+was in our documentation which is
+
+00:08:29.280 --> 00:08:31.039
+exactly what we expected and what we
+
+00:08:31.039 --> 00:08:32.880
+wanted so that's good
+
+00:08:32.880 --> 00:08:36.560
+so if we return to
+
+00:08:36.560 --> 00:08:41.120
+to where we are at
+
+00:08:41.120 --> 00:08:42.959
+now we're we're at the point where we
+
+00:08:42.959 --> 00:08:44.640
+have a file on the file system so now we
+
+00:08:44.640 --> 00:08:45.760
+need
+
+00:08:45.760 --> 00:08:48.959
+um now we need to build it and to
+
+00:08:48.959 --> 00:08:53.600
+run it so let's follow the same
+
+00:08:53.600 --> 00:08:57.040
+philosophy where let's document
+
+00:08:57.040 --> 00:08:58.720
+these operations that we're going to
+
+00:08:58.720 --> 00:09:00.160
+perform
+
+00:09:00.160 --> 00:09:04.560
+so I'm dropping in a
+
+00:09:04.560 --> 00:09:07.839
+a build instruction section and a run
+
+00:09:07.839 --> 00:09:13.360
+instruction section
+
+00:09:13.360 --> 00:09:15.279
+so as you can see here we have a little
+
+00:09:15.279 --> 00:09:17.839
+a bash source block
+
+00:09:17.839 --> 00:09:20.000
+and another batch source block this one
+
+00:09:20.000 --> 00:09:22.000
+compiles the go build command is what
+
+00:09:22.000 --> 00:09:25.440
+compiles a file and then
+
+00:09:25.440 --> 00:09:26.880
+the file that gets generated should be
+
+00:09:26.880 --> 00:09:30.080
+called demo
+
+00:09:30.080 --> 00:09:32.959
+and uh so we just run it here so if if I
+
+00:09:32.959 --> 00:09:34.000
+type control c
+
+00:09:34.000 --> 00:09:37.839
+control c we get an empty results block
+
+00:09:37.839 --> 00:09:40.640
+when you compile things no news is good
+
+00:09:40.640 --> 00:09:41.360
+news
+
+00:09:41.360 --> 00:09:44.399
+so it means there's no errors so
+
+00:09:44.399 --> 00:09:46.560
+presumably we've created an executable
+
+00:09:46.560 --> 00:09:48.000
+that's called demo
+
+00:09:48.000 --> 00:09:51.440
+so let's uh
+
+00:09:51.440 --> 00:09:54.560
+let's look again at the file system and
+
+00:09:54.560 --> 00:10:02.480
+regenerate
+
+00:10:02.480 --> 00:10:05.760
+yep and what we have here is a demo
+
+00:10:05.760 --> 00:10:07.200
+executable which is exactly what we
+
+00:10:07.200 --> 00:10:07.760
+wanted
+
+00:10:07.760 --> 00:10:12.079
+so let's go back
+
+00:10:12.079 --> 00:10:14.160
+so now we should be able to run it so
+
+00:10:14.160 --> 00:10:16.079
+ctrl c ctrl c
+
+00:10:16.079 --> 00:10:20.399
+and we get hello world as a result
+
+00:10:20.399 --> 00:10:23.440
+which was exactly what we were expecting
+
+00:10:23.440 --> 00:10:26.560
+so that's already pretty cool
+
+00:10:26.560 --> 00:10:30.839
+you can you can do that much
+
+00:10:30.839 --> 00:10:33.040
+um but
+
+00:10:33.040 --> 00:10:34.560
+that's really just kind of the tip of
+
+00:10:34.560 --> 00:10:37.839
+the iceberg to uh to really
+
+00:10:37.839 --> 00:10:41.040
+kind of um
+
+00:10:41.040 --> 00:10:43.440
+use the more impressive features of
+
+00:10:43.440 --> 00:10:46.160
+literate programming we need to uh
+
+00:10:46.160 --> 00:10:49.920
+we need to do a little bit more
+
+00:10:49.920 --> 00:10:53.200
+so or at least
+
+00:10:53.200 --> 00:10:55.519
+at least really to get the full benefit
+
+00:10:55.519 --> 00:10:56.480
+of it then
+
+00:10:56.480 --> 00:10:59.600
+we need to do
+
+00:10:59.600 --> 00:11:02.959
+add some sections that will cause uh
+
+00:11:02.959 --> 00:11:06.320
+Emacs to have to to tangle or assemble
+
+00:11:06.320 --> 00:11:06.720
+this
+
+00:11:06.720 --> 00:11:09.760
+this file from different pieces so
+
+00:11:09.760 --> 00:11:13.120
+imagine that we wanted to take this file
+
+00:11:13.120 --> 00:11:16.720
+and maybe kind of templatize it
+
+00:11:16.720 --> 00:11:19.120
+so using literature programming syntax
+
+00:11:19.120 --> 00:11:21.279
+this angle bracket syntax
+
+00:11:21.279 --> 00:11:24.399
+let's say that we want to create an in
+
+00:11:24.399 --> 00:11:29.360
+imports section
+
+00:11:29.360 --> 00:11:32.399
+in a functions section
+
+00:11:32.399 --> 00:11:35.040
+and then maybe just a main section and
+
+00:11:35.040 --> 00:11:36.240
+we'll get rid of this
+
+00:11:36.240 --> 00:11:37.920
+so now you see we've created something
+
+00:11:37.920 --> 00:11:39.760
+that looks a little bit like a
+
+00:11:39.760 --> 00:11:42.000
+like a template or a scaffolding or
+
+00:11:42.000 --> 00:11:42.880
+outline
+
+00:11:42.880 --> 00:11:46.000
+for what what our file is going to be it
+
+00:11:46.000 --> 00:11:48.399
+looks a little bit like pseudocode
+
+00:11:48.399 --> 00:11:50.800
+and what we're going to have literate
+
+00:11:50.800 --> 00:11:52.399
+programming do
+
+00:11:52.399 --> 00:11:54.800
+is dynamically insert those things into
+
+00:11:54.800 --> 00:11:56.639
+those slots
+
+00:11:56.639 --> 00:12:00.079
+so the first thing we need to do
+
+00:12:00.079 --> 00:12:03.200
+is so let's create a section
+
+00:12:03.200 --> 00:12:08.079
+maybe called say hello so we want
+
+00:12:08.079 --> 00:12:09.519
+we want to add some functionality that
+
+00:12:09.519 --> 00:12:12.720
+makes our program say hello
+
+00:12:12.720 --> 00:12:15.680
+so using a different snippet that I have
+
+00:12:15.680 --> 00:12:17.600
+for creating something
+
+00:12:17.600 --> 00:12:20.800
+that I call like a literate section
+
+00:12:20.800 --> 00:12:24.079
+um basically we create a
+
+00:12:24.079 --> 00:12:26.000
+another source block that's almost the
+
+00:12:26.000 --> 00:12:27.839
+same as the one for the file but it's
+
+00:12:27.839 --> 00:12:31.040
+it just has a few differences so say we
+
+00:12:31.040 --> 00:12:31.680
+want to
+
+00:12:31.680 --> 00:12:34.160
+drop code into the import section and we
+
+00:12:34.160 --> 00:12:36.639
+want it to be in go
+
+00:12:36.639 --> 00:12:39.120
+here we use the same noed no web no
+
+00:12:39.120 --> 00:12:40.720
+export syntax
+
+00:12:40.720 --> 00:12:43.200
+but then we've added this no web refs
+
+00:12:43.200 --> 00:12:44.560
+imports
+
+00:12:44.560 --> 00:12:48.240
+and this ties that slot
+
+00:12:48.240 --> 00:12:51.120
+basically to this reference it tells
+
+00:12:51.120 --> 00:12:53.760
+Emacs that when you tangle
+
+00:12:53.760 --> 00:12:56.880
+we want to stick whatever's in here in
+
+00:12:56.880 --> 00:12:58.240
+that spot
+
+00:12:58.240 --> 00:13:02.079
+so you skip the tangle file name section
+
+00:13:02.079 --> 00:13:03.279
+because you're not actually creating a
+
+00:13:03.279 --> 00:13:04.240
+file name you're
+
+00:13:04.240 --> 00:13:06.160
+you're putting information into an
+
+00:13:06.160 --> 00:13:07.680
+existing file
+
+00:13:07.680 --> 00:13:10.720
+so here we would just add the fmt
+
+00:13:10.720 --> 00:13:14.399
+for the imports
+
+00:13:14.399 --> 00:13:18.839
+so let's add another section for uh
+
+00:13:18.839 --> 00:13:22.240
+functions and let's create a
+
+00:13:22.240 --> 00:13:25.519
+let's just create a function called
+
+00:13:25.519 --> 00:13:30.240
+say hello that
+
+00:13:30.240 --> 00:13:32.839
+doesn't have any arguments no return
+
+00:13:32.839 --> 00:13:34.000
+types
+
+00:13:34.000 --> 00:13:35.760
+all it does is kind of pretty much the
+
+00:13:35.760 --> 00:13:37.440
+same thing as we did before
+
+00:13:37.440 --> 00:13:39.199
+just print something but let's just say
+
+00:13:39.199 --> 00:13:41.360
+hello
+
+00:13:41.360 --> 00:13:45.760
+Emacs comp this time
+
+00:13:45.760 --> 00:13:49.519
+okay so now we have a function and now
+
+00:13:49.519 --> 00:13:51.040
+the function won't do anything unless we
+
+00:13:51.040 --> 00:13:52.720
+invoke it so let's do
+
+00:13:52.720 --> 00:13:56.000
+one last literate section
+
+00:13:56.000 --> 00:13:59.920
+called main make that go
+
+00:13:59.920 --> 00:14:03.519
+source block and then let's
+
+00:14:03.519 --> 00:14:06.560
+just invoke
+
+00:14:06.560 --> 00:14:10.320
+that that function
+
+00:14:10.320 --> 00:14:13.360
+so now you can see that we've got
+
+00:14:13.360 --> 00:14:15.600
+our scaffolding scaffolding kind of
+
+00:14:15.600 --> 00:14:17.199
+outline and then we have
+
+00:14:17.199 --> 00:14:20.079
+the sections that we want to get tangled
+
+00:14:20.079 --> 00:14:21.360
+or inserted
+
+00:14:21.360 --> 00:14:25.440
+so I I've kind of used this syntax
+
+00:14:25.440 --> 00:14:27.199
+it's it's kind of borrowed from
+
+00:14:27.199 --> 00:14:28.560
+literature programming a little bit with
+
+00:14:28.560 --> 00:14:30.320
+a plus equals so really it's just saying
+
+00:14:30.320 --> 00:14:32.480
+that I want to append
+
+00:14:32.480 --> 00:14:35.760
+this item into the import section so
+
+00:14:35.760 --> 00:14:37.600
+it's really just to make a little bit
+
+00:14:37.600 --> 00:14:39.839
+more clear what's going on
+
+00:14:39.839 --> 00:14:41.519
+when you generate documentation you
+
+00:14:41.519 --> 00:14:43.519
+won't see these
+
+00:14:43.519 --> 00:14:46.160
+these these particular property
+
+00:14:46.160 --> 00:14:49.360
+annotations and so you won't know
+
+00:14:49.360 --> 00:14:51.440
+immediately that this section goes in
+
+00:14:51.440 --> 00:14:53.839
+the imports area and so I usually put
+
+00:14:53.839 --> 00:14:55.440
+a little bit of documentation on top
+
+00:14:55.440 --> 00:14:57.760
+there so that it's easy to see
+
+00:14:57.760 --> 00:15:01.120
+and you would probably if this was very
+
+00:15:01.120 --> 00:15:03.040
+complicated you'd put some
+
+00:15:03.040 --> 00:15:06.399
+documentation above to explain what you
+
+00:15:06.399 --> 00:15:07.360
+were doing
+
+00:15:07.360 --> 00:15:11.519
+maybe right here
+
+00:15:11.519 --> 00:15:13.279
+you could you could picture yourself
+
+00:15:13.279 --> 00:15:15.040
+maybe explaining
+
+00:15:15.040 --> 00:15:17.440
+a complicated algorithm or something up
+
+00:15:17.440 --> 00:15:18.079
+here
+
+00:15:18.079 --> 00:15:21.120
+and having a nice way to document it
+
+00:15:21.120 --> 00:15:22.959
+so now that we've got that here in the
+
+00:15:22.959 --> 00:15:25.600
+documentation we need to figure out
+
+00:15:25.600 --> 00:15:27.040
+we need to make sure that it's going to
+
+00:15:27.040 --> 00:15:29.920
+tangle properly so your best friend
+
+00:15:29.920 --> 00:15:33.519
+at this point is is uh
+
+00:15:33.519 --> 00:15:35.680
+is a keyboard shortcut that lets you
+
+00:15:35.680 --> 00:15:38.240
+preview the tangled operation so if you
+
+00:15:38.240 --> 00:15:38.959
+say control
+
+00:15:38.959 --> 00:15:42.560
+c control v control v
+
+00:15:42.560 --> 00:15:45.120
+it will create a new buffer with the
+
+00:15:45.120 --> 00:15:46.480
+tangled
+
+00:15:46.480 --> 00:15:49.360
+contents and so you can see here that
+
+00:15:49.360 --> 00:15:50.639
+the fmt
+
+00:15:50.639 --> 00:15:53.199
+import went to the right place that
+
+00:15:53.199 --> 00:15:54.720
+function went to the right place the
+
+00:15:54.720 --> 00:15:56.160
+function invocation went to the right
+
+00:15:56.160 --> 00:15:58.480
+place and so we're feeling good
+
+00:15:58.480 --> 00:16:01.279
+you can nest these things many layers
+
+00:16:01.279 --> 00:16:02.800
+deep
+
+00:16:02.800 --> 00:16:04.800
+actually so like if you came into the
+
+00:16:04.800 --> 00:16:07.199
+say hello function you could add
+
+00:16:07.199 --> 00:16:10.560
+more sections
+
+00:16:10.560 --> 00:16:12.160
+you know and it gets and it'll go
+
+00:16:12.160 --> 00:16:13.759
+through and it'll
+
+00:16:13.759 --> 00:16:15.680
+keep track of all that and tangle it for
+
+00:16:15.680 --> 00:16:16.959
+you so you really get a lot of freedom
+
+00:16:16.959 --> 00:16:18.320
+and flexibility for how you want to
+
+00:16:18.320 --> 00:16:19.600
+document things
+
+00:16:19.600 --> 00:16:22.320
+by doing this so now that we've
+
+00:16:22.320 --> 00:16:25.839
+previewed it and we feel good about it
+
+00:16:25.839 --> 00:16:28.639
+we need to uh we need to tangle so we
+
+00:16:28.639 --> 00:16:31.440
+get the file on the file system
+
+00:16:31.440 --> 00:16:34.480
+so ctrl c ctrl c and
+
+00:16:34.480 --> 00:16:37.199
+get just main.go comes back again
+
+00:16:37.199 --> 00:16:37.920
+control c
+
+00:16:37.920 --> 00:16:40.959
+control c and no errors come back
+
+00:16:40.959 --> 00:16:43.839
+and then if we did this right when we
+
+00:16:43.839 --> 00:16:45.600
+when we run this we should get hello
+
+00:16:45.600 --> 00:16:47.199
+Emacs comp so ctrl c
+
+00:16:47.199 --> 00:16:51.199
+ctrl c hello Emacs comp
+
+00:16:51.199 --> 00:16:54.800
+so I uh
+
+00:16:54.800 --> 00:16:57.120
+I think that's pretty pretty cool
+
+00:16:57.120 --> 00:16:58.240
+actually so we've got
+
+00:16:58.240 --> 00:17:00.160
+kind of the breadcrumbs of the process
+
+00:17:00.160 --> 00:17:02.399
+we've gone through to get to this point
+
+00:17:02.399 --> 00:17:05.520
+this initial this initial
+
+00:17:05.520 --> 00:17:08.000
+document that has some tangling in it we
+
+00:17:08.000 --> 00:17:09.919
+have documentation for how to tangle
+
+00:17:09.919 --> 00:17:12.799
+how to build how to run it's we've
+
+00:17:12.799 --> 00:17:14.079
+really built a nice
+
+00:17:14.079 --> 00:17:17.760
+foundation for
+
+00:17:17.760 --> 00:17:20.160
+moving forward on our project and a nice
+
+00:17:20.160 --> 00:17:21.439
+way of breaking things out and
+
+00:17:21.439 --> 00:17:23.280
+documenting further
+
+00:17:23.280 --> 00:17:27.120
+the last piece that we need to
+
+00:17:27.120 --> 00:17:30.559
+take care of is the weave that I
+
+00:17:30.559 --> 00:17:34.799
+that's I showed you in the diagram above
+
+00:17:34.799 --> 00:17:38.640
+so one more time we'll drop in
+
+00:17:38.640 --> 00:17:41.760
+some documentation so this time on how
+
+00:17:41.760 --> 00:17:42.400
+to weave
+
+00:17:42.400 --> 00:17:44.400
+so it's really just an export function
+
+00:17:44.400 --> 00:17:47.520
+it's not there's not a separate weave
+
+00:17:47.520 --> 00:17:49.280
+command going on here we're just going
+
+00:17:49.280 --> 00:17:50.640
+to export
+
+00:17:50.640 --> 00:17:52.799
+what we've got here into a markdown
+
+00:17:52.799 --> 00:17:55.200
+format so we're using org
+
+00:17:55.200 --> 00:17:57.440
+gfm export to markdown which is the
+
+00:17:57.440 --> 00:17:58.880
+github style
+
+00:17:58.880 --> 00:18:02.160
+markdown you can use the other just
+
+00:18:02.160 --> 00:18:05.440
+more standard type as well so hit ctrl c
+
+00:18:05.440 --> 00:18:10.320
+ctrl c now you see we've got a readme
+
+00:18:10.320 --> 00:18:15.280
+file and if you look
+
+00:18:15.280 --> 00:18:17.440
+in the file system we've got that right
+
+00:18:17.440 --> 00:18:19.120
+there and so
+
+00:18:19.120 --> 00:18:23.120
+if you go to something like ghostwriter
+
+00:18:23.120 --> 00:18:31.679
+and open that file
+
+00:18:31.679 --> 00:18:34.559
+now you can see that it's generated some
+
+00:18:34.559 --> 00:18:35.520
+documentation
+
+00:18:35.520 --> 00:18:38.320
+it puts a index at top at the top I
+
+00:18:38.320 --> 00:18:39.679
+usually just
+
+00:18:39.679 --> 00:18:42.000
+I usually turn that off it's easy to do
+
+00:18:42.000 --> 00:18:43.679
+that by putting a property at the top of
+
+00:18:43.679 --> 00:18:44.559
+your
+
+00:18:44.559 --> 00:18:46.880
+your org file but some people like to
+
+00:18:46.880 --> 00:18:48.559
+have an index
+
+00:18:48.559 --> 00:18:50.799
+but here you can see that it's generated
+
+00:18:50.799 --> 00:18:52.160
+pretty nicely and
+
+00:18:52.160 --> 00:18:55.200
+formatted snippets well
+
+00:18:55.200 --> 00:18:56.880
+put the diagram in there and then it's
+
+00:18:56.880 --> 00:18:58.240
+preserved
+
+00:18:58.240 --> 00:19:01.039
+it's preserved this literate programming
+
+00:19:01.039 --> 00:19:02.799
+syntax
+
+00:19:02.799 --> 00:19:04.960
+which is important because that's how we
+
+00:19:04.960 --> 00:19:06.480
+want to view the documentation that's
+
+00:19:06.480 --> 00:19:07.200
+what the no
+
+00:19:07.200 --> 00:19:10.559
+exports um
+
+00:19:10.559 --> 00:19:13.360
+property was was trying to maintain so
+
+00:19:13.360 --> 00:19:14.000
+that
+
+00:19:14.000 --> 00:19:16.080
+no exports means when you export do not
+
+00:19:16.080 --> 00:19:18.400
+try to tangle so that's
+
+00:19:18.400 --> 00:19:20.559
+hopefully that makes more sense now but
+
+00:19:20.559 --> 00:19:22.240
+now you can see all the documentation
+
+00:19:22.240 --> 00:19:26.080
+and I think it demonstrates a
+
+00:19:26.080 --> 00:19:29.919
+pretty useful feature that's inside of
+
+00:19:29.919 --> 00:19:33.520
+Emacs and and hopefully
+
+00:19:33.520 --> 00:19:35.039
+hopefully you'll have as much fun using
+
+00:19:35.039 --> 00:19:39.919
+that as I have
+
+00:19:39.919 --> 00:19:43.600
+so thanks
diff --git a/2020/subtitles/emacsconf-2020--15-moving-from-jekyll-to-orgmode-an-experience-report--adolfo-villafiorita-autogen.vtt b/2020/subtitles/emacsconf-2020--15-moving-from-jekyll-to-orgmode-an-experience-report--adolfo-villafiorita-autogen.vtt
new file mode 100644
index 00000000..21202a4a
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--15-moving-from-jekyll-to-orgmode-an-experience-report--adolfo-villafiorita-autogen.vtt
@@ -0,0 +1,1183 @@
+WEBVTT
+
+00:00:00.080 --> 00:00:03.120
+okay okay excellent sorry okay so
+
+00:00:03.120 --> 00:00:06.960
+uh hello everyone um and um
+
+00:00:06.960 --> 00:00:10.080
+uh nice meeting you and let me
+
+00:00:10.080 --> 00:00:12.400
+thank the the organizer for all the
+
+00:00:12.400 --> 00:00:13.920
+organization and all the work they are
+
+00:00:13.920 --> 00:00:15.200
+doing to support us
+
+00:00:15.200 --> 00:00:18.400
+my name is adolfo villaferita
+
+00:00:18.400 --> 00:00:19.920
+I'm teaching at the university of
+
+00:00:19.920 --> 00:00:21.920
+trenton I'm also
+
+00:00:21.920 --> 00:00:24.480
+work will shortly be working at
+
+00:00:24.480 --> 00:00:26.240
+shared.tech which is a comp
+
+00:00:26.240 --> 00:00:29.359
+a non-profit organization developing an
+
+00:00:29.359 --> 00:00:30.530
+applications to
+
+00:00:30.530 --> 00:00:32.399
+[Music]
+
+00:00:32.399 --> 00:00:35.680
+recover surplus food but the the
+
+00:00:35.680 --> 00:00:38.960
+reason of the talk today and the reason
+
+00:00:38.960 --> 00:00:40.079
+I'm here today
+
+00:00:40.079 --> 00:00:42.719
+is to talk about my experience in moving
+
+00:00:42.719 --> 00:00:44.000
+from jekyll uh
+
+00:00:44.000 --> 00:00:47.200
+static website generator to org mode and
+
+00:00:47.200 --> 00:00:49.200
+the reason
+
+00:00:49.200 --> 00:00:52.079
+I move to work mode is to have better
+
+00:00:52.079 --> 00:00:53.039
+support for
+
+00:00:53.039 --> 00:00:56.800
+literary programming on the websites
+
+00:00:56.800 --> 00:00:58.399
+at the university of trento where we
+
+00:00:58.399 --> 00:01:00.480
+make available the content for the
+
+00:01:00.480 --> 00:01:04.720
+the students okay so
+
+00:01:04.720 --> 00:01:08.000
+first of all what is a static website
+
+00:01:08.000 --> 00:01:10.080
+generator it is basically a tool which
+
+00:01:10.080 --> 00:01:11.360
+allows you to
+
+00:01:11.360 --> 00:01:15.360
+generate html files out of text files
+
+00:01:15.360 --> 00:01:17.439
+containing basically two types of
+
+00:01:17.439 --> 00:01:19.280
+information metadata
+
+00:01:19.280 --> 00:01:23.119
+and content metadata is let's say a
+
+00:01:23.119 --> 00:01:26.159
+set of key pairs describing the the
+
+00:01:26.159 --> 00:01:28.560
+content of the file such as the title
+
+00:01:28.560 --> 00:01:30.000
+author
+
+00:01:30.000 --> 00:01:31.759
+tags and so on and so forth and the
+
+00:01:31.759 --> 00:01:34.560
+content is what you actually want to to
+
+00:01:34.560 --> 00:01:37.040
+get published on the on the internet in
+
+00:01:37.040 --> 00:01:38.880
+the html file
+
+00:01:38.880 --> 00:01:41.439
+and usually the content is written in
+
+00:01:41.439 --> 00:01:44.560
+some kind of
+
+00:01:44.560 --> 00:01:47.520
+markup language such as markdown or
+
+00:01:47.520 --> 00:01:49.759
+possibly
+
+00:01:49.759 --> 00:01:53.200
+org mode and well jackie is a very
+
+00:01:53.200 --> 00:01:55.759
+popular website uh
+
+00:01:55.759 --> 00:01:58.719
+a static website generator it is written
+
+00:01:58.719 --> 00:01:59.840
+in a ruby
+
+00:01:59.840 --> 00:02:03.280
+and what it does it it it systematically
+
+00:02:03.280 --> 00:02:06.840
+let's say transforms all the input files
+
+00:02:06.840 --> 00:02:09.440
+by making the content into
+
+00:02:09.440 --> 00:02:11.599
+html and systematically applying a
+
+00:02:11.599 --> 00:02:14.000
+template in order to generate the
+
+00:02:14.000 --> 00:02:17.120
+html files which you can then deploy
+
+00:02:17.120 --> 00:02:19.840
+on your server of choice to make them
+
+00:02:19.840 --> 00:02:22.160
+available on the on the internet
+
+00:02:22.160 --> 00:02:26.160
+and one of the features uh most
+
+00:02:26.160 --> 00:02:28.480
+well I would say all static website
+
+00:02:28.480 --> 00:02:30.239
+generators have
+
+00:02:30.239 --> 00:02:32.560
+is a debt of being able to let's say
+
+00:02:32.560 --> 00:02:34.879
+collect the metadata information
+
+00:02:34.879 --> 00:02:38.400
+uh of the files being part of your of
+
+00:02:38.400 --> 00:02:39.440
+your project
+
+00:02:39.440 --> 00:02:45.280
+and the reason they do that is because
+
+00:02:45.280 --> 00:02:47.840
+you sometimes want to generate pages
+
+00:02:47.840 --> 00:02:49.280
+based on the content
+
+00:02:49.280 --> 00:02:53.200
+of your um of your projects
+
+00:02:53.200 --> 00:02:56.239
+such as for instance the the list of
+
+00:02:56.239 --> 00:02:59.040
+posts you have recently published or
+
+00:02:59.040 --> 00:03:00.400
+maybe the list of tags
+
+00:03:00.400 --> 00:03:03.840
+uh you uh have defined for your post and
+
+00:03:03.840 --> 00:03:07.280
+so on and so forth so so
+
+00:03:07.280 --> 00:03:09.760
+dracula gives the possibility of
+
+00:03:09.760 --> 00:03:12.400
+generating this kind of dynamic
+
+00:03:12.400 --> 00:03:15.760
+content by using liquid which is a
+
+00:03:15.760 --> 00:03:18.800
+templating language which
+
+00:03:18.800 --> 00:03:21.840
+looks like these
+
+00:03:21.840 --> 00:03:24.879
+so basically you you have all the
+
+00:03:24.879 --> 00:03:26.879
+constructs you can
+
+00:03:26.879 --> 00:03:29.120
+expect in a programming language this
+
+00:03:29.120 --> 00:03:29.920
+for instance
+
+00:03:29.920 --> 00:03:33.360
+is a fourth cycle which
+
+00:03:33.360 --> 00:03:37.440
+iterates over all the post or the
+
+00:03:37.440 --> 00:03:39.599
+files in a specific directory of the
+
+00:03:39.599 --> 00:03:41.040
+jacket project
+
+00:03:41.040 --> 00:03:45.040
+and for each post it takes the the title
+
+00:03:45.040 --> 00:03:48.400
+and the url and generates a link
+
+00:03:48.400 --> 00:03:51.840
+okay so dracule is
+
+00:03:51.840 --> 00:03:55.200
+nice and sweet but over the years
+
+00:03:55.200 --> 00:03:57.760
+I started using more and more
+
+00:03:57.760 --> 00:03:59.519
+systematically
+
+00:03:59.519 --> 00:04:02.959
+or mode to write all my files and I
+
+00:04:02.959 --> 00:04:05.439
+moved from markdown to word mode I am a
+
+00:04:05.439 --> 00:04:07.439
+long time Emacs user so I've been using
+
+00:04:07.439 --> 00:04:09.680
+imax for 30 years now so
+
+00:04:09.680 --> 00:04:12.799
+or mode is a more recent discovery
+
+00:04:12.799 --> 00:04:15.280
+but it is a very nice uh let's say
+
+00:04:15.280 --> 00:04:16.239
+discovery I
+
+00:04:16.239 --> 00:04:19.680
+I made and the reason I like org mode
+
+00:04:19.680 --> 00:04:22.320
+is because for instance you can write
+
+00:04:22.320 --> 00:04:23.600
+formulas using
+
+00:04:23.600 --> 00:04:26.639
+mac jacks and you can generate diagrams
+
+00:04:26.639 --> 00:04:30.320
+or plots with new plots and
+
+00:04:30.320 --> 00:04:32.240
+also important is the fact that you have
+
+00:04:32.240 --> 00:04:34.080
+the possibility of let's say publishing
+
+00:04:34.080 --> 00:04:35.919
+your documents
+
+00:04:35.919 --> 00:04:39.520
+to multiple ends backhands such as pdf
+
+00:04:39.520 --> 00:04:40.400
+or
+
+00:04:40.400 --> 00:04:43.600
+maybe a review presentations or
+
+00:04:43.600 --> 00:04:47.199
+or html and this is all made possible
+
+00:04:47.199 --> 00:04:50.479
+by bubble which is
+
+00:04:50.479 --> 00:04:52.560
+exactly what we just saw in the the
+
+00:04:52.560 --> 00:04:54.639
+previous talk
+
+00:04:54.639 --> 00:04:57.440
+namely the possibility of executing a
+
+00:04:57.440 --> 00:04:59.520
+snippet of code
+
+00:04:59.520 --> 00:05:02.560
+embedded in in your pages
+
+00:05:02.560 --> 00:05:06.400
+um and our model can also be used
+
+00:05:06.400 --> 00:05:09.600
+within let's say jackie and in fact
+
+00:05:09.600 --> 00:05:10.720
+there is a
+
+00:05:10.720 --> 00:05:15.199
+a nice gem a nice library called jackie
+
+00:05:15.199 --> 00:05:18.880
+org which allows you to use org modifies
+
+00:05:18.880 --> 00:05:19.680
+directly
+
+00:05:19.680 --> 00:05:22.880
+into jekyll but when you start using
+
+00:05:22.880 --> 00:05:26.560
+org mode when I started using
+
+00:05:26.560 --> 00:05:30.560
+mode I realized I could move
+
+00:05:30.560 --> 00:05:34.240
+all my workflow to or my publishing
+
+00:05:34.240 --> 00:05:36.840
+workflow to image
+
+00:05:36.840 --> 00:05:39.520
+and and and in fact
+
+00:05:39.520 --> 00:05:41.600
+org mode is also static website
+
+00:05:41.600 --> 00:05:42.880
+generator because
+
+00:05:42.880 --> 00:05:46.240
+it has got the possibility of publishing
+
+00:05:46.240 --> 00:05:50.880
+um projects made of org mode files
+
+00:05:50.880 --> 00:05:53.840
+and one of the nice things about let's
+
+00:05:53.840 --> 00:05:55.759
+say that the publishing features of work
+
+00:05:55.759 --> 00:05:56.479
+mode
+
+00:05:56.479 --> 00:05:58.880
+is that it allows you to define in the
+
+00:05:58.880 --> 00:05:59.840
+org publish
+
+00:05:59.840 --> 00:06:03.199
+project a list of the components
+
+00:06:03.199 --> 00:06:06.479
+which are part of your project and in a
+
+00:06:06.479 --> 00:06:07.520
+sense it is
+
+00:06:07.520 --> 00:06:10.479
+also more flexible than jackie lee's
+
+00:06:10.479 --> 00:06:12.400
+because it also allows you for instance
+
+00:06:12.400 --> 00:06:12.880
+to
+
+00:06:12.880 --> 00:06:15.120
+let's say publish a single file rather
+
+00:06:15.120 --> 00:06:17.440
+than having to recompile everything
+
+00:06:17.440 --> 00:06:20.080
+every time you want to publish your
+
+00:06:20.080 --> 00:06:23.919
+your project to your website however
+
+00:06:23.919 --> 00:06:25.840
+there are some short comments I would
+
+00:06:25.840 --> 00:06:27.120
+say or some some
+
+00:06:27.120 --> 00:06:29.520
+areas of improvement improvement let me
+
+00:06:29.520 --> 00:06:30.400
+say
+
+00:06:30.400 --> 00:06:32.720
+the first is that let's say support for
+
+00:06:32.720 --> 00:06:33.600
+templating
+
+00:06:33.600 --> 00:06:36.639
+is not so obvious as it is let's say
+
+00:06:36.639 --> 00:06:39.280
+in jackie or even though there are some
+
+00:06:39.280 --> 00:06:40.560
+let's say
+
+00:06:40.560 --> 00:06:44.560
+nice extensions such as argo t html
+
+00:06:44.560 --> 00:06:46.160
+for instance which allows you to use
+
+00:06:46.160 --> 00:06:48.400
+templates and
+
+00:06:48.400 --> 00:06:51.840
+more important to me was the fact that
+
+00:06:51.840 --> 00:06:54.080
+apparently there is little support for
+
+00:06:54.080 --> 00:06:55.520
+the creation of dynamic
+
+00:06:55.520 --> 00:06:58.240
+content so I was very curious and very
+
+00:06:58.240 --> 00:06:59.360
+keen to use
+
+00:06:59.360 --> 00:07:02.800
+or mode for let's say publishing my blog
+
+00:07:02.800 --> 00:07:05.440
+and my the the courses at the university
+
+00:07:05.440 --> 00:07:08.720
+but then uh I had to find a way
+
+00:07:08.720 --> 00:07:11.440
+to let's say being able to publish these
+
+00:07:11.440 --> 00:07:13.599
+dynamic pages finding some kind of
+
+00:07:13.599 --> 00:07:16.000
+replacement so to speak for uh the
+
+00:07:16.000 --> 00:07:16.720
+liquid
+
+00:07:16.720 --> 00:07:19.759
+the liquid engine and and the solution
+
+00:07:19.759 --> 00:07:20.160
+was
+
+00:07:20.160 --> 00:07:24.160
+that at hand actually because
+
+00:07:24.160 --> 00:07:27.280
+basically I realized I could use bubble
+
+00:07:27.280 --> 00:07:30.800
+for exactly this purpose so rather than
+
+00:07:30.800 --> 00:07:32.720
+using bubble for generating
+
+00:07:32.720 --> 00:07:35.759
+plots or let's say my other computation
+
+00:07:35.759 --> 00:07:37.919
+or whatever I was using them for
+
+00:07:37.919 --> 00:07:41.039
+I realized they could use bubble to
+
+00:07:41.039 --> 00:07:42.080
+generate
+
+00:07:42.080 --> 00:07:45.120
+html which could be let's say
+
+00:07:45.120 --> 00:07:48.960
+uh then published uh uh
+
+00:07:48.960 --> 00:07:52.720
+in the project so uh so all I needed to
+
+00:07:52.720 --> 00:07:53.680
+do then
+
+00:07:53.680 --> 00:07:56.240
+was defining some kind of functions some
+
+00:07:56.240 --> 00:07:58.319
+kind of code in order to read
+
+00:07:58.319 --> 00:08:01.840
+all the org mode uh the metadata of all
+
+00:08:01.840 --> 00:08:02.400
+the
+
+00:08:02.400 --> 00:08:05.759
+opmod files of my web project so that
+
+00:08:05.759 --> 00:08:09.680
+I could let's say then publish uh
+
+00:08:09.680 --> 00:08:13.280
+generate the dynamic content and
+
+00:08:13.280 --> 00:08:18.080
+this is a snippet taken from
+
+00:08:18.080 --> 00:08:21.759
+one of my html projects
+
+00:08:21.759 --> 00:08:24.800
+which basically shows the way in which
+
+00:08:24.800 --> 00:08:27.599
+I generate the um the list of posts on
+
+00:08:27.599 --> 00:08:29.360
+my on my page it is uh
+
+00:08:29.360 --> 00:08:32.560
+exactly how the the liquid that we saw
+
+00:08:32.560 --> 00:08:34.320
+in a couple of a couple of slides
+
+00:08:34.320 --> 00:08:35.680
+earlier that looks like
+
+00:08:35.680 --> 00:08:39.200
+uh in inner mode
+
+00:08:39.200 --> 00:08:42.320
+and basically what I'm doing I'm using I
+
+00:08:42.320 --> 00:08:46.720
+wrote a ruby script which
+
+00:08:46.720 --> 00:08:49.680
+reads all the metadata so this uh
+
+00:08:49.680 --> 00:08:51.040
+highlighted code
+
+00:08:51.040 --> 00:08:53.440
+basically loads the script which is
+
+00:08:53.440 --> 00:08:54.240
+stored
+
+00:08:54.240 --> 00:08:56.800
+externally and then it collects all the
+
+00:08:56.800 --> 00:08:58.320
+metadata from the
+
+00:08:58.320 --> 00:09:00.880
+org mode files in the current uh in the
+
+00:09:00.880 --> 00:09:02.240
+current directory
+
+00:09:02.240 --> 00:09:04.800
+and then the the following the the code
+
+00:09:04.800 --> 00:09:06.480
+you can see here
+
+00:09:06.480 --> 00:09:09.839
+basically iterate over all the
+
+00:09:09.839 --> 00:09:12.959
+past red the at the previous step
+
+00:09:12.959 --> 00:09:16.399
+and it generates um
+
+00:09:16.399 --> 00:09:19.519
+a list with the title and uh
+
+00:09:19.519 --> 00:09:22.959
+and the urls and so basically
+
+00:09:22.959 --> 00:09:27.440
+replicating what jackie does so
+
+00:09:27.440 --> 00:09:30.240
+okay so there are some some other things
+
+00:09:30.240 --> 00:09:32.399
+I have to to deal with in order to let's
+
+00:09:32.399 --> 00:09:33.200
+say
+
+00:09:33.200 --> 00:09:36.480
+accommodate my workflow and but that was
+
+00:09:36.480 --> 00:09:39.200
+relatively easy in the sense that one of
+
+00:09:39.200 --> 00:09:40.240
+the
+
+00:09:40.240 --> 00:09:43.279
+uh problem one of the issue I had to
+
+00:09:43.279 --> 00:09:45.360
+solve was that of let's say having
+
+00:09:45.360 --> 00:09:48.480
+a common navigation on all my
+
+00:09:48.480 --> 00:09:51.040
+pages uh but that was easily solved
+
+00:09:51.040 --> 00:09:51.920
+using
+
+00:09:51.920 --> 00:09:54.959
+uh the include feature so I basically
+
+00:09:54.959 --> 00:09:56.000
+made available
+
+00:09:56.000 --> 00:09:57.839
+and include with all the navigation
+
+00:09:57.839 --> 00:10:00.560
+which is uh embedded in all the pages of
+
+00:10:00.560 --> 00:10:01.839
+my websites
+
+00:10:01.839 --> 00:10:04.959
+uh through the could include and another
+
+00:10:04.959 --> 00:10:06.160
+nice feature which
+
+00:10:06.160 --> 00:10:08.560
+jackie las is the possibility of
+
+00:10:08.560 --> 00:10:09.760
+previewing
+
+00:10:09.760 --> 00:10:12.800
+a website before deploying it and but
+
+00:10:12.800 --> 00:10:13.200
+then
+
+00:10:13.200 --> 00:10:16.079
+Emacs also has got a node which allows
+
+00:10:16.079 --> 00:10:17.839
+you to
+
+00:10:17.839 --> 00:10:21.200
+launch a web server and in fact
+
+00:10:21.200 --> 00:10:24.320
+I wrote a quick ack
+
+00:10:24.320 --> 00:10:26.959
+which allows you to which allows to
+
+00:10:26.959 --> 00:10:28.000
+basically
+
+00:10:28.000 --> 00:10:31.519
+invoke a node on a on our
+
+00:10:31.519 --> 00:10:34.720
+mode project and start a local preview
+
+00:10:34.720 --> 00:10:37.920
+and then use rsync
+
+00:10:37.920 --> 00:10:44.839
+in order to deploy the the website
+
+00:10:44.839 --> 00:10:46.240
+um
+
+00:10:46.240 --> 00:10:48.720
+five minutes left okay okay more than
+
+00:10:48.720 --> 00:10:51.200
+enough okay
+
+00:10:51.200 --> 00:10:53.200
+thanks thank you thank you very much I'm
+
+00:10:53.200 --> 00:10:55.440
+nearly done so then I can take some some
+
+00:10:55.440 --> 00:10:56.480
+questions
+
+00:10:56.480 --> 00:11:00.560
+so okay just to give you maybe
+
+00:11:00.560 --> 00:11:03.680
+a slightly more in-depth uh
+
+00:11:03.680 --> 00:11:06.480
+view of what the pages look like so
+
+00:11:06.480 --> 00:11:07.200
+these are
+
+00:11:07.200 --> 00:11:11.120
+one of the pages or the source files
+
+00:11:11.120 --> 00:11:14.720
+of one of the websites it is
+
+00:11:14.720 --> 00:11:18.480
+in literate programming so basically uh
+
+00:11:18.480 --> 00:11:20.399
+you see there is some metadata here I
+
+00:11:20.399 --> 00:11:22.640
+mean this is a regular old mod file
+
+00:11:22.640 --> 00:11:26.640
+and this part here
+
+00:11:26.640 --> 00:11:29.920
+basically defines some common options
+
+00:11:29.920 --> 00:11:31.519
+for publication
+
+00:11:31.519 --> 00:11:35.920
+and these two includes here
+
+00:11:35.920 --> 00:11:41.120
+put some extra html in the head part and
+
+00:11:41.120 --> 00:11:44.480
+the navigation and here as you can see
+
+00:11:44.480 --> 00:11:48.079
+is the code generating the
+
+00:11:48.079 --> 00:11:50.160
+the list in chronological order it is
+
+00:11:50.160 --> 00:11:52.240
+slightly more complex than the example I
+
+00:11:52.240 --> 00:11:53.839
+made in the slide
+
+00:11:53.839 --> 00:11:56.240
+because uh there is some more
+
+00:11:56.240 --> 00:11:57.839
+elaboration to
+
+00:11:57.839 --> 00:11:59.760
+uh to do including putting some
+
+00:11:59.760 --> 00:12:01.839
+javascript to identify
+
+00:12:01.839 --> 00:12:05.120
+according to let's say the the tags
+
+00:12:05.120 --> 00:12:08.160
+so to go back to the to the presentation
+
+00:12:08.160 --> 00:12:11.200
+um so the okay so
+
+00:12:11.200 --> 00:12:13.600
+I I managed this migration uh a few
+
+00:12:13.600 --> 00:12:14.560
+months ago
+
+00:12:14.560 --> 00:12:17.680
+and then uh all my workflow is within
+
+00:12:17.680 --> 00:12:20.399
+with old mode and within imax and um
+
+00:12:20.399 --> 00:12:23.079
+I'm very happy with it because it's
+
+00:12:23.079 --> 00:12:24.240
+simplified
+
+00:12:24.240 --> 00:12:26.800
+uh quite a bit let's say my public
+
+00:12:26.800 --> 00:12:28.480
+publication process
+
+00:12:28.480 --> 00:12:31.839
+and uh one of the advantages so another
+
+00:12:31.839 --> 00:12:34.240
+advantage so the first advantage is that
+
+00:12:34.240 --> 00:12:36.959
+everything is in ork mode and dmax
+
+00:12:36.959 --> 00:12:38.160
+second advantage
+
+00:12:38.160 --> 00:12:41.680
+is that everything is based on the
+
+00:12:41.680 --> 00:12:44.880
+standard machinery provided by orb mode
+
+00:12:44.880 --> 00:12:47.760
+so in a sense it is kind of let's say
+
+00:12:47.760 --> 00:12:50.079
+more robust with respect to
+
+00:12:50.079 --> 00:12:53.040
+dependencies and possible errors and so
+
+00:12:53.040 --> 00:12:54.320
+on and so forth
+
+00:12:54.320 --> 00:12:56.639
+and um and the fact that the old mode
+
+00:12:56.639 --> 00:12:58.240
+allows you to publish
+
+00:12:58.240 --> 00:13:00.880
+a single file in a project is is also
+
+00:13:00.880 --> 00:13:03.839
+very interesting because
+
+00:13:03.839 --> 00:13:07.839
+it allows to let's say be more robust to
+
+00:13:07.839 --> 00:13:11.040
+problems you might introduce when
+
+00:13:11.040 --> 00:13:14.079
+you're changing when I'm changing the
+
+00:13:14.079 --> 00:13:14.959
+setup
+
+00:13:14.959 --> 00:13:16.880
+and another interesting thing which I
+
+00:13:16.880 --> 00:13:18.320
+realized that I
+
+00:13:18.320 --> 00:13:21.519
+uh I could have is that
+
+00:13:21.519 --> 00:13:23.600
+in a sense the specification of the
+
+00:13:23.600 --> 00:13:24.880
+website
+
+00:13:24.880 --> 00:13:27.360
+is uh can be embedded in the website
+
+00:13:27.360 --> 00:13:28.480
+itself
+
+00:13:28.480 --> 00:13:30.800
+so in a sense this is some kind of let's
+
+00:13:30.800 --> 00:13:31.839
+say self
+
+00:13:31.839 --> 00:13:35.120
+the command it's a real set documenting
+
+00:13:35.120 --> 00:13:37.200
+uh what I'm actually doing so for
+
+00:13:37.200 --> 00:13:38.560
+instance
+
+00:13:38.560 --> 00:13:43.199
+uh here on my
+
+00:13:43.199 --> 00:13:46.399
+website you can see let's say the
+
+00:13:46.399 --> 00:13:48.240
+specification of the
+
+00:13:48.240 --> 00:13:51.519
+of the of the project which is uh loaded
+
+00:13:51.519 --> 00:13:52.320
+from my
+
+00:13:52.320 --> 00:13:55.519
+initialization file but then it is also
+
+00:13:55.519 --> 00:13:56.320
+published
+
+00:13:56.320 --> 00:13:59.440
+together with my home page and it leaves
+
+00:13:59.440 --> 00:14:01.360
+with the repository where
+
+00:14:01.360 --> 00:14:05.360
+I keep all the sources of my website
+
+00:14:05.360 --> 00:14:08.079
+which is kind of nice because it
+
+00:14:08.079 --> 00:14:09.839
+basically isolates
+
+00:14:09.839 --> 00:14:14.079
+everything in a single in a single place
+
+00:14:14.079 --> 00:14:16.880
+okay so there are some examples I'm
+
+00:14:16.880 --> 00:14:18.000
+showing them
+
+00:14:18.000 --> 00:14:20.320
+more because of the let's say source
+
+00:14:20.320 --> 00:14:21.760
+code which
+
+00:14:21.760 --> 00:14:25.519
+you can grab from the git repositories
+
+00:14:25.519 --> 00:14:26.160
+if you are
+
+00:14:26.160 --> 00:14:28.399
+interested of course I'm also available
+
+00:14:28.399 --> 00:14:30.079
+to provide some
+
+00:14:30.079 --> 00:14:32.959
+support and help if you are interested
+
+00:14:32.959 --> 00:14:34.480
+in this kind of stuff
+
+00:14:34.480 --> 00:14:37.760
+the the next step for me will be that of
+
+00:14:37.760 --> 00:14:38.560
+let's say trying
+
+00:14:38.560 --> 00:14:41.600
+making this kind of machinery available
+
+00:14:41.600 --> 00:14:45.199
+for more general use at the moment
+
+00:14:45.199 --> 00:14:47.120
+if you are interested in trying out my
+
+00:14:47.120 --> 00:14:48.800
+suggestion is let's say grabbing the
+
+00:14:48.800 --> 00:14:49.839
+sources
+
+00:14:49.839 --> 00:14:52.959
+or one of the let's say websites to see
+
+00:14:52.959 --> 00:14:56.000
+what how they look like and maybe try
+
+00:14:56.000 --> 00:14:56.720
+and
+
+00:14:56.720 --> 00:15:00.160
+customize it for your purposes
+
+00:15:00.160 --> 00:15:02.720
+and this is basically the content of my
+
+00:15:02.720 --> 00:15:03.839
+talk so
+
+00:15:03.839 --> 00:15:06.959
+I'm open to two questions and thank you
+
+00:15:06.959 --> 00:15:07.279
+for
+
+00:15:07.279 --> 00:15:10.880
+your attention you are now unmuted uh
+
+00:15:10.880 --> 00:15:12.880
+thank you very much adolfo for your
+
+00:15:12.880 --> 00:15:14.480
+awesome presentation
+
+00:15:14.480 --> 00:15:17.360
+um I think we have time for maybe like
+
+00:15:17.360 --> 00:15:19.360
+one or two questions
+
+00:15:19.360 --> 00:15:21.279
+um and then the rest maybe you could
+
+00:15:21.279 --> 00:15:22.880
+take up um
+
+00:15:22.880 --> 00:15:26.639
+after the stream after sure
+
+00:15:26.639 --> 00:15:30.000
+uh I we should do um would you like me
+
+00:15:30.000 --> 00:15:31.839
+to read you the questions
+
+00:15:31.839 --> 00:15:35.199
+uh yeah probably better because
+
+00:15:35.199 --> 00:15:40.399
+I kind of lost there okay no problem um
+
+00:15:40.399 --> 00:15:42.480
+okay so someone asks do you have any
+
+00:15:42.480 --> 00:15:45.440
+opinion on fern
+
+00:15:45.440 --> 00:15:48.639
+fan I I don't know fans
+
+00:15:48.639 --> 00:15:51.839
+so I'll give it a try and uh and uh
+
+00:15:51.839 --> 00:15:55.040
+and check it out okay
+
+00:15:55.040 --> 00:15:57.839
+thanks and um people are also asking do
+
+00:15:57.839 --> 00:15:59.680
+you discuss this for example in a blog
+
+00:15:59.680 --> 00:16:01.279
+or anywhere else they could find more
+
+00:16:01.279 --> 00:16:02.800
+about it
+
+00:16:02.800 --> 00:16:05.600
+oh yes I'm going to publish the let's
+
+00:16:05.600 --> 00:16:08.560
+say the talk and the content on the
+
+00:16:08.560 --> 00:16:11.120
+on my website and then I'll link it from
+
+00:16:11.120 --> 00:16:12.320
+the max conf
+
+00:16:12.320 --> 00:16:14.720
+conference so that it will be easier for
+
+00:16:14.720 --> 00:16:15.680
+people to
+
+00:16:15.680 --> 00:16:19.040
+to reach it so I will shortly make it
+
+00:16:19.040 --> 00:16:22.880
+available right after the conference
+
+00:16:22.880 --> 00:16:25.440
+wonderful and I think that's all for the
+
+00:16:25.440 --> 00:16:26.160
+questions
+
+00:16:26.160 --> 00:16:28.560
+thank you very much okay thank you very
+
+00:16:28.560 --> 00:16:29.600
+much thank you
+
+00:16:29.600 --> 00:16:34.800
+and cheers bye cheers bye
diff --git a/2020/subtitles/emacsconf-2020--16-org-roam-presentation-demonstration-and-whats-on-the-horizon--leo-vivier-autogen.vtt b/2020/subtitles/emacsconf-2020--16-org-roam-presentation-demonstration-and-whats-on-the-horizon--leo-vivier-autogen.vtt
new file mode 100644
index 00000000..3aec7a89
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--16-org-roam-presentation-demonstration-and-whats-on-the-horizon--leo-vivier-autogen.vtt
@@ -0,0 +1,1801 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:02.480
+I'm hoping to keep this talk in the 15
+
+00:00:02.480 --> 00:00:03.919
+minutes and I'll take five minutes of
+
+00:00:03.919 --> 00:00:05.279
+question at the end
+
+00:00:05.279 --> 00:00:07.520
+so hello again I suppose you're starting
+
+00:00:07.520 --> 00:00:09.200
+to get pretty familiar with me and my
+
+00:00:09.200 --> 00:00:10.719
+start right now so
+
+00:00:10.719 --> 00:00:12.480
+right now we're getting into the nitty
+
+00:00:12.480 --> 00:00:14.719
+gritty we started today
+
+00:00:14.719 --> 00:00:17.039
+I told you about how I'd ventured from
+
+00:00:17.039 --> 00:00:18.480
+being a user
+
+00:00:18.480 --> 00:00:20.800
+to being a maintainer and right now I'm
+
+00:00:20.800 --> 00:00:22.080
+going to get the chance to
+
+00:00:22.080 --> 00:00:24.240
+actually tell you more about the project
+
+00:00:24.240 --> 00:00:25.279
+that I'm maintaining
+
+00:00:25.279 --> 00:00:28.480
+which is called org rome
+
+00:00:28.480 --> 00:00:30.560
+so even if I it would have had a better
+
+00:00:30.560 --> 00:00:32.320
+impact if I'd
+
+00:00:32.320 --> 00:00:33.840
+didn't scroll the page but you know
+
+00:00:33.840 --> 00:00:35.520
+sadly I'm out of tea
+
+00:00:35.520 --> 00:00:37.120
+it's getting late in europe and I'm
+
+00:00:37.120 --> 00:00:39.600
+starting to get tired
+
+00:00:39.600 --> 00:00:43.360
+so what I'm gonna do during this talk
+
+00:00:43.360 --> 00:00:46.160
+is just to do real survey for people who
+
+00:00:46.160 --> 00:00:48.079
+do not know what orgrom is about
+
+00:00:48.079 --> 00:00:50.480
+some of you might might have you know
+
+00:00:50.480 --> 00:00:52.320
+whilst browsing reddit
+
+00:00:52.320 --> 00:00:54.879
+found a topic about orgrom and thought
+
+00:00:54.879 --> 00:00:56.480
+to yourself oh that looks interesting
+
+00:00:56.480 --> 00:00:57.199
+but
+
+00:00:57.199 --> 00:00:59.680
+you know I have my own workflow and I
+
+00:00:59.680 --> 00:01:01.039
+get it don't need to change anything
+
+00:01:01.039 --> 00:01:03.199
+about it you know I'm completely fine
+
+00:01:03.199 --> 00:01:05.680
+using my very very large file or I'm
+
+00:01:05.680 --> 00:01:07.520
+completely fine having my
+
+00:01:07.520 --> 00:01:10.960
+database of notes which is I've been
+
+00:01:10.960 --> 00:01:14.560
+accruing for like 10 20 30 years or so
+
+00:01:14.560 --> 00:01:17.759
+so what I want to do during this talk
+
+00:01:17.759 --> 00:01:20.080
+is both to present to you what orgrom is
+
+00:01:20.080 --> 00:01:20.960
+about
+
+00:01:20.960 --> 00:01:23.439
+if you are in this group of people who
+
+00:01:23.439 --> 00:01:24.000
+do not
+
+00:01:24.000 --> 00:01:25.600
+know what algorithm is about but would
+
+00:01:25.600 --> 00:01:27.520
+like to know more but
+
+00:01:27.520 --> 00:01:30.560
+also for people who have close to no
+
+00:01:30.560 --> 00:01:33.360
+experience with Emacs and org mode and
+
+00:01:33.360 --> 00:01:35.040
+was just found their way you know they
+
+00:01:35.040 --> 00:01:36.880
+wanted to find the system to
+
+00:01:36.880 --> 00:01:39.840
+write their notes basically and you know
+
+00:01:39.840 --> 00:01:41.439
+they discovered this little tool which
+
+00:01:41.439 --> 00:01:42.960
+is called orgrome
+
+00:01:42.960 --> 00:01:44.479
+and they'd like to know more about this
+
+00:01:44.479 --> 00:01:46.240
+so I've got 13
+
+00:01:46.240 --> 00:01:49.360
+minutes to convince you to use hologram
+
+00:01:49.360 --> 00:01:53.360
+so if we go in a very broad strokes
+
+00:01:53.360 --> 00:01:56.799
+what is orgram orgrom
+
+00:01:56.799 --> 00:01:59.759
+is a way for you to manage backlinks
+
+00:01:59.759 --> 00:02:00.320
+inside
+
+00:02:00.320 --> 00:02:03.439
+old mode and the keyword
+
+00:02:03.439 --> 00:02:07.040
+in what I've just said is links now
+
+00:02:07.040 --> 00:02:10.080
+there is a principle behind orgrom
+
+00:02:10.080 --> 00:02:12.879
+which is called the zettelgasten method
+
+00:02:12.879 --> 00:02:14.239
+which you can see written right there
+
+00:02:14.239 --> 00:02:15.440
+it's a german word
+
+00:02:15.440 --> 00:02:18.000
+which means a slit box if you remember
+
+00:02:18.000 --> 00:02:19.280
+in old libraries
+
+00:02:19.280 --> 00:02:22.080
+you had actually I believe if I scroll I
+
+00:02:22.080 --> 00:02:23.440
+should have an example of this
+
+00:02:23.440 --> 00:02:26.640
+yes so this is a slip box basically in
+
+00:02:26.640 --> 00:02:28.879
+all libraries you used to have all the
+
+00:02:28.879 --> 00:02:30.560
+references to the books that the library
+
+00:02:30.560 --> 00:02:31.599
+used to have
+
+00:02:31.599 --> 00:02:34.720
+inside those boxes and they're called
+
+00:02:34.720 --> 00:02:36.080
+slim boxes because you can
+
+00:02:36.080 --> 00:02:38.480
+insert stuff into the boxes and you can
+
+00:02:38.480 --> 00:02:41.200
+remove stuff out of the boxes
+
+00:02:41.200 --> 00:02:44.720
+now basically if I try
+
+00:02:44.720 --> 00:02:48.000
+to summarize as simply as I may what the
+
+00:02:48.000 --> 00:02:49.360
+zettel cast method
+
+00:02:49.360 --> 00:02:52.800
+is about it's about having a way
+
+00:02:52.800 --> 00:02:56.560
+to work with your notes which considers
+
+00:02:56.560 --> 00:02:59.920
+elements of knowledge as atoms
+
+00:02:59.920 --> 00:03:02.000
+so as something that is individual like
+
+00:03:02.000 --> 00:03:04.159
+a single file
+
+00:03:04.159 --> 00:03:06.640
+and you consider that in order to build
+
+00:03:06.640 --> 00:03:07.440
+knowledge
+
+00:03:07.440 --> 00:03:10.560
+you have to combine atoms together so
+
+00:03:10.560 --> 00:03:11.120
+that
+
+00:03:11.120 --> 00:03:14.720
+when you have one atom another atom
+
+00:03:14.720 --> 00:03:17.519
+if you link them together you have a
+
+00:03:17.519 --> 00:03:18.879
+complex
+
+00:03:18.879 --> 00:03:22.000
+thought or a complex molecule
+
+00:03:22.000 --> 00:03:24.000
+okay don't quote me on the chemistry by
+
+00:03:24.000 --> 00:03:25.360
+the way I shall remind you I'm an
+
+00:03:25.360 --> 00:03:26.879
+english major I have no idea what I'm
+
+00:03:26.879 --> 00:03:28.239
+talking about
+
+00:03:28.239 --> 00:03:31.360
+so how does it work as far as a
+
+00:03:31.360 --> 00:03:32.000
+note-taking
+
+00:03:32.000 --> 00:03:35.280
+system is concerned and to do so
+
+00:03:35.280 --> 00:03:37.599
+I'm just going to switch really quickly
+
+00:03:37.599 --> 00:03:39.760
+to my Emacs if I
+
+00:03:39.760 --> 00:03:43.040
+may so I'm just going to screenshot
+
+00:03:43.040 --> 00:03:44.959
+onto my mac just give me a second to get
+
+00:03:44.959 --> 00:03:47.840
+the windows all right
+
+00:03:47.840 --> 00:03:52.080
+okay it's loading up oh no
+
+00:03:52.080 --> 00:03:54.720
+I think firefox has crashed again okay
+
+00:03:54.720 --> 00:03:56.000
+so you're gonna have to give me a second
+
+00:03:56.000 --> 00:03:58.840
+I need to figure this out
+
+00:03:58.840 --> 00:04:01.680
+okay so everything is frozen right now
+
+00:04:01.680 --> 00:04:03.120
+just to tell you so you're gonna have to
+
+00:04:03.120 --> 00:04:04.720
+deal with my lovely voice
+
+00:04:04.720 --> 00:04:06.159
+uh I mean can you confirm that if I
+
+00:04:06.159 --> 00:04:07.920
+switch to a new ttr you can still hear
+
+00:04:07.920 --> 00:04:09.840
+me
+
+00:04:09.840 --> 00:04:12.959
+so can you still hear me now
+
+00:04:12.959 --> 00:04:14.879
+okay so I'm gonna have probably to kill
+
+00:04:14.879 --> 00:04:16.479
+firefox and log in again
+
+00:04:16.479 --> 00:04:18.000
+so I'm sorry it's gonna cost us two
+
+00:04:18.000 --> 00:04:19.600
+minutes but I'm gonna try to be as fast
+
+00:04:19.600 --> 00:04:20.560
+as I can okay
+
+00:04:20.560 --> 00:04:28.560
+okay no problem thanks
+
+00:04:28.560 --> 00:04:35.199
+all right
+
+00:04:35.199 --> 00:04:37.520
+I guess no event is a good one without
+
+00:04:37.520 --> 00:04:39.280
+one or two technical difficulties
+
+00:04:39.280 --> 00:04:42.800
+so I guess this is our share of
+
+00:04:42.800 --> 00:04:45.360
+technical difficulties this year
+
+00:04:45.360 --> 00:05:04.800
+no problem
+
+00:05:04.800 --> 00:05:06.320
+all right guess who's back it's not
+
+00:05:06.320 --> 00:05:08.160
+britney it's just me sadly so you're
+
+00:05:08.160 --> 00:05:10.800
+gonna have to make do with me
+
+00:05:10.800 --> 00:05:12.880
+welcome back well thank you I'm just
+
+00:05:12.880 --> 00:05:15.520
+gonna turn back on the camera if I may
+
+00:05:15.520 --> 00:05:19.919
+all righty
+
+00:05:19.919 --> 00:05:22.400
+and I'm going to make myself a presenter
+
+00:05:22.400 --> 00:05:23.520
+and I'm going to
+
+00:05:23.520 --> 00:05:26.160
+share my screen with you sleep box
+
+00:05:26.160 --> 00:05:26.880
+testing
+
+00:05:26.880 --> 00:05:29.919
+hello
+
+00:05:29.919 --> 00:05:32.720
+so if my calculations are correct you
+
+00:05:32.720 --> 00:05:34.160
+should be able to see my monitor right
+
+00:05:34.160 --> 00:05:34.800
+now
+
+00:05:34.800 --> 00:05:38.160
+um yep but not your webcam feed
+
+00:05:38.160 --> 00:05:39.919
+not my webcam feed okay so I'm going to
+
+00:05:39.919 --> 00:05:42.800
+stop it
+
+00:05:42.800 --> 00:05:44.720
+sorry for the little delay folks you
+
+00:05:44.720 --> 00:05:46.000
+know it's uh
+
+00:05:46.000 --> 00:05:49.039
+the show must go on can you see it now
+
+00:05:49.039 --> 00:05:52.320
+um not yet still not
+
+00:05:52.320 --> 00:06:00.080
+damn it can I stop it okay so I'm gonna
+
+00:06:00.080 --> 00:06:04.840
+yeah maybe try like sharing a webcam
+
+00:06:04.840 --> 00:06:32.960
+first
+
+00:06:32.960 --> 00:06:36.319
+all right I'm back now so I'm going to
+
+00:06:36.319 --> 00:06:37.759
+share my webcam first
+
+00:06:37.759 --> 00:06:39.550
+okay
+
+00:06:39.550 --> 00:06:43.440
+[Music]
+
+00:06:43.440 --> 00:06:46.560
+all righty so can you confirm whenever
+
+00:06:46.560 --> 00:06:49.360
+you've got my webcam working
+
+00:06:49.360 --> 00:06:52.880
+let's see I don't see it yet
+
+00:06:52.880 --> 00:06:55.919
+unfortunately oh it's loading up yeah
+
+00:06:55.919 --> 00:06:57.120
+it's coming up
+
+00:06:57.120 --> 00:06:59.680
+yep I can see it awesome all right okay
+
+00:06:59.680 --> 00:07:01.199
+we're back on track I've got still eight
+
+00:07:01.199 --> 00:07:02.880
+minutes left to do so I might have to
+
+00:07:02.880 --> 00:07:04.160
+have a couple of minutes to my talk if
+
+00:07:04.160 --> 00:07:06.000
+you don't mind and shave off some
+
+00:07:06.000 --> 00:07:07.599
+questions
+
+00:07:07.599 --> 00:07:10.800
+okay do you want to share okay yeah
+
+00:07:10.800 --> 00:07:13.759
+I'm on my way too all right all right so
+
+00:07:13.759 --> 00:07:14.639
+please forget
+
+00:07:14.639 --> 00:07:16.240
+whatever whichever technical
+
+00:07:16.240 --> 00:07:18.000
+difficulties we might have have had for
+
+00:07:18.000 --> 00:07:18.479
+the last
+
+00:07:18.479 --> 00:07:20.240
+three four minutes but we're back on
+
+00:07:20.240 --> 00:07:22.080
+track now so
+
+00:07:22.080 --> 00:07:24.960
+uh orgrom what is it and how does it
+
+00:07:24.960 --> 00:07:26.639
+work so I was telling you all about
+
+00:07:26.639 --> 00:07:28.720
+atoms and I was telling you about links
+
+00:07:28.720 --> 00:07:30.720
+but how does it work concretely
+
+00:07:30.720 --> 00:07:32.800
+so right now what you're seeing on your
+
+00:07:32.800 --> 00:07:33.840
+screens
+
+00:07:33.840 --> 00:07:37.199
+is a slip box which is what we the fancy
+
+00:07:37.199 --> 00:07:38.800
+word that we use to designate your
+
+00:07:38.800 --> 00:07:39.520
+folder
+
+00:07:39.520 --> 00:07:41.039
+where all your notes are going to be
+
+00:07:41.039 --> 00:07:43.280
+living so you have here and I hope you
+
+00:07:43.280 --> 00:07:44.000
+can see my
+
+00:07:44.000 --> 00:07:47.039
+uh cursor yes you can so we have a file
+
+00:07:47.039 --> 00:07:48.199
+which is called
+
+00:07:48.199 --> 00:07:51.120
+index.org and the good thing is
+
+00:07:51.120 --> 00:07:52.960
+as you might have garnered by the fact
+
+00:07:52.960 --> 00:07:54.240
+that it finishes by
+
+00:07:54.240 --> 00:07:57.039
+that org is that it is just an old mod
+
+00:07:57.039 --> 00:07:57.599
+file
+
+00:07:57.599 --> 00:08:00.800
+so I can create a heading
+
+00:08:00.800 --> 00:08:03.520
+I can create another heading and
+
+00:08:03.520 --> 00:08:05.280
+everything works as you would expect it
+
+00:08:05.280 --> 00:08:05.599
+to
+
+00:08:05.599 --> 00:08:08.879
+it is completely it's just an awkward
+
+00:08:08.879 --> 00:08:10.400
+file at the end of the day
+
+00:08:10.400 --> 00:08:13.759
+so now what can we do with this
+
+00:08:13.759 --> 00:08:15.840
+now I've told you about links and you do
+
+00:08:15.840 --> 00:08:16.800
+know that
+
+00:08:16.800 --> 00:08:19.520
+org mode has links so what we're going
+
+00:08:19.520 --> 00:08:20.080
+to do
+
+00:08:20.080 --> 00:08:22.479
+is that we're going to create a new file
+
+00:08:22.479 --> 00:08:23.440
+so we're going to go back
+
+00:08:23.440 --> 00:08:26.240
+to our directory and what I'm going to
+
+00:08:26.240 --> 00:08:28.000
+do is that we have a special commands
+
+00:08:28.000 --> 00:08:28.879
+actually let me just
+
+00:08:28.879 --> 00:08:31.199
+show you my command I might help you a
+
+00:08:31.199 --> 00:08:32.240
+little bit
+
+00:08:32.240 --> 00:08:35.360
+see what I'm doing uh wait which is the
+
+00:08:35.360 --> 00:08:36.479
+buffer
+
+00:08:36.479 --> 00:08:39.680
+uh log mode yes exlog so now on the
+
+00:08:39.680 --> 00:08:41.039
+right side of the monitor you'll be able
+
+00:08:41.039 --> 00:08:43.120
+to see the command that I'm using
+
+00:08:43.120 --> 00:08:45.040
+if you don't mind in order to have as
+
+00:08:45.040 --> 00:08:46.640
+much realistic as possible I'm going to
+
+00:08:46.640 --> 00:08:48.480
+make it a little bit shorter
+
+00:08:48.480 --> 00:08:50.720
+smaller I should say is it not too small
+
+00:08:50.720 --> 00:08:52.320
+yeah I believe it's good
+
+00:08:52.320 --> 00:08:54.720
+so what I'm going to do is I'm going to
+
+00:08:54.720 --> 00:08:55.760
+run a command
+
+00:08:55.760 --> 00:08:57.920
+in orgrome which allows me to create a
+
+00:08:57.920 --> 00:08:59.200
+new note
+
+00:08:59.200 --> 00:09:02.320
+so I'm going to use my keybinding which
+
+00:09:02.320 --> 00:09:04.720
+is not this one definitely
+
+00:09:04.720 --> 00:09:06.800
+and I'm going to create a new file which
+
+00:09:06.800 --> 00:09:08.000
+is in a
+
+00:09:08.000 --> 00:09:09.839
+great tradition of examples in
+
+00:09:09.839 --> 00:09:11.680
+programming I'm going to call
+
+00:09:11.680 --> 00:09:15.519
+foo right so at the bottom
+
+00:09:15.519 --> 00:09:17.600
+in the bottom buffer I should say you
+
+00:09:17.600 --> 00:09:18.720
+are seeing the file
+
+00:09:18.720 --> 00:09:21.760
+foo which is as you can see here a
+
+00:09:21.760 --> 00:09:22.720
+capture buffer
+
+00:09:22.720 --> 00:09:24.640
+just like you would have in blog mode
+
+00:09:24.640 --> 00:09:25.839
+now what I'm going to do
+
+00:09:25.839 --> 00:09:28.560
+is that I'm going to validate this file
+
+00:09:28.560 --> 00:09:29.200
+and now
+
+00:09:29.200 --> 00:09:32.560
+you see that we are in the file foo
+
+00:09:32.560 --> 00:09:36.240
+and the good thing is that I can start
+
+00:09:36.240 --> 00:09:39.440
+writing without having to worry
+
+00:09:39.440 --> 00:09:42.160
+about anything else and I was thinking I
+
+00:09:42.160 --> 00:09:43.760
+was going to say to say that I'm
+
+00:09:43.760 --> 00:09:46.160
+showing off about my typing skills but I
+
+00:09:46.160 --> 00:09:47.680
+did make mistakes so
+
+00:09:47.680 --> 00:09:50.959
+well nobody's perfect right so now we do
+
+00:09:50.959 --> 00:09:53.760
+have this view file and we're going to
+
+00:09:53.760 --> 00:09:55.519
+go back to the index so let's go back to
+
+00:09:55.519 --> 00:09:56.800
+the directory
+
+00:09:56.800 --> 00:09:58.560
+we're going to refresh the file as you
+
+00:09:58.560 --> 00:10:00.000
+can see we have a file which is called
+
+00:10:00.000 --> 00:10:00.560
+foo
+
+00:10:00.560 --> 00:10:03.360
+and we have the index so now what I'm
+
+00:10:03.360 --> 00:10:04.399
+going to do
+
+00:10:04.399 --> 00:10:06.480
+is that I'm going to insert a link to
+
+00:10:06.480 --> 00:10:07.760
+this file
+
+00:10:07.760 --> 00:10:09.920
+so we're going to run another orgrim
+
+00:10:09.920 --> 00:10:11.360
+command which you can see here
+
+00:10:11.360 --> 00:10:14.160
+orgrim inset and I'm going to insert a
+
+00:10:14.160 --> 00:10:15.279
+link to the file
+
+00:10:15.279 --> 00:10:17.279
+foo and as you can see it has now
+
+00:10:17.279 --> 00:10:18.959
+appeared now what I'm going to do
+
+00:10:18.959 --> 00:10:21.920
+I'm going to save the file and now I'm
+
+00:10:21.920 --> 00:10:23.040
+going to show you
+
+00:10:23.040 --> 00:10:24.480
+the little thing I told you about
+
+00:10:24.480 --> 00:10:26.720
+backlinks before so I'm afraid I'm going
+
+00:10:26.720 --> 00:10:27.680
+to have to hide
+
+00:10:27.680 --> 00:10:29.680
+the commands for now but don't worry
+
+00:10:29.680 --> 00:10:30.880
+I'll be back
+
+00:10:30.880 --> 00:10:33.760
+and I'm going to show you the side
+
+00:10:33.760 --> 00:10:34.320
+buffer
+
+00:10:34.320 --> 00:10:35.839
+so it is the buffer that you see on the
+
+00:10:35.839 --> 00:10:38.079
+right side of your screen
+
+00:10:38.079 --> 00:10:40.000
+and right now it's telling you that
+
+00:10:40.000 --> 00:10:42.560
+index does not have any backlink
+
+00:10:42.560 --> 00:10:45.440
+which is normal but if we follow the
+
+00:10:45.440 --> 00:10:46.320
+link
+
+00:10:46.320 --> 00:10:49.200
+fu now you see something different on
+
+00:10:49.200 --> 00:10:50.560
+the right side so as you can see on the
+
+00:10:50.560 --> 00:10:52.160
+left side we're back insta inside the
+
+00:10:52.160 --> 00:10:53.360
+file foo
+
+00:10:53.360 --> 00:10:55.600
+but on the right side we have something
+
+00:10:55.600 --> 00:10:56.560
+showing up
+
+00:10:56.560 --> 00:11:00.160
+one backlink in the file index
+
+00:11:00.160 --> 00:11:03.519
+in under the heading heading you have
+
+00:11:03.519 --> 00:11:04.399
+the file
+
+00:11:04.399 --> 00:11:07.680
+sorry the link foo and you can just open
+
+00:11:07.680 --> 00:11:08.720
+the link
+
+00:11:08.720 --> 00:11:10.720
+and you will be brought exactly where it
+
+00:11:10.720 --> 00:11:12.640
+is so
+
+00:11:12.640 --> 00:11:16.240
+okay so that was one thing now just
+
+00:11:16.240 --> 00:11:17.600
+to make sure that you've understood
+
+00:11:17.600 --> 00:11:19.360
+properly I'm going to go back to the
+
+00:11:19.360 --> 00:11:20.320
+index
+
+00:11:20.320 --> 00:11:23.920
+I'm going to create a second file
+
+00:11:23.920 --> 00:11:25.440
+so now I'm going to use a command that
+
+00:11:25.440 --> 00:11:27.680
+is slightly different so let me just uh
+
+00:11:27.680 --> 00:11:30.800
+show you the commands on the right
+
+00:11:30.800 --> 00:11:32.480
+I'm going to run the command orgrim
+
+00:11:32.480 --> 00:11:33.839
+insert and I'm going to
+
+00:11:33.839 --> 00:11:37.519
+end to enter a file which is called bar
+
+00:11:37.519 --> 00:11:39.600
+so again at the bottom you can see that
+
+00:11:39.600 --> 00:11:41.440
+I have a new file bar
+
+00:11:41.440 --> 00:11:45.920
+I'm going to validate this file
+
+00:11:45.920 --> 00:11:49.760
+okay I'm going to save index.org
+
+00:11:49.760 --> 00:11:52.959
+and now if we go in bar and if I show
+
+00:11:52.959 --> 00:11:54.320
+you
+
+00:11:54.320 --> 00:11:55.920
+the links on the side you can see that
+
+00:11:55.920 --> 00:11:58.240
+exactly the same we have a link
+
+00:11:58.240 --> 00:12:00.480
+now just to make the pictures complete
+
+00:12:00.480 --> 00:12:02.639
+inside the file bar I'm going to insert
+
+00:12:02.639 --> 00:12:05.200
+a link to foo I'm going to save I'm
+
+00:12:05.200 --> 00:12:06.959
+going to go to the file foo and now on
+
+00:12:06.959 --> 00:12:07.920
+the right side
+
+00:12:07.920 --> 00:12:11.120
+you can see that we have two backlinks
+
+00:12:11.120 --> 00:12:13.839
+now you're gonna tell me yeah thank you
+
+00:12:13.839 --> 00:12:14.720
+leo but
+
+00:12:14.720 --> 00:12:17.760
+what's the point well the thing is
+
+00:12:17.760 --> 00:12:20.320
+it might sound it might seem very simple
+
+00:12:20.320 --> 00:12:22.160
+but I've just shown you
+
+00:12:22.160 --> 00:12:24.160
+but programmatically it's a little hard
+
+00:12:24.160 --> 00:12:26.160
+to do like we have to
+
+00:12:26.160 --> 00:12:28.000
+look into your files to make sure that
+
+00:12:28.000 --> 00:12:30.079
+every time you link your file
+
+00:12:30.079 --> 00:12:32.240
+somewhere else we need to track
+
+00:12:32.240 --> 00:12:34.079
+everything down
+
+00:12:34.079 --> 00:12:37.920
+and now as simple as orgrum might be
+
+00:12:37.920 --> 00:12:39.519
+looking to you
+
+00:12:39.519 --> 00:12:42.240
+the thing is what we try to do with
+
+00:12:42.240 --> 00:12:43.279
+orgrum
+
+00:12:43.279 --> 00:12:45.920
+is to make sure that your collection of
+
+00:12:45.920 --> 00:12:46.399
+notes
+
+00:12:46.399 --> 00:12:50.320
+remains consistent whatever we do
+
+00:12:50.320 --> 00:12:54.079
+an example for instance like right now
+
+00:12:54.079 --> 00:12:56.880
+I've told you about a file named foo and
+
+00:12:56.880 --> 00:12:58.000
+the file name
+
+00:12:58.000 --> 00:13:01.120
+bar let's say that for whatever reason
+
+00:13:01.120 --> 00:13:03.920
+you decide to rename your file foo to
+
+00:13:03.920 --> 00:13:04.720
+something
+
+00:13:04.720 --> 00:13:08.079
+very original let's just say bar
+
+00:13:08.079 --> 00:13:11.040
+so we actually have a way in Emacs in
+
+00:13:11.040 --> 00:13:12.320
+orgrim I should say
+
+00:13:12.320 --> 00:13:14.560
+when you modify the title at the top of
+
+00:13:14.560 --> 00:13:15.680
+the file
+
+00:13:15.680 --> 00:13:18.880
+so we get foo I've modified it with baz
+
+00:13:18.880 --> 00:13:20.320
+you can see at the bottom that right now
+
+00:13:20.320 --> 00:13:22.000
+we haven't saved and we are still in the
+
+00:13:22.000 --> 00:13:22.519
+file
+
+00:13:22.519 --> 00:13:26.079
+fu.org I'm going to save
+
+00:13:26.079 --> 00:13:29.360
+and now what you see is
+
+00:13:29.360 --> 00:13:32.560
+a new name for the file but you may ask
+
+00:13:32.560 --> 00:13:35.360
+wait a second in the other file we had a
+
+00:13:35.360 --> 00:13:36.880
+link to this file
+
+00:13:36.880 --> 00:13:38.880
+does it mean that it's broken does it
+
+00:13:38.880 --> 00:13:40.560
+means does it mean sorry
+
+00:13:40.560 --> 00:13:43.440
+that we cannot access the file anymore
+
+00:13:43.440 --> 00:13:43.920
+but
+
+00:13:43.920 --> 00:13:46.959
+when we go there beginning to go in the
+
+00:13:46.959 --> 00:13:48.000
+index
+
+00:13:48.000 --> 00:13:50.399
+so obviously the actual description of
+
+00:13:50.399 --> 00:13:52.079
+the link hasn't been updated
+
+00:13:52.079 --> 00:13:54.320
+but if I show you what goes on under the
+
+00:13:54.320 --> 00:13:55.680
+hood by showing you
+
+00:13:55.680 --> 00:13:57.440
+what is fontify what is behind the
+
+00:13:57.440 --> 00:14:00.000
+content of the link
+
+00:14:00.000 --> 00:14:02.320
+actually it didn't work and that's why
+
+00:14:02.320 --> 00:14:04.079
+you never present live folks because
+
+00:14:04.079 --> 00:14:04.639
+otherwise you're
+
+00:14:04.639 --> 00:14:05.920
+just going to show problems with the
+
+00:14:05.920 --> 00:14:08.880
+software and that's not good
+
+00:14:08.880 --> 00:14:12.079
+so something must have gone on obviously
+
+00:14:12.079 --> 00:14:15.120
+but generally speaking the file should
+
+00:14:15.120 --> 00:14:17.120
+have been updated
+
+00:14:17.120 --> 00:14:18.959
+damn I'm showing you bugging my software
+
+00:14:18.959 --> 00:14:21.279
+that's not very professional now is it
+
+00:14:21.279 --> 00:14:25.040
+basically to come back to the main id
+
+00:14:25.040 --> 00:14:28.079
+what we try to do with orgrom is to make
+
+00:14:28.079 --> 00:14:28.880
+sure that
+
+00:14:28.880 --> 00:14:32.639
+everything remains consistent we
+
+00:14:32.639 --> 00:14:35.279
+really much love the system of
+
+00:14:35.279 --> 00:14:37.360
+organization that is behind this little
+
+00:14:37.360 --> 00:14:38.720
+castle method
+
+00:14:38.720 --> 00:14:40.240
+now I was going at this point of the
+
+00:14:40.240 --> 00:14:41.600
+presentation basically I wanted to go
+
+00:14:41.600 --> 00:14:42.639
+back to firefox
+
+00:14:42.639 --> 00:14:45.199
+and show you more stuff but it's likely
+
+00:14:45.199 --> 00:14:46.880
+that it's going to crash again
+
+00:14:46.880 --> 00:14:48.959
+so I'm not going to tempt the devil and
+
+00:14:48.959 --> 00:14:50.240
+I'm just going to continue talking to
+
+00:14:50.240 --> 00:14:51.680
+you like that
+
+00:14:51.680 --> 00:14:54.800
+so the zettelkasten method
+
+00:14:54.800 --> 00:14:58.160
+is a very organic way
+
+00:14:58.160 --> 00:15:01.839
+to write notes and if you think
+
+00:15:01.839 --> 00:15:04.959
+I I believe as all mode users
+
+00:15:04.959 --> 00:15:06.639
+we share quite a lot of features and I'm
+
+00:15:06.639 --> 00:15:08.000
+out of time I'm just going to take one
+
+00:15:08.000 --> 00:15:09.600
+more minute to answer this question
+
+00:15:09.600 --> 00:15:12.320
+that I'm asking myself anyway but if
+
+00:15:12.320 --> 00:15:14.560
+you're anything like me
+
+00:15:14.560 --> 00:15:16.079
+you've you've been through many
+
+00:15:16.079 --> 00:15:18.240
+iterations of your workflow inside of
+
+00:15:18.240 --> 00:15:18.959
+mode
+
+00:15:18.959 --> 00:15:20.959
+do I keep all my professional stuff
+
+00:15:20.959 --> 00:15:22.959
+under one heading or do I create a
+
+00:15:22.959 --> 00:15:24.399
+separate file for this
+
+00:15:24.399 --> 00:15:25.920
+you know those types of questions on
+
+00:15:25.920 --> 00:15:28.000
+which you could ponder for
+
+00:15:28.000 --> 00:15:30.639
+many many hours at night generally when
+
+00:15:30.639 --> 00:15:31.360
+you have a
+
+00:15:31.360 --> 00:15:34.560
+tight deadline to be following but
+
+00:15:34.560 --> 00:15:36.959
+what I've discovered by using orgrim for
+
+00:15:36.959 --> 00:15:38.240
+taking notes about
+
+00:15:38.240 --> 00:15:40.720
+my academic projects or by taking notes
+
+00:15:40.720 --> 00:15:41.360
+on
+
+00:15:41.360 --> 00:15:44.880
+you know anything worth writing about
+
+00:15:44.880 --> 00:15:47.440
+is that not having to worry about the
+
+00:15:47.440 --> 00:15:49.199
+structure if you files
+
+00:15:49.199 --> 00:15:52.399
+just having to worry about atoms
+
+00:15:52.399 --> 00:15:56.079
+and links it does wonder
+
+00:15:56.079 --> 00:15:58.480
+for the way you think about problems it
+
+00:15:58.480 --> 00:16:00.639
+does wonder about your creativity
+
+00:16:00.639 --> 00:16:04.800
+and it does wonder about your ability to
+
+00:16:04.800 --> 00:16:07.519
+take your thoughts put them on a paper
+
+00:16:07.519 --> 00:16:08.800
+and generally you know during this
+
+00:16:08.800 --> 00:16:10.399
+process you realize oh maybe I do not
+
+00:16:10.399 --> 00:16:13.120
+know this concept as well as I should
+
+00:16:13.120 --> 00:16:16.079
+but I've never had a system which
+
+00:16:16.079 --> 00:16:16.800
+brought me
+
+00:16:16.800 --> 00:16:19.839
+as much serendipity as this system
+
+00:16:19.839 --> 00:16:21.440
+and for those who don't know serendipity
+
+00:16:21.440 --> 00:16:24.880
+the ability to come up with novel ideas
+
+00:16:24.880 --> 00:16:28.800
+on the spot contextually so
+
+00:16:28.800 --> 00:16:32.240
+this was just a little primer on what
+
+00:16:32.240 --> 00:16:34.959
+orgrom and the zettelkasten is about in
+
+00:16:34.959 --> 00:16:36.000
+about
+
+00:16:36.000 --> 00:16:38.000
+20 minutes I'll be giving you a talk
+
+00:16:38.000 --> 00:16:39.680
+about the technical aspects of orgrim
+
+00:16:39.680 --> 00:16:40.800
+which I'm certain
+
+00:16:40.800 --> 00:16:43.040
+some of you will be very interested in
+
+00:16:43.040 --> 00:16:44.160
+and
+
+00:16:44.160 --> 00:16:46.160
+otherwise I do have a youtube channel
+
+00:16:46.160 --> 00:16:48.560
+where I try to
+
+00:16:48.560 --> 00:16:50.720
+record videos where I explain to you
+
+00:16:50.720 --> 00:16:52.079
+what the org
+
+00:16:52.079 --> 00:16:53.839
+what organ is about what the method is
+
+00:16:53.839 --> 00:16:55.600
+about and
+
+00:16:55.600 --> 00:16:57.040
+and I'll just finish on this I'm two
+
+00:16:57.040 --> 00:16:58.720
+minutes extra time sorry
+
+00:16:58.720 --> 00:17:02.399
+but um we do know that a lot of people
+
+00:17:02.399 --> 00:17:04.079
+are interested into orgrim I mentioned
+
+00:17:04.079 --> 00:17:04.959
+at the very beginning of the
+
+00:17:04.959 --> 00:17:06.160
+presentation
+
+00:17:06.160 --> 00:17:09.360
+that a lot of people discovered Emacs
+
+00:17:09.360 --> 00:17:10.640
+and orgrom
+
+00:17:10.640 --> 00:17:14.640
+and old mode even through orgrom
+
+00:17:14.640 --> 00:17:18.400
+and we feel that we have a duty to
+
+00:17:18.400 --> 00:17:20.959
+introduce those people this new pool of
+
+00:17:20.959 --> 00:17:22.720
+people most of whom are
+
+00:17:22.720 --> 00:17:25.439
+academics into the world of Emacs and
+
+00:17:25.439 --> 00:17:27.600
+into the water free software
+
+00:17:27.600 --> 00:17:30.240
+and right now the thing is we're not
+
+00:17:30.240 --> 00:17:32.240
+doing a particularly good job at writing
+
+00:17:32.240 --> 00:17:34.080
+manuals I'm just going to try
+
+00:17:34.080 --> 00:17:36.160
+to stop sharing my screen because I'm
+
+00:17:36.160 --> 00:17:37.360
+nearly to the end
+
+00:17:37.360 --> 00:17:40.240
+and just try sharing my firefox windows
+
+00:17:40.240 --> 00:17:41.919
+if it allows me no it doesn't allow me
+
+00:17:41.919 --> 00:17:43.120
+which is very good that's why I won't
+
+00:17:43.120 --> 00:17:44.160
+have to
+
+00:17:44.160 --> 00:17:47.200
+to screw things up but
+
+00:17:47.200 --> 00:17:50.080
+uh we know that our manual is not fully
+
+00:17:50.080 --> 00:17:50.880
+up to date
+
+00:17:50.880 --> 00:17:53.760
+but believe me one of the key focus
+
+00:17:53.760 --> 00:17:54.480
+right now
+
+00:17:54.480 --> 00:17:56.960
+is making sure that within two to three
+
+00:17:56.960 --> 00:17:57.840
+months
+
+00:17:57.840 --> 00:17:59.679
+we have a good tutorial for people to
+
+00:17:59.679 --> 00:18:02.559
+join and we have good videos for people
+
+00:18:02.559 --> 00:18:03.840
+to get introduced to the topics we're
+
+00:18:03.840 --> 00:18:04.640
+covering
+
+00:18:04.640 --> 00:18:06.320
+and that's me done so thank you so much
+
+00:18:06.320 --> 00:18:07.679
+for listening and now I'll be taking
+
+00:18:07.679 --> 00:18:09.840
+some questions
+
+00:18:09.840 --> 00:18:12.880
+thank you very much leo oh thank you
+
+00:18:12.880 --> 00:18:17.679
+cheers we have I think about two minutes
+
+00:18:17.679 --> 00:18:19.440
+four questions and I see a lot of them
+
+00:18:19.440 --> 00:18:20.880
+on the pad
+
+00:18:20.880 --> 00:18:23.120
+would you take them sure so yep I'm
+
+00:18:23.120 --> 00:18:24.320
+scrolling I'm scrolling
+
+00:18:24.320 --> 00:18:27.600
+uh getting things done that's aldrich uh
+
+00:18:27.600 --> 00:18:30.000
+still scrolling okay olgram oh wow okay
+
+00:18:30.000 --> 00:18:31.679
+so we do have quite a lot of questions
+
+00:18:31.679 --> 00:18:33.600
+so please excuse me if I'm answering
+
+00:18:33.600 --> 00:18:34.799
+your questions really fast but I just
+
+00:18:34.799 --> 00:18:35.760
+want to make sure that I cover
+
+00:18:35.760 --> 00:18:38.080
+as much ground as possible so what is
+
+00:18:38.080 --> 00:18:40.240
+the functionality of all chrome unlinked
+
+00:18:40.240 --> 00:18:41.039
+references
+
+00:18:41.039 --> 00:18:43.200
+so basically when you have a file that
+
+00:18:43.200 --> 00:18:45.200
+is not linked anywhere
+
+00:18:45.200 --> 00:18:48.000
+this function allows you to see uh let's
+
+00:18:48.000 --> 00:18:49.520
+say we have a file Emacs
+
+00:18:49.520 --> 00:18:51.200
+and we've talked about Emacs in another
+
+00:18:51.200 --> 00:18:53.200
+note but we haven't created a link
+
+00:18:53.200 --> 00:18:57.440
+what this command do is that it
+
+00:18:57.440 --> 00:18:59.520
+looks into your folder for every mention
+
+00:18:59.520 --> 00:19:00.720
+of Emacs that is not
+
+00:19:00.720 --> 00:19:03.840
+linked to the note Emacs and it prints
+
+00:19:03.840 --> 00:19:05.039
+all the results in the buffer so that
+
+00:19:05.039 --> 00:19:06.480
+you know okay I've talked about Emacs
+
+00:19:06.480 --> 00:19:07.840
+here but I didn't create a link
+
+00:19:07.840 --> 00:19:10.480
+do I want to create a link that's it so
+
+00:19:10.480 --> 00:19:11.840
+is it possible to use the backlinks
+
+00:19:11.840 --> 00:19:12.480
+features
+
+00:19:12.480 --> 00:19:15.039
+in regular old buffers right now no it
+
+00:19:15.039 --> 00:19:16.400
+is not possible we are
+
+00:19:16.400 --> 00:19:18.080
+having a very controlled environment
+
+00:19:18.080 --> 00:19:20.240
+which is I told you about this clipbox
+
+00:19:20.240 --> 00:19:21.280
+folder before
+
+00:19:21.280 --> 00:19:22.799
+this is where we keep all the nodes and
+
+00:19:22.799 --> 00:19:24.400
+the reason why we do this will be more
+
+00:19:24.400 --> 00:19:26.080
+evident when I go through the technical
+
+00:19:26.080 --> 00:19:27.360
+presentation
+
+00:19:27.360 --> 00:19:30.720
+but uh it's because of optimization
+
+00:19:30.720 --> 00:19:32.080
+so I'll get back to you on that
+
+00:19:32.080 --> 00:19:33.760
+afterwards um
+
+00:19:33.760 --> 00:19:35.440
+do you make all group database
+
+00:19:35.440 --> 00:19:37.039
+accessible across computers
+
+00:19:37.039 --> 00:19:39.760
+uh no I do not because I'm only using my
+
+00:19:39.760 --> 00:19:41.760
+laptop but plenty of people have had
+
+00:19:41.760 --> 00:19:44.559
+a lot of success doing so either by
+
+00:19:44.559 --> 00:19:47.039
+sharing the files via a sync thing or by
+
+00:19:47.039 --> 00:19:47.679
+any other
+
+00:19:47.679 --> 00:19:49.760
+method we have a section in a manual
+
+00:19:49.760 --> 00:19:52.400
+specifying how to do this uh how do you
+
+00:19:52.400 --> 00:19:53.760
+discover the tags links to add to your
+
+00:19:53.760 --> 00:19:54.880
+new algorithm note
+
+00:19:54.880 --> 00:19:56.160
+there is something that I didn't tell
+
+00:19:56.160 --> 00:19:57.679
+you about which is called orgrim server
+
+00:19:57.679 --> 00:19:58.240
+which is a
+
+00:19:58.240 --> 00:20:01.679
+magnificent way to uh access
+
+00:20:01.679 --> 00:20:04.320
+visually the nodes that you have in your
+
+00:20:04.320 --> 00:20:05.360
+in your system
+
+00:20:05.360 --> 00:20:07.840
+you'll have to go to the orgrom.com
+
+00:20:07.840 --> 00:20:08.799
+website
+
+00:20:08.799 --> 00:20:10.640
+and please go on our github page and we
+
+00:20:10.640 --> 00:20:12.080
+show everything and
+
+00:20:12.080 --> 00:20:14.640
+um I hope what I've told you has excited
+
+00:20:14.640 --> 00:20:16.000
+you so please go
+
+00:20:16.000 --> 00:20:18.000
+uh maybe one more question two more
+
+00:20:18.000 --> 00:20:20.080
+questions just to make sure uh is it
+
+00:20:20.080 --> 00:20:21.679
+possible to seamlessly link to other
+
+00:20:21.679 --> 00:20:23.039
+notes with syntax instead of a
+
+00:20:23.039 --> 00:20:23.919
+keybinding
+
+00:20:23.919 --> 00:20:25.840
+yes we are working on this this is a
+
+00:20:25.840 --> 00:20:27.120
+huge project that we're doing with
+
+00:20:27.120 --> 00:20:28.880
+orgrim which is called uh
+
+00:20:28.880 --> 00:20:30.960
+link ux and we're trying to do something
+
+00:20:30.960 --> 00:20:32.880
+which is very close to rome research
+
+00:20:32.880 --> 00:20:34.559
+which is the software we're using for
+
+00:20:34.559 --> 00:20:36.880
+inspiration for orgrom
+
+00:20:36.880 --> 00:20:39.200
+and uh yes there's there are going to be
+
+00:20:39.200 --> 00:20:41.280
+ways to do this in the future I'm going
+
+00:20:41.280 --> 00:20:42.640
+to give you a window of
+
+00:20:42.640 --> 00:20:45.280
+maybe three to four months and one last
+
+00:20:45.280 --> 00:20:46.320
+question
+
+00:20:46.320 --> 00:20:48.480
+uh good on you thank you well thank you
+
+00:20:48.480 --> 00:20:49.440
+for for this
+
+00:20:49.440 --> 00:20:51.039
+is there an easy way to export several
+
+00:20:51.039 --> 00:20:53.200
+selected nodes to say a lattice file
+
+00:20:53.200 --> 00:20:56.960
+latex yes uh I mean it's old mode
+
+00:20:56.960 --> 00:20:59.840
+at the very core it is org mode so you
+
+00:20:59.840 --> 00:21:00.480
+know you don't
+
+00:21:00.480 --> 00:21:02.559
+if you want to export to latex file you
+
+00:21:02.559 --> 00:21:04.000
+can you just use the
+
+00:21:04.000 --> 00:21:06.320
+aux latex library which you can access
+
+00:21:06.320 --> 00:21:08.320
+by pressing ctrl c ctrl
+
+00:21:08.320 --> 00:21:11.760
+e for export all right is it uh I
+
+00:21:11.760 --> 00:21:12.480
+believe I'm
+
+00:21:12.480 --> 00:21:13.919
+it's all the time I had I mean can you
+
+00:21:13.919 --> 00:21:16.880
+confirm this
+
+00:21:16.880 --> 00:21:19.039
+okay so if you have more questions don't
+
+00:21:19.039 --> 00:21:20.240
+worry I'll be in chat
+
+00:21:20.240 --> 00:21:23.679
+I'll be answering them uh I'm also on on
+
+00:21:23.679 --> 00:21:26.799
+all the platforms we advertise on on
+
+00:21:26.799 --> 00:21:28.159
+orgram if you want to reach me I'm
+
+00:21:28.159 --> 00:21:29.280
+really easy to reach
+
+00:21:29.280 --> 00:21:31.919
+our gita page is always open so thank
+
+00:21:31.919 --> 00:21:32.559
+you all for
+
+00:21:32.559 --> 00:21:35.520
+all your questions and all your energy
+
+00:21:35.520 --> 00:21:37.440
+about orgrim it is very exciting for me
+
+00:21:37.440 --> 00:21:38.640
+to to see all this
+
+00:21:38.640 --> 00:21:42.000
+but right now I'll be ending off the
+
+00:21:42.000 --> 00:21:44.080
+microphone I should say to nura who is
+
+00:21:44.080 --> 00:21:45.840
+going to talk to you about the
+
+00:21:45.840 --> 00:21:48.480
+academic way to use orgrom and I'll be
+
+00:21:48.480 --> 00:21:50.080
+back afterwards with the technical talk
+
+00:21:50.080 --> 00:21:53.760
+okay thank you thank you very much leo
+
+00:21:53.760 --> 00:21:57.760
+see you later guys
diff --git a/2020/subtitles/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan-autogen.vtt b/2020/subtitles/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan-autogen.vtt
new file mode 100644
index 00000000..f7610b1f
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan-autogen.vtt
@@ -0,0 +1,1795 @@
+WEBVTT
+
+00:00:00.320 --> 00:00:02.639
+good afternoon or good evening everyone
+
+00:00:02.639 --> 00:00:03.040
+uh
+
+00:00:03.040 --> 00:00:05.440
+today my talk is going to be on org mode
+
+00:00:05.440 --> 00:00:07.759
+and or group for skulls and researchers
+
+00:00:07.759 --> 00:00:10.559
+leo has talked about like the overall
+
+00:00:10.559 --> 00:00:12.639
+picture of orgrim and or
+
+00:00:12.639 --> 00:00:15.120
+uh bibtex or groundbreak tech I will be
+
+00:00:15.120 --> 00:00:16.240
+talking more about
+
+00:00:16.240 --> 00:00:19.199
+the research process itself using these
+
+00:00:19.199 --> 00:00:20.320
+tools
+
+00:00:20.320 --> 00:00:22.400
+all right so just to introduce that the
+
+00:00:22.400 --> 00:00:25.039
+research process is really messy
+
+00:00:25.039 --> 00:00:28.080
+um you're always working in like
+
+00:00:28.080 --> 00:00:31.039
+piecemeal tasks and things move around
+
+00:00:31.039 --> 00:00:32.960
+all the time and so
+
+00:00:32.960 --> 00:00:35.280
+there needs to be a system where you can
+
+00:00:35.280 --> 00:00:36.880
+organize all these tasks
+
+00:00:36.880 --> 00:00:39.360
+all these ideas in a way that is
+
+00:00:39.360 --> 00:00:41.760
+flexible and effective
+
+00:00:41.760 --> 00:00:44.239
+so my motivation is that research is
+
+00:00:44.239 --> 00:00:44.960
+hard and
+
+00:00:44.960 --> 00:00:47.120
+writing about it is even more difficult
+
+00:00:47.120 --> 00:00:49.600
+and my goal is to add some structure to
+
+00:00:49.600 --> 00:00:51.120
+this whole madness
+
+00:00:51.120 --> 00:00:52.800
+so here's a list of some of the stuff
+
+00:00:52.800 --> 00:00:54.480
+that I've been using since I first
+
+00:00:54.480 --> 00:00:57.199
+learned about Emacs in 2019
+
+00:00:57.199 --> 00:01:00.160
+and what I've what I've found useful um
+
+00:01:00.160 --> 00:01:02.000
+during my res uh like um
+
+00:01:02.000 --> 00:01:05.199
+within my research process all right so
+
+00:01:05.199 --> 00:01:07.920
+I've organized org mode for researchers
+
+00:01:07.920 --> 00:01:10.400
+and scholars within the writing process
+
+00:01:10.400 --> 00:01:12.400
+into three modules first there's like
+
+00:01:12.400 --> 00:01:14.320
+the planning aspect of it
+
+00:01:14.320 --> 00:01:15.759
+then you've got the writing and the
+
+00:01:15.759 --> 00:01:17.680
+reference management which I will join
+
+00:01:17.680 --> 00:01:18.320
+together
+
+00:01:18.320 --> 00:01:20.560
+by looking at the example of doing your
+
+00:01:20.560 --> 00:01:21.920
+literature review
+
+00:01:21.920 --> 00:01:24.720
+all right so when we're talking about
+
+00:01:24.720 --> 00:01:26.479
+planning we're talking about either task
+
+00:01:26.479 --> 00:01:27.360
+management or
+
+00:01:27.360 --> 00:01:30.880
+time management with task management
+
+00:01:30.880 --> 00:01:31.600
+you've got
+
+00:01:31.600 --> 00:01:33.840
+org modes to do's and tags and
+
+00:01:33.840 --> 00:01:36.159
+categories these are really powerful
+
+00:01:36.159 --> 00:01:38.479
+tools that you could use
+
+00:01:38.479 --> 00:01:41.600
+um in your org files to just um
+
+00:01:41.600 --> 00:01:44.799
+uh like organize your tasks and
+
+00:01:44.799 --> 00:01:47.040
+your appointments so there are different
+
+00:01:47.040 --> 00:01:49.040
+types of to-do's that you can either set
+
+00:01:49.040 --> 00:01:50.960
+globally in your init file or they can
+
+00:01:50.960 --> 00:01:52.799
+be file buffer specific
+
+00:01:52.799 --> 00:01:55.200
+so that means based on context based on
+
+00:01:55.200 --> 00:01:56.079
+the type of
+
+00:01:56.079 --> 00:01:57.759
+manuscript you're working on whether
+
+00:01:57.759 --> 00:01:59.280
+it's like a literate programming
+
+00:01:59.280 --> 00:02:02.240
+report or your actual thesis slash
+
+00:02:02.240 --> 00:02:03.759
+dissertation
+
+00:02:03.759 --> 00:02:05.840
+um also these to-do's are either created
+
+00:02:05.840 --> 00:02:07.759
+as a set tree like think of them as
+
+00:02:07.759 --> 00:02:11.440
+headings and sections if you use latex
+
+00:02:11.440 --> 00:02:14.800
+or inline text which are like org inline
+
+00:02:14.800 --> 00:02:15.360
+tasks I
+
+00:02:15.360 --> 00:02:17.760
+like organ line tasks because like I can
+
+00:02:17.760 --> 00:02:19.120
+add
+
+00:02:19.120 --> 00:02:21.520
+to do's between two paragraphs and that
+
+00:02:21.520 --> 00:02:22.879
+way it doesn't show up
+
+00:02:22.879 --> 00:02:25.360
+in the table of contents when I export
+
+00:02:25.360 --> 00:02:27.280
+into pdf or html or
+
+00:02:27.280 --> 00:02:30.879
+anything else all right so this is an
+
+00:02:30.879 --> 00:02:34.319
+example of buffer specific to do's
+
+00:02:34.319 --> 00:02:37.360
+and and this is example of like a little
+
+00:02:37.360 --> 00:02:39.120
+programming report that I was working on
+
+00:02:39.120 --> 00:02:40.800
+where I was like dealing with
+
+00:02:40.800 --> 00:02:43.200
+data and like analysis and all of that
+
+00:02:43.200 --> 00:02:44.080
+stuff and so
+
+00:02:44.080 --> 00:02:47.519
+I needed um context specific to do's to
+
+00:02:47.519 --> 00:02:49.440
+use them within this buffer
+
+00:02:49.440 --> 00:02:52.080
+um and that's how I would organize it
+
+00:02:52.080 --> 00:02:54.319
+and there's also also another example
+
+00:02:54.319 --> 00:02:57.200
+of an org inline task where you could
+
+00:02:57.200 --> 00:02:57.920
+see it
+
+00:02:57.920 --> 00:03:01.360
+in the middle between the two headings
+
+00:03:01.360 --> 00:03:03.040
+that way it wouldn't show up in the
+
+00:03:03.040 --> 00:03:04.959
+table of contents and it would look like
+
+00:03:04.959 --> 00:03:06.480
+nature within the
+
+00:03:06.480 --> 00:03:09.519
+text when you export it
+
+00:03:09.519 --> 00:03:11.920
+oh but I also added a tag of no export
+
+00:03:11.920 --> 00:03:13.280
+so it won't show up at all
+
+00:03:13.280 --> 00:03:16.400
+when I export it into like either pdf
+
+00:03:16.400 --> 00:03:19.360
+which I use all the time all right so
+
+00:03:19.360 --> 00:03:21.599
+another useful tool
+
+00:03:21.599 --> 00:03:24.159
+um for the research and just like
+
+00:03:24.159 --> 00:03:25.200
+general planning
+
+00:03:25.200 --> 00:03:27.920
+is the org capture um when I first
+
+00:03:27.920 --> 00:03:29.120
+started with Emacs
+
+00:03:29.120 --> 00:03:32.080
+actually it was for org agenda and I
+
+00:03:32.080 --> 00:03:34.239
+went crazy with my capture template I
+
+00:03:34.239 --> 00:03:35.360
+created a template for
+
+00:03:35.360 --> 00:03:37.599
+everything um because I was just so
+
+00:03:37.599 --> 00:03:38.640
+excited
+
+00:03:38.640 --> 00:03:40.720
+but with time I was using less and less
+
+00:03:40.720 --> 00:03:42.400
+of them so I kept taking them out
+
+00:03:42.400 --> 00:03:46.319
+and now this is my simplified um
+
+00:03:46.319 --> 00:03:48.239
+capture templates that I use either for
+
+00:03:48.239 --> 00:03:49.599
+a general to do
+
+00:03:49.599 --> 00:03:52.159
+um for a regular appointment a fleeting
+
+00:03:52.159 --> 00:03:54.159
+note research tasks because like those
+
+00:03:54.159 --> 00:03:55.200
+are what I focus on
+
+00:03:55.200 --> 00:03:56.959
+like my bread and butter and then
+
+00:03:56.959 --> 00:03:58.720
+finally with meetings which I find
+
+00:03:58.720 --> 00:04:00.879
+sometimes I don't use it as much because
+
+00:04:00.879 --> 00:04:01.680
+I would just like
+
+00:04:01.680 --> 00:04:03.519
+have the org file ready instead of
+
+00:04:03.519 --> 00:04:04.879
+needing to capture
+
+00:04:04.879 --> 00:04:07.920
+you know open a capture template
+
+00:04:07.920 --> 00:04:11.439
+right or agenda um that's how I got into
+
+00:04:11.439 --> 00:04:12.400
+Emacs
+
+00:04:12.400 --> 00:04:15.439
+I needed to um organize my life and I
+
+00:04:15.439 --> 00:04:16.799
+found Emacs and
+
+00:04:16.799 --> 00:04:19.199
+it's been great ever since um it
+
+00:04:19.199 --> 00:04:20.479
+populates all your to-do's and
+
+00:04:20.479 --> 00:04:22.720
+appointments into a singular view so the
+
+00:04:22.720 --> 00:04:25.280
+default view I think it's a weak view
+
+00:04:25.280 --> 00:04:29.120
+however I use org super agenda love this
+
+00:04:29.120 --> 00:04:31.919
+um package and I set up my agenda as a
+
+00:04:31.919 --> 00:04:34.160
+daily view with just appointments
+
+00:04:34.160 --> 00:04:37.360
+deadlines and a habit tracker um and
+
+00:04:37.360 --> 00:04:38.720
+a side note you guys I'm still
+
+00:04:38.720 --> 00:04:40.639
+struggling with organizing the perfect
+
+00:04:40.639 --> 00:04:42.320
+agenda so it's a process
+
+00:04:42.320 --> 00:04:45.360
+and take it easy all right
+
+00:04:45.360 --> 00:04:47.919
+so this is just an overview of my daily
+
+00:04:47.919 --> 00:04:50.320
+agenda as you can see they're just like
+
+00:04:50.320 --> 00:04:52.800
+appointments that I import from gmail
+
+00:04:52.800 --> 00:04:55.520
+using org gcal
+
+00:04:55.520 --> 00:04:57.919
+a simple habit tracker of like daily
+
+00:04:57.919 --> 00:04:58.880
+free writing
+
+00:04:58.880 --> 00:05:00.960
+as you can see there are a lot of times
+
+00:05:00.960 --> 00:05:02.800
+where I'm skipping and the asterisk is
+
+00:05:02.800 --> 00:05:05.199
+the one where I've completed that day
+
+00:05:05.199 --> 00:05:08.479
+so you know it's a process and then just
+
+00:05:08.479 --> 00:05:10.080
+like regular deadlines
+
+00:05:10.080 --> 00:05:12.639
+so what happens is that I have other
+
+00:05:12.639 --> 00:05:14.000
+to-do's that I have
+
+00:05:14.000 --> 00:05:17.120
+not scheduled or not added a deadline
+
+00:05:17.120 --> 00:05:17.919
+but they're just
+
+00:05:17.919 --> 00:05:20.560
+tasks that keep piling up when I first
+
+00:05:20.560 --> 00:05:22.320
+started with Emacs and org agenda
+
+00:05:22.320 --> 00:05:24.880
+I had everything in there and it got
+
+00:05:24.880 --> 00:05:26.880
+overwhelming and then I decided no
+
+00:05:26.880 --> 00:05:29.680
+I'm not gonna even let them show up so
+
+00:05:29.680 --> 00:05:30.800
+what I would do
+
+00:05:30.800 --> 00:05:33.120
+at the beginning of each week or the
+
+00:05:33.120 --> 00:05:34.479
+night before
+
+00:05:34.479 --> 00:05:36.800
+um I would sit down look at all my to
+
+00:05:36.800 --> 00:05:38.000
+to-do's that I have
+
+00:05:38.000 --> 00:05:40.720
+not assigned yet to a deadline or a
+
+00:05:40.720 --> 00:05:42.639
+schedule or just a simple
+
+00:05:42.639 --> 00:05:45.360
+timestamp um and I would organize them
+
+00:05:45.360 --> 00:05:46.320
+throughout the week
+
+00:05:46.320 --> 00:05:49.520
+so here's an example of what I did
+
+00:05:49.520 --> 00:05:51.680
+so on that wednesday from my gmail I had
+
+00:05:51.680 --> 00:05:53.039
+all these appointments but
+
+00:05:53.039 --> 00:05:55.600
+one of them is I have a writing group
+
+00:05:55.600 --> 00:05:56.560
+session
+
+00:05:56.560 --> 00:05:58.400
+and so I looked at my tasks and I
+
+00:05:58.400 --> 00:05:59.759
+thought okay then I will just
+
+00:05:59.759 --> 00:06:02.639
+assign um like for example my emac
+
+00:06:02.639 --> 00:06:03.520
+slides
+
+00:06:03.520 --> 00:06:06.319
+or the framework diagram into that
+
+00:06:06.319 --> 00:06:07.280
+writing session
+
+00:06:07.280 --> 00:06:09.600
+and all I did was just add an active
+
+00:06:09.600 --> 00:06:10.800
+timestamp
+
+00:06:10.800 --> 00:06:12.960
+that is all I needed to do and it went
+
+00:06:12.960 --> 00:06:14.000
+straight into my
+
+00:06:14.000 --> 00:06:17.120
+appointment now if I miss that
+
+00:06:17.120 --> 00:06:20.080
+it won't show up on the next day so if
+
+00:06:20.080 --> 00:06:21.520
+you put in a deadline
+
+00:06:21.520 --> 00:06:24.639
+it will show up as an overdue but if you
+
+00:06:24.639 --> 00:06:26.560
+have no deadline or schedule it will not
+
+00:06:26.560 --> 00:06:29.280
+show up in your daily org agenda
+
+00:06:29.280 --> 00:06:32.960
+so just a star
+
+00:06:32.960 --> 00:06:35.680
+all right another way of accessing your
+
+00:06:35.680 --> 00:06:37.520
+to do's is that if it's
+
+00:06:37.520 --> 00:06:40.880
+um file specific org file specific
+
+00:06:40.880 --> 00:06:42.160
+buffer specific
+
+00:06:42.160 --> 00:06:44.160
+and so like when we talked about like
+
+00:06:44.160 --> 00:06:46.400
+whether to have a big ass org file or
+
+00:06:46.400 --> 00:06:47.680
+like tiny files
+
+00:06:47.680 --> 00:06:50.720
+it all depends and this isn't the the
+
+00:06:50.720 --> 00:06:54.560
+um you know the way this depends
+
+00:06:54.560 --> 00:06:55.759
+because if you're working on like a
+
+00:06:55.759 --> 00:06:58.400
+dissertation um it's a huge manuscript
+
+00:06:58.400 --> 00:06:59.680
+you need to like work
+
+00:06:59.680 --> 00:07:02.880
+on that org file all the time um
+
+00:07:02.880 --> 00:07:05.759
+then yes it might do should be in that
+
+00:07:05.759 --> 00:07:07.680
+file specifically because every time if
+
+00:07:07.680 --> 00:07:08.000
+I'm
+
+00:07:08.000 --> 00:07:09.680
+if I'm visiting this org file all the
+
+00:07:09.680 --> 00:07:12.479
+time I should be able to just look at my
+
+00:07:12.479 --> 00:07:15.520
+tasks from uh within that buffer
+
+00:07:15.520 --> 00:07:18.639
+and so I use org sidebar to
+
+00:07:18.639 --> 00:07:21.599
+keep all these specific uh to do's
+
+00:07:21.599 --> 00:07:22.960
+within that org file
+
+00:07:22.960 --> 00:07:26.560
+I find it helpful okay
+
+00:07:26.560 --> 00:07:28.400
+now that we're going into the writing
+
+00:07:28.400 --> 00:07:29.759
+and reference management
+
+00:07:29.759 --> 00:07:33.039
+we'll call it a literature review um
+
+00:07:33.039 --> 00:07:35.840
+and this is something I've built as a
+
+00:07:35.840 --> 00:07:36.639
+schema
+
+00:07:36.639 --> 00:07:40.240
+I think that it works for now
+
+00:07:40.240 --> 00:07:43.759
+um and it requires one outside pack
+
+00:07:43.759 --> 00:07:45.919
+of outside software which is zotero what
+
+00:07:45.919 --> 00:07:47.680
+I use it's an open source reference
+
+00:07:47.680 --> 00:07:48.720
+management
+
+00:07:48.720 --> 00:07:51.759
+software um it's great
+
+00:07:51.759 --> 00:07:53.599
+but the things to keep in mind is that I
+
+00:07:53.599 --> 00:07:55.120
+use two um
+
+00:07:55.120 --> 00:07:58.319
+plugins that is really needed for when
+
+00:07:58.319 --> 00:08:01.039
+we work with orgrim bibtex and orgrim
+
+00:08:01.039 --> 00:08:03.840
+and org mode um and the zap file so
+
+00:08:03.840 --> 00:08:06.160
+better bibtex organizes your reference
+
+00:08:06.160 --> 00:08:07.039
+keys
+
+00:08:07.039 --> 00:08:10.560
+um in um in a way like in a fashion that
+
+00:08:10.560 --> 00:08:13.360
+works for you so for me all my reference
+
+00:08:13.360 --> 00:08:14.240
+keys are like
+
+00:08:14.240 --> 00:08:17.280
+last author and gear um and with zap
+
+00:08:17.280 --> 00:08:21.120
+file I um I let it like rename all the
+
+00:08:21.120 --> 00:08:22.319
+pdf files
+
+00:08:22.319 --> 00:08:24.400
+the same way that I have for my bit of
+
+00:08:24.400 --> 00:08:26.000
+my bib keys which is like
+
+00:08:26.000 --> 00:08:29.360
+last name of author and year all right
+
+00:08:29.360 --> 00:08:33.440
+once you export your entire
+
+00:08:33.440 --> 00:08:37.120
+library as a bib file then you can work
+
+00:08:37.120 --> 00:08:39.440
+on it within org mode and Emacs
+
+00:08:39.440 --> 00:08:42.880
+using um the following packages
+
+00:08:42.880 --> 00:08:45.040
+all right so with orgrim bibtex it
+
+00:08:45.040 --> 00:08:47.839
+creates an org file for each bib entry
+
+00:08:47.839 --> 00:08:49.519
+and you have the option of like
+
+00:08:49.519 --> 00:08:52.240
+templating and doing other stuff with it
+
+00:08:52.240 --> 00:08:54.880
+and then finally there's like this orb
+
+00:08:54.880 --> 00:08:56.240
+pdf scraper
+
+00:08:56.240 --> 00:08:58.800
+I've used it briefly but I think the
+
+00:08:58.800 --> 00:09:00.240
+potential
+
+00:09:00.240 --> 00:09:02.880
+with or pdf scraper is if you're gonna
+
+00:09:02.880 --> 00:09:05.920
+do a bibliometric study or like a
+
+00:09:05.920 --> 00:09:08.320
+systematic literature view there's
+
+00:09:08.320 --> 00:09:10.000
+something there but I have to look
+
+00:09:10.000 --> 00:09:10.959
+through it
+
+00:09:10.959 --> 00:09:14.399
+anyway so once you create your you know
+
+00:09:14.399 --> 00:09:16.880
+your reference file of reference x and
+
+00:09:16.880 --> 00:09:18.160
+you're writing your notes
+
+00:09:18.160 --> 00:09:20.240
+you can either go like with going
+
+00:09:20.240 --> 00:09:22.399
+through org mode you're writing
+
+00:09:22.399 --> 00:09:24.080
+your ideas you're writing your notes
+
+00:09:24.080 --> 00:09:26.080
+you're assigning tasks
+
+00:09:26.080 --> 00:09:27.839
+and then there's org transclusion which
+
+00:09:27.839 --> 00:09:30.480
+I will mention briefly at the end
+
+00:09:30.480 --> 00:09:32.240
+and ways to extract if you're going to
+
+00:09:32.240 --> 00:09:35.360
+go through the orgrom
+
+00:09:35.360 --> 00:09:36.640
+things that you're going to use within
+
+00:09:36.640 --> 00:09:38.720
+orgrom it's a great way to build your
+
+00:09:38.720 --> 00:09:40.000
+database you start making the
+
+00:09:40.000 --> 00:09:42.880
+connections and you can visualize your
+
+00:09:42.880 --> 00:09:44.959
+notes and like how these references are
+
+00:09:44.959 --> 00:09:46.240
+linked to each other
+
+00:09:46.240 --> 00:09:48.839
+through the organ server or or ground
+
+00:09:48.839 --> 00:09:50.240
+graph
+
+00:09:50.240 --> 00:09:53.120
+all right this is just notes for later
+
+00:09:53.120 --> 00:09:53.680
+okay
+
+00:09:53.680 --> 00:09:56.240
+so this is an example of like an orgram
+
+00:09:56.240 --> 00:09:57.360
+file that I have
+
+00:09:57.360 --> 00:09:59.279
+for example if I'm working on adaptation
+
+00:09:59.279 --> 00:10:01.760
+policy I have these hyperlinks that are
+
+00:10:01.760 --> 00:10:02.560
+linked to other
+
+00:10:02.560 --> 00:10:04.959
+concepts and ideas such as either
+
+00:10:04.959 --> 00:10:06.640
+climate security
+
+00:10:06.640 --> 00:10:08.720
+um changing global environment so on and
+
+00:10:08.720 --> 00:10:10.560
+so forth and the backlinks
+
+00:10:10.560 --> 00:10:13.920
+are other references that talk about
+
+00:10:13.920 --> 00:10:15.839
+this specific concept
+
+00:10:15.839 --> 00:10:17.680
+so this is really helpful and then when
+
+00:10:17.680 --> 00:10:19.920
+you visualize it the picture on the left
+
+00:10:19.920 --> 00:10:22.160
+which I'm sure looks really small
+
+00:10:22.160 --> 00:10:24.160
+um you can see the connections that it's
+
+00:10:24.160 --> 00:10:25.680
+making with other
+
+00:10:25.680 --> 00:10:28.160
+references so of course this is just
+
+00:10:28.160 --> 00:10:29.760
+like a buffer
+
+00:10:29.760 --> 00:10:32.720
+network when you look at the entire
+
+00:10:32.720 --> 00:10:34.560
+database network it's it's
+
+00:10:34.560 --> 00:10:38.000
+it's growing okay
+
+00:10:38.000 --> 00:10:41.680
+so going into organ bidtech
+
+00:10:41.680 --> 00:10:44.079
+so it utilizes a combination of the or
+
+00:10:44.079 --> 00:10:46.000
+graph package helmbik tech candidate
+
+00:10:46.000 --> 00:10:46.880
+completion
+
+00:10:46.880 --> 00:10:50.079
+and it works with orgrom functionalities
+
+00:10:50.079 --> 00:10:51.440
+and
+
+00:10:51.440 --> 00:10:54.880
+other good stuff this is an example
+
+00:10:54.880 --> 00:10:57.440
+of my orgrim bibtex file all right so
+
+00:10:57.440 --> 00:10:58.720
+I've created
+
+00:10:58.720 --> 00:11:01.200
+um the template which I pretty much use
+
+00:11:01.200 --> 00:11:02.320
+what leo
+
+00:11:02.320 --> 00:11:05.920
+has uh produced like in his um
+
+00:11:05.920 --> 00:11:08.640
+tutorial so I think it's it's great it
+
+00:11:08.640 --> 00:11:10.160
+works well for me
+
+00:11:10.160 --> 00:11:12.880
+um and what it does is that it works
+
+00:11:12.880 --> 00:11:14.480
+with your bib file
+
+00:11:14.480 --> 00:11:17.519
+so if you're in your bib file you have a
+
+00:11:17.519 --> 00:11:19.519
+sub entry that's called keywords and
+
+00:11:19.519 --> 00:11:21.040
+usually that's within
+
+00:11:21.040 --> 00:11:23.120
+a journal article the author would
+
+00:11:23.120 --> 00:11:24.560
+specify these
+
+00:11:24.560 --> 00:11:27.519
+keywords um when it gets imported into
+
+00:11:27.519 --> 00:11:28.160
+zotero
+
+00:11:28.160 --> 00:11:30.399
+it extracts those keywords and then it
+
+00:11:30.399 --> 00:11:32.399
+gets populated as an org file
+
+00:11:32.399 --> 00:11:34.959
+with orgrim bibtex so I always start
+
+00:11:34.959 --> 00:11:36.959
+with the meta information first and then
+
+00:11:36.959 --> 00:11:38.560
+I would write my notes
+
+00:11:38.560 --> 00:11:42.480
+after that this is an example though
+
+00:11:42.480 --> 00:11:45.760
+for reference of a physical book so
+
+00:11:45.760 --> 00:11:49.120
+I don't have a pdf file for it um
+
+00:11:49.120 --> 00:11:51.519
+so what I've figured out like a new idea
+
+00:11:51.519 --> 00:11:53.920
+for it so if I'm writing notes on it
+
+00:11:53.920 --> 00:11:55.760
+I would create a property that says
+
+00:11:55.760 --> 00:11:57.279
+pages um
+
+00:11:57.279 --> 00:11:58.959
+that way it's easier for you when you go
+
+00:11:58.959 --> 00:12:00.639
+back to citing
+
+00:12:00.639 --> 00:12:02.720
+um certain ideas or something that you
+
+00:12:02.720 --> 00:12:04.720
+have the pages prepared there
+
+00:12:04.720 --> 00:12:07.839
+it's easier that way okay
+
+00:12:07.839 --> 00:12:11.279
+org noter which is something I
+
+00:12:11.279 --> 00:12:13.040
+use a lot especially with journal
+
+00:12:13.040 --> 00:12:14.880
+articles that have pdfs and stuff like
+
+00:12:14.880 --> 00:12:15.600
+that
+
+00:12:15.600 --> 00:12:19.120
+they're really helpful if you are gonna
+
+00:12:19.120 --> 00:12:22.720
+if you've just started using um Emacs
+
+00:12:22.720 --> 00:12:23.760
+and orgrim
+
+00:12:23.760 --> 00:12:26.959
+and you have all these pdfs that have
+
+00:12:26.959 --> 00:12:29.519
+all the annotations and highlighting and
+
+00:12:29.519 --> 00:12:30.079
+the
+
+00:12:30.079 --> 00:12:32.639
+all that stuff with org noter you can
+
+00:12:32.639 --> 00:12:33.200
+just
+
+00:12:33.200 --> 00:12:36.720
+use the org note or create skeleton
+
+00:12:36.720 --> 00:12:39.519
+uh command and it will populate all your
+
+00:12:39.519 --> 00:12:41.200
+notes that have already been
+
+00:12:41.200 --> 00:12:43.760
+um entered within the pdf file if you're
+
+00:12:43.760 --> 00:12:44.800
+using an outside
+
+00:12:44.800 --> 00:12:48.160
+software and creates them like as a neat
+
+00:12:48.160 --> 00:12:52.560
+org file I I highly recommend
+
+00:12:52.560 --> 00:12:55.920
+finally org transclusion um
+
+00:12:55.920 --> 00:12:57.920
+I think this is still in its beta phase
+
+00:12:57.920 --> 00:13:01.040
+but I've been enjoying it so far
+
+00:13:01.040 --> 00:13:02.720
+um I'm guessing people know what
+
+00:13:02.720 --> 00:13:04.800
+translation mean which is sort of like
+
+00:13:04.800 --> 00:13:06.480
+copy pasting text from
+
+00:13:06.480 --> 00:13:09.600
+one org file to another this is helpful
+
+00:13:09.600 --> 00:13:11.839
+I I think I I peeked at a question that
+
+00:13:11.839 --> 00:13:12.959
+was talking about like
+
+00:13:12.959 --> 00:13:16.320
+you know linking um to other org files
+
+00:13:16.320 --> 00:13:18.320
+I think org transclusion could really
+
+00:13:18.320 --> 00:13:20.320
+work okay it's
+
+00:13:20.320 --> 00:13:24.399
+equivalent to the include
+
+00:13:24.399 --> 00:13:27.760
+function within org mode um but I think
+
+00:13:27.760 --> 00:13:29.519
+so like if you have other files
+
+00:13:29.519 --> 00:13:32.560
+that you know which region that you
+
+00:13:32.560 --> 00:13:34.800
+need in another file you could use the
+
+00:13:34.800 --> 00:13:36.079
+include but with
+
+00:13:36.079 --> 00:13:38.160
+org transclusion it's great I mean you
+
+00:13:38.160 --> 00:13:39.440
+just have
+
+00:13:39.440 --> 00:13:42.720
+um you're just linking one part to the
+
+00:13:42.720 --> 00:13:43.360
+other
+
+00:13:43.360 --> 00:13:45.760
+sort of like not refiling but you know
+
+00:13:45.760 --> 00:13:47.760
+hyperlinking
+
+00:13:47.760 --> 00:13:49.680
+so this is an example of what org
+
+00:13:49.680 --> 00:13:51.120
+transclusion looks like
+
+00:13:51.120 --> 00:13:53.680
+um so the highlighted problem statement
+
+00:13:53.680 --> 00:13:54.720
+is from another
+
+00:13:54.720 --> 00:13:57.760
+org file and then what I would do is
+
+00:13:57.760 --> 00:13:58.240
+just like
+
+00:13:58.240 --> 00:13:59.760
+link it to there and there was like a
+
+00:13:59.760 --> 00:14:01.440
+transclusion command
+
+00:14:01.440 --> 00:14:05.440
+I wish I made another screenshot of it
+
+00:14:05.440 --> 00:14:08.399
+and so when you invoke org transclusion
+
+00:14:08.399 --> 00:14:09.120
+mode
+
+00:14:09.120 --> 00:14:12.079
+it turns um it prints it out like that
+
+00:14:12.079 --> 00:14:12.480
+so
+
+00:14:12.480 --> 00:14:15.120
+it's in view mode and then when you want
+
+00:14:15.120 --> 00:14:16.560
+to edit it will take you back to that
+
+00:14:16.560 --> 00:14:18.480
+buffer and you can edit the text
+
+00:14:18.480 --> 00:14:21.839
+however you want all right so thank you
+
+00:14:21.839 --> 00:14:22.720
+so much
+
+00:14:22.720 --> 00:14:26.000
+um I wanted to leave room for questions
+
+00:14:26.000 --> 00:14:29.120
+but special thanks to all the folks that
+
+00:14:29.120 --> 00:14:32.560
+work on orgrom or ground bibtex orgrim
+
+00:14:32.560 --> 00:14:33.440
+server or
+
+00:14:33.440 --> 00:14:36.320
+transclusion and of course alpha papo on
+
+00:14:36.320 --> 00:14:38.240
+or super agenda and org sidebar
+
+00:14:38.240 --> 00:14:43.440
+that's how I got into Emacs thank you
+
+00:14:43.440 --> 00:14:45.600
+all right and uh well thank you so yeah
+
+00:14:45.600 --> 00:14:47.120
+this time I'll be the one asking the
+
+00:14:47.120 --> 00:14:49.120
+question and not I'm in so
+
+00:14:49.120 --> 00:14:51.360
+I'm feeling filling big shoes right now
+
+00:14:51.360 --> 00:14:53.120
+so you'll have to bear with me folks
+
+00:14:53.120 --> 00:14:54.880
+so thank you so much noora for your
+
+00:14:54.880 --> 00:14:56.240
+presentation that is incredibly
+
+00:14:56.240 --> 00:14:57.279
+interesting
+
+00:14:57.279 --> 00:14:58.959
+so would you mind if I fed you questions
+
+00:14:58.959 --> 00:15:00.800
+from the charts yeah
+
+00:15:00.800 --> 00:15:04.000
+go ahead okay so the first one I I've
+
+00:15:04.000 --> 00:15:06.160
+picked on my end was did you try using
+
+00:15:06.160 --> 00:15:07.920
+ebib instead of zotero
+
+00:15:07.920 --> 00:15:10.560
+and if so is it better than zotero in
+
+00:15:10.560 --> 00:15:12.079
+some ways
+
+00:15:12.079 --> 00:15:14.880
+I no I have not used eb I've only used
+
+00:15:14.880 --> 00:15:15.680
+mendeley
+
+00:15:15.680 --> 00:15:18.560
+and then they got bought by el savior
+
+00:15:18.560 --> 00:15:20.320
+and so like I was like okay I'm done
+
+00:15:20.320 --> 00:15:23.040
+I'm going to zotero um there are a lot
+
+00:15:23.040 --> 00:15:25.120
+of plugins with zotero that you can play
+
+00:15:25.120 --> 00:15:26.240
+around with
+
+00:15:26.240 --> 00:15:28.320
+so I can't speak for ebit but definitely
+
+00:15:28.320 --> 00:15:30.480
+zotero it's been a good experience so
+
+00:15:30.480 --> 00:15:32.079
+far
+
+00:15:32.079 --> 00:15:34.880
+yes same I also I also do research on
+
+00:15:34.880 --> 00:15:35.360
+the site
+
+00:15:35.360 --> 00:15:38.079
+as I told you english major and yeah I
+
+00:15:38.079 --> 00:15:39.360
+also do zotero
+
+00:15:39.360 --> 00:15:41.839
+some people have been using uh a
+
+00:15:41.839 --> 00:15:43.759
+connector between zotero and Emacs which
+
+00:15:43.759 --> 00:15:44.160
+has
+
+00:15:44.160 --> 00:15:46.000
+they've had great success with them but
+
+00:15:46.000 --> 00:15:47.360
+personally I haven't touched
+
+00:15:47.360 --> 00:15:50.480
+touched it already so yeah
+
+00:15:50.480 --> 00:15:52.240
+oh go ahead sorry all right so far I
+
+00:15:52.240 --> 00:15:53.920
+don't have any problems with zotero but
+
+00:15:53.920 --> 00:15:54.880
+maybe if I
+
+00:15:54.880 --> 00:15:56.320
+run into something I might check out
+
+00:15:56.320 --> 00:15:58.320
+ebay in the future
+
+00:15:58.320 --> 00:16:00.240
+yeah definitely I think zotero is a very
+
+00:16:00.240 --> 00:16:01.680
+solid project and you know the fact that
+
+00:16:01.680 --> 00:16:02.560
+it's being used
+
+00:16:02.560 --> 00:16:04.959
+by people outside of Emacs also ensures
+
+00:16:04.959 --> 00:16:06.560
+that there's quite a lot of packing
+
+00:16:06.560 --> 00:16:07.680
+behind the software
+
+00:16:07.680 --> 00:16:09.759
+which is reassuring when your livelihood
+
+00:16:09.759 --> 00:16:11.759
+depends on your research
+
+00:16:11.759 --> 00:16:13.519
+right and then I think one more thing
+
+00:16:13.519 --> 00:16:15.600
+with zotero is that you can create
+
+00:16:15.600 --> 00:16:17.519
+groups so if you're in a collaborative
+
+00:16:17.519 --> 00:16:18.079
+project
+
+00:16:18.079 --> 00:16:20.160
+you can create a reference you know a
+
+00:16:20.160 --> 00:16:22.320
+library just for your group and I think
+
+00:16:22.320 --> 00:16:23.759
+that could help because like I
+
+00:16:23.759 --> 00:16:25.279
+I'm going to be in a project next
+
+00:16:25.279 --> 00:16:27.600
+semester that requires that
+
+00:16:27.600 --> 00:16:29.839
+yeah definitely I believe the ability to
+
+00:16:29.839 --> 00:16:31.600
+have folders inside zotero
+
+00:16:31.600 --> 00:16:33.839
+makes it incredibly useful to manage
+
+00:16:33.839 --> 00:16:35.360
+your different projects concurrent
+
+00:16:35.360 --> 00:16:37.440
+projects
+
+00:16:37.440 --> 00:16:39.279
+so moving on to the questions do you
+
+00:16:39.279 --> 00:16:41.279
+have any suggestion on what subjects or
+
+00:16:41.279 --> 00:16:43.440
+things should be tags or separate organ
+
+00:16:43.440 --> 00:16:46.560
+files for cross-linking
+
+00:16:46.560 --> 00:16:50.320
+right um so so far now like I'm having
+
+00:16:50.320 --> 00:16:52.720
+trouble with like should I be combining
+
+00:16:52.720 --> 00:16:55.360
+certain concepts together as one like
+
+00:16:55.360 --> 00:16:55.839
+this is
+
+00:16:55.839 --> 00:16:59.360
+where the the thought process you know
+
+00:16:59.360 --> 00:17:00.959
+starts coming to fruit is that when you
+
+00:17:00.959 --> 00:17:02.959
+start you know combining
+
+00:17:02.959 --> 00:17:04.880
+ideas together so you won't need a
+
+00:17:04.880 --> 00:17:06.480
+specific tag
+
+00:17:06.480 --> 00:17:09.199
+and another one that are like similar in
+
+00:17:09.199 --> 00:17:11.280
+ideas
+
+00:17:11.280 --> 00:17:12.720
+I'm not sure if that answers the
+
+00:17:12.720 --> 00:17:14.799
+question but like so far I've been using
+
+00:17:14.799 --> 00:17:15.919
+the orgrum
+
+00:17:15.919 --> 00:17:17.919
+you know the default way which is like
+
+00:17:17.919 --> 00:17:19.039
+many small
+
+00:17:19.039 --> 00:17:22.160
+um files and then just
+
+00:17:22.160 --> 00:17:24.400
+linking them to my like either if I have
+
+00:17:24.400 --> 00:17:26.319
+a report to write or if I have a like
+
+00:17:26.319 --> 00:17:26.959
+you know
+
+00:17:26.959 --> 00:17:32.240
+essay to write
+
+00:17:32.240 --> 00:17:35.360
+I think you're muted
+
+00:17:35.360 --> 00:17:37.760
+q and I just I did two stupid things the
+
+00:17:37.760 --> 00:17:38.400
+first one
+
+00:17:38.400 --> 00:17:40.640
+was filling up my water the second one
+
+00:17:40.640 --> 00:17:42.320
+was peeking without actually turning on
+
+00:17:42.320 --> 00:17:43.760
+my microphone
+
+00:17:43.760 --> 00:17:45.760
+so let's just hope that nothing is going
+
+00:17:45.760 --> 00:17:47.760
+to fry in the near vicinity of me right
+
+00:17:47.760 --> 00:17:48.320
+now
+
+00:17:48.320 --> 00:17:49.840
+but uh yeah I believe you've answered
+
+00:17:49.840 --> 00:17:51.440
+the question so don't worry about it I'm
+
+00:17:51.440 --> 00:17:53.200
+slightly wet right now which is not a
+
+00:17:53.200 --> 00:17:55.280
+very agreeable feeling but we'll have to
+
+00:17:55.280 --> 00:17:57.280
+carry on I suppose
+
+00:17:57.280 --> 00:17:59.360
+another question is there a place where
+
+00:17:59.360 --> 00:18:01.600
+people are collaborating on research
+
+00:18:01.600 --> 00:18:04.320
+about Emacs so do you want to try to
+
+00:18:04.320 --> 00:18:06.160
+take this one
+
+00:18:06.160 --> 00:18:08.559
+um I don't know but I'm definitely
+
+00:18:08.559 --> 00:18:10.559
+interested in the user experience of
+
+00:18:10.559 --> 00:18:12.480
+Emacs so
+
+00:18:12.480 --> 00:18:14.720
+if anyone wants to work on that I'm
+
+00:18:14.720 --> 00:18:16.400
+happy
+
+00:18:16.400 --> 00:18:18.320
+well you do have a a pretty good
+
+00:18:18.320 --> 00:18:19.760
+candidate in front of you if I
+
+00:18:19.760 --> 00:18:22.080
+should say so myself I'm incredibly
+
+00:18:22.080 --> 00:18:22.960
+interested about
+
+00:18:22.960 --> 00:18:25.039
+um the ability to do research in Emacs
+
+00:18:25.039 --> 00:18:26.960
+and about the ability to
+
+00:18:26.960 --> 00:18:30.480
+um preach the floss way
+
+00:18:30.480 --> 00:18:32.480
+to academia and to the academe
+
+00:18:32.480 --> 00:18:34.080
+especially because I believe there's
+
+00:18:34.080 --> 00:18:35.280
+really something
+
+00:18:35.280 --> 00:18:38.240
+great to be done sorry I'm just looking
+
+00:18:38.240 --> 00:18:39.919
+at the puddle of water on the side which
+
+00:18:39.919 --> 00:18:41.840
+is slightly oozing my way
+
+00:18:41.840 --> 00:18:45.039
+which is not a very good feeling really
+
+00:18:45.039 --> 00:18:46.880
+but yeah I believe I believe some work
+
+00:18:46.880 --> 00:18:48.320
+could be done and if people are
+
+00:18:48.320 --> 00:18:50.000
+interested in the chat right now
+
+00:18:50.000 --> 00:18:52.320
+I mean do get in touch with us both
+
+00:18:52.320 --> 00:18:53.440
+neuron and I
+
+00:18:53.440 --> 00:18:56.480
+are on our slack channel yes I know
+
+00:18:56.480 --> 00:18:57.280
+slack
+
+00:18:57.280 --> 00:19:00.080
+the corporate hive mind that it's like
+
+00:19:00.080 --> 00:19:01.919
+but we've decided with orgrim to use
+
+00:19:01.919 --> 00:19:02.720
+slack
+
+00:19:02.720 --> 00:19:05.520
+but you can find us very easily and uh
+
+00:19:05.520 --> 00:19:06.880
+if you want to talk about these topics
+
+00:19:06.880 --> 00:19:07.360
+yes
+
+00:19:07.360 --> 00:19:08.720
+by all means do and we'll be very
+
+00:19:08.720 --> 00:19:10.720
+interested to answer your questions
+
+00:19:10.720 --> 00:19:12.640
+so I have a question here says like how
+
+00:19:12.640 --> 00:19:15.520
+does the view for time blocking works
+
+00:19:15.520 --> 00:19:18.640
+um I use org super agenda so
+
+00:19:18.640 --> 00:19:22.000
+um what happens is that my active
+
+00:19:22.000 --> 00:19:23.200
+timestamps are
+
+00:19:23.200 --> 00:19:26.960
+only in my gmail or file
+
+00:19:26.960 --> 00:19:29.200
+so if you use org gcal you have to
+
+00:19:29.200 --> 00:19:30.080
+specify
+
+00:19:30.080 --> 00:19:32.559
+a certain org file and when it you know
+
+00:19:32.559 --> 00:19:34.320
+imports them it imports them as like
+
+00:19:34.320 --> 00:19:35.679
+active
+
+00:19:35.679 --> 00:19:38.400
+timestamps and I make sure whenever I
+
+00:19:38.400 --> 00:19:40.480
+create a to-do or even a research task
+
+00:19:40.480 --> 00:19:42.480
+that it doesn't have a time stamp on it
+
+00:19:42.480 --> 00:19:45.039
+because what I want to do is go back
+
+00:19:45.039 --> 00:19:48.480
+and then move around um these tags
+
+00:19:48.480 --> 00:19:50.160
+according to my you know either weekly
+
+00:19:50.160 --> 00:19:51.919
+schedule or monthly or however long you
+
+00:19:51.919 --> 00:19:52.960
+want to do it
+
+00:19:52.960 --> 00:19:56.480
+um so yeah only active timestamps or
+
+00:19:56.480 --> 00:19:59.679
+deadlines um appear in your time grid
+
+00:19:59.679 --> 00:20:03.280
+so that could work um that's very good
+
+00:20:03.280 --> 00:20:05.440
+just just to uh interject for a second
+
+00:20:05.440 --> 00:20:06.320
+about this
+
+00:20:06.320 --> 00:20:07.840
+you know with orgrim right now we're
+
+00:20:07.840 --> 00:20:10.720
+mostly uh focused on optimization
+
+00:20:10.720 --> 00:20:13.039
+but we're hoping to move on to ux very
+
+00:20:13.039 --> 00:20:14.720
+soon so all those matters about
+
+00:20:14.720 --> 00:20:16.720
+you know having to do's in your files it
+
+00:20:16.720 --> 00:20:18.159
+is something that we've been thinking
+
+00:20:18.159 --> 00:20:20.000
+about with jethro kwan who is my main
+
+00:20:20.000 --> 00:20:20.880
+commentator
+
+00:20:20.880 --> 00:20:23.280
+or grow and we'll be working on this in
+
+00:20:23.280 --> 00:20:24.480
+the coming months so don't worry too
+
+00:20:24.480 --> 00:20:26.080
+much about it and stay tuned
+
+00:20:26.080 --> 00:20:29.760
+yeah um so I've got the ebib
+
+00:20:29.760 --> 00:20:33.200
+and what else um what subjects I think
+
+00:20:33.200 --> 00:20:34.080
+okay
+
+00:20:34.080 --> 00:20:35.919
+what is this question have you seen the
+
+00:20:35.919 --> 00:20:37.120
+project papi's
+
+00:20:37.120 --> 00:20:40.400
+I'm not sure what oh it's a zotero
+
+00:20:40.400 --> 00:20:41.280
+alternative okay
+
+00:20:41.280 --> 00:20:43.840
+I'll look into it thank you I don't know
+
+00:20:43.840 --> 00:20:45.919
+I don't know about it either so
+
+00:20:45.919 --> 00:20:49.600
+please look into it and let me know yeah
+
+00:20:49.600 --> 00:20:53.200
+um have we covered all the questions
+
+00:20:53.200 --> 00:20:55.679
+I believe we have and we have about
+
+00:20:55.679 --> 00:20:56.880
+two-minute leeway
+
+00:20:56.880 --> 00:20:58.880
+for me to move into the next talk so
+
+00:20:58.880 --> 00:21:00.240
+we're right on time
+
+00:21:00.240 --> 00:21:01.760
+all right thank you so much really
+
+00:21:01.760 --> 00:21:04.159
+appreciate it and good luck everyone
+
+00:21:04.159 --> 00:21:05.440
+well thank you and thank you so much for
+
+00:21:05.440 --> 00:21:07.600
+coming and uh doing allowing me not to
+
+00:21:07.600 --> 00:21:08.400
+be the only one
+
+00:21:08.400 --> 00:21:11.440
+talking about all room today sounds good
+
+00:21:11.440 --> 00:21:14.559
+all right thank you both very much
+
+00:21:14.559 --> 00:21:16.799
+yes
diff --git a/2020/subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier-autogen.vtt b/2020/subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier-autogen.vtt
new file mode 100644
index 00000000..847dfac4
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier-autogen.vtt
@@ -0,0 +1,1804 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:02.399
+at the end we are right on time so I'm
+
+00:00:02.399 --> 00:00:03.760
+sorry if you have a lot of questions
+
+00:00:03.760 --> 00:00:04.319
+before
+
+00:00:04.319 --> 00:00:06.960
+you had some so many questions and I
+
+00:00:06.960 --> 00:00:08.559
+couldn't answer all of them and I'm
+
+00:00:08.559 --> 00:00:10.080
+really happy about it but I'm also
+
+00:00:10.080 --> 00:00:11.599
+really sad that I don't have enough time
+
+00:00:11.599 --> 00:00:12.719
+to do so
+
+00:00:12.719 --> 00:00:15.040
+so I'm gonna try to do a better job this
+
+00:00:15.040 --> 00:00:17.119
+time of leaving you a little more time
+
+00:00:17.119 --> 00:00:20.240
+for the questions so just before
+
+00:00:20.240 --> 00:00:22.960
+a little addendum because I did screw up
+
+00:00:22.960 --> 00:00:24.400
+in the previous presentation
+
+00:00:24.400 --> 00:00:27.439
+you remember I tried to rename the file
+
+00:00:27.439 --> 00:00:28.800
+and it didn't work
+
+00:00:28.800 --> 00:00:31.599
+well it turns out uh I had two file name
+
+00:00:31.599 --> 00:00:32.559
+baz so
+
+00:00:32.559 --> 00:00:34.480
+my software works great thank you very
+
+00:00:34.480 --> 00:00:36.000
+much uh
+
+00:00:36.000 --> 00:00:38.800
+all right so now what I'm gonna do
+
+00:00:38.800 --> 00:00:40.239
+during this presentation
+
+00:00:40.239 --> 00:00:43.040
+is that I'm going to oops I didn't stop
+
+00:00:43.040 --> 00:00:44.399
+my timer just give me
+
+00:00:44.399 --> 00:00:47.520
+a little second and let's subtract
+
+00:00:47.520 --> 00:00:50.719
+one minute okay good so
+
+00:00:50.719 --> 00:00:52.239
+what I'm going to do right now it's a
+
+00:00:52.239 --> 00:00:54.079
+little different from the previous
+
+00:00:54.079 --> 00:00:56.879
+talk I've gave you and different even
+
+00:00:56.879 --> 00:00:58.239
+from what nura gave you
+
+00:00:58.239 --> 00:01:00.480
+there's like uh scaling the mountain as
+
+00:01:00.480 --> 00:01:02.399
+far as difficulty is concerned and on
+
+00:01:02.399 --> 00:01:03.359
+this one
+
+00:01:03.359 --> 00:01:04.879
+I will be telling you about the
+
+00:01:04.879 --> 00:01:06.799
+technical aspects of orgrim
+
+00:01:06.799 --> 00:01:09.360
+because you know I've been telling you
+
+00:01:09.360 --> 00:01:11.119
+about the general philosophy
+
+00:01:11.119 --> 00:01:13.119
+of the notes and the general philosophy
+
+00:01:13.119 --> 00:01:14.560
+of organization
+
+00:01:14.560 --> 00:01:16.159
+but right now I really want to get into
+
+00:01:16.159 --> 00:01:18.479
+the nitty gritty about or grow
+
+00:01:18.479 --> 00:01:22.640
+so if we go in the git repository
+
+00:01:22.640 --> 00:01:25.759
+this at the very core is all grown and
+
+00:01:25.759 --> 00:01:27.920
+for some of you who have no experience
+
+00:01:27.920 --> 00:01:28.960
+whatsoever
+
+00:01:28.960 --> 00:01:31.280
+uh developing stuff or programming or
+
+00:01:31.280 --> 00:01:32.880
+anything along those lines
+
+00:01:32.880 --> 00:01:36.000
+this is how all the development around
+
+00:01:36.000 --> 00:01:36.720
+the world
+
+00:01:36.720 --> 00:01:40.000
+is working you have a repository a
+
+00:01:40.000 --> 00:01:42.159
+git repository where you have all the
+
+00:01:42.159 --> 00:01:44.399
+files all the libraries you're using
+
+00:01:44.399 --> 00:01:46.399
+all the programs all the commands
+
+00:01:46.399 --> 00:01:48.720
+everything is inside your files
+
+00:01:48.720 --> 00:01:52.240
+and in a way this is the organ project
+
+00:01:52.240 --> 00:01:53.759
+you can see that we have many files we
+
+00:01:53.759 --> 00:01:55.600
+have organ buffer capture compat
+
+00:01:55.600 --> 00:01:57.040
+completion dailies
+
+00:01:57.040 --> 00:02:00.399
+etc etc so
+
+00:02:00.399 --> 00:02:02.000
+before we dive a little deeper I just
+
+00:02:02.000 --> 00:02:04.079
+want to give you a lay of the land so to
+
+00:02:04.079 --> 00:02:04.640
+speak to
+
+00:02:04.640 --> 00:02:08.160
+to know where we're heading so
+
+00:02:08.160 --> 00:02:11.680
+orgro is built on top of old mode
+
+00:02:11.680 --> 00:02:15.599
+and org mode gives us plenty of tools
+
+00:02:15.599 --> 00:02:17.760
+to play around with the files I'm moving
+
+00:02:17.760 --> 00:02:18.800
+the glass I'm
+
+00:02:18.800 --> 00:02:20.080
+I'm starting to move my hands a little
+
+00:02:20.080 --> 00:02:21.360
+bit you know when I get excited about
+
+00:02:21.360 --> 00:02:22.959
+something I move my hand
+
+00:02:22.959 --> 00:02:26.640
+and then that stuff happens so
+
+00:02:26.640 --> 00:02:29.360
+in all chrome we have org mode and
+
+00:02:29.360 --> 00:02:31.360
+augment gives us plenty of tools which
+
+00:02:31.360 --> 00:02:33.360
+are incredibly useful
+
+00:02:33.360 --> 00:02:36.560
+for writing stuff so you know we already
+
+00:02:36.560 --> 00:02:37.440
+have the links
+
+00:02:37.440 --> 00:02:39.440
+we already have the hierarchy which is
+
+00:02:39.440 --> 00:02:40.560
+given by having
+
+00:02:40.560 --> 00:02:43.360
+trees within trees within trees we have
+
+00:02:43.360 --> 00:02:43.760
+uh
+
+00:02:43.760 --> 00:02:45.760
+quote blocks we have babel blocks we
+
+00:02:45.760 --> 00:02:48.000
+have so much stuff we have an arsenal of
+
+00:02:48.000 --> 00:02:49.680
+tools that have been developed
+
+00:02:49.680 --> 00:02:53.519
+for the last 15 years and
+
+00:02:53.519 --> 00:02:56.640
+when you think about it all chrome just
+
+00:02:56.640 --> 00:02:59.760
+wants to create backlinks but it sounds
+
+00:02:59.760 --> 00:03:01.360
+something very simple but the problem is
+
+00:03:01.360 --> 00:03:02.239
+that we need
+
+00:03:02.239 --> 00:03:05.519
+to play nicely with all of those
+
+00:03:05.519 --> 00:03:06.400
+intricate
+
+00:03:06.400 --> 00:03:09.360
+pieces and the fact is it takes quite a
+
+00:03:09.360 --> 00:03:10.879
+lot of expertise to be able to do so
+
+00:03:10.879 --> 00:03:11.440
+because
+
+00:03:11.440 --> 00:03:14.400
+if right now we are in the brain of all
+
+00:03:14.400 --> 00:03:15.200
+grow
+
+00:03:15.200 --> 00:03:18.959
+but if I show you the brain of org mode
+
+00:03:18.959 --> 00:03:21.599
+so this is the brain of org mode and it
+
+00:03:21.599 --> 00:03:23.280
+looks very simple like this because I
+
+00:03:23.280 --> 00:03:25.519
+haven't entered the less folder
+
+00:03:25.519 --> 00:03:28.000
+but I'm just going to enter it I'm going
+
+00:03:28.000 --> 00:03:29.120
+to
+
+00:03:29.120 --> 00:03:32.000
+zoom out a little bit don't worry if you
+
+00:03:32.000 --> 00:03:32.959
+don't see everything
+
+00:03:32.959 --> 00:03:35.519
+but I just want you to get a fear the
+
+00:03:35.519 --> 00:03:37.519
+sheer feel of magnitude
+
+00:03:37.519 --> 00:03:41.280
+that is um org mode so right now we are
+
+00:03:41.280 --> 00:03:42.640
+in a very small size what I'm gonna do
+
+00:03:42.640 --> 00:03:43.760
+I'm going to skip
+
+00:03:43.760 --> 00:03:47.519
+one page okay one two
+
+00:03:47.519 --> 00:03:51.040
+three we have let's just check how many
+
+00:03:51.040 --> 00:03:52.319
+lines we have
+
+00:03:52.319 --> 00:03:54.640
+okay let me just revert to a fairly
+
+00:03:54.640 --> 00:03:56.480
+readable side
+
+00:03:56.480 --> 00:03:58.560
+at the bottom you can see that we have
+
+00:03:58.560 --> 00:03:59.599
+oh it's not showing because it's a
+
+00:03:59.599 --> 00:04:00.959
+little small okay I'm just going to
+
+00:04:00.959 --> 00:04:03.840
+resize the window a little bit
+
+00:04:03.840 --> 00:04:06.959
+it's not showing up give me a second I
+
+00:04:06.959 --> 00:04:08.720
+can't see how many lines I have okay so
+
+00:04:08.720 --> 00:04:10.159
+let's do it to get away
+
+00:04:10.159 --> 00:04:11.840
+I'm going to go back at the beginning of
+
+00:04:11.840 --> 00:04:14.000
+the buffer and we're going to count
+
+00:04:14.000 --> 00:04:16.160
+how many lines we have so the bottom in
+
+00:04:16.160 --> 00:04:17.840
+a midi buffer and the mini buffer is
+
+00:04:17.840 --> 00:04:18.880
+this area
+
+00:04:18.880 --> 00:04:22.320
+we have 377 lines
+
+00:04:22.320 --> 00:04:25.919
+which means 377
+
+00:04:25.919 --> 00:04:29.759
+libraries within org mode and mind you
+
+00:04:29.759 --> 00:04:31.520
+that's not counting all the modules that
+
+00:04:31.520 --> 00:04:32.960
+we have on the side which
+
+00:04:32.960 --> 00:04:36.240
+come on top of volt mode now when you
+
+00:04:36.240 --> 00:04:37.360
+try to think
+
+00:04:37.360 --> 00:04:40.639
+about something so elemental
+
+00:04:40.639 --> 00:04:44.400
+as links you have to think about how to
+
+00:04:44.400 --> 00:04:45.520
+play well
+
+00:04:45.520 --> 00:04:48.560
+with every single one of these modules
+
+00:04:48.560 --> 00:04:50.000
+now obviously not
+
+00:04:50.000 --> 00:04:53.759
+the 370 370. sometimes you know
+
+00:04:53.759 --> 00:04:56.080
+one module it's not going to do anything
+
+00:04:56.080 --> 00:04:57.680
+like I'm not sure op car could be doing
+
+00:04:57.680 --> 00:04:58.639
+anything with it
+
+00:04:58.639 --> 00:05:00.080
+but it's something that we have to keep
+
+00:05:00.080 --> 00:05:03.039
+in mind and so
+
+00:05:03.039 --> 00:05:04.720
+really early on when we started
+
+00:05:04.720 --> 00:05:07.520
+developing all grown with jethro kwan my
+
+00:05:07.520 --> 00:05:10.080
+co-maintainer you know we had this idea
+
+00:05:10.080 --> 00:05:10.639
+that
+
+00:05:10.639 --> 00:05:13.520
+we wanted to develop something that was
+
+00:05:13.520 --> 00:05:14.639
+optimized
+
+00:05:14.639 --> 00:05:18.240
+something that would you know scale very
+
+00:05:18.240 --> 00:05:20.160
+nicely whether or not you had
+
+00:05:20.160 --> 00:05:21.600
+you know something that would work as
+
+00:05:21.600 --> 00:05:24.560
+fast if you had 10 files
+
+00:05:24.560 --> 00:05:27.680
+or if you had 100 files or if you had
+
+00:05:27.680 --> 00:05:30.880
+10 000 files and maybe more so the
+
+00:05:30.880 --> 00:05:32.080
+problem when you do this
+
+00:05:32.080 --> 00:05:34.400
+and I'm doing some callbacks to the talk
+
+00:05:34.400 --> 00:05:36.320
+I gave you earlier today about
+
+00:05:36.320 --> 00:05:41.280
+few small few big files this is many
+
+00:05:41.280 --> 00:05:44.800
+I got confused few big files versus many
+
+00:05:44.800 --> 00:05:45.919
+small files
+
+00:05:45.919 --> 00:05:49.280
+the problem with this is that we need to
+
+00:05:49.280 --> 00:05:51.600
+think about optimization from the get go
+
+00:05:51.600 --> 00:05:53.680
+and so one of the decision we took when
+
+00:05:53.680 --> 00:05:54.800
+we got started
+
+00:05:54.800 --> 00:05:59.199
+with orgrum is that if I go in my
+
+00:05:59.199 --> 00:06:02.479
+test repository so that's the one in
+
+00:06:02.479 --> 00:06:04.240
+which we were right before
+
+00:06:04.240 --> 00:06:08.000
+we have a file which is called orgrumdb
+
+00:06:08.000 --> 00:06:11.600
+now if I open it it's not it's a
+
+00:06:11.600 --> 00:06:14.160
+little garbage because uh it's a binary
+
+00:06:14.160 --> 00:06:15.120
+but what we have
+
+00:06:15.120 --> 00:06:18.560
+is a database with which we communicate
+
+00:06:18.560 --> 00:06:21.919
+via sorry it's an sql database
+
+00:06:21.919 --> 00:06:25.120
+and what this allows us to do
+
+00:06:25.120 --> 00:06:28.479
+is we store all the information we need
+
+00:06:28.479 --> 00:06:31.919
+inside this sql database which allows us
+
+00:06:31.919 --> 00:06:34.720
+to speed up a lot of the operations that
+
+00:06:34.720 --> 00:06:35.360
+are
+
+00:06:35.360 --> 00:06:37.840
+necessary for the functioning of our
+
+00:06:37.840 --> 00:06:38.479
+ground
+
+00:06:38.479 --> 00:06:40.240
+so for instance if I go back to the
+
+00:06:40.240 --> 00:06:41.759
+index file that I had before
+
+00:06:41.759 --> 00:06:43.440
+let's just go back to who actually this
+
+00:06:43.440 --> 00:06:45.680
+way you'll see a little more on the side
+
+00:06:45.680 --> 00:06:47.919
+so you see that on the side we have
+
+00:06:47.919 --> 00:06:48.720
+whoops
+
+00:06:48.720 --> 00:06:50.319
+two links I'm not going to click on them
+
+00:06:50.319 --> 00:06:51.759
+otherwise I'm going to open them but we
+
+00:06:51.759 --> 00:06:53.199
+have two links
+
+00:06:53.199 --> 00:06:56.319
+now there are many implementations of
+
+00:06:56.319 --> 00:06:58.240
+the zettol casten method inside
+
+00:06:58.240 --> 00:07:00.800
+Emacs and inside and with old mode but
+
+00:07:00.800 --> 00:07:02.400
+what we've decided to do
+
+00:07:02.400 --> 00:07:04.639
+is that every time you have a link so if
+
+00:07:04.639 --> 00:07:05.520
+we go to
+
+00:07:05.520 --> 00:07:08.479
+the index again here at point we have
+
+00:07:08.479 --> 00:07:09.120
+the link
+
+00:07:09.120 --> 00:07:12.400
+foo every time we create a link we
+
+00:07:12.400 --> 00:07:14.160
+update our database
+
+00:07:14.160 --> 00:07:16.800
+to say okay so we have a link in the
+
+00:07:16.800 --> 00:07:17.919
+file
+
+00:07:17.919 --> 00:07:21.080
+index which is leading to the file
+
+00:07:21.080 --> 00:07:24.319
+fu.org and it is situated
+
+00:07:24.319 --> 00:07:27.840
+under the heading a heading and
+
+00:07:27.840 --> 00:07:29.840
+if you check the site buffer you see
+
+00:07:29.840 --> 00:07:31.440
+that all this all these information
+
+00:07:31.440 --> 00:07:33.120
+which I just highlighted to you
+
+00:07:33.120 --> 00:07:42.639
+are present right here
+
+00:07:42.639 --> 00:07:45.599
+oh well sorry I forgot this thank you
+
+00:07:45.599 --> 00:07:46.400
+okay
+
+00:07:46.400 --> 00:07:50.879
+so let's see log okay I'm going to split
+
+00:07:50.879 --> 00:07:53.039
+actually I'm going to split like this
+
+00:07:53.039 --> 00:07:54.960
+I'm going to go back there
+
+00:07:54.960 --> 00:07:56.960
+the problem is that I can't show my
+
+00:07:56.960 --> 00:07:58.720
+keystrokes at the same time as a machine
+
+00:07:58.720 --> 00:08:02.080
+I'm showing the site buffer so I'll
+
+00:08:02.080 --> 00:08:03.599
+keep it right now for your own
+
+00:08:03.599 --> 00:08:05.199
+discretion anyway getting back to the
+
+00:08:05.199 --> 00:08:07.039
+talk
+
+00:08:07.039 --> 00:08:10.160
+so the thing is we have this
+
+00:08:10.160 --> 00:08:12.720
+sql database and the goal is to keep it
+
+00:08:12.720 --> 00:08:13.520
+optimized
+
+00:08:13.520 --> 00:08:16.400
+now why is it better optimized than just
+
+00:08:16.400 --> 00:08:17.039
+using
+
+00:08:17.039 --> 00:08:20.960
+orgrom sorry just using default org mode
+
+00:08:20.960 --> 00:08:23.520
+so in my talk about many big files
+
+00:08:23.520 --> 00:08:24.080
+versus
+
+00:08:24.080 --> 00:08:26.879
+a few I keep getting you know you got
+
+00:08:26.879 --> 00:08:28.080
+what I was saying I'm not going to
+
+00:08:28.080 --> 00:08:29.120
+repeat it
+
+00:08:29.120 --> 00:08:32.240
+by the way it is uh 10 to 10.
+
+00:08:32.240 --> 00:08:35.200
+I'm starting really to be tired now so
+
+00:08:35.200 --> 00:08:36.399
+uh moving on to
+
+00:08:36.399 --> 00:08:39.279
+um what did I want to show you so it was
+
+00:08:39.279 --> 00:08:40.800
+almost yes all the elements
+
+00:08:40.800 --> 00:08:44.959
+so what I'm going to do I'm going to
+
+00:08:44.959 --> 00:08:47.200
+see I believe it's org element pass
+
+00:08:47.200 --> 00:08:48.399
+buffer
+
+00:08:48.399 --> 00:08:51.040
+so I was telling you about all elements
+
+00:08:51.040 --> 00:08:51.920
+before
+
+00:08:51.920 --> 00:08:53.600
+and the main command sorry the main
+
+00:08:53.600 --> 00:08:55.760
+function that is used by org element
+
+00:08:55.760 --> 00:08:58.560
+is pass buffer what it does and you can
+
+00:08:58.560 --> 00:08:59.760
+see the dock string is that it
+
+00:08:59.760 --> 00:09:01.040
+recursively passed
+
+00:09:01.040 --> 00:09:03.279
+the buffer and return structure
+
+00:09:03.279 --> 00:09:04.959
+structure being all the information that
+
+00:09:04.959 --> 00:09:06.320
+we have in this buffer
+
+00:09:06.320 --> 00:09:07.680
+so just to show you a little more we're
+
+00:09:07.680 --> 00:09:09.600
+going to move into a scratch buffer
+
+00:09:09.600 --> 00:09:10.880
+and what we're going to do is that we're
+
+00:09:10.880 --> 00:09:12.800
+going to write this command
+
+00:09:12.800 --> 00:09:16.320
+pass buffer and we're going to check the
+
+00:09:16.320 --> 00:09:17.760
+output of this command
+
+00:09:17.760 --> 00:09:19.600
+oh sorry not this one we're going to go
+
+00:09:19.600 --> 00:09:22.000
+in the index so the index file you have
+
+00:09:22.000 --> 00:09:23.680
+a title you have a heading you have a
+
+00:09:23.680 --> 00:09:25.120
+link etc etc
+
+00:09:25.120 --> 00:09:26.880
+so what I'm going to do I'm going to
+
+00:09:26.880 --> 00:09:28.560
+evaluate this text
+
+00:09:28.560 --> 00:09:30.800
+and now at the bottom in the midi buffer
+
+00:09:30.800 --> 00:09:32.560
+in the mini buffer sorry
+
+00:09:32.560 --> 00:09:36.160
+you see an ast an abstract
+
+00:09:36.160 --> 00:09:37.600
+obviously don't remember what the s
+
+00:09:37.600 --> 00:09:39.839
+stands for semantic
+
+00:09:39.839 --> 00:09:42.720
+huh interesting anyway a representation
+
+00:09:42.720 --> 00:09:43.519
+of the data
+
+00:09:43.519 --> 00:09:45.279
+in a way that is exploitable by a
+
+00:09:45.279 --> 00:09:47.600
+machine now what I'm going to do
+
+00:09:47.600 --> 00:09:49.839
+syntax thank you so what I'm going to do
+
+00:09:49.839 --> 00:09:52.000
+I'm going to paste it inside the buffer
+
+00:09:52.000 --> 00:09:54.480
+in a way that is humanly readable and
+
+00:09:54.480 --> 00:09:56.399
+you can see that we have plenty of
+
+00:09:56.399 --> 00:09:58.800
+information we have a section which
+
+00:09:58.800 --> 00:10:00.560
+starts at the char
+
+00:10:00.560 --> 00:10:05.040
+1 which ends at the character 45
+
+00:10:05.040 --> 00:10:07.040
+we have the content so he makes scratch
+
+00:10:07.040 --> 00:10:08.240
+oh actually no
+
+00:10:08.240 --> 00:10:10.240
+never mind I did something wrong I run
+
+00:10:10.240 --> 00:10:11.279
+it in the wrong buffer
+
+00:10:11.279 --> 00:10:13.040
+so actually what I'm going to do we're
+
+00:10:13.040 --> 00:10:14.399
+going to run this command
+
+00:10:14.399 --> 00:10:17.519
+with the selected window next
+
+00:10:17.519 --> 00:10:21.120
+window okay that's a bit of live
+
+00:10:21.120 --> 00:10:23.760
+elise writing for you right now okay so
+
+00:10:23.760 --> 00:10:24.640
+now if I
+
+00:10:24.640 --> 00:10:26.240
+evaluate this and paste the content of
+
+00:10:26.240 --> 00:10:28.480
+the buffer
+
+00:10:28.480 --> 00:10:31.600
+it is doing its bidding so now what we
+
+00:10:31.600 --> 00:10:32.399
+have
+
+00:10:32.399 --> 00:10:34.959
+we have a section we have the keyword
+
+00:10:34.959 --> 00:10:36.720
+title which you see right here you have
+
+00:10:36.720 --> 00:10:38.160
+the value
+
+00:10:38.160 --> 00:10:39.920
+if we scroll down a little bit we have a
+
+00:10:39.920 --> 00:10:41.360
+heading which is right here we have the
+
+00:10:41.360 --> 00:10:42.480
+contents
+
+00:10:42.480 --> 00:10:44.800
+which should be yes the content is not
+
+00:10:44.800 --> 00:10:46.320
+listed exactly here but you have a
+
+00:10:46.320 --> 00:10:48.079
+paragraph which is this
+
+00:10:48.079 --> 00:10:50.640
+and then you have a link etc etc it is
+
+00:10:50.640 --> 00:10:51.200
+all
+
+00:10:51.200 --> 00:10:53.839
+uh parenthesis if you're not used to
+
+00:10:53.839 --> 00:10:54.640
+e-list
+
+00:10:54.640 --> 00:10:56.320
+like right now I've selected only the
+
+00:10:56.320 --> 00:10:58.640
+content of the parenthesis link
+
+00:10:58.640 --> 00:11:00.399
+I can move like this etcetera etcetera
+
+00:11:00.399 --> 00:11:01.680
+I'm not it's not a needle
+
+00:11:01.680 --> 00:11:03.760
+lessons that I'm doing right now but
+
+00:11:03.760 --> 00:11:05.279
+basically
+
+00:11:05.279 --> 00:11:08.399
+if we were to use the default tooling of
+
+00:11:08.399 --> 00:11:09.120
+orgrom
+
+00:11:09.120 --> 00:11:10.880
+org mode sorry I keep getting too
+
+00:11:10.880 --> 00:11:12.480
+confused sorry for that
+
+00:11:12.480 --> 00:11:14.240
+uh it would be extremely slow to do what
+
+00:11:14.240 --> 00:11:16.399
+we're doing some people
+
+00:11:16.399 --> 00:11:19.760
+are doing so some implementations of the
+
+00:11:19.760 --> 00:11:22.240
+zettelkassen method inside Emacs have
+
+00:11:22.240 --> 00:11:23.040
+opted
+
+00:11:23.040 --> 00:11:26.480
+for this method but the problem is that
+
+00:11:26.480 --> 00:11:27.360
+we think
+
+00:11:27.360 --> 00:11:30.160
+that it scales poorly now some other
+
+00:11:30.160 --> 00:11:30.560
+people
+
+00:11:30.560 --> 00:11:33.920
+have decided to not do with a database
+
+00:11:33.920 --> 00:11:35.600
+and what they do is that they use a tool
+
+00:11:35.600 --> 00:11:37.200
+which is called rip grep
+
+00:11:37.200 --> 00:11:38.800
+you might know grep which is a tool that
+
+00:11:38.800 --> 00:11:41.279
+allows you to search
+
+00:11:41.279 --> 00:11:43.440
+a file the content of a file for a line
+
+00:11:43.440 --> 00:11:46.560
+so for instance if we open v term here
+
+00:11:46.560 --> 00:11:49.680
+uh let's see so I've opened the term I
+
+00:11:49.680 --> 00:11:51.839
+am in this repository what I'm going to
+
+00:11:51.839 --> 00:11:54.399
+do is that I'm going to
+
+00:11:54.399 --> 00:11:58.000
+load the content of the file uh
+
+00:11:58.000 --> 00:12:00.480
+how am I going to do this oh um I need
+
+00:12:00.480 --> 00:12:02.480
+to move to bash
+
+00:12:02.480 --> 00:12:06.160
+let's do crap
+
+00:12:06.160 --> 00:12:08.000
+for the line which links do we did we
+
+00:12:08.000 --> 00:12:09.519
+have grep foo
+
+00:12:09.519 --> 00:12:11.600
+inside the file is it three I can
+
+00:12:11.600 --> 00:12:13.760
+remember okay let's do this
+
+00:12:13.760 --> 00:12:18.079
+am I working no
+
+00:12:18.079 --> 00:12:21.279
+let's go for four why is it eight
+
+00:12:21.279 --> 00:12:22.800
+ah damn it oh you know what I'm just
+
+00:12:22.800 --> 00:12:24.320
+going to copy the name
+
+00:12:24.320 --> 00:12:28.240
+up there we go no
+
+00:12:28.240 --> 00:12:33.680
+ah problem with live presentation always
+
+00:12:33.680 --> 00:12:34.800
+you know what I'm struggling so I'm
+
+00:12:34.800 --> 00:12:36.720
+going to drop this point anyway
+
+00:12:36.720 --> 00:12:38.560
+so grep is a simple tool that allows you
+
+00:12:38.560 --> 00:12:40.000
+to search the content of a file but
+
+00:12:40.000 --> 00:12:42.480
+rig grep is a solution that is written
+
+00:12:42.480 --> 00:12:44.160
+in rust and which is supposed to be
+
+00:12:44.160 --> 00:12:45.920
+well not supposed which is far more
+
+00:12:45.920 --> 00:12:48.880
+capable now
+
+00:12:48.880 --> 00:12:50.639
+I'd like to talk to you about the future
+
+00:12:50.639 --> 00:12:52.320
+of orgrim right now I've told you about
+
+00:12:52.320 --> 00:12:54.720
+the general concept which is about using
+
+00:12:54.720 --> 00:12:58.399
+uh this sql database and about
+
+00:12:58.399 --> 00:13:01.519
+playing nicely with old mode but
+
+00:13:01.519 --> 00:13:03.279
+we think that there's something great
+
+00:13:03.279 --> 00:13:05.200
+that we can do about orgrim
+
+00:13:05.200 --> 00:13:08.320
+now I've been talking with the a lot of
+
+00:13:08.320 --> 00:13:10.320
+people who are behind org mode and you
+
+00:13:10.320 --> 00:13:10.880
+know
+
+00:13:10.880 --> 00:13:14.000
+they've told us do you think that
+
+00:13:14.000 --> 00:13:16.880
+orgrom could have something to bring to
+
+00:13:16.880 --> 00:13:18.320
+old mode let's say
+
+00:13:18.320 --> 00:13:20.160
+backlinks is there something that we
+
+00:13:20.160 --> 00:13:21.600
+could be doing to
+
+00:13:21.600 --> 00:13:25.600
+import backlinks into old mode and
+
+00:13:25.600 --> 00:13:27.200
+we thought about it with jethro and the
+
+00:13:27.200 --> 00:13:29.200
+problem is uh
+
+00:13:29.200 --> 00:13:30.800
+we've always tried to have an
+
+00:13:30.800 --> 00:13:32.720
+experimental ground a very
+
+00:13:32.720 --> 00:13:35.360
+uh can a very isolated portion of your
+
+00:13:35.360 --> 00:13:36.320
+system
+
+00:13:36.320 --> 00:13:37.920
+where we could track backlinks and
+
+00:13:37.920 --> 00:13:40.320
+that's why we use um
+
+00:13:40.320 --> 00:13:42.320
+a slipbox directory so that we only
+
+00:13:42.320 --> 00:13:44.880
+track backlinks in one specific place
+
+00:13:44.880 --> 00:13:47.040
+but now because there seems to be so
+
+00:13:47.040 --> 00:13:48.639
+much interest about the method and we
+
+00:13:48.639 --> 00:13:50.079
+have so much backing
+
+00:13:50.079 --> 00:13:52.480
+on uh you know on github we have like
+
+00:13:52.480 --> 00:13:53.120
+200
+
+00:13:53.120 --> 00:13:56.399
+2 600 stars which is mind-boggling to us
+
+00:13:56.399 --> 00:13:59.760
+because we have so much success but
+
+00:13:59.760 --> 00:14:02.399
+we have plenty of ideas about the future
+
+00:14:02.399 --> 00:14:03.360
+one of the key
+
+00:14:03.360 --> 00:14:06.000
+parts of development being the writing
+
+00:14:06.000 --> 00:14:08.480
+of an external parser for orgrim
+
+00:14:08.480 --> 00:14:09.680
+so I've been telling you about org
+
+00:14:09.680 --> 00:14:11.839
+element org elements runs
+
+00:14:11.839 --> 00:14:15.279
+inside Emacs but what if
+
+00:14:15.279 --> 00:14:19.519
+we wrote a background process
+
+00:14:19.519 --> 00:14:23.600
+that could read a file an augment file
+
+00:14:23.600 --> 00:14:25.760
+extract the same type of data that you
+
+00:14:25.760 --> 00:14:27.440
+see on your screen right now
+
+00:14:27.440 --> 00:14:30.240
+so that we could use to update a
+
+00:14:30.240 --> 00:14:30.959
+database
+
+00:14:30.959 --> 00:14:33.279
+so that we could use to compute the
+
+00:14:33.279 --> 00:14:34.959
+links so that we could use it
+
+00:14:34.959 --> 00:14:37.360
+to show you know orgrim server all the
+
+00:14:37.360 --> 00:14:39.519
+connections between your nodes
+
+00:14:39.519 --> 00:14:41.360
+now there is a path of improvement here
+
+00:14:41.360 --> 00:14:44.320
+that is extremely important to us
+
+00:14:44.320 --> 00:14:47.360
+but you know that's the technical aspect
+
+00:14:47.360 --> 00:14:48.639
+and I'm out of time I'm just going to
+
+00:14:48.639 --> 00:14:50.079
+take one more minute to finish on this
+
+00:14:50.079 --> 00:14:51.360
+point
+
+00:14:51.360 --> 00:14:54.560
+but we believe
+
+00:14:54.560 --> 00:14:57.680
+that orgrim has the potential to be a
+
+00:14:57.680 --> 00:14:58.399
+think tank
+
+00:14:58.399 --> 00:15:00.639
+in a way for org mode and the way we
+
+00:15:00.639 --> 00:15:01.920
+think about
+
+00:15:01.920 --> 00:15:04.079
+note-taking in general I've stressed a
+
+00:15:04.079 --> 00:15:06.079
+great deal in my first presentation
+
+00:15:06.079 --> 00:15:10.240
+sorry the one I did before neura that
+
+00:15:10.240 --> 00:15:12.480
+all chrome is really great as a way to
+
+00:15:12.480 --> 00:15:14.639
+think organically about knowledge
+
+00:15:14.639 --> 00:15:17.600
+and honestly we kind of want to put the
+
+00:15:17.600 --> 00:15:19.279
+theory into practice with orgrim
+
+00:15:19.279 --> 00:15:22.079
+we are holding something which has the
+
+00:15:22.079 --> 00:15:23.440
+potential to be
+
+00:15:23.440 --> 00:15:25.120
+a great factor of innovation for the
+
+00:15:25.120 --> 00:15:27.279
+future whether it be or org mode
+
+00:15:27.279 --> 00:15:29.600
+or even for software in general you know
+
+00:15:29.600 --> 00:15:31.440
+the way to think about
+
+00:15:31.440 --> 00:15:34.880
+build nodes of knowledge in a way
+
+00:15:34.880 --> 00:15:37.440
+and the way to represent all those ids
+
+00:15:37.440 --> 00:15:38.240
+with the graph
+
+00:15:38.240 --> 00:15:40.560
+the way to basically have a note-taking
+
+00:15:40.560 --> 00:15:41.600
+system that
+
+00:15:41.600 --> 00:15:43.360
+corresponds to the research that
+
+00:15:43.360 --> 00:15:45.839
+corresponds to the way you think
+
+00:15:45.839 --> 00:15:49.120
+so yeah I believe we are
+
+00:15:49.120 --> 00:15:51.839
+really excited about this and if you
+
+00:15:51.839 --> 00:15:53.519
+want to keep track of the development of
+
+00:15:53.519 --> 00:15:55.360
+all chrome
+
+00:15:55.360 --> 00:15:57.600
+I on my youtube channel which is already
+
+00:15:57.600 --> 00:15:59.279
+linked a little earlier
+
+00:15:59.279 --> 00:16:02.639
+inside this present inside the pad sorry
+
+00:16:02.639 --> 00:16:04.240
+I do have a youtube channel where I try
+
+00:16:04.240 --> 00:16:06.079
+to present novelties
+
+00:16:06.079 --> 00:16:09.519
+or the new stuff inside um orgrim
+
+00:16:09.519 --> 00:16:11.519
+but I also be recording videos about the
+
+00:16:11.519 --> 00:16:13.360
+technical aspects about the direction
+
+00:16:13.360 --> 00:16:15.519
+that we're taking with orgrim
+
+00:16:15.519 --> 00:16:18.000
+and if you want to talk with us we are
+
+00:16:18.000 --> 00:16:18.560
+always
+
+00:16:18.560 --> 00:16:22.160
+available either on isc channel orgrom
+
+00:16:22.160 --> 00:16:23.680
+I believe there's a dash between org and
+
+00:16:23.680 --> 00:16:25.279
+rome but also
+
+00:16:25.279 --> 00:16:27.279
+on the discourse and I'll be putting all
+
+00:16:27.279 --> 00:16:29.440
+the links inside the conversation
+
+00:16:29.440 --> 00:16:31.199
+and that's me done so thank you for
+
+00:16:31.199 --> 00:16:32.880
+listening and now I'll be taking
+
+00:16:32.880 --> 00:16:34.560
+three minutes of questions so as to be
+
+00:16:34.560 --> 00:16:37.360
+right on time
+
+00:16:37.360 --> 00:16:39.920
+mini thanks for your awesome talk leo
+
+00:16:39.920 --> 00:16:41.120
+thank you
+
+00:16:41.120 --> 00:16:43.040
+so I'm just refreshing the page and I'm
+
+00:16:43.040 --> 00:16:44.959
+going to scroll down to my
+
+00:16:44.959 --> 00:16:49.600
+talk if I can find the right section
+
+00:16:49.600 --> 00:16:53.120
+let me just scroll a little bit
+
+00:16:53.120 --> 00:16:55.600
+uh reproducible Emacs no I think it's
+
+00:16:55.600 --> 00:16:57.120
+slower
+
+00:16:57.120 --> 00:16:59.279
+god we have so many questions so at the
+
+00:16:59.279 --> 00:17:00.639
+same time I'm pissed because I can't
+
+00:17:00.639 --> 00:17:01.120
+find it
+
+00:17:01.120 --> 00:17:02.639
+but I'm really really impressed by the
+
+00:17:02.639 --> 00:17:05.360
+number of questions that we had oh yeah
+
+00:17:05.360 --> 00:17:07.760
+um which is about I think about line 600
+
+00:17:07.760 --> 00:17:08.260
+or so
+
+00:17:08.260 --> 00:17:09.919
+[Music]
+
+00:17:09.919 --> 00:17:13.199
+yes got it splendid
+
+00:17:13.199 --> 00:17:16.400
+so um the questions so why not run a
+
+00:17:16.400 --> 00:17:18.160
+background Emacs for passing instead of
+
+00:17:18.160 --> 00:17:19.919
+implementing a new parser
+
+00:17:19.919 --> 00:17:22.559
+so I believe we've had this question uh
+
+00:17:22.559 --> 00:17:24.480
+I was giving a similar talk
+
+00:17:24.480 --> 00:17:27.600
+earlier this week and this week
+
+00:17:27.600 --> 00:17:31.679
+I'm not french this week sorry and
+
+00:17:31.679 --> 00:17:33.280
+someone asked me this question and the
+
+00:17:33.280 --> 00:17:35.679
+thing is running a background Emacs
+
+00:17:35.679 --> 00:17:38.320
+process you know it sounds great
+
+00:17:38.320 --> 00:17:40.400
+but it's also very limited because all
+
+00:17:40.400 --> 00:17:41.760
+the problems we have
+
+00:17:41.760 --> 00:17:45.520
+about concurrency about threads in Emacs
+
+00:17:45.520 --> 00:17:48.160
+well yes we can forward all our calls to
+
+00:17:48.160 --> 00:17:49.200
+background Emacs
+
+00:17:49.200 --> 00:17:51.760
+just like uh you know when you export a
+
+00:17:51.760 --> 00:17:52.240
+file
+
+00:17:52.240 --> 00:17:56.400
+with uh um sorry
+
+00:17:56.400 --> 00:17:57.840
+I mean could you mute microphone when
+
+00:17:57.840 --> 00:17:58.799
+you're speaking it's a little hard for
+
+00:17:58.799 --> 00:18:01.520
+me to concentrate
+
+00:18:01.520 --> 00:18:03.600
+that's fine don't worry you are now uh
+
+00:18:03.600 --> 00:18:04.640
+so um
+
+00:18:04.640 --> 00:18:06.960
+dammit where was I I'm sorry the
+
+00:18:06.960 --> 00:18:07.679
+question yes
+
+00:18:07.679 --> 00:18:09.280
+so basically forwarding all the
+
+00:18:09.280 --> 00:18:11.840
+questions uh sorry all our queries to uh
+
+00:18:11.840 --> 00:18:13.039
+background Emacs
+
+00:18:13.039 --> 00:18:16.000
+that is what uh org export is doing like
+
+00:18:16.000 --> 00:18:17.960
+you have the ability to
+
+00:18:17.960 --> 00:18:20.799
+asynchronously export latex documents
+
+00:18:20.799 --> 00:18:22.080
+odt documents from
+
+00:18:22.080 --> 00:18:24.480
+org mode and it uses a very minimal
+
+00:18:24.480 --> 00:18:26.000
+version of Emacs to do that but the
+
+00:18:26.000 --> 00:18:28.240
+problem is that we think that it's not
+
+00:18:28.240 --> 00:18:30.320
+going to scale as well as a true
+
+00:18:30.320 --> 00:18:33.039
+genuine background process and since we
+
+00:18:33.039 --> 00:18:34.480
+have been talking a lot
+
+00:18:34.480 --> 00:18:36.000
+as far as the old mode development is
+
+00:18:36.000 --> 00:18:38.160
+concerned about
+
+00:18:38.160 --> 00:18:40.640
+writing a proper parser writing a proper
+
+00:18:40.640 --> 00:18:41.760
+documentation
+
+00:18:41.760 --> 00:18:43.440
+for the passing of old mode file and
+
+00:18:43.440 --> 00:18:46.000
+writing a proper document standard
+
+00:18:46.000 --> 00:18:48.400
+that says okay this is how the old mode
+
+00:18:48.400 --> 00:18:50.000
+format works you know to
+
+00:18:50.000 --> 00:18:52.000
+basically have a way to not fall into
+
+00:18:52.000 --> 00:18:55.120
+the traps of markdown which has many
+
+00:18:55.120 --> 00:18:56.559
+many standards
+
+00:18:56.559 --> 00:18:58.480
+we need to think about this and we
+
+00:18:58.480 --> 00:19:00.000
+believe that all grown has
+
+00:19:00.000 --> 00:19:01.360
+the ability to think about these
+
+00:19:01.360 --> 00:19:03.120
+questions and as a
+
+00:19:03.120 --> 00:19:04.640
+as a person I'm also really interested
+
+00:19:04.640 --> 00:19:06.400
+about this so
+
+00:19:06.400 --> 00:19:07.840
+I can take the question I mean so don't
+
+00:19:07.840 --> 00:19:10.160
+worry about feeding them to me so how
+
+00:19:10.160 --> 00:19:11.760
+often does the
+
+00:19:11.760 --> 00:19:13.679
+db index get updated in order to contain
+
+00:19:13.679 --> 00:19:14.799
+changes within the
+
+00:19:14.799 --> 00:19:17.360
+files so we have two ways either we
+
+00:19:17.360 --> 00:19:19.440
+update as soon as you save a file
+
+00:19:19.440 --> 00:19:22.160
+or we have a timer which is an idle
+
+00:19:22.160 --> 00:19:23.600
+timer which waits okay
+
+00:19:23.600 --> 00:19:25.600
+the user has not imputed inputted
+
+00:19:25.600 --> 00:19:26.960
+anything in the last
+
+00:19:26.960 --> 00:19:29.360
+five seconds so it's time to queue a
+
+00:19:29.360 --> 00:19:30.080
+database
+
+00:19:30.080 --> 00:19:33.039
+passing a rebuild of the data not a an
+
+00:19:33.039 --> 00:19:33.919
+incrementation
+
+00:19:33.919 --> 00:19:37.120
+of the database I should say so
+
+00:19:37.120 --> 00:19:38.799
+did you ever think of uh I believe I
+
+00:19:38.799 --> 00:19:40.320
+have one more one more minutes and then
+
+00:19:40.320 --> 00:19:42.240
+I'll hand it to the other folks
+
+00:19:42.240 --> 00:19:43.440
+do you ever think of opening up or
+
+00:19:43.440 --> 00:19:45.440
+designing the sqldb as a general all
+
+00:19:45.440 --> 00:19:47.200
+speed up tool outside of orgrom so that
+
+00:19:47.200 --> 00:19:48.160
+other libraries
+
+00:19:48.160 --> 00:19:49.919
+that do execute complex queries are able
+
+00:19:49.919 --> 00:19:51.679
+to use it well
+
+00:19:51.679 --> 00:19:52.960
+a lot of people have been working on
+
+00:19:52.960 --> 00:19:54.640
+this and I believe alpha papa has been
+
+00:19:54.640 --> 00:19:56.480
+thinking quite a lot about this you know
+
+00:19:56.480 --> 00:19:57.679
+all ql
+
+00:19:57.679 --> 00:20:01.120
+is the ql stands for language
+
+00:20:01.120 --> 00:20:03.679
+and I I can't remember now what's uh
+
+00:20:03.679 --> 00:20:04.720
+what's the backend
+
+00:20:04.720 --> 00:20:08.080
+is for all ql but the idea is relatively
+
+00:20:08.080 --> 00:20:10.080
+relatively the same you know it's about
+
+00:20:10.080 --> 00:20:13.039
+finding ways to optimize the way we
+
+00:20:13.039 --> 00:20:14.880
+store the data about an old mode file
+
+00:20:14.880 --> 00:20:16.640
+and how we retrieve it
+
+00:20:16.640 --> 00:20:20.400
+and sql for us seems to seem to be a
+
+00:20:20.400 --> 00:20:22.159
+good idea now obviously
+
+00:20:22.159 --> 00:20:24.240
+maybe we could do something about old
+
+00:20:24.240 --> 00:20:26.080
+mode but the problem is I think a
+
+00:20:26.080 --> 00:20:27.360
+background process
+
+00:20:27.360 --> 00:20:30.799
+is not necessarily um in
+
+00:20:30.799 --> 00:20:32.960
+the core mentality of old mode but it's
+
+00:20:32.960 --> 00:20:34.000
+definitely a
+
+00:20:34.000 --> 00:20:36.080
+something that we could suggest uh when
+
+00:20:36.080 --> 00:20:37.679
+we are a little more mature because well
+
+00:20:37.679 --> 00:20:40.960
+orgrom was started last february and so
+
+00:20:40.960 --> 00:20:41.679
+it's a fairly
+
+00:20:41.679 --> 00:20:44.480
+young project in a way so uh I see
+
+00:20:44.480 --> 00:20:45.840
+plenty more questions but
+
+00:20:45.840 --> 00:20:48.400
+I'm out of time folks so I'm not sure uh
+
+00:20:48.400 --> 00:20:50.559
+the other speaker is probably ready
+
+00:20:50.559 --> 00:20:52.559
+so what I'll do is I'll probably try to
+
+00:20:52.559 --> 00:20:54.000
+answer your questions when I get the
+
+00:20:54.000 --> 00:20:55.360
+time inside the pad
+
+00:20:55.360 --> 00:20:58.960
+but feel free to ping me on isc
+
+00:20:58.960 --> 00:21:01.039
+or on the different channels we have
+
+00:21:01.039 --> 00:21:02.320
+foreground and
+
+00:21:02.320 --> 00:21:04.000
+I answer them with you know as much
+
+00:21:04.000 --> 00:21:05.520
+energy as I can gather
+
+00:21:05.520 --> 00:21:07.600
+all right thank you so much you are now
+
+00:21:07.600 --> 00:21:08.880
+unmuted
+
+00:21:08.880 --> 00:21:11.760
+thank you again very much leo and that
+
+00:21:11.760 --> 00:21:13.120
+was me done for today so you'll see me
+
+00:21:13.120 --> 00:21:14.000
+at the end but I'm
+
+00:21:14.000 --> 00:21:15.840
+officially done and I am free of
+
+00:21:15.840 --> 00:21:17.840
+thoughts I can focus on
+
+00:21:17.840 --> 00:21:22.640
+sleeping probably awesome
+
+00:21:22.640 --> 00:21:27.760
+all right see you guys later bye bye
diff --git a/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt b/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt
new file mode 100644
index 00000000..672f36de
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt
@@ -0,0 +1,709 @@
+WEBVTT
+
+00:00:01.120 --> 00:00:03.120
+hi my name is brett gillio
+
+00:00:03.120 --> 00:00:04.560
+and today I'll be sharing a project that
+
+00:00:04.560 --> 00:00:05.920
+several people and I've been working on
+
+00:00:05.920 --> 00:00:07.520
+for the past few months called org
+
+00:00:07.520 --> 00:00:08.480
+webbery
+
+00:00:08.480 --> 00:00:10.559
+the essential idea behind org webbering
+
+00:00:10.559 --> 00:00:12.240
+is to take the power of creating a
+
+00:00:12.240 --> 00:00:13.679
+website with org mode
+
+00:00:13.679 --> 00:00:15.360
+and its built-in features to control
+
+00:00:15.360 --> 00:00:17.520
+html and xml output
+
+00:00:17.520 --> 00:00:19.119
+and utilize it to share blogs git
+
+00:00:19.119 --> 00:00:22.080
+commits or other rss or atom static feed
+
+00:00:22.080 --> 00:00:22.640
+content
+
+00:00:22.640 --> 00:00:25.920
+to share directly with your audiences
+
+00:00:25.920 --> 00:00:28.560
+my website is created entirely using org
+
+00:00:28.560 --> 00:00:30.000
+mode and I love the amount of
+
+00:00:30.000 --> 00:00:31.679
+flexibility it offers me while keeping
+
+00:00:31.679 --> 00:00:34.079
+everything quite simple
+
+00:00:34.079 --> 00:00:35.920
+I am able to put information about
+
+00:00:35.920 --> 00:00:37.600
+myself a blog
+
+00:00:37.600 --> 00:00:40.079
+and my org web ring tool directly on on
+
+00:00:40.079 --> 00:00:42.879
+the home page using symbol org syntax
+
+00:00:42.879 --> 00:00:44.640
+as you can see I am currently displaying
+
+00:00:44.640 --> 00:00:46.239
+three posts on my website
+
+00:00:46.239 --> 00:00:48.239
+the first is the geeksday announcement
+
+00:00:48.239 --> 00:00:49.840
+the second is a quarterly financial
+
+00:00:49.840 --> 00:00:51.039
+update from sourcehut
+
+00:00:51.039 --> 00:00:52.320
+and the third is a post from
+
+00:00:52.320 --> 00:00:54.480
+drewdevault's blog drew devault by the
+
+00:00:54.480 --> 00:00:55.120
+way
+
+00:00:55.120 --> 00:00:57.680
+his open ring is what helped inspire
+
+00:00:57.680 --> 00:00:59.039
+what is today or
+
+00:00:59.039 --> 00:01:01.359
+web ring all this information is
+
+00:01:01.359 --> 00:01:03.440
+gathered using a sort of manifest file
+
+00:01:03.440 --> 00:01:05.360
+that org web ring will use to acquire
+
+00:01:05.360 --> 00:01:07.040
+and place the information in the correct
+
+00:01:07.040 --> 00:01:07.760
+format
+
+00:01:07.760 --> 00:01:10.000
+according to your specification
+
+00:01:10.000 --> 00:01:10.799
+additionally
+
+00:01:10.799 --> 00:01:11.840
+you can see that the geeksday
+
+00:01:11.840 --> 00:01:14.159
+announcement is post is pinned
+
+00:01:14.159 --> 00:01:16.000
+stylization is likewise controlled by
+
+00:01:16.000 --> 00:01:17.200
+using css
+
+00:01:17.200 --> 00:01:18.960
+you can add nice subtle color changes on
+
+00:01:18.960 --> 00:01:20.720
+mouse hover or control the size of the
+
+00:01:20.720 --> 00:01:23.759
+flexboxes all using standard css
+
+00:01:23.759 --> 00:01:26.080
+let's examine a simple scenario of using
+
+00:01:26.080 --> 00:01:28.320
+org webroom
+
+00:01:28.320 --> 00:01:30.400
+after you have org webbing installed
+
+00:01:30.400 --> 00:01:32.000
+you'll be able to create a manifest file
+
+00:01:32.000 --> 00:01:33.759
+that looks something like this
+
+00:01:33.759 --> 00:01:35.680
+this particular manifest file is an
+
+00:01:35.680 --> 00:01:37.840
+example offered in the repository under
+
+00:01:37.840 --> 00:01:39.520
+the assets directory
+
+00:01:39.520 --> 00:01:41.200
+please feel free to utilize them as a
+
+00:01:41.200 --> 00:01:42.640
+starting point if you are interested in
+
+00:01:42.640 --> 00:01:44.399
+using org web ring
+
+00:01:44.399 --> 00:01:46.320
+as you can see here we are able to place
+
+00:01:46.320 --> 00:01:48.640
+an rss or atom feed in this file and
+
+00:01:48.640 --> 00:01:50.479
+specify information about the feed we
+
+00:01:50.479 --> 00:01:51.920
+wish to produce
+
+00:01:51.920 --> 00:01:54.640
+for example the total number of items
+
+00:01:54.640 --> 00:01:56.159
+and the total number of entries per
+
+00:01:56.159 --> 00:01:57.439
+source item
+
+00:01:57.439 --> 00:01:59.439
+additionally you're able to filter posts
+
+00:01:59.439 --> 00:02:00.960
+you feel would not be relevant to your
+
+00:02:00.960 --> 00:02:02.079
+web ring
+
+00:02:02.079 --> 00:02:04.079
+we can take this example file and run
+
+00:02:04.079 --> 00:02:13.120
+the dispatch and see the result
+
+00:02:13.120 --> 00:02:15.280
+the web ring displays a proper summary
+
+00:02:15.280 --> 00:02:17.760
+set to a character limit you can specify
+
+00:02:17.760 --> 00:02:19.599
+additionally all the links in the web
+
+00:02:19.599 --> 00:02:21.520
+ring are navigable and will open in a
+
+00:02:21.520 --> 00:02:22.560
+new tab
+
+00:02:22.560 --> 00:02:24.239
+that way if someone wishes to view the
+
+00:02:24.239 --> 00:02:25.920
+content they simply need to
+
+00:02:25.920 --> 00:02:30.319
+click on the title or their source name
+
+00:02:30.319 --> 00:02:32.879
+now this particular example is not
+
+00:02:32.879 --> 00:02:34.800
+stylized because we have not given the
+
+00:02:34.800 --> 00:02:37.120
+website a css file to reference
+
+00:02:37.120 --> 00:02:38.720
+let's examine what is happening from
+
+00:02:38.720 --> 00:02:40.319
+behind the scenes a little bit
+
+00:02:40.319 --> 00:02:43.040
+from inside of the org mode file let's
+
+00:02:43.040 --> 00:02:43.360
+run
+
+00:02:43.360 --> 00:02:48.800
+the org web ring function
+
+00:02:48.800 --> 00:02:51.280
+as you can see it takes that xml file
+
+00:02:51.280 --> 00:02:54.239
+and processes it into the correct html
+
+00:02:54.239 --> 00:02:56.080
+you will then be able to embed this org
+
+00:02:56.080 --> 00:02:58.080
+function into another org file to be
+
+00:02:58.080 --> 00:03:00.080
+able to display it on your website
+
+00:03:00.080 --> 00:03:02.840
+pretty neat let's look at an at another
+
+00:03:02.840 --> 00:03:05.440
+example
+
+00:03:05.440 --> 00:03:07.360
+on my website we have an example of
+
+00:03:07.360 --> 00:03:09.519
+using org webbring to reply to another
+
+00:03:09.519 --> 00:03:10.800
+blog post
+
+00:03:10.800 --> 00:03:12.480
+what I have here is a post from drew to
+
+00:03:12.480 --> 00:03:14.640
+vault's blog it is showcased clearly at
+
+00:03:14.640 --> 00:03:16.239
+the top as a single entry
+
+00:03:16.239 --> 00:03:19.040
+and you can see it is pinned the pinning
+
+00:03:19.040 --> 00:03:20.800
+functionality ensures that this post is
+
+00:03:20.800 --> 00:03:22.400
+moved to the front of the hypothetical
+
+00:03:22.400 --> 00:03:23.120
+web ring
+
+00:03:23.120 --> 00:03:25.760
+and guaranteeing its visibility this is
+
+00:03:25.760 --> 00:03:27.599
+then coupled with a few changes such as
+
+00:03:27.599 --> 00:03:29.840
+disabling the generation time
+
+00:03:29.840 --> 00:03:31.120
+which would not be relevant to the
+
+00:03:31.120 --> 00:03:33.280
+readers and a change of the text in the
+
+00:03:33.280 --> 00:03:34.000
+header
+
+00:03:34.000 --> 00:03:37.040
+to demonstrate is indeed used as a reply
+
+00:03:37.040 --> 00:03:39.599
+an example of this is also provided in
+
+00:03:39.599 --> 00:03:42.319
+the assets directory
+
+00:03:42.319 --> 00:03:44.799
+last we can use org webbring as a blog
+
+00:03:44.799 --> 00:03:45.519
+planet
+
+00:03:45.519 --> 00:03:47.599
+which is one of my favorites this takes
+
+00:03:47.599 --> 00:03:49.360
+after the emax life planet which I
+
+00:03:49.360 --> 00:03:51.120
+believe is moderated by sasha
+
+00:03:51.120 --> 00:03:53.200
+and others as well as the haskell and
+
+00:03:53.200 --> 00:03:54.720
+ocamoplanets
+
+00:03:54.720 --> 00:03:56.959
+a planet for the uninitiated is a
+
+00:03:56.959 --> 00:03:58.879
+curated form of content sharing about a
+
+00:03:58.879 --> 00:04:00.159
+set of topics
+
+00:04:00.159 --> 00:04:02.400
+the max life haskell and ocampo planets
+
+00:04:02.400 --> 00:04:03.439
+as their names imply
+
+00:04:03.439 --> 00:04:05.920
+cover Emacs haskell and ocampo blogs
+
+00:04:05.920 --> 00:04:07.200
+respectively
+
+00:04:07.200 --> 00:04:09.680
+likewise my planet covers programming
+
+00:04:09.680 --> 00:04:11.360
+language theory and category theory
+
+00:04:11.360 --> 00:04:12.239
+primarily
+
+00:04:12.239 --> 00:04:13.920
+it works in essentially the same way as
+
+00:04:13.920 --> 00:04:15.840
+the org web ring you provide it with a
+
+00:04:15.840 --> 00:04:17.519
+list of feeds that get parsed
+
+00:04:17.519 --> 00:04:20.000
+however unlike the web ring the planet
+
+00:04:20.000 --> 00:04:21.919
+function has no limits on the number of
+
+00:04:21.919 --> 00:04:23.040
+entries per source
+
+00:04:23.040 --> 00:04:24.639
+and the display number of posts is
+
+00:04:24.639 --> 00:04:27.600
+increased significantly
+
+00:04:27.600 --> 00:04:29.759
+the syndicates or sources have their
+
+00:04:29.759 --> 00:04:30.720
+feeds shown
+
+00:04:30.720 --> 00:04:32.639
+visibly to users who may wish to fetch
+
+00:04:32.639 --> 00:04:33.759
+them
+
+00:04:33.759 --> 00:04:35.440
+a planet is typically meant to be a
+
+00:04:35.440 --> 00:04:37.040
+standalone page and not something you
+
+00:04:37.040 --> 00:04:38.639
+would embed in another page like a web
+
+00:04:38.639 --> 00:04:39.440
+ring
+
+00:04:39.440 --> 00:04:41.680
+all this is provided under a single file
+
+00:04:41.680 --> 00:04:43.600
+in the org web ring package as the code
+
+00:04:43.600 --> 00:04:45.280
+reuse is quite high
+
+00:04:45.280 --> 00:04:48.240
+aside from my own website we can view
+
+00:04:48.240 --> 00:04:49.840
+the org web ring being used in neat
+
+00:04:49.840 --> 00:04:52.400
+context with varying stylizations
+
+00:04:52.400 --> 00:04:54.320
+here's a nice example from mikhail
+
+00:04:54.320 --> 00:04:57.680
+kirilov at w96k.ru
+
+00:04:57.680 --> 00:05:00.000
+featuring a four symmetrical flexbox
+
+00:05:00.000 --> 00:05:00.960
+layout
+
+00:05:00.960 --> 00:05:02.720
+an appropriate russian language timing
+
+00:05:02.720 --> 00:05:04.720
+coding which can be also set in the org
+
+00:05:04.720 --> 00:05:07.360
+web ring manifest
+
+00:05:07.360 --> 00:05:09.600
+another is an example from camilo mesa
+
+00:05:09.600 --> 00:05:10.400
+gayete
+
+00:05:10.400 --> 00:05:13.280
+using ox hugo with org webring and
+
+00:05:13.280 --> 00:05:14.320
+likewise correct
+
+00:05:14.320 --> 00:05:15.840
+features the correct spanish time
+
+00:05:15.840 --> 00:05:17.680
+encoding
+
+00:05:17.680 --> 00:05:22.240
+last my other website workircd.org
+
+00:05:22.240 --> 00:05:24.400
+shows the web ring being used in
+
+00:05:24.400 --> 00:05:26.560
+combination with ocamo's tool link
+
+00:05:26.560 --> 00:05:27.440
+supalt
+
+00:05:27.440 --> 00:05:32.800
+to fetch git logs for that project
+
+00:05:32.800 --> 00:05:34.639
+you may obtain org web ring directly
+
+00:05:34.639 --> 00:05:36.320
+from source hut and add it to your load
+
+00:05:36.320 --> 00:05:37.039
+path
+
+00:05:37.039 --> 00:05:39.639
+additionally you will need to obtain
+
+00:05:39.639 --> 00:05:40.800
+xmlgen.el
+
+00:05:40.800 --> 00:05:43.280
+which is unfortunately not yet on alpha
+
+00:05:43.280 --> 00:05:44.960
+although I have been trying to get this
+
+00:05:44.960 --> 00:05:46.800
+rectified so I do not have to rewrite
+
+00:05:46.800 --> 00:05:49.840
+org web brings xml to html parser
+
+00:05:49.840 --> 00:05:51.759
+or if you're one of the cool kids using
+
+00:05:51.759 --> 00:05:54.000
+my favorite package manager gnu geeks
+
+00:05:54.000 --> 00:06:06.319
+you can obtain it like so
+
+00:06:06.319 --> 00:06:08.800
+all of the documentation for org web
+
+00:06:08.800 --> 00:06:09.840
+ring is available
+
+00:06:09.840 --> 00:06:12.000
+on the sourceup website or in the readme
+
+00:06:12.000 --> 00:06:13.840
+file after you check it out from the get
+
+00:06:13.840 --> 00:06:15.039
+tree
+
+00:06:15.039 --> 00:06:17.360
+there are so many ways to customize org
+
+00:06:17.360 --> 00:06:18.240
+web ring
+
+00:06:18.240 --> 00:06:20.880
+as there are just as many variables as
+
+00:06:20.880 --> 00:06:21.520
+there are
+
+00:06:21.520 --> 00:06:24.319
+parts and components to org web ring for
+
+00:06:24.319 --> 00:06:25.759
+you to change
+
+00:06:25.759 --> 00:06:27.759
+all of this is able to be done simply
+
+00:06:27.759 --> 00:06:31.600
+from that same manifest file
+
+00:06:31.600 --> 00:06:33.919
+now taking a moment to examine some of
+
+00:06:33.919 --> 00:06:35.759
+the org web ring code
+
+00:06:35.759 --> 00:06:37.840
+you can see it is all done in the same
+
+00:06:37.840 --> 00:06:40.160
+e-lisp that everybody else is used to
+
+00:06:40.160 --> 00:06:43.120
+now admittedly my e-lisp is not as
+
+00:06:43.120 --> 00:06:43.919
+strong as
+
+00:06:43.919 --> 00:06:47.120
+probably somebody else's so if you are
+
+00:06:47.120 --> 00:06:50.479
+an e-lisp ninja please feel free to
+
+00:06:50.479 --> 00:06:53.280
+send a contribution or a patch and tell
+
+00:06:53.280 --> 00:06:54.880
+me what I'm doing wrong
+
+00:06:54.880 --> 00:06:57.039
+it's I am not going to be offended by
+
+00:06:57.039 --> 00:06:58.639
+that at all I would love to see this
+
+00:06:58.639 --> 00:06:59.360
+code to
+
+00:06:59.360 --> 00:07:02.560
+improve otherwise I don't think it's
+
+00:07:02.560 --> 00:07:04.160
+half bad
+
+00:07:04.160 --> 00:07:06.800
+considering that my experience with
+
+00:07:06.800 --> 00:07:08.880
+lisps is usually in scheme
+
+00:07:08.880 --> 00:07:11.280
+me moving from scheme to e-lisp was not
+
+00:07:11.280 --> 00:07:13.680
+all that hard
+
+00:07:13.680 --> 00:07:17.120
+taking the syntax apart
+
+00:07:17.120 --> 00:07:20.880
+we're able to see that we can
+
+00:07:20.880 --> 00:07:24.240
+fetch urls which are then parsed and
+
+00:07:24.240 --> 00:07:27.680
+filtered sorted and then kind of reverse
+
+00:07:27.680 --> 00:07:28.479
+sorted
+
+00:07:28.479 --> 00:07:32.960
+rather to get you to the web ring result
+
+00:07:32.960 --> 00:07:34.639
+all of this is then passed through
+
+00:07:34.639 --> 00:07:37.840
+different parts of the xmlgen.el
+
+00:07:37.840 --> 00:07:40.639
+functions which gets you that html that
+
+00:07:40.639 --> 00:07:43.520
+you saw earlier
+
+00:07:43.520 --> 00:07:45.599
+org webbring is fully free software
+
+00:07:45.599 --> 00:07:47.440
+distributed under the gnu general public
+
+00:07:47.440 --> 00:07:49.280
+license versions three or later
+
+00:07:49.280 --> 00:07:52.000
+at your option I love accepting patches
+
+00:07:52.000 --> 00:07:53.120
+and collaborating
+
+00:07:53.120 --> 00:07:54.319
+I hope you will consider using
+
+00:07:54.319 --> 00:07:56.720
+orawebring you can contact me on
+
+00:07:56.720 --> 00:07:59.759
+freenode oftc or many other ioc irc
+
+00:07:59.759 --> 00:08:01.520
+networks at brettgillio
+
+00:08:01.520 --> 00:08:05.120
+or email me at brettgee gnu.org
+
+00:08:05.120 --> 00:08:07.759
+thanks so much to amin bendali and the
+
+00:08:07.759 --> 00:08:08.720
+Emacs cough
+
+00:08:08.720 --> 00:08:11.120
+organizers and to you the audience
+
+00:08:11.120 --> 00:08:13.840
+thanks
diff --git a/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt b/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt
new file mode 100644
index 00000000..0455366c
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt
@@ -0,0 +1,1606 @@
+WEBVTT
+
+00:00:00.480 --> 00:00:02.879
+uh well good evening again uh I think I
+
+00:00:02.879 --> 00:00:04.319
+have a little time here
+
+00:00:04.319 --> 00:00:07.359
+uh to talk about macros uh is there
+
+00:00:07.359 --> 00:00:09.120
+still room in our in our schedule for
+
+00:00:09.120 --> 00:00:09.440
+that
+
+00:00:09.440 --> 00:00:11.440
+or should I just kind of jump to some of
+
+00:00:11.440 --> 00:00:12.559
+my thoughts on the day
+
+00:00:12.559 --> 00:00:15.920
+you are now unmuted um pretty sure we
+
+00:00:15.920 --> 00:00:17.039
+have some time
+
+00:00:17.039 --> 00:00:19.439
+all right great yeah go for it well I'll
+
+00:00:19.439 --> 00:00:20.720
+just drive into my pre
+
+00:00:20.720 --> 00:00:22.640
+prepared thing to hear that yeah
+
+00:00:22.640 --> 00:00:24.720
+actually you're right on time so
+
+00:00:24.720 --> 00:00:28.400
+oh what an amazing thing I I just uh
+
+00:00:28.400 --> 00:00:31.199
+you know I have been trying to do what I
+
+00:00:31.199 --> 00:00:33.040
+I've got a big thank you planet to get
+
+00:00:33.040 --> 00:00:36.239
+at the end but let me just say I uh
+
+00:00:36.239 --> 00:00:39.200
+it's it's been really cool to watch the
+
+00:00:39.200 --> 00:00:42.160
+way that people work together
+
+00:00:42.160 --> 00:00:46.000
+absolutely it's this whole event today
+
+00:00:46.000 --> 00:00:46.800
+has been
+
+00:00:46.800 --> 00:00:50.879
+nothing but awesome and uh no less like
+
+00:00:50.879 --> 00:00:53.120
+no little part thanks to all of the help
+
+00:00:53.120 --> 00:00:54.719
+from all of you guys
+
+00:00:54.719 --> 00:00:59.120
+and um everyone oh yeah it's awesome
+
+00:00:59.120 --> 00:01:02.399
+um yeah with that all just um shut up
+
+00:01:02.399 --> 00:01:03.520
+for now and uh
+
+00:01:03.520 --> 00:01:06.479
+take it away corwin you know how to make
+
+00:01:06.479 --> 00:01:09.840
+make that the default and good old cemex
+
+00:01:09.840 --> 00:01:12.799
+all right so I'm gonna try to continue
+
+00:01:12.799 --> 00:01:14.880
+my theme from the previous talk I'm a
+
+00:01:14.880 --> 00:01:16.960
+longtime Emacs user but I'm
+
+00:01:16.960 --> 00:01:20.240
+a pretty new person
+
+00:01:20.240 --> 00:01:22.880
+to trying to really understand what's
+
+00:01:22.880 --> 00:01:24.960
+going on within Emacs and make
+
+00:01:24.960 --> 00:01:28.240
+my customizations to it uh simple for
+
+00:01:28.240 --> 00:01:30.960
+what I tend to just think of will work
+
+00:01:30.960 --> 00:01:33.280
+and maybe that's that's that's a nice
+
+00:01:33.280 --> 00:01:36.240
+bow to put on that earlier talk
+
+00:01:36.240 --> 00:01:40.479
+so uh whoops
+
+00:01:40.479 --> 00:01:43.759
+uh let's see here now it's ctrl x
+
+00:01:43.759 --> 00:01:48.159
+alt I that's right
+
+00:01:48.159 --> 00:01:52.960
+and let's try that again okay good
+
+00:01:52.960 --> 00:01:56.000
+so demoing is fun uh but I
+
+00:01:56.000 --> 00:01:58.000
+will save most of that for tomorrow
+
+00:01:58.000 --> 00:01:59.759
+where my
+
+00:01:59.759 --> 00:02:03.040
+dear friend and co-collaborator in
+
+00:02:03.040 --> 00:02:04.799
+bringing you the dungeon mode project
+
+00:02:04.799 --> 00:02:07.119
+which is uh sort of
+
+00:02:07.119 --> 00:02:08.720
+the exciting thing that we we hope
+
+00:02:08.720 --> 00:02:10.800
+you'll be interested in
+
+00:02:10.800 --> 00:02:14.480
+um I think gets a little more of a
+
+00:02:14.480 --> 00:02:15.680
+reveal
+
+00:02:15.680 --> 00:02:19.360
+uh tonight I'll just uh close saying
+
+00:02:19.360 --> 00:02:22.640
+um a few things about the process of
+
+00:02:22.640 --> 00:02:24.319
+making it and continuing my theme of
+
+00:02:24.319 --> 00:02:25.680
+community
+
+00:02:25.680 --> 00:02:28.720
+uh first of all a specific and upfront
+
+00:02:28.720 --> 00:02:29.760
+shout out
+
+00:02:29.760 --> 00:02:33.120
+to tv's wasa masa who
+
+00:02:33.120 --> 00:02:36.239
+um absolutely shaped and guided this
+
+00:02:36.239 --> 00:02:38.720
+this program I I may have taken out a
+
+00:02:38.720 --> 00:02:40.080
+slide with your name on it but
+
+00:02:40.080 --> 00:02:43.599
+thank you um
+
+00:02:43.599 --> 00:02:46.720
+so when we think about Emacs macros and
+
+00:02:46.720 --> 00:02:47.120
+the
+
+00:02:47.120 --> 00:02:50.239
+power that they give us
+
+00:02:50.239 --> 00:02:53.280
+I think about them the the
+
+00:02:53.280 --> 00:02:54.720
+you know I think about them as a really
+
+00:02:54.720 --> 00:02:56.400
+deep rabbit hole they confuse
+
+00:02:56.400 --> 00:03:00.239
+people a lot and so to try to center
+
+00:03:00.239 --> 00:03:02.480
+myself on that I remember first that
+
+00:03:02.480 --> 00:03:03.599
+they're
+
+00:03:03.599 --> 00:03:05.840
+they're going to be talking to us about
+
+00:03:05.840 --> 00:03:09.599
+code
+
+00:03:09.599 --> 00:03:12.080
+uh excuse me I realize I hadn't set my
+
+00:03:12.080 --> 00:03:13.519
+timer
+
+00:03:13.519 --> 00:03:18.000
+here we are
+
+00:03:18.000 --> 00:03:21.680
+um so a simple macro syntax is going to
+
+00:03:21.680 --> 00:03:22.239
+generate
+
+00:03:22.239 --> 00:03:25.920
+something that is implicitly confusing
+
+00:03:25.920 --> 00:03:27.760
+to somebody that knows the syntax of
+
+00:03:27.760 --> 00:03:28.720
+emax lisp
+
+00:03:28.720 --> 00:03:31.200
+well we see something like this and a
+
+00:03:31.200 --> 00:03:32.000
+veteran I
+
+00:03:32.000 --> 00:03:36.239
+says that x isn't quoted what's going on
+
+00:03:36.239 --> 00:03:39.840
+but it can be hard to miss
+
+00:03:39.840 --> 00:03:43.040
+um a lot of the functions as we'll talk
+
+00:03:43.040 --> 00:03:44.640
+about in a moment that are built into
+
+00:03:44.640 --> 00:03:46.640
+Emacs
+
+00:03:46.640 --> 00:03:48.959
+really are macros so a lot of Emacs
+
+00:03:48.959 --> 00:03:50.480
+features work this way
+
+00:03:50.480 --> 00:03:53.040
+it might be scary but we have to look at
+
+00:03:53.040 --> 00:03:54.640
+it closely if we really want to get
+
+00:03:54.640 --> 00:03:58.400
+friendly with Emacs
+
+00:03:58.400 --> 00:04:01.439
+um let's just jump right into deaf macro
+
+00:04:01.439 --> 00:04:03.920
+which is which is our key entry point
+
+00:04:03.920 --> 00:04:04.720
+and the
+
+00:04:04.720 --> 00:04:08.560
+notes from this talk include the link um
+
+00:04:08.560 --> 00:04:12.000
+to that uh which which definitely
+
+00:04:12.000 --> 00:04:14.640
+uh read through a couple of times and
+
+00:04:14.640 --> 00:04:16.000
+that may take you through
+
+00:04:16.000 --> 00:04:19.440
+into the cldf macro which adds
+
+00:04:19.440 --> 00:04:23.440
+the common list lisp extensions
+
+00:04:23.440 --> 00:04:26.840
+and uh definitely
+
+00:04:26.840 --> 00:04:30.560
+uh challenging uh I've struggled there
+
+00:04:30.560 --> 00:04:31.759
+as we'll take a look at in
+
+00:04:31.759 --> 00:04:34.800
+in a moment um
+
+00:04:34.800 --> 00:04:36.400
+so I haven't played too much with cl
+
+00:04:36.400 --> 00:04:38.320
+maclet perhaps success in
+
+00:04:38.320 --> 00:04:42.160
+in that uh keyword space and figuring
+
+00:04:42.160 --> 00:04:44.320
+out what the right balance is there
+
+00:04:44.320 --> 00:04:46.000
+what will give me the confidence to try
+
+00:04:46.000 --> 00:04:47.680
+some more lexical
+
+00:04:47.680 --> 00:04:51.680
+uh macros
+
+00:04:51.680 --> 00:04:53.919
+let me also briefly introduce the comma
+
+00:04:53.919 --> 00:04:55.440
+and back quote if you
+
+00:04:55.440 --> 00:04:58.479
+have uh allowed your eyes to cross when
+
+00:04:58.479 --> 00:05:00.080
+you see these and that's not
+
+00:05:00.080 --> 00:05:03.600
+uh a shameful shameful thing it's
+
+00:05:03.600 --> 00:05:06.080
+confusing and we should be
+
+00:05:06.080 --> 00:05:08.160
+alerting each other when we when we
+
+00:05:08.160 --> 00:05:09.520
+stick macros in
+
+00:05:09.520 --> 00:05:11.199
+often by putting them in different
+
+00:05:11.199 --> 00:05:12.960
+different library spaces for complicated
+
+00:05:12.960 --> 00:05:14.160
+projects
+
+00:05:14.160 --> 00:05:17.520
+or um otherwise sort of warning people
+
+00:05:17.520 --> 00:05:19.520
+that this is not an interactive function
+
+00:05:19.520 --> 00:05:21.919
+if you get away with using it like one
+
+00:05:21.919 --> 00:05:22.639
+um
+
+00:05:22.639 --> 00:05:26.000
+to watch your back
+
+00:05:26.000 --> 00:05:29.440
+the uh
+
+00:05:29.440 --> 00:05:32.800
+the manual itself talks about macros
+
+00:05:32.800 --> 00:05:35.840
+as being a way of evaluating
+
+00:05:35.840 --> 00:05:39.039
+you know as as being um
+
+00:05:39.039 --> 00:05:41.520
+an evaluator that will take our amex
+
+00:05:41.520 --> 00:05:42.800
+lisp expression
+
+00:05:42.800 --> 00:05:44.800
+and the set of forms that kind of that
+
+00:05:44.800 --> 00:05:47.590
+will feed to it our code
+
+00:05:47.590 --> 00:05:48.960
+[Music]
+
+00:05:48.960 --> 00:05:51.120
+but it also provides us with this
+
+00:05:51.120 --> 00:05:52.000
+concept of an
+
+00:05:52.000 --> 00:05:55.039
+environment and and and that's really
+
+00:05:55.039 --> 00:05:56.639
+where the power
+
+00:05:56.639 --> 00:05:58.240
+comes in through that we can have
+
+00:05:58.240 --> 00:06:00.080
+lexical variables and
+
+00:06:00.080 --> 00:06:03.199
+um think about uh bring in some of the
+
+00:06:03.199 --> 00:06:06.400
+capabilities that
+
+00:06:06.400 --> 00:06:09.759
+um can be harder to reach with
+
+00:06:09.759 --> 00:06:13.840
+a a a pure declarative statement that
+
+00:06:13.840 --> 00:06:14.800
+doesn't allow
+
+00:06:14.800 --> 00:06:18.000
+for uh
+
+00:06:18.000 --> 00:06:21.440
+top level
+
+00:06:21.440 --> 00:06:28.639
+um asynchronous asynchronicity
+
+00:06:28.639 --> 00:06:31.950
+uh I'm gonna basically
+
+00:06:31.950 --> 00:06:33.520
+[Music]
+
+00:06:33.520 --> 00:06:35.759
+ignore the bike compilation phase for
+
+00:06:35.759 --> 00:06:36.880
+this talk
+
+00:06:36.880 --> 00:06:38.639
+uh in order to have any prayer of
+
+00:06:38.639 --> 00:06:39.919
+getting through it in the
+
+00:06:39.919 --> 00:06:43.600
+remaining nine or 11 minutes or whatever
+
+00:06:43.600 --> 00:06:48.319
+uh but
+
+00:06:48.319 --> 00:06:50.160
+suffice it to say it that's a scary
+
+00:06:50.160 --> 00:06:52.240
+space and that's that's that's really
+
+00:06:52.240 --> 00:06:54.160
+the thing that you want to start
+
+00:06:54.160 --> 00:06:57.199
+learning about as you think about taking
+
+00:06:57.199 --> 00:07:02.160
+taking macros on uh in earnest
+
+00:07:02.160 --> 00:07:05.919
+the um coming back to the comma syntax
+
+00:07:05.919 --> 00:07:07.440
+then
+
+00:07:07.440 --> 00:07:09.759
+having having given ourselves sort of a
+
+00:07:09.759 --> 00:07:12.479
+working definition for the Emacs lisp
+
+00:07:12.479 --> 00:07:14.479
+runtime environment then we can say that
+
+00:07:14.479 --> 00:07:15.840
+macros are going to
+
+00:07:15.840 --> 00:07:21.120
+inject code back into that stream
+
+00:07:21.120 --> 00:07:25.280
+whereas back quote is going to
+
+00:07:25.280 --> 00:07:28.479
+uh going to give code back
+
+00:07:28.479 --> 00:07:31.919
+to the to the stream or interject sorry
+
+00:07:31.919 --> 00:07:34.560
+it's going to interject uh back into the
+
+00:07:34.560 --> 00:07:35.360
+stream
+
+00:07:35.360 --> 00:07:39.840
+uh sort of uh an exclamatory excuse me
+
+00:07:39.840 --> 00:07:43.280
+I'd like to uh
+
+00:07:43.280 --> 00:07:46.720
+have a value here and we can take that
+
+00:07:46.720 --> 00:07:48.639
+value from the environment as it exists
+
+00:07:48.639 --> 00:07:54.160
+when our macro is evaluated
+
+00:07:54.160 --> 00:07:56.639
+back quote on the other hand takes the
+
+00:07:56.639 --> 00:07:57.280
+result
+
+00:07:57.280 --> 00:08:00.560
+from that and uh
+
+00:08:00.560 --> 00:08:02.400
+and returns it back to the stream for
+
+00:08:02.400 --> 00:08:04.319
+evaluation at the processing level that
+
+00:08:04.319 --> 00:08:05.680
+invoked us
+
+00:08:05.680 --> 00:08:08.720
+so in other words perhaps back up to
+
+00:08:08.720 --> 00:08:10.960
+a top level eval expression where our
+
+00:08:10.960 --> 00:08:16.720
+macro is invoked
+
+00:08:16.720 --> 00:08:20.080
+uh wrong way so um
+
+00:08:20.080 --> 00:08:22.560
+with what's I'm going to briefly bring
+
+00:08:22.560 --> 00:08:23.759
+you back to the game
+
+00:08:23.759 --> 00:08:27.120
+for just a moment
+
+00:08:27.120 --> 00:08:30.240
+um I won't
+
+00:08:30.240 --> 00:08:32.479
+I won't has I won't linger on this slide
+
+00:08:32.479 --> 00:08:33.599
+but but
+
+00:08:33.599 --> 00:08:37.039
+briefly uh this is a
+
+00:08:37.039 --> 00:08:40.080
+roll paper role-playing pen
+
+00:08:40.080 --> 00:08:43.599
+and pencil uh physical dice
+
+00:08:43.599 --> 00:08:46.320
+tradition that dates back a long time
+
+00:08:46.320 --> 00:08:48.080
+from a technology perspective
+
+00:08:48.080 --> 00:08:51.279
+it's it's old in the same way that uh
+
+00:08:51.279 --> 00:08:54.640
+other tools uh that I like are
+
+00:08:54.640 --> 00:08:58.560
+old
+
+00:08:58.560 --> 00:09:00.560
+uh it's simple to understand and I can
+
+00:09:00.560 --> 00:09:02.560
+communicate a lot with it with a simple
+
+00:09:02.560 --> 00:09:04.160
+amount of you know typing or
+
+00:09:04.160 --> 00:09:09.120
+scribbling something on a piece of paper
+
+00:09:09.120 --> 00:09:12.399
+it has a complicated problem space um
+
+00:09:12.399 --> 00:09:15.519
+of its own again I don't want to
+
+00:09:15.519 --> 00:09:18.560
+get too much into the game here but
+
+00:09:18.560 --> 00:09:21.680
+uh in this in this talk for the last
+
+00:09:21.680 --> 00:09:23.360
+five minutes I'll focus
+
+00:09:23.360 --> 00:09:26.640
+on the process that we took to to
+
+00:09:26.640 --> 00:09:29.920
+automate uh getting data out of the org
+
+00:09:29.920 --> 00:09:31.120
+mode tables which
+
+00:09:31.120 --> 00:09:32.720
+eventually as we'll talk about more
+
+00:09:32.720 --> 00:09:36.000
+tomorrow are used to draw
+
+00:09:36.000 --> 00:09:39.440
+game maps and other things
+
+00:09:39.440 --> 00:09:42.240
+um here I talk about kind of why we did
+
+00:09:42.240 --> 00:09:45.279
+that I'm going to skip briefly past that
+
+00:09:45.279 --> 00:09:49.360
+and say instead that at a high level
+
+00:09:49.360 --> 00:09:51.920
+it's it's symbolic informatics we're
+
+00:09:51.920 --> 00:09:53.519
+giving a symbolic name
+
+00:09:53.519 --> 00:09:58.080
+to a tile set and then
+
+00:09:58.080 --> 00:10:02.000
+uh
+
+00:10:02.000 --> 00:10:04.000
+and then assigning that tile set some
+
+00:10:04.000 --> 00:10:05.360
+some characteristics like physical
+
+00:10:05.360 --> 00:10:06.000
+speeds
+
+00:10:06.000 --> 00:10:08.399
+screen space a variable that we might
+
+00:10:08.399 --> 00:10:09.279
+want to swap in
+
+00:10:09.279 --> 00:10:12.800
+and so forth uh and
+
+00:10:12.800 --> 00:10:15.200
+you know our project rests heavily on on
+
+00:10:15.200 --> 00:10:16.160
+org mode and
+
+00:10:16.160 --> 00:10:21.040
+it's it's fundamental capabilities
+
+00:10:21.040 --> 00:10:24.000
+so the the code I'm going to show here
+
+00:10:24.000 --> 00:10:24.959
+is
+
+00:10:24.959 --> 00:10:28.320
+uh is
+
+00:10:28.320 --> 00:10:31.360
+is focused around sort of a a sticky
+
+00:10:31.360 --> 00:10:33.040
+problem space in in the information
+
+00:10:33.040 --> 00:10:35.600
+technology and I'm I'm a professional
+
+00:10:35.600 --> 00:10:39.120
+uh uh software engineer turned uh
+
+00:10:39.120 --> 00:10:41.120
+technology architect I support
+
+00:10:41.120 --> 00:10:45.120
+the websites for a recognizable
+
+00:10:45.120 --> 00:10:47.600
+financial services brand that I don't
+
+00:10:47.600 --> 00:10:49.680
+identify just so I don't accidentally
+
+00:10:49.680 --> 00:10:50.720
+end up
+
+00:10:50.720 --> 00:10:54.399
+uh inadvertently misrepresenting my firm
+
+00:10:54.399 --> 00:10:55.600
+in some financial
+
+00:10:55.600 --> 00:10:57.760
+uh perspective if I let some other
+
+00:10:57.760 --> 00:11:00.480
+companies slip at certain let some other
+
+00:11:00.480 --> 00:11:01.760
+companies slip
+
+00:11:01.760 --> 00:11:06.560
+name slip or my own it's certainly no
+
+00:11:06.560 --> 00:11:08.160
+representation of an opinion other than
+
+00:11:08.160 --> 00:11:11.279
+my own
+
+00:11:11.279 --> 00:11:13.980
+the um
+
+00:11:13.980 --> 00:11:18.800
+[Music]
+
+00:11:18.800 --> 00:11:22.720
+so etl has to do with moving data around
+
+00:11:22.720 --> 00:11:26.240
+we we have the idea of of
+
+00:11:26.240 --> 00:11:29.200
+a pipeline where we'll be able to verify
+
+00:11:29.200 --> 00:11:30.560
+certain assumptions not
+
+00:11:30.560 --> 00:11:32.480
+nominally about data quality but it
+
+00:11:32.480 --> 00:11:33.600
+could be about anything
+
+00:11:33.600 --> 00:11:36.000
+before the pipeline starts okay we've
+
+00:11:36.000 --> 00:11:37.279
+got a state where we think it should
+
+00:11:37.279 --> 00:11:38.560
+work if we run it
+
+00:11:38.560 --> 00:11:41.920
+we have uh some extraction where we'll
+
+00:11:41.920 --> 00:11:44.160
+get our sources and we may have the the
+
+00:11:44.160 --> 00:11:45.040
+opportunity to
+
+00:11:45.040 --> 00:11:47.920
+uh make some assertions there and in the
+
+00:11:47.920 --> 00:11:48.720
+transform
+
+00:11:48.720 --> 00:11:51.360
+stage as well as the load things get a
+
+00:11:51.360 --> 00:11:52.720
+little dicer
+
+00:11:52.720 --> 00:11:54.079
+to the point where we come out of the
+
+00:11:54.079 --> 00:11:55.360
+load stage and we should have some
+
+00:11:55.360 --> 00:11:57.040
+really solid assertions again that we
+
+00:11:57.040 --> 00:11:58.480
+can even go back and compare to the
+
+00:11:58.480 --> 00:11:59.680
+extract stage
+
+00:11:59.680 --> 00:12:02.639
+and from this we have the rudimentaries
+
+00:12:02.639 --> 00:12:04.959
+of a data quality practice
+
+00:12:04.959 --> 00:12:08.399
+uh in this case we have a number of org
+
+00:12:08.399 --> 00:12:09.360
+mode files that will all
+
+00:12:09.360 --> 00:12:12.639
+be distributed across a
+
+00:12:12.639 --> 00:12:16.720
+number of players uh computers
+
+00:12:16.720 --> 00:12:18.959
+so we might not want to update every
+
+00:12:18.959 --> 00:12:20.320
+part of every buffer
+
+00:12:20.320 --> 00:12:22.720
+I think it's a complicated problem space
+
+00:12:22.720 --> 00:12:24.560
+and so we tried to take
+
+00:12:24.560 --> 00:12:27.839
+a long-term view of
+
+00:12:27.839 --> 00:12:31.120
+the solution that we needed um so I'll
+
+00:12:31.120 --> 00:12:32.160
+go ahead
+
+00:12:32.160 --> 00:12:35.760
+and open up the fun function
+
+00:12:35.760 --> 00:12:37.839
+that well let's let's actually start
+
+00:12:37.839 --> 00:12:41.680
+with the one that's pretty easy to read
+
+00:12:41.680 --> 00:12:45.040
+and uh I'm gonna go ahead and just crank
+
+00:12:45.040 --> 00:12:46.800
+it up huge
+
+00:12:46.800 --> 00:12:51.680
+in case anybody's watching in 480.
+
+00:12:51.680 --> 00:12:56.480
+um so this this program is not
+
+00:12:56.480 --> 00:12:58.560
+a work of art it's a simple
+
+00:12:58.560 --> 00:13:01.120
+implementation of the idea that a list
+
+00:13:01.120 --> 00:13:05.440
+an a list of functions that return
+
+00:13:05.440 --> 00:13:08.160
+maybe some data maybe some data and an
+
+00:13:08.160 --> 00:13:10.399
+entry back into that a list
+
+00:13:10.399 --> 00:13:13.040
+um can be done quite extensively with
+
+00:13:13.040 --> 00:13:15.680
+very few lines of code
+
+00:13:15.680 --> 00:13:17.760
+neither is it an especially tight or
+
+00:13:17.760 --> 00:13:19.600
+thrifty implementation
+
+00:13:19.600 --> 00:13:22.000
+it's just trying to get the job done
+
+00:13:22.000 --> 00:13:22.800
+with a doc
+
+00:13:22.800 --> 00:13:26.160
+statement for everything at the heart
+
+00:13:26.160 --> 00:13:30.880
+um we see a call to this macro called dm
+
+00:13:30.880 --> 00:13:32.480
+coalesce hash and that's what I'd like
+
+00:13:32.480 --> 00:13:35.360
+to focus in on you can see I think
+
+00:13:35.360 --> 00:13:37.680
+that something on unpleasant is
+
+00:13:37.680 --> 00:13:38.800
+happening here
+
+00:13:38.800 --> 00:13:42.480
+I've got an eval in um
+
+00:13:42.480 --> 00:13:46.560
+what is I will share a a
+
+00:13:46.560 --> 00:13:49.519
+fairly central function that that that
+
+00:13:49.519 --> 00:13:49.920
+that
+
+00:13:49.920 --> 00:13:52.160
+those implementing this etl pattern are
+
+00:13:52.160 --> 00:13:53.920
+welcome to
+
+00:13:53.920 --> 00:13:56.639
+derive from that is this is a default
+
+00:13:56.639 --> 00:13:57.680
+transform
+
+00:13:57.680 --> 00:13:59.680
+that you can get when loading certain
+
+00:13:59.680 --> 00:14:00.959
+kinds of
+
+00:14:00.959 --> 00:14:04.560
+uh orgmo tables that have been uh
+
+00:14:04.560 --> 00:14:06.399
+properly adorned and again we'll get
+
+00:14:06.399 --> 00:14:09.120
+into that all tomorrow
+
+00:14:09.120 --> 00:14:11.440
+so keep an eye on time couple minutes
+
+00:14:11.440 --> 00:14:13.760
+left let's look at the macro itself and
+
+00:14:13.760 --> 00:14:15.360
+I have a slide on this but let's go
+
+00:14:15.360 --> 00:14:24.639
+ahead and risk getting off page
+
+00:14:24.639 --> 00:14:27.199
+oh boy here we go so this is my
+
+00:14:27.199 --> 00:14:28.959
+utilities bucket
+
+00:14:28.959 --> 00:14:31.920
+it has such basic features as give me a
+
+00:14:31.920 --> 00:14:34.000
+hash table with some defaults I'll think
+
+00:14:34.000 --> 00:14:36.000
+about that later
+
+00:14:36.000 --> 00:14:39.680
+and
+
+00:14:39.680 --> 00:14:44.720
+and add to list um a special version
+
+00:14:44.720 --> 00:14:47.600
+that enables us to be a little cavalier
+
+00:14:47.600 --> 00:14:49.360
+in experimenting with a-list versus
+
+00:14:49.360 --> 00:14:50.480
+hashes versus p
+
+00:14:50.480 --> 00:14:52.800
+lists we've made a right mess for
+
+00:14:52.800 --> 00:14:54.399
+ourselves in the proof of concept area
+
+00:14:54.399 --> 00:14:55.279
+and it's ripe
+
+00:14:55.279 --> 00:14:58.560
+for someone to write a white paper about
+
+00:14:58.560 --> 00:15:00.240
+when to prefer these things
+
+00:15:00.240 --> 00:15:04.800
+and fix
+
+00:15:04.800 --> 00:15:08.000
+the merge a list uh
+
+00:15:08.000 --> 00:15:10.720
+same work here let's get let's get down
+
+00:15:10.720 --> 00:15:12.959
+to business
+
+00:15:12.959 --> 00:15:16.000
+this function has quite a this a macro
+
+00:15:16.000 --> 00:15:18.560
+has quite a doc string and I think I
+
+00:15:18.560 --> 00:15:20.720
+mentioned earlier that I got myself into
+
+00:15:20.720 --> 00:15:22.240
+trouble with the keyword properties you
+
+00:15:22.240 --> 00:15:23.519
+can see that we have
+
+00:15:23.519 --> 00:15:27.839
+not only quite a number of them but
+
+00:15:27.839 --> 00:15:32.240
+a lot of a lot of default values many of
+
+00:15:32.240 --> 00:15:32.880
+which
+
+00:15:32.880 --> 00:15:36.000
+may be relying on the
+
+00:15:36.000 --> 00:15:37.680
+values that are passed in here this is
+
+00:15:37.680 --> 00:15:40.000
+complicated and as it turns out
+
+00:15:40.000 --> 00:15:44.000
+um I wasn't brave enough in most cases
+
+00:15:44.000 --> 00:15:46.079
+to try to write a lambda that could
+
+00:15:46.079 --> 00:15:47.279
+understand and
+
+00:15:47.279 --> 00:15:49.680
+replace uh its own local variable I just
+
+00:15:49.680 --> 00:15:50.399
+didn't
+
+00:15:50.399 --> 00:15:53.519
+it didn't save me enough time this was
+
+00:15:53.519 --> 00:15:54.800
+really easy
+
+00:15:54.800 --> 00:15:56.800
+to read and write and understand as I
+
+00:15:56.800 --> 00:15:58.240
+thought through my problem
+
+00:15:58.240 --> 00:16:01.440
+but now as I use it I I've lost a little
+
+00:16:01.440 --> 00:16:03.360
+ground maybe with this and I'm not even
+
+00:16:03.360 --> 00:16:04.079
+sure
+
+00:16:04.079 --> 00:16:07.279
+I like what I got from uh the many
+
+00:16:07.279 --> 00:16:08.079
+keyword
+
+00:16:08.079 --> 00:16:10.560
+properties when it and we can look
+
+00:16:10.560 --> 00:16:11.920
+perhaps if we have
+
+00:16:11.920 --> 00:16:17.340
+the time at what that looks like in uh
+
+00:16:17.340 --> 00:16:19.920
+[Music]
+
+00:16:19.920 --> 00:16:22.720
+oh all right I have to separately
+
+00:16:22.720 --> 00:16:24.480
+dismiss and restart that
+
+00:16:24.480 --> 00:16:27.519
+um so that so that's just about my time
+
+00:16:27.519 --> 00:16:29.600
+uh and being respectful of that I want
+
+00:16:29.600 --> 00:16:31.920
+to invite presenters to just jump in at
+
+00:16:31.920 --> 00:16:35.519
+any of the many large pauses I leave
+
+00:16:35.519 --> 00:16:38.079
+uh as I'll just leave up the doc string
+
+00:16:38.079 --> 00:16:40.160
+for a moment and maybe split the screen
+
+00:16:40.160 --> 00:16:45.199
+and pull open an item
+
+00:16:45.199 --> 00:16:48.720
+you are now unmuted uh thank you very
+
+00:16:48.720 --> 00:16:50.720
+much for your talk corwin
+
+00:16:50.720 --> 00:16:53.839
+um I think you still have like uh
+
+00:16:53.839 --> 00:16:55.279
+maybe three or four more minutes if you
+
+00:16:55.279 --> 00:16:57.680
+want to quickly wrap up
+
+00:16:57.680 --> 00:17:01.040
+okay so three or four more minutes I can
+
+00:17:01.040 --> 00:17:02.160
+easily spend
+
+00:17:02.160 --> 00:17:05.439
+on thank yous
+
+00:17:05.439 --> 00:17:07.280
+I might switch to that if there aren't
+
+00:17:07.280 --> 00:17:08.270
+questions on the path
+
+00:17:08.270 --> 00:17:10.160
+[Music]
+
+00:17:10.160 --> 00:17:12.559
+um would you like me to pull up the pad
+
+00:17:12.559 --> 00:17:14.079
+or are you looking at it
+
+00:17:14.079 --> 00:17:17.199
+I am I bookmarked it I am
+
+00:17:17.199 --> 00:17:30.840
+pulling the tab and I'll bring it in
+
+00:17:30.840 --> 00:17:34.960
+okay
+
+00:17:34.960 --> 00:17:38.799
+all right this is the wrong ether pad
+
+00:17:38.799 --> 00:17:44.480
+thanks for the link
+
+00:17:44.480 --> 00:17:48.000
+all right um so I think I'm looking for
+
+00:17:48.000 --> 00:17:54.880
+macros
+
+00:17:54.880 --> 00:17:58.400
+uh okay key message sure so the
+
+00:17:58.400 --> 00:18:01.679
+the key message is that it's um it's a
+
+00:18:01.679 --> 00:18:02.960
+jungle out there
+
+00:18:02.960 --> 00:18:06.240
+macros along with any other design can
+
+00:18:06.240 --> 00:18:08.559
+leave you in a position
+
+00:18:08.559 --> 00:18:11.919
+where you have a nice api and I can show
+
+00:18:11.919 --> 00:18:13.600
+you other examples you can find them in
+
+00:18:13.600 --> 00:18:14.960
+the dungeon mode source
+
+00:18:14.960 --> 00:18:18.480
+of many many other places where I use
+
+00:18:18.480 --> 00:18:21.600
+this exact same formula quickly
+
+00:18:21.600 --> 00:18:23.840
+sketching out how a character sheet
+
+00:18:23.840 --> 00:18:26.960
+or another big data set needs to
+
+00:18:26.960 --> 00:18:28.480
+needs to figure out what tables are
+
+00:18:28.480 --> 00:18:29.600
+going to be interesting from the
+
+00:18:29.600 --> 00:18:30.720
+collection of files
+
+00:18:30.720 --> 00:18:34.400
+and then load up the tile set and
+
+00:18:34.400 --> 00:18:38.880
+the uh layout file from that
+
+00:18:38.880 --> 00:18:41.600
+and I mean it works this the project is
+
+00:18:41.600 --> 00:18:43.280
+moving forward with this I have the
+
+00:18:43.280 --> 00:18:44.799
+flexibility that I need
+
+00:18:44.799 --> 00:18:46.720
+but here I am evaling my own code to
+
+00:18:46.720 --> 00:18:48.640
+make darn sure even if I get by
+
+00:18:48.640 --> 00:18:52.400
+by compiled uh this macro doesn't uh
+
+00:18:52.400 --> 00:18:55.440
+does get evaluated in the user's real
+
+00:18:55.440 --> 00:18:58.160
+run time clearly a design fail so that
+
+00:18:58.160 --> 00:18:58.880
+would be
+
+00:18:58.880 --> 00:19:00.880
+the key point of my talk is is to
+
+00:19:00.880 --> 00:19:02.400
+present this design
+
+00:19:02.400 --> 00:19:05.600
+fail and uh thank
+
+00:19:05.600 --> 00:19:08.320
+um thank the community but especially
+
+00:19:08.320 --> 00:19:09.520
+wasa masa
+
+00:19:09.520 --> 00:19:12.160
+for for some patience and let me add at
+
+00:19:12.160 --> 00:19:13.280
+this moment that
+
+00:19:13.280 --> 00:19:15.200
+uh he was so frustrated with me they
+
+00:19:15.200 --> 00:19:16.799
+were sort of frustrated with me I think
+
+00:19:16.799 --> 00:19:17.360
+I
+
+00:19:17.360 --> 00:19:20.400
+didn't qualify pronouns um
+
+00:19:20.400 --> 00:19:24.240
+with um
+
+00:19:24.240 --> 00:19:26.640
+with doing this the the first the this
+
+00:19:26.640 --> 00:19:28.160
+was one of our first interactions and
+
+00:19:28.160 --> 00:19:29.919
+the feedback was
+
+00:19:29.919 --> 00:19:34.240
+why is this a macro full stop
+
+00:19:34.240 --> 00:19:36.640
+and uh that's a great message actually
+
+00:19:36.640 --> 00:19:38.320
+and I and I hope that
+
+00:19:38.320 --> 00:19:40.160
+uh maybe this can encourage further
+
+00:19:40.160 --> 00:19:42.720
+talks across the subject about
+
+00:19:42.720 --> 00:19:44.160
+you know hey wait a minute macros are
+
+00:19:44.160 --> 00:19:46.720
+really fantastic as I hope I made
+
+00:19:46.720 --> 00:19:48.559
+clear you can do a tremendous amount
+
+00:19:48.559 --> 00:19:51.039
+about uh with them and we rely on them
+
+00:19:51.039 --> 00:19:52.320
+for
+
+00:19:52.320 --> 00:19:55.200
+almost all the fun goodies um from you
+
+00:19:55.200 --> 00:19:56.480
+know defund
+
+00:19:56.480 --> 00:20:02.159
+secu
+
+00:20:02.159 --> 00:20:04.960
+um I want to get to my my thank yous let
+
+00:20:04.960 --> 00:20:05.440
+me just
+
+00:20:05.440 --> 00:20:18.840
+peek back at the pad
+
+00:20:18.840 --> 00:20:20.000
+oh
+
+00:20:20.000 --> 00:20:22.080
+well that was actually a scratch buffer
+
+00:20:22.080 --> 00:20:23.760
+so I'll have to sort of read it cold off
+
+00:20:23.760 --> 00:20:24.720
+my notes
+
+00:20:24.720 --> 00:20:27.919
+um
+
+00:20:27.919 --> 00:20:30.320
+but also but I'll switch to I'll also
+
+00:20:30.320 --> 00:20:31.600
+I'll say a couple of thank yous if you
+
+00:20:31.600 --> 00:20:34.320
+don't mind
+
+00:20:34.320 --> 00:20:36.080
+in addition to the big thank you that I
+
+00:20:36.080 --> 00:20:38.400
+hope was implied by my shout out to wasa
+
+00:20:38.400 --> 00:20:39.360
+masa
+
+00:20:39.360 --> 00:20:42.720
+um I also want to thank you amen for
+
+00:20:42.720 --> 00:20:46.640
+um your kindness in extending
+
+00:20:46.640 --> 00:20:51.360
+to the project as well as to me the
+
+00:20:51.360 --> 00:20:54.320
+the chance to present here and and and
+
+00:20:54.320 --> 00:20:55.440
+you've you've also
+
+00:20:55.440 --> 00:20:56.799
+just done a lot of great stuff for our
+
+00:20:56.799 --> 00:20:59.360
+project thank you very much for that and
+
+00:20:59.360 --> 00:21:13.120
+sasha
+
+00:21:13.120 --> 00:21:15.919
+I'll get there um thank you so much for
+
+00:21:15.919 --> 00:21:17.200
+the inspiration that you are to our
+
+00:21:17.200 --> 00:21:18.320
+whole community
+
+00:21:18.320 --> 00:21:22.400
+I also want to thank the presenters
+
+00:21:22.400 --> 00:21:25.600
+um for just being so flexible and
+
+00:21:25.600 --> 00:21:27.600
+uh nagging back through the whole thing
+
+00:21:27.600 --> 00:21:29.120
+and especially to leo
+
+00:21:29.120 --> 00:21:30.960
+who has done so much to drive the show
+
+00:21:30.960 --> 00:21:32.159
+today
+
+00:21:32.159 --> 00:21:35.520
+um I
+
+00:21:35.520 --> 00:21:37.840
+this is a fractious tent at times and
+
+00:21:37.840 --> 00:21:38.960
+sometimes
+
+00:21:38.960 --> 00:21:41.360
+it is indeed a little bit of a circus
+
+00:21:41.360 --> 00:21:43.039
+but I
+
+00:21:43.039 --> 00:21:45.520
+am learning so much so fast I'm just
+
+00:21:45.520 --> 00:21:46.880
+inspired by how much
+
+00:21:46.880 --> 00:21:50.320
+Emacs can teach us thank you
+
+00:21:50.320 --> 00:21:53.120
+uh corbin for your kind words and you
+
+00:21:53.120 --> 00:21:54.960
+know about me of course but all about
+
+00:21:54.960 --> 00:21:56.000
+you know all of us
+
+00:21:56.000 --> 00:21:59.760
+and the conference and you know indeed
+
+00:21:59.760 --> 00:22:02.400
+thanks to everyone who's helped uh
+
+00:22:02.400 --> 00:22:04.159
+including the speakers of course
+
+00:22:04.159 --> 00:22:05.840
+without whom you know a maxcom really
+
+00:22:05.840 --> 00:22:08.960
+wouldn't have been a EmacsConf
+
+00:22:08.960 --> 00:22:10.640
+and you know it's been a pleasure
+
+00:22:10.640 --> 00:22:12.080
+knowing you and working with
+
+00:22:12.080 --> 00:22:15.520
+you um I guess um from afar for the most
+
+00:22:15.520 --> 00:22:17.360
+part on dungeon mode like helping
+
+00:22:17.360 --> 00:22:18.960
+helping with like small things here and
+
+00:22:18.960 --> 00:22:20.720
+there but um
+
+00:22:20.720 --> 00:22:22.320
+yeah it's been my pleasure and it's
+
+00:22:22.320 --> 00:22:23.840
+great to have you and
+
+00:22:23.840 --> 00:22:25.840
+um everyone else you know part of the
+
+00:22:25.840 --> 00:22:26.880
+community and
+
+00:22:26.880 --> 00:22:29.440
+for me to be part of the community it's
+
+00:22:29.440 --> 00:22:30.559
+been a lot of fun
+
+00:22:30.559 --> 00:22:33.679
+thank you
+
+00:22:33.679 --> 00:22:36.080
+it's it's it's it's an honor and I don't
+
+00:22:36.080 --> 00:22:38.000
+use that word an awful lot because I
+
+00:22:38.000 --> 00:22:38.720
+sort of
+
+00:22:38.720 --> 00:22:41.760
+sort of smirk at it but um gets us in a
+
+00:22:41.760 --> 00:22:44.320
+lot of trouble honor does but
+
+00:22:44.320 --> 00:22:47.360
+this will be a sure time to use it thank
+
+00:22:47.360 --> 00:22:48.840
+you
+
+00:22:48.840 --> 00:22:51.840
+likewise
diff --git a/2020/subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.vtt b/2020/subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.vtt
new file mode 100644
index 00000000..e9bcd225
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.vtt
@@ -0,0 +1,3301 @@
+WEBVTT
+
+00:00:00.080 --> 00:00:02.639
+hi my name is eduardo x I'm this person
+
+00:00:02.639 --> 00:00:03.439
+here
+
+00:00:03.439 --> 00:00:06.240
+and the title of this talk is on why
+
+00:00:06.240 --> 00:00:07.120
+most of
+
+00:00:07.120 --> 00:00:09.519
+most of the best features in ev look
+
+00:00:09.519 --> 00:00:11.599
+like five minute hacks
+
+00:00:11.599 --> 00:00:13.759
+and this is a presentation at the max
+
+00:00:13.759 --> 00:00:15.280
+conf 2020
+
+00:00:15.280 --> 00:00:23.199
+happening in november 22 28 and 29 2020
+
+00:00:23.199 --> 00:00:25.519
+so this is part one of the presentation
+
+00:00:25.519 --> 00:00:27.680
+and here I'm going to explain some
+
+00:00:27.680 --> 00:00:29.840
+some ideas that are prerequisites for
+
+00:00:29.840 --> 00:00:31.039
+understanding the rest of the
+
+00:00:31.039 --> 00:00:32.320
+presentation
+
+00:00:32.320 --> 00:00:35.440
+the three main keys of ev are matay meta
+
+00:00:35.440 --> 00:00:35.760
+k
+
+00:00:35.760 --> 00:00:37.920
+and mata j and I'm going to start by
+
+00:00:37.920 --> 00:00:42.079
+explaining metae and meta k
+
+00:00:42.079 --> 00:00:44.960
+metae is used to follow hyperlink and
+
+00:00:44.960 --> 00:00:46.800
+technically it is
+
+00:00:46.800 --> 00:00:49.680
+essentially just a ctrl e to move to the
+
+00:00:49.680 --> 00:00:50.879
+end of the line and then
+
+00:00:50.879 --> 00:00:54.320
+a ctrl x control e to execute this the
+
+00:00:54.320 --> 00:00:58.960
+sext before point at the end of the line
+
+00:00:58.960 --> 00:01:00.879
+and the thing is that a max comes with
+
+00:01:00.879 --> 00:01:03.120
+many functions that can be used as sex
+
+00:01:03.120 --> 00:01:05.040
+hyperlinks
+
+00:01:05.040 --> 00:01:07.040
+we can consider that they point to
+
+00:01:07.040 --> 00:01:09.040
+somewhere I'm going to refer to that as
+
+00:01:09.040 --> 00:01:09.520
+the
+
+00:01:09.520 --> 00:01:11.920
+target of the hyperlink and if we
+
+00:01:11.920 --> 00:01:12.960
+execute this
+
+00:01:12.960 --> 00:01:15.759
+sex paper links would go to that target
+
+00:01:15.759 --> 00:01:17.119
+for example this one
+
+00:01:17.119 --> 00:01:20.000
+is a hyperlink that points to a buffer
+
+00:01:20.000 --> 00:01:22.720
+with demand paid for cat
+
+00:01:22.720 --> 00:01:25.040
+and usually but not always after
+
+00:01:25.040 --> 00:01:27.040
+following the hyperlink we can go back
+
+00:01:27.040 --> 00:01:29.840
+by just skilling the the current buffer
+
+00:01:29.840 --> 00:01:30.720
+that the hyperlink
+
+00:01:30.720 --> 00:01:34.400
+created the target of the hyperlink
+
+00:01:34.400 --> 00:01:38.000
+but this example here is badly behaved
+
+00:01:38.000 --> 00:01:41.360
+if we execute it it creates a new frame
+
+00:01:41.360 --> 00:01:43.360
+and to go back to the previous situation
+
+00:01:43.360 --> 00:01:44.640
+we have to either
+
+00:01:44.640 --> 00:01:52.840
+click here or type ctrl x50
+
+00:01:52.840 --> 00:01:54.880
+uh
+
+00:01:54.880 --> 00:01:57.520
+so here are some examples of sex
+
+00:01:57.520 --> 00:02:00.640
+hyperlinks using standard max functions
+
+00:02:00.640 --> 00:02:03.600
+this third one is uh badly behaved in a
+
+00:02:03.600 --> 00:02:04.880
+different way
+
+00:02:04.880 --> 00:02:08.879
+if executed we the target is created in
+
+00:02:08.879 --> 00:02:09.840
+the same window
+
+00:02:09.840 --> 00:02:13.840
+as we are now but it also shows a lot of
+
+00:02:13.840 --> 00:02:16.000
+garbage here in the aqua area so
+
+00:02:16.000 --> 00:02:20.840
+the the current frame becomes a bit
+
+00:02:20.840 --> 00:02:23.280
+messy
+
+00:02:23.280 --> 00:02:26.160
+and well one of the first things that I
+
+00:02:26.160 --> 00:02:28.319
+did when I was creating av
+
+00:02:28.319 --> 00:02:30.720
+many many years ago was that I created
+
+00:02:30.720 --> 00:02:31.680
+variants
+
+00:02:31.680 --> 00:02:34.840
+of all these functions that were better
+
+00:02:34.840 --> 00:02:36.640
+behaved
+
+00:02:36.640 --> 00:02:38.640
+and they were better behaved in two
+
+00:02:38.640 --> 00:02:40.480
+senses the obvious one
+
+00:02:40.480 --> 00:02:43.040
+was that they they all created the
+
+00:02:43.040 --> 00:02:43.680
+target
+
+00:02:43.680 --> 00:02:45.840
+in the same window as before so I could
+
+00:02:45.840 --> 00:02:48.720
+go back by just typing meta k
+
+00:02:48.720 --> 00:02:51.040
+which is essentially just killed this
+
+00:02:51.040 --> 00:02:52.879
+buffer
+
+00:02:52.879 --> 00:02:55.200
+and well but I also implemented
+
+00:02:55.200 --> 00:02:56.480
+something extra that
+
+00:02:56.480 --> 00:02:59.040
+are the post back lists for example for
+
+00:02:59.040 --> 00:02:59.840
+example these
+
+00:02:59.840 --> 00:03:03.599
+extra arguments here are a postback list
+
+00:03:03.599 --> 00:03:06.080
+and this extra arguments specify
+
+00:03:06.080 --> 00:03:09.599
+position and the target buffer
+
+00:03:09.599 --> 00:03:13.040
+and in this example this this spot
+
+00:03:13.040 --> 00:03:16.720
+spec list means starting from the from
+
+00:03:16.720 --> 00:03:18.239
+the beginning of the buffer
+
+00:03:18.239 --> 00:03:20.560
+search for the first occurrence of this
+
+00:03:20.560 --> 00:03:22.239
+string
+
+00:03:22.239 --> 00:03:24.159
+after that after the beginning of the
+
+00:03:24.159 --> 00:03:25.519
+buffer and then
+
+00:03:25.519 --> 00:03:28.159
+search for the first occurrence of this
+
+00:03:28.159 --> 00:03:29.120
+string
+
+00:03:29.120 --> 00:03:33.760
+after that
+
+00:03:33.760 --> 00:03:36.560
+eev also defines some hyperlinks that do
+
+00:03:36.560 --> 00:03:38.799
+not create new buffers
+
+00:03:38.799 --> 00:03:41.280
+uh here is the first example if I
+
+00:03:41.280 --> 00:03:41.840
+execute
+
+00:03:41.840 --> 00:03:45.920
+this one this one is a hyperlink to the
+
+00:03:45.920 --> 00:03:46.959
+to the result
+
+00:03:46.959 --> 00:03:50.720
+of running this show comment date uh
+
+00:03:50.720 --> 00:03:52.959
+but instead of showing the result in the
+
+00:03:52.959 --> 00:03:55.040
+new buffer the result is shown
+
+00:03:55.040 --> 00:03:58.959
+here so if execute to this type link
+
+00:03:58.959 --> 00:04:01.840
+the result of date the output of data is
+
+00:04:01.840 --> 00:04:04.239
+shown in the echo area and if executed
+
+00:04:04.239 --> 00:04:07.120
+again
+
+00:04:07.120 --> 00:04:09.519
+it shows the result again and the result
+
+00:04:09.519 --> 00:04:11.519
+changes every second
+
+00:04:11.519 --> 00:04:15.200
+and if so this is a variant
+
+00:04:15.200 --> 00:04:18.720
+of fine sh
+
+00:04:18.720 --> 00:04:21.840
+uh find sh0 is the variant that
+
+00:04:21.840 --> 00:04:24.960
+just shows the output in the echo area
+
+00:04:24.960 --> 00:04:28.080
+and find sh shows the output in
+
+00:04:28.080 --> 00:04:31.759
+a new buffer
+
+00:04:31.759 --> 00:04:35.919
+and here is an example of a hyperlink
+
+00:04:35.919 --> 00:04:37.520
+that
+
+00:04:37.520 --> 00:04:40.000
+calls an external program if execute
+
+00:04:40.000 --> 00:04:41.280
+this
+
+00:04:41.280 --> 00:04:43.759
+it it calls google chrome to open a
+
+00:04:43.759 --> 00:04:46.639
+certain url
+
+00:04:46.639 --> 00:04:51.520
+here it is let's go back to mx
+
+00:04:51.520 --> 00:04:55.280
+if execute this happening here
+
+00:04:55.280 --> 00:04:58.479
+it invokes my favorite pdf viewer which
+
+00:04:58.479 --> 00:04:58.880
+is
+
+00:04:58.880 --> 00:05:02.560
+xpdf it makes xpdf
+
+00:05:02.560 --> 00:05:07.759
+open this pdf page it is pdf
+
+00:05:07.759 --> 00:05:10.880
+in this page and this other arguments
+
+00:05:10.880 --> 00:05:15.199
+are ignored let me show how it works
+
+00:05:15.199 --> 00:05:19.120
+here it is this is a an accept from a
+
+00:05:19.120 --> 00:05:20.160
+book
+
+00:05:20.160 --> 00:05:22.639
+so page 3 and the pdf corresponds to
+
+00:05:22.639 --> 00:05:23.199
+page
+
+00:05:23.199 --> 00:05:26.400
+113 in the book and
+
+00:05:26.400 --> 00:05:29.360
+this variant here of the hyperlink above
+
+00:05:29.360 --> 00:05:31.759
+it opens the pdf in a different way
+
+00:05:31.759 --> 00:05:34.560
+it runs a program called pdf to text on
+
+00:05:34.560 --> 00:05:36.479
+this pdf here
+
+00:05:36.479 --> 00:05:39.600
+and max takes the output of
+
+00:05:39.600 --> 00:05:42.880
+run epd after text on this pdf here
+
+00:05:42.880 --> 00:05:46.080
+and displays it in a buffer and now this
+
+00:05:46.080 --> 00:05:47.280
+postback list
+
+00:05:47.280 --> 00:05:50.000
+is interpreted in a different way this
+
+00:05:50.000 --> 00:05:51.280
+thing is interpreted
+
+00:05:51.280 --> 00:05:54.400
+as a as a number of a page and a max
+
+00:05:54.400 --> 00:05:54.800
+goes
+
+00:05:54.800 --> 00:05:57.520
+to page three by counting form feeds in
+
+00:05:57.520 --> 00:05:58.240
+the
+
+00:05:58.240 --> 00:06:01.440
+converted version of the pdf and then it
+
+00:06:01.440 --> 00:06:03.039
+searches for this string
+
+00:06:03.039 --> 00:06:06.319
+and in this three so let's execute this
+
+00:06:06.319 --> 00:06:08.479
+to see what happens
+
+00:06:08.479 --> 00:06:10.800
+here it is I opened the same page as
+
+00:06:10.800 --> 00:06:14.800
+before
+
+00:06:14.800 --> 00:06:18.400
+it starts with lecture one so
+
+00:06:18.400 --> 00:06:20.720
+the other hyperlink searched for this
+
+00:06:20.720 --> 00:06:25.520
+string and for this string here
+
+00:06:25.520 --> 00:06:28.160
+uh and this thing here is a hyperlink to
+
+00:06:28.160 --> 00:06:30.400
+video
+
+00:06:30.400 --> 00:06:32.720
+and when I executed it's going to open
+
+00:06:32.720 --> 00:06:34.560
+this video here
+
+00:06:34.560 --> 00:06:37.759
+at this time this time stamp let's see
+
+00:06:37.759 --> 00:06:41.199
+one two three one
+
+00:06:41.199 --> 00:06:46.840
+two three that's the way to do
+
+00:06:46.840 --> 00:06:49.440
+it
+
+00:06:49.440 --> 00:06:52.560
+and also some hyperlinks that that I
+
+00:06:52.560 --> 00:06:53.680
+defined
+
+00:06:53.680 --> 00:06:56.479
+uh they don't work like like usual
+
+00:06:56.479 --> 00:06:58.160
+hyperlinks they work more
+
+00:06:58.160 --> 00:07:01.440
+like browser buttons
+
+00:07:01.440 --> 00:07:06.240
+these buttons that appear in web pages
+
+00:07:06.240 --> 00:07:09.120
+in the sense that these buttons usually
+
+00:07:09.120 --> 00:07:11.360
+don't open a new page they usually
+
+00:07:11.360 --> 00:07:13.280
+just do something to change the current
+
+00:07:13.280 --> 00:07:14.960
+page
+
+00:07:14.960 --> 00:07:18.160
+if I execute this the action of this
+
+00:07:18.160 --> 00:07:18.880
+function
+
+00:07:18.880 --> 00:07:22.240
+eek is to uh
+
+00:07:22.240 --> 00:07:24.800
+it interprets this string as a series of
+
+00:07:24.800 --> 00:07:25.919
+keys and it
+
+00:07:25.919 --> 00:07:28.840
+acts as if the user had typed all these
+
+00:07:28.840 --> 00:07:30.319
+keys so
+
+00:07:30.319 --> 00:07:33.680
+if executed I get a hello in the next
+
+00:07:33.680 --> 00:07:34.400
+line
+
+00:07:34.400 --> 00:07:36.639
+if executed again I get another hello
+
+00:07:36.639 --> 00:07:39.440
+another hello hello hello etc etc
+
+00:07:39.440 --> 00:07:44.319
+let me undo this mess oops
+
+00:07:44.319 --> 00:07:47.840
+and here is another kind of button
+
+00:07:47.840 --> 00:07:51.440
+that defines a new function if I execute
+
+00:07:51.440 --> 00:07:54.879
+this sex here at this moment though is
+
+00:07:54.879 --> 00:07:55.759
+not defined
+
+00:07:55.759 --> 00:07:57.919
+and if I execute this mx is going to
+
+00:07:57.919 --> 00:08:00.000
+show me a message saying
+
+00:08:00.000 --> 00:08:03.599
+uh symbols function cell is not defined
+
+00:08:03.599 --> 00:08:05.840
+something like this
+
+00:08:05.840 --> 00:08:09.520
+but if I execute the defund
+
+00:08:09.520 --> 00:08:12.960
+this the action of this function o here
+
+00:08:12.960 --> 00:08:16.479
+is to run this which opens a certain
+
+00:08:16.479 --> 00:08:18.960
+directory
+
+00:08:18.960 --> 00:08:21.840
+let me go back and here is another
+
+00:08:21.840 --> 00:08:23.039
+button that defines
+
+00:08:23.039 --> 00:08:25.840
+several functions at the same time if I
+
+00:08:25.840 --> 00:08:26.479
+execute
+
+00:08:26.479 --> 00:08:32.320
+this
+
+00:08:32.320 --> 00:08:35.599
+note that the the result of executing
+
+00:08:35.599 --> 00:08:36.719
+this expression
+
+00:08:36.719 --> 00:08:38.640
+is the name of one of the functions that
+
+00:08:38.640 --> 00:08:40.080
+it defined
+
+00:08:40.080 --> 00:08:42.800
+that is this one here and let me explain
+
+00:08:42.800 --> 00:08:43.360
+the
+
+00:08:43.360 --> 00:08:46.959
+these examples uh one of the functions
+
+00:08:46.959 --> 00:08:48.800
+that this thing here defined
+
+00:08:48.800 --> 00:08:51.839
+is called find or git file where
+
+00:08:51.839 --> 00:08:54.640
+this or gate in the middle of its name
+
+00:08:54.640 --> 00:08:55.040
+is
+
+00:08:55.040 --> 00:08:59.600
+exactly this first argument to code cd
+
+00:08:59.600 --> 00:09:02.640
+and the action of running find or get
+
+00:09:02.640 --> 00:09:03.120
+file
+
+00:09:03.120 --> 00:09:06.399
+on a string like this is that
+
+00:09:06.399 --> 00:09:09.680
+find or get file takes the string
+
+00:09:09.680 --> 00:09:13.360
+and prepends this string to it
+
+00:09:13.360 --> 00:09:15.600
+this one here which is the second
+
+00:09:15.600 --> 00:09:17.920
+argument to called cd
+
+00:09:17.920 --> 00:09:21.760
+and then it executes find flying
+
+00:09:21.760 --> 00:09:25.680
+on the result which is this one
+
+00:09:25.680 --> 00:09:28.320
+and fine flying is my variant of find
+
+00:09:28.320 --> 00:09:28.800
+file
+
+00:09:28.800 --> 00:09:32.080
+that supports both spec lists
+
+00:09:32.080 --> 00:09:36.880
+and this function here that I'm
+
+00:09:36.880 --> 00:09:39.600
+referring to as a button it also defines
+
+00:09:39.600 --> 00:09:41.200
+a function called
+
+00:09:41.200 --> 00:09:44.880
+find audit node here where the or gate
+
+00:09:44.880 --> 00:09:46.080
+is the same string
+
+00:09:46.080 --> 00:09:50.320
+as here and this function opens a node
+
+00:09:50.320 --> 00:09:54.160
+of of an info manual this one
+
+00:09:54.160 --> 00:09:57.920
+this text here opens this node in the
+
+00:09:57.920 --> 00:10:00.080
+org manual
+
+00:10:00.080 --> 00:10:03.519
+it is equivalent to this text here
+
+00:10:03.519 --> 00:10:06.800
+so in the passage from this line to this
+
+00:10:06.800 --> 00:10:08.720
+line we prepended
+
+00:10:08.720 --> 00:10:11.920
+to the node name the name of the manual
+
+00:10:11.920 --> 00:10:15.040
+here and find node is my variant
+
+00:10:15.040 --> 00:10:18.160
+of this standard mx function here
+
+00:10:18.160 --> 00:10:20.399
+but find node also supports post
+
+00:10:20.399 --> 00:10:23.519
+backlists
+
+00:10:23.519 --> 00:10:26.640
+eevee also defines some functions that
+
+00:10:26.640 --> 00:10:28.640
+define shorter hyperlinks to pdfs and
+
+00:10:28.640 --> 00:10:30.800
+videos
+
+00:10:30.800 --> 00:10:32.880
+remember that this thing here is a
+
+00:10:32.880 --> 00:10:34.720
+shorter hyperlink to a
+
+00:10:34.720 --> 00:10:37.120
+to a file and this thing here is a
+
+00:10:37.120 --> 00:10:39.040
+shorter hyperlink to a node and
+
+00:10:39.040 --> 00:10:43.200
+in an mx menu in an info manual
+
+00:10:43.200 --> 00:10:46.079
+uh if we run this thing here this code
+
+00:10:46.079 --> 00:10:47.279
+pdf page
+
+00:10:47.279 --> 00:10:50.240
+this acts like a button that defines a
+
+00:10:50.240 --> 00:10:52.880
+certain function
+
+00:10:52.880 --> 00:10:56.399
+and this string this other sex
+
+00:10:56.399 --> 00:10:59.040
+here defines another function the first
+
+00:10:59.040 --> 00:11:00.240
+one defines
+
+00:11:00.240 --> 00:11:03.040
+the function find funcspivac page and
+
+00:11:03.040 --> 00:11:05.360
+the second one defines the function find
+
+00:11:05.360 --> 00:11:09.279
+from text when we run the
+
+00:11:09.279 --> 00:11:12.240
+file when we run findfoxpivotpage it
+
+00:11:12.240 --> 00:11:13.440
+opens
+
+00:11:13.440 --> 00:11:17.600
+this pdf here the name is
+
+00:11:17.600 --> 00:11:20.640
+quite long uh
+
+00:11:20.640 --> 00:11:23.839
+this example opens this pdf at page 8
+
+00:11:23.839 --> 00:11:26.079
+and searches for the string contents
+
+00:11:26.079 --> 00:11:28.000
+oops sorry in this case
+
+00:11:28.000 --> 00:11:31.279
+in this case it just ignores this string
+
+00:11:31.279 --> 00:11:33.519
+here it only considers
+
+00:11:33.519 --> 00:11:37.360
+the number of the page let's try
+
+00:11:37.360 --> 00:11:42.640
+ah we got
+
+00:11:42.640 --> 00:11:45.200
+here it is uh the contents of a book
+
+00:11:45.200 --> 00:11:46.880
+that is freely
+
+00:11:46.880 --> 00:11:50.800
+available uh here is another page of the
+
+00:11:50.800 --> 00:11:51.760
+book
+
+00:11:51.760 --> 00:11:55.040
+and if we execute the this happening
+
+00:11:55.040 --> 00:11:55.519
+here
+
+00:11:55.519 --> 00:11:58.399
+find funk's pivot text it converts the
+
+00:11:58.399 --> 00:11:59.920
+pdf to text
+
+00:11:59.920 --> 00:12:03.040
+and it searches for the page eight
+
+00:12:03.040 --> 00:12:05.040
+in it and then for the string this
+
+00:12:05.040 --> 00:12:08.079
+string here in page eight
+
+00:12:08.079 --> 00:12:12.240
+it takes a few seconds
+
+00:12:12.240 --> 00:12:16.160
+here it is so this is the
+
+00:12:16.160 --> 00:12:20.320
+ascii version of this contents page
+
+00:12:20.320 --> 00:12:25.040
+here uh note that this block here
+
+00:12:25.040 --> 00:12:28.800
+is a kind of an index to that book
+
+00:12:28.800 --> 00:12:31.680
+uh I have the full index somewhere but
+
+00:12:31.680 --> 00:12:33.600
+it's very long so I just copied a few
+
+00:12:33.600 --> 00:12:34.959
+lines here
+
+00:12:34.959 --> 00:12:38.959
+uh so this is a link to the to set
+
+00:12:38.959 --> 00:12:42.160
+section one chapter one this is the
+
+00:12:42.160 --> 00:12:45.360
+section 1.1
+
+00:12:45.360 --> 00:12:48.959
+section 1.1.1 and so on
+
+00:12:48.959 --> 00:12:54.000
+and here is a link to the index
+
+00:12:54.000 --> 00:12:58.079
+and here is a part of my index
+
+00:12:58.079 --> 00:13:02.800
+of positions in the video that we just
+
+00:13:02.800 --> 00:13:03.279
+saw
+
+00:13:03.279 --> 00:13:05.760
+that I think that are especially
+
+00:13:05.760 --> 00:13:07.360
+relevant
+
+00:13:07.360 --> 00:13:10.639
+uh so this I believe
+
+00:13:10.639 --> 00:13:12.399
+hyperlink is a kind of a button that
+
+00:13:12.399 --> 00:13:14.160
+defines this function here
+
+00:13:14.160 --> 00:13:18.839
+find punch and punch into the video
+
+00:13:18.839 --> 00:13:27.600
+uh
+
+00:13:27.600 --> 00:13:31.440
+and we can also use this for video
+
+00:13:31.440 --> 00:13:33.360
+tutorials for example
+
+00:13:33.360 --> 00:13:37.200
+this is a very good tutorial on on magic
+
+00:13:37.200 --> 00:13:40.880
+if we execute this
+
+00:13:40.880 --> 00:13:42.560
+then these functions are going to be
+
+00:13:42.560 --> 00:13:44.800
+defined and these functions open
+
+00:13:44.800 --> 00:13:48.399
+this tutorial on magic
+
+00:13:48.399 --> 00:13:50.079
+these are some of the positions in the
+
+00:13:50.079 --> 00:13:51.839
+tutorial that I found especially
+
+00:13:51.839 --> 00:13:53.920
+especially relevant this is a very dense
+
+00:13:53.920 --> 00:13:55.600
+tutorial I had to take notes of
+
+00:13:55.600 --> 00:13:56.480
+everything
+
+00:13:56.480 --> 00:13:59.040
+and I had to watch everything things
+
+00:13:59.040 --> 00:14:00.800
+several times
+
+00:14:00.800 --> 00:14:03.440
+and for example this is a link to the
+
+00:14:03.440 --> 00:14:06.480
+position in the tutorial that explains
+
+00:14:06.480 --> 00:14:09.600
+uh how in space
+
+00:14:09.600 --> 00:14:12.880
+space max magic magic
+
+00:14:12.880 --> 00:14:17.600
+interprets space gs magic status
+
+00:14:17.600 --> 00:14:20.480
+let's see beginners space gs to initiate
+
+00:14:20.480 --> 00:14:22.320
+magic's git status
+
+00:14:22.320 --> 00:14:25.600
+uh you can also do that's it
+
+00:14:25.600 --> 00:14:28.800
+and here are some examples that I
+
+00:14:28.800 --> 00:14:32.160
+took from somewhere else the video
+
+00:14:32.160 --> 00:14:34.240
+tutorials from
+
+00:14:34.240 --> 00:14:43.519
+ralph koenig about org mode
+
+00:14:43.519 --> 00:14:45.519
+now let me show how the functions that
+
+00:14:45.519 --> 00:14:47.440
+define this router hyperlinks are
+
+00:14:47.440 --> 00:14:48.720
+implemented
+
+00:14:48.720 --> 00:14:51.199
+the standard ways in max to define
+
+00:14:51.199 --> 00:14:52.480
+functions that define
+
+00:14:52.480 --> 00:14:55.760
+other functions would be with macros uh
+
+00:14:55.760 --> 00:14:58.320
+let's see an example this is a standard
+
+00:14:58.320 --> 00:14:59.040
+function that
+
+00:14:59.040 --> 00:15:01.540
+defines new functions
+
+00:15:01.540 --> 00:15:02.959
+[Music]
+
+00:15:02.959 --> 00:15:06.959
+and if we execute it one of the res
+
+00:15:06.959 --> 00:15:09.040
+its result is the last function that it
+
+00:15:09.040 --> 00:15:10.160
+defined which is
+
+00:15:10.160 --> 00:15:13.920
+e-grief which is here
+
+00:15:13.920 --> 00:15:16.959
+it's implemented as a macro we can
+
+00:15:16.959 --> 00:15:19.360
+look at the result of macro expand which
+
+00:15:19.360 --> 00:15:20.880
+is going to show
+
+00:15:20.880 --> 00:15:23.519
+show us the result of of this of the
+
+00:15:23.519 --> 00:15:25.519
+expansion of this
+
+00:15:25.519 --> 00:15:28.000
+instead of expanding and executing it
+
+00:15:28.000 --> 00:15:28.959
+just
+
+00:15:28.959 --> 00:15:33.199
+expands and shows us the result
+
+00:15:33.199 --> 00:15:36.000
+here the result is a bit messy is too
+
+00:15:36.000 --> 00:15:37.600
+big for
+
+00:15:37.600 --> 00:15:40.959
+humans to understand but we can run
+
+00:15:40.959 --> 00:15:44.240
+this or this text here that takes that
+
+00:15:44.240 --> 00:15:47.519
+that result and pretty prints it
+
+00:15:47.519 --> 00:15:50.959
+so this is the pretty printed version of
+
+00:15:50.959 --> 00:15:54.000
+uh this macro here
+
+00:15:54.000 --> 00:15:57.600
+we can see that it defines
+
+00:15:57.600 --> 00:16:01.120
+several functions here
+
+00:16:01.120 --> 00:16:06.399
+for example this one
+
+00:16:06.399 --> 00:16:09.360
+and this just as a curiosity is a link
+
+00:16:09.360 --> 00:16:09.920
+to
+
+00:16:09.920 --> 00:16:13.839
+the definition of cld struct
+
+00:16:13.839 --> 00:16:16.880
+and note that the code is huge uh
+
+00:16:16.880 --> 00:16:19.199
+well it's very well commented but it's
+
+00:16:19.199 --> 00:16:20.079
+it has
+
+00:16:20.079 --> 00:16:23.759
+lots of special cases it has uh
+
+00:16:23.759 --> 00:16:26.959
+it supports lots of constructions and so
+
+00:16:26.959 --> 00:16:27.920
+it's huge and
+
+00:16:27.920 --> 00:16:30.639
+it's very difficult to understand I mean
+
+00:16:30.639 --> 00:16:33.360
+I found it very difficult to understand
+
+00:16:33.360 --> 00:16:35.040
+and here's a link to document the
+
+00:16:35.040 --> 00:16:37.759
+documentation of cld struct
+
+00:16:37.759 --> 00:16:42.000
+here in the manual for
+
+00:16:42.000 --> 00:16:46.000
+cl which is a kind of support for some
+
+00:16:46.000 --> 00:16:50.480
+features of common lisp in the max
+
+00:16:50.480 --> 00:16:53.600
+so let's compare this standard way of
+
+00:16:53.600 --> 00:16:54.639
+defining
+
+00:16:54.639 --> 00:16:56.560
+functions that define new functions
+
+00:16:56.560 --> 00:16:58.320
+which is with macros
+
+00:16:58.320 --> 00:17:01.680
+with this I'm going to use a slogan
+
+00:17:01.680 --> 00:17:04.160
+repeatedly the slogan is I am a very bad
+
+00:17:04.160 --> 00:17:06.319
+programmer
+
+00:17:06.319 --> 00:17:08.880
+I'm a very bad programmer so when I was
+
+00:17:08.880 --> 00:17:10.640
+trying to create functions that would
+
+00:17:10.640 --> 00:17:12.240
+define new functions
+
+00:17:12.240 --> 00:17:14.480
+I found it easier to generally generate
+
+00:17:14.480 --> 00:17:16.400
+this code as text
+
+00:17:16.400 --> 00:17:20.559
+and then run read and eval in it
+
+00:17:20.559 --> 00:17:23.199
+the code cd that we saw in the previous
+
+00:17:23.199 --> 00:17:24.640
+section
+
+00:17:24.640 --> 00:17:28.079
+we can see the the code that it produces
+
+00:17:28.079 --> 00:17:29.039
+by
+
+00:17:29.039 --> 00:17:31.039
+making a copy of this line and
+
+00:17:31.039 --> 00:17:33.280
+prepending this string here to the name
+
+00:17:33.280 --> 00:17:34.480
+of the function
+
+00:17:34.480 --> 00:17:36.720
+so instead of running code cd we run
+
+00:17:36.720 --> 00:17:38.400
+find code cd
+
+00:17:38.400 --> 00:17:41.280
+and it creates a new temporary buffer
+
+00:17:41.280 --> 00:17:44.400
+with the code that
+
+00:17:44.400 --> 00:17:47.760
+code cd would execute
+
+00:17:47.760 --> 00:17:50.320
+so it's a series of the fonts and a few
+
+00:17:50.320 --> 00:17:54.080
+set cues and so on
+
+00:17:54.080 --> 00:17:57.600
+and this thing is implemented mostly as
+
+00:17:57.600 --> 00:17:59.120
+a template
+
+00:17:59.120 --> 00:18:02.160
+uh the lola the
+
+00:18:02.160 --> 00:18:04.160
+there's an inner function called ee
+
+00:18:04.160 --> 00:18:06.240
+called cd base that receives just
+
+00:18:06.240 --> 00:18:08.799
+these two arguments and it says
+
+00:18:08.799 --> 00:18:10.640
+essentially just runs the function
+
+00:18:10.640 --> 00:18:14.320
+e template zero on the string here and
+
+00:18:14.320 --> 00:18:16.480
+the things between curly braces are
+
+00:18:16.480 --> 00:18:18.559
+substituted by the values
+
+00:18:18.559 --> 00:18:23.600
+of these arguments here
+
+00:18:23.600 --> 00:18:25.919
+there's one part of the tutorial here
+
+00:18:25.919 --> 00:18:28.480
+that explains all these things
+
+00:18:28.480 --> 00:18:31.039
+uh except for the rationale for some
+
+00:18:31.039 --> 00:18:32.559
+design decisions
+
+00:18:32.559 --> 00:18:35.360
+and those design decisions are one of
+
+00:18:35.360 --> 00:18:37.280
+the many motivations for this talk but
+
+00:18:37.280 --> 00:18:37.760
+um
+
+00:18:37.760 --> 00:18:39.679
+we are I'm only going to explain these
+
+00:18:39.679 --> 00:18:42.640
+things in detail at the end
+
+00:18:42.640 --> 00:18:48.480
+which is kind of so on
+
+00:18:48.480 --> 00:18:50.320
+in the beginning I said that the three
+
+00:18:50.320 --> 00:18:51.600
+main keys of av
+
+00:18:51.600 --> 00:18:56.000
+are meta e meta k and meta j
+
+00:18:56.000 --> 00:19:00.080
+let's see now what met what meta j does
+
+00:19:00.080 --> 00:19:01.520
+uh but I need to start with some
+
+00:19:01.520 --> 00:19:04.640
+motivation uh the motivation is that we
+
+00:19:04.640 --> 00:19:06.559
+can define commands with very short
+
+00:19:06.559 --> 00:19:08.240
+names and actually I became kind of
+
+00:19:08.240 --> 00:19:10.160
+addicted to that
+
+00:19:10.160 --> 00:19:13.200
+this is an example of the fund that
+
+00:19:13.200 --> 00:19:15.600
+defines a comment with a very short name
+
+00:19:15.600 --> 00:19:18.000
+its name is just one letter e
+
+00:19:18.000 --> 00:19:21.200
+and I can invoke you invoke it with meta
+
+00:19:21.200 --> 00:19:21.520
+x
+
+00:19:21.520 --> 00:19:24.720
+e if I type meta xp
+
+00:19:24.720 --> 00:19:27.360
+now it opens a latex file that I'm
+
+00:19:27.360 --> 00:19:31.130
+working on
+
+00:19:31.130 --> 00:19:32.559
+[Music]
+
+00:19:32.559 --> 00:19:35.200
+and I create most of my latex files
+
+00:19:35.200 --> 00:19:37.120
+using
+
+00:19:37.120 --> 00:19:39.200
+template template-based functions like
+
+00:19:39.200 --> 00:19:40.559
+the the
+
+00:19:40.559 --> 00:19:43.760
+implementation of code cd above and
+
+00:19:43.760 --> 00:19:46.559
+this template-based functions create
+
+00:19:46.559 --> 00:19:49.280
+files with extension.tag
+
+00:19:49.280 --> 00:19:51.280
+that start with a series of the fonts
+
+00:19:51.280 --> 00:19:53.919
+and comments for example
+
+00:19:53.919 --> 00:19:56.240
+let's look at this example here if I
+
+00:19:56.240 --> 00:19:58.320
+execute find the attack links with this
+
+00:19:58.320 --> 00:19:59.440
+argument
+
+00:19:59.440 --> 00:20:02.159
+uh it's going it's going to do several
+
+00:20:02.159 --> 00:20:03.440
+things for creating a
+
+00:20:03.440 --> 00:20:06.880
+file called slash tmp slash forward
+
+00:20:06.880 --> 00:20:08.320
+attack
+
+00:20:08.320 --> 00:20:11.200
+and the header of that file is going to
+
+00:20:11.200 --> 00:20:12.400
+be this
+
+00:20:12.400 --> 00:20:16.080
+which starts with two and with three
+
+00:20:16.080 --> 00:20:19.280
+the fonts with functions with very short
+
+00:20:19.280 --> 00:20:21.919
+names and comments
+
+00:20:21.919 --> 00:20:27.520
+let's compare with the situation here
+
+00:20:27.520 --> 00:20:32.799
+in my file 2020 favorite conventions.tag
+
+00:20:32.799 --> 00:20:34.640
+I have this header here in which I
+
+00:20:34.640 --> 00:20:37.039
+define six functions with very short
+
+00:20:37.039 --> 00:20:39.360
+names
+
+00:20:39.360 --> 00:20:41.919
+and in this case here that is even
+
+00:20:41.919 --> 00:20:44.799
+explained in the tutorial
+
+00:20:44.799 --> 00:20:48.000
+this we have mnemonics for
+
+00:20:48.000 --> 00:20:51.520
+these short names here and c is compile
+
+00:20:51.520 --> 00:20:54.799
+d is display I mean display the pdf
+
+00:20:54.799 --> 00:20:57.760
+and e is added in the sense of make a
+
+00:20:57.760 --> 00:20:58.159
+max
+
+00:20:58.159 --> 00:21:02.320
+visit that file
+
+00:21:02.320 --> 00:21:05.039
+okay now I can explain what is meta j
+
+00:21:05.039 --> 00:21:06.480
+itself
+
+00:21:06.480 --> 00:21:08.880
+uh we just saw comments with very short
+
+00:21:08.880 --> 00:21:09.600
+names
+
+00:21:09.600 --> 00:21:12.320
+and the idea is behind meta j is that we
+
+00:21:12.320 --> 00:21:14.840
+can define comments with very short
+
+00:21:14.840 --> 00:21:16.480
+numbers
+
+00:21:16.480 --> 00:21:19.679
+let me explain this uh
+
+00:21:19.679 --> 00:21:22.559
+the short explanation for what meta j
+
+00:21:22.559 --> 00:21:23.039
+does
+
+00:21:23.039 --> 00:21:25.360
+is that it jumps to set certain
+
+00:21:25.360 --> 00:21:27.039
+predefined places
+
+00:21:27.039 --> 00:21:29.760
+in particular a meta j without a numeric
+
+00:21:29.760 --> 00:21:30.799
+argument
+
+00:21:30.799 --> 00:21:33.280
+takes us to a buffer with with the basic
+
+00:21:33.280 --> 00:21:34.080
+help
+
+00:21:34.080 --> 00:21:37.679
+and a list of the current age of targets
+
+00:21:37.679 --> 00:21:39.760
+and this is something that is a bit
+
+00:21:39.760 --> 00:21:41.520
+simpler to understand
+
+00:21:41.520 --> 00:21:44.559
+if we type meta five meta j
+
+00:21:44.559 --> 00:21:47.919
+then meta j runs this sex
+
+00:21:47.919 --> 00:21:51.120
+here that is associated to
+
+00:21:51.120 --> 00:21:55.440
+the argument five I say that the target
+
+00:21:55.440 --> 00:21:59.039
+for the argument five is this one
+
+00:21:59.039 --> 00:22:01.520
+and if the argument is true then the
+
+00:22:01.520 --> 00:22:03.760
+target associated to the to the true
+
+00:22:03.760 --> 00:22:07.039
+is this sex here that opens
+
+00:22:07.039 --> 00:22:09.600
+well this one opens the main tutorial vv
+
+00:22:09.600 --> 00:22:10.240
+and this one
+
+00:22:10.240 --> 00:22:13.679
+opens another tutorial
+
+00:22:13.679 --> 00:22:15.679
+this is a link to one of the tutorials
+
+00:22:15.679 --> 00:22:20.480
+of ev to the part that explains meta j
+
+00:22:20.480 --> 00:22:22.559
+I've copied the the main part of the
+
+00:22:22.559 --> 00:22:24.559
+text here
+
+00:22:24.559 --> 00:22:28.159
+the header the header that meta j shows
+
+00:22:28.159 --> 00:22:31.360
+let me show it very quickly here
+
+00:22:31.360 --> 00:22:33.919
+here is their header and here is their
+
+00:22:33.919 --> 00:22:36.320
+rest
+
+00:22:36.320 --> 00:22:39.039
+the header is very beginner friendly and
+
+00:22:39.039 --> 00:22:40.000
+if you're a beginner
+
+00:22:40.000 --> 00:22:42.159
+who only knows how to use meta e to
+
+00:22:42.159 --> 00:22:44.559
+execute and met
+
+00:22:44.559 --> 00:22:46.799
+this should be okay and meta k to go
+
+00:22:46.799 --> 00:22:48.240
+back
+
+00:22:48.240 --> 00:22:52.320
+then you can and should use that header
+
+00:22:52.320 --> 00:22:56.720
+I mean this header here
+
+00:22:56.720 --> 00:22:59.360
+as your main starting point and every
+
+00:22:59.360 --> 00:23:00.799
+time that you feel lost
+
+00:23:00.799 --> 00:23:03.679
+you can type meta j and to go back to
+
+00:23:03.679 --> 00:23:04.799
+that header
+
+00:23:04.799 --> 00:23:07.039
+and you can use its links to navigate to
+
+00:23:07.039 --> 00:23:08.000
+the documentation
+
+00:23:08.000 --> 00:23:11.360
+for max nav let me explain that
+
+00:23:11.360 --> 00:23:14.799
+uh this header here has several ellis
+
+00:23:14.799 --> 00:23:15.679
+hyperlinks
+
+00:23:15.679 --> 00:23:19.039
+one here one here
+
+00:23:19.039 --> 00:23:22.400
+one here one here and so on
+
+00:23:22.400 --> 00:23:25.760
+uh these ones are links to the
+
+00:23:25.760 --> 00:23:29.280
+to the intros which are the tutorials
+
+00:23:29.280 --> 00:23:30.880
+find if you quick enter in the main
+
+00:23:30.880 --> 00:23:32.480
+tutorial and find ev
+
+00:23:32.480 --> 00:23:35.760
+keys intro is a kind of tutorial that is
+
+00:23:35.760 --> 00:23:36.720
+an index of
+
+00:23:36.720 --> 00:23:40.000
+the main keys
+
+00:23:40.000 --> 00:23:42.559
+and after that we have an explanation of
+
+00:23:42.559 --> 00:23:43.279
+what some
+
+00:23:43.279 --> 00:23:46.799
+numeric prefixes do so if we type
+
+00:23:46.799 --> 00:23:50.240
+met one method j the effect of that is
+
+00:23:50.240 --> 00:23:53.200
+exactly the same as executing this and
+
+00:23:53.200 --> 00:23:54.640
+we can execute this
+
+00:23:54.640 --> 00:24:00.159
+with meta e also
+
+00:24:00.159 --> 00:24:03.679
+meta tube meta j runs this sex and
+
+00:24:03.679 --> 00:24:06.960
+I can also execute it with meta e
+
+00:24:06.960 --> 00:24:10.559
+here it is it's this uh
+
+00:24:10.559 --> 00:24:14.240
+intro this uh
+
+00:24:14.240 --> 00:24:18.400
+sandbox tutorial and
+
+00:24:18.400 --> 00:24:24.640
+here is another sandbox tutorial
+
+00:24:24.640 --> 00:24:27.039
+let me go back and then the
+
+00:24:27.039 --> 00:24:28.720
+documentation says that
+
+00:24:28.720 --> 00:24:30.880
+that header the header that is beginner
+
+00:24:30.880 --> 00:24:31.760
+friendly
+
+00:24:31.760 --> 00:24:33.679
+is followed by a section that is very
+
+00:24:33.679 --> 00:24:35.520
+beginner unfriendly
+
+00:24:35.520 --> 00:24:37.600
+that contains a series of the fonts like
+
+00:24:37.600 --> 00:24:40.400
+these ones
+
+00:24:40.400 --> 00:24:43.440
+here the last line of the header is this
+
+00:24:43.440 --> 00:24:44.640
+comment here
+
+00:24:44.640 --> 00:24:46.720
+and then we have several defense like
+
+00:24:46.720 --> 00:24:48.559
+this
+
+00:24:48.559 --> 00:24:51.440
+let me explain how these things work
+
+00:24:51.440 --> 00:24:53.840
+technically what happens when we type
+
+00:24:53.840 --> 00:24:57.360
+meta j without any arguments is that it
+
+00:24:57.360 --> 00:24:57.840
+runs
+
+00:24:57.840 --> 00:25:00.960
+eu jump with argument neil and then
+
+00:25:00.960 --> 00:25:04.640
+this runs 5 e jumps
+
+00:25:04.640 --> 00:25:06.480
+when I run meta j with a numeric
+
+00:25:06.480 --> 00:25:08.000
+argument for example
+
+00:25:08.000 --> 00:25:11.120
+with argument 5 it runs a jump
+
+00:25:11.120 --> 00:25:14.400
+5 and e jump five
+
+00:25:14.400 --> 00:25:17.679
+uh concatenates this five one
+
+00:25:17.679 --> 00:25:20.400
+to make a name of a function this
+
+00:25:20.400 --> 00:25:21.679
+function here
+
+00:25:21.679 --> 00:25:24.320
+and it executes this function e jump
+
+00:25:24.320 --> 00:25:24.720
+five
+
+00:25:24.720 --> 00:25:28.880
+you jump uh dash five
+
+00:25:28.880 --> 00:25:31.919
+and eu jump dash five is
+
+00:25:31.919 --> 00:25:35.520
+executes find ev equity intro
+
+00:25:35.520 --> 00:25:39.360
+if I execute just meta j
+
+00:25:39.360 --> 00:25:41.440
+the section that shows the current age
+
+00:25:41.440 --> 00:25:43.919
+on targets
+
+00:25:43.919 --> 00:25:47.120
+has a line for e job five this is that
+
+00:25:47.120 --> 00:25:48.159
+is exactly the
+
+00:25:48.159 --> 00:25:52.400
+thing that I was explaining before
+
+00:25:52.400 --> 00:25:54.840
+so we can use meta j to navigate the
+
+00:25:54.840 --> 00:25:59.520
+tutorials and we can copy the links
+
+00:25:59.520 --> 00:26:03.440
+sorry we can copy links to the to
+
+00:26:03.440 --> 00:26:07.919
+tutorials to our notes
+
+00:26:07.919 --> 00:26:11.840
+oh sorry this has some typos
+
+00:26:11.840 --> 00:26:14.880
+for example if I execute this
+
+00:26:14.880 --> 00:26:18.080
+I go to a section of this tutorial here
+
+00:26:18.080 --> 00:26:20.640
+that explains the main keys of ev
+
+00:26:20.640 --> 00:26:24.320
+and these things are hyperlinks I can
+
+00:26:24.320 --> 00:26:26.240
+mark a hyperlink like this it is just
+
+00:26:26.240 --> 00:26:27.440
+plain text and I
+
+00:26:27.440 --> 00:26:30.559
+can copy it to my notes and the idea is
+
+00:26:30.559 --> 00:26:31.760
+that every time
+
+00:26:31.760 --> 00:26:33.520
+every time that I find something that is
+
+00:26:33.520 --> 00:26:35.520
+interesting I can create a hyperlink to
+
+00:26:35.520 --> 00:26:36.240
+it
+
+00:26:36.240 --> 00:26:38.720
+and I can put these links in my notes so
+
+00:26:38.720 --> 00:26:40.799
+I can navigate back
+
+00:26:40.799 --> 00:26:42.960
+to all the interesting positions very
+
+00:26:42.960 --> 00:26:48.799
+quickly
+
+00:26:48.799 --> 00:26:51.760
+okay next feature if we type meta
+
+00:26:51.760 --> 00:26:54.080
+uppercase j
+
+00:26:54.080 --> 00:26:57.600
+uh then
+
+00:26:57.600 --> 00:27:00.080
+this this is a function that transforms
+
+00:27:00.080 --> 00:27:03.679
+the current line in a certain way
+
+00:27:03.679 --> 00:27:06.080
+let me give an example let me isolate
+
+00:27:06.080 --> 00:27:07.360
+this and let me create
+
+00:27:07.360 --> 00:27:09.919
+duplicate this line to to make clear
+
+00:27:09.919 --> 00:27:11.039
+what happens
+
+00:27:11.039 --> 00:27:14.240
+if I type meta uppercase j here
+
+00:27:14.240 --> 00:27:16.880
+this line here becomes the fund for a
+
+00:27:16.880 --> 00:27:17.440
+jump
+
+00:27:17.440 --> 00:27:21.200
+6 and the target of this e-jump
+
+00:27:21.200 --> 00:27:24.799
+is exactly this sex here
+
+00:27:24.799 --> 00:27:28.559
+let me undo this mess
+
+00:27:28.559 --> 00:27:31.360
+and if the first word in the line is not
+
+00:27:31.360 --> 00:27:32.840
+a number for example
+
+00:27:32.840 --> 00:27:36.240
+here let me do the same thing
+
+00:27:36.240 --> 00:27:39.039
+duplicate the line and type meta
+
+00:27:39.039 --> 00:27:41.200
+uppercase j
+
+00:27:41.200 --> 00:27:44.240
+then mat uppercase j converts that to a
+
+00:27:44.240 --> 00:27:45.600
+defund that defines
+
+00:27:45.600 --> 00:27:49.440
+a function with a very short name
+
+00:27:49.440 --> 00:27:52.720
+and this function with a very short name
+
+00:27:52.720 --> 00:27:56.720
+opens this file here in the directory
+
+00:27:56.720 --> 00:27:59.360
+with the copy of the the git repository
+
+00:27:59.360 --> 00:28:01.360
+for org mode
+
+00:28:01.360 --> 00:28:05.360
+let me undo the mass again
+
+00:28:05.360 --> 00:28:09.120
+oops
+
+00:28:09.120 --> 00:28:14.640
+that's it
+
+00:28:14.640 --> 00:28:17.760
+meta uppercase j is a
+
+00:28:17.760 --> 00:28:21.279
+particular case of of something that
+
+00:28:21.279 --> 00:28:24.559
+I use a lot in eevee I have if he has
+
+00:28:24.559 --> 00:28:25.279
+lots of
+
+00:28:25.279 --> 00:28:28.799
+comments that sorry key sequences
+
+00:28:28.799 --> 00:28:31.780
+that are like meta uppercase letter and
+
+00:28:31.780 --> 00:28:33.200
+[Music]
+
+00:28:33.200 --> 00:28:35.279
+almost all of them operate on the
+
+00:28:35.279 --> 00:28:37.279
+current line and transform the current
+
+00:28:37.279 --> 00:28:38.880
+line in certain way
+
+00:28:38.880 --> 00:28:42.000
+for example this is a file name
+
+00:28:42.000 --> 00:28:45.360
+and if I type meta uppercase f here
+
+00:28:45.360 --> 00:28:48.640
+it becomes a link to that file this is
+
+00:28:48.640 --> 00:28:50.000
+the name of a month page
+
+00:28:50.000 --> 00:28:53.600
+and if I type meta uppercase m here
+
+00:28:53.600 --> 00:28:55.760
+it converts that to the link to a month
+
+00:28:55.760 --> 00:28:58.080
+page and this is a shell command
+
+00:28:58.080 --> 00:29:01.679
+and if I type meta uppercase s here
+
+00:29:01.679 --> 00:29:04.960
+it converts that to a link to a
+
+00:29:04.960 --> 00:29:08.720
+to find fan shell
+
+00:29:08.720 --> 00:29:11.919
+and until a few years ago these
+
+00:29:11.919 --> 00:29:12.960
+functions
+
+00:29:12.960 --> 00:29:16.159
+with matter uppercase letter were half
+
+00:29:16.159 --> 00:29:18.080
+of my main ways of creating sex
+
+00:29:18.080 --> 00:29:18.880
+hyperlinks
+
+00:29:18.880 --> 00:29:21.039
+with few key strokes in the beginning of
+
+00:29:21.039 --> 00:29:22.399
+course I had to create my
+
+00:29:22.399 --> 00:29:25.600
+sex pipelines by typing each character
+
+00:29:25.600 --> 00:29:28.640
+but uh after some time and decided that
+
+00:29:28.640 --> 00:29:31.520
+I needed something more efficient
+
+00:29:31.520 --> 00:29:34.559
+so this is end of part one of the two of
+
+00:29:34.559 --> 00:29:34.960
+the
+
+00:29:34.960 --> 00:29:38.480
+presentation
+
+00:29:38.480 --> 00:29:40.640
+so this is part two of the presentation
+
+00:29:40.640 --> 00:29:41.760
+and the main theme
+
+00:29:41.760 --> 00:29:44.320
+here is the standard describe key
+
+00:29:44.320 --> 00:29:46.320
+function that comes with the max
+
+00:29:46.320 --> 00:29:49.200
+and my variant of it the thing is that
+
+00:29:49.200 --> 00:29:50.960
+the standard described key in max
+
+00:29:50.960 --> 00:29:53.120
+is user friendly but it is hacker
+
+00:29:53.120 --> 00:29:55.600
+unfriendly well I felt so
+
+00:29:55.600 --> 00:29:58.559
+and when I tried to complement it by by
+
+00:29:58.559 --> 00:30:00.799
+writing a hacker friendly version of it
+
+00:30:00.799 --> 00:30:03.120
+that produced the sex hyperlinks that I
+
+00:30:03.120 --> 00:30:03.919
+needed
+
+00:30:03.919 --> 00:30:05.440
+I got something that I found really
+
+00:30:05.440 --> 00:30:07.039
+lovely and
+
+00:30:07.039 --> 00:30:09.679
+several of the main designs design
+
+00:30:09.679 --> 00:30:12.480
+decisions of eev can be seen there
+
+00:30:12.480 --> 00:30:14.320
+but when I showed my variants to other
+
+00:30:14.320 --> 00:30:15.520
+people they hated it
+
+00:30:15.520 --> 00:30:17.760
+they felt that it was totally against
+
+00:30:17.760 --> 00:30:19.360
+their notions of
+
+00:30:19.360 --> 00:30:23.440
+user friendliness
+
+00:30:23.440 --> 00:30:25.760
+okay so let's see the standard describe
+
+00:30:25.760 --> 00:30:26.799
+key if I run
+
+00:30:26.799 --> 00:30:30.159
+this hyperlink here I get
+
+00:30:30.159 --> 00:30:32.399
+this the result of running the scribe
+
+00:30:32.399 --> 00:30:34.399
+key on the key down
+
+00:30:34.399 --> 00:30:36.399
+and this is a big buffer with some
+
+00:30:36.399 --> 00:30:38.080
+things in italics
+
+00:30:38.080 --> 00:30:41.360
+and some hyperlinks here these
+
+00:30:41.360 --> 00:30:43.120
+hyperlinks are standard in the sense
+
+00:30:43.120 --> 00:30:43.679
+that
+
+00:30:43.679 --> 00:30:46.240
+the targets are not visible and they are
+
+00:30:46.240 --> 00:30:47.760
+implemented using
+
+00:30:47.760 --> 00:30:50.799
+buttons in a max lisp this section of
+
+00:30:50.799 --> 00:30:51.200
+the
+
+00:30:51.200 --> 00:30:53.919
+mx list manual describes how buttons
+
+00:30:53.919 --> 00:30:56.799
+work
+
+00:30:56.799 --> 00:31:00.640
+and the the source code is
+
+00:31:00.640 --> 00:31:03.440
+quite difficult I mean when I was
+
+00:31:03.440 --> 00:31:04.240
+starting to
+
+00:31:04.240 --> 00:31:06.559
+to try to decipher this when I was a
+
+00:31:06.559 --> 00:31:07.600
+beginner
+
+00:31:07.600 --> 00:31:11.200
+using max 19.34 I felt that this
+
+00:31:11.200 --> 00:31:12.320
+described key was
+
+00:31:12.320 --> 00:31:15.519
+very difficult to understand uh
+
+00:31:15.519 --> 00:31:20.080
+and I felt that the the designers the
+
+00:31:20.080 --> 00:31:22.640
+the people who wrote it were sacrificing
+
+00:31:22.640 --> 00:31:23.679
+too much of the
+
+00:31:23.679 --> 00:31:26.159
+hacker friendliness that I was expecting
+
+00:31:26.159 --> 00:31:31.279
+from it to make it beginner friendly
+
+00:31:31.279 --> 00:31:33.600
+let me explain what are the the problems
+
+00:31:33.600 --> 00:31:34.799
+with the standard
+
+00:31:34.799 --> 00:31:36.559
+the describe key if we think that
+
+00:31:36.559 --> 00:31:38.640
+hyperlinks are things like this
+
+00:31:38.640 --> 00:31:41.600
+with the target and the text then in the
+
+00:31:41.600 --> 00:31:43.600
+button hyperlinks of describe key
+
+00:31:43.600 --> 00:31:47.120
+this three bad things happen first
+
+00:31:47.120 --> 00:31:49.120
+it is hard to extract the target from
+
+00:31:49.120 --> 00:31:51.200
+the hyperlink second it is hard to
+
+00:31:51.200 --> 00:31:52.000
+recreate
+
+00:31:52.000 --> 00:31:54.480
+a list of code that would go to that
+
+00:31:54.480 --> 00:31:55.440
+target
+
+00:31:55.440 --> 00:31:57.519
+and third it is hard to copy the full
+
+00:31:57.519 --> 00:31:59.840
+hyperlink including the targets to other
+
+00:31:59.840 --> 00:32:00.640
+buffers
+
+00:32:00.640 --> 00:32:04.960
+I only knew how to copy the text
+
+00:32:04.960 --> 00:32:07.279
+when I was trying to decipher what
+
+00:32:07.279 --> 00:32:09.039
+described key was doing
+
+00:32:09.039 --> 00:32:11.679
+I created lots of hyperlinks like this
+
+00:32:11.679 --> 00:32:12.159
+to
+
+00:32:12.159 --> 00:32:14.960
+inspect the text properties and things
+
+00:32:14.960 --> 00:32:16.159
+like that
+
+00:32:16.159 --> 00:32:18.480
+for example in the description of the
+
+00:32:18.480 --> 00:32:20.000
+key down
+
+00:32:20.000 --> 00:32:23.600
+here we have a button that points to
+
+00:32:23.600 --> 00:32:26.799
+simple dotel
+
+00:32:26.799 --> 00:32:29.679
+the text of that button is simple.l this
+
+00:32:29.679 --> 00:32:31.600
+hyperlinks goes to the
+
+00:32:31.600 --> 00:32:34.320
+to the middle of this button hyperlink
+
+00:32:34.320 --> 00:32:35.519
+here
+
+00:32:35.519 --> 00:32:39.120
+uh this hyperlink here
+
+00:32:39.120 --> 00:32:41.919
+goes to the middle of the button of this
+
+00:32:41.919 --> 00:32:43.279
+button hyperlink
+
+00:32:43.279 --> 00:32:46.240
+and then inspects its text properties
+
+00:32:46.240 --> 00:32:47.679
+and then goes to
+
+00:32:47.679 --> 00:32:51.679
+this section here of the description
+
+00:32:51.679 --> 00:32:53.679
+so this is a high level description of
+
+00:32:53.679 --> 00:32:56.159
+the text properties
+
+00:32:56.159 --> 00:32:58.000
+I mean the text properties that make it
+
+00:32:58.000 --> 00:33:00.000
+a button and this is a
+
+00:33:00.000 --> 00:33:02.480
+lower level description of the these
+
+00:33:02.480 --> 00:33:04.320
+text properties
+
+00:33:04.320 --> 00:33:08.000
+and the button that points to
+
+00:33:08.000 --> 00:33:11.440
+forward line sorry the the button that
+
+00:33:11.440 --> 00:33:11.919
+whose
+
+00:33:11.919 --> 00:33:14.399
+text is forward line this one is
+
+00:33:14.399 --> 00:33:16.480
+slightly different
+
+00:33:16.480 --> 00:33:19.039
+this hyperlink here goes to the middle
+
+00:33:19.039 --> 00:33:21.200
+of that button
+
+00:33:21.200 --> 00:33:24.559
+and this hyperlink goes to the mid to
+
+00:33:24.559 --> 00:33:25.760
+the middle of that button
+
+00:33:25.760 --> 00:33:28.559
+inspects its text properties and go to
+
+00:33:28.559 --> 00:33:29.360
+the section
+
+00:33:29.360 --> 00:33:32.559
+of this button of this help
+
+00:33:32.559 --> 00:33:35.760
+uh buffer here that describe the the
+
+00:33:35.760 --> 00:33:36.399
+button
+
+00:33:36.399 --> 00:33:39.120
+and the lower level view of the text
+
+00:33:39.120 --> 00:33:41.679
+properties
+
+00:33:41.679 --> 00:33:45.519
+so I started to with things like this
+
+00:33:45.519 --> 00:33:47.519
+to understand what these buttons were
+
+00:33:47.519 --> 00:33:50.159
+doing and I was able to figure out how
+
+00:33:50.159 --> 00:33:50.960
+these things are
+
+00:33:50.960 --> 00:33:53.120
+implemented and describe key and then
+
+00:33:53.120 --> 00:33:55.519
+similar help functions in max
+
+00:33:55.519 --> 00:33:57.760
+and I discovered that one of the main
+
+00:33:57.760 --> 00:34:00.000
+lower level functions that a max used
+
+00:34:00.000 --> 00:34:01.360
+for this
+
+00:34:01.360 --> 00:34:04.080
+is a function called find function no
+
+00:34:04.080 --> 00:34:05.279
+select
+
+00:34:05.279 --> 00:34:08.240
+if I run find function no select on next
+
+00:34:08.240 --> 00:34:09.929
+line
+
+00:34:09.929 --> 00:34:11.200
+[Music]
+
+00:34:11.200 --> 00:34:14.240
+it returns a pair
+
+00:34:14.240 --> 00:34:18.079
+a cons made of a buffer and a position
+
+00:34:18.079 --> 00:34:20.560
+so I created functions that would that
+
+00:34:20.560 --> 00:34:21.679
+would
+
+00:34:21.679 --> 00:34:24.320
+uh follow this that would open that
+
+00:34:24.320 --> 00:34:25.119
+buffer
+
+00:34:25.119 --> 00:34:28.320
+in that position and then this is a
+
+00:34:28.320 --> 00:34:29.679
+postback list
+
+00:34:29.679 --> 00:34:31.679
+so we could go to these positions and
+
+00:34:31.679 --> 00:34:33.919
+then search for this string and another
+
+00:34:33.919 --> 00:34:36.000
+string and another string and so on
+
+00:34:36.000 --> 00:34:40.320
+so this goes to the definition of find a
+
+00:34:40.320 --> 00:34:41.040
+function
+
+00:34:41.040 --> 00:34:44.159
+and then to a to a string
+
+00:34:44.159 --> 00:34:47.919
+after it and I use these things to
+
+00:34:47.919 --> 00:34:49.040
+implement my own
+
+00:34:49.040 --> 00:34:51.839
+functions that pointed to the same the
+
+00:34:51.839 --> 00:34:52.960
+same targets
+
+00:34:52.960 --> 00:34:55.440
+as the button hyperlinks and describe
+
+00:34:55.440 --> 00:35:00.240
+key
+
+00:35:00.240 --> 00:35:03.200
+again let me show the comparison this is
+
+00:35:03.200 --> 00:35:05.599
+the standard describe key
+
+00:35:05.599 --> 00:35:10.480
+here and this is my variant
+
+00:35:10.480 --> 00:35:13.839
+uh it creates a buffer with links
+
+00:35:13.839 --> 00:35:17.680
+with the list hyperlinks about this key
+
+00:35:17.680 --> 00:35:20.960
+we get this so each one of these
+
+00:35:20.960 --> 00:35:22.960
+functions is either a blank line
+
+00:35:22.960 --> 00:35:28.720
+or a or an ellipse hyperlink
+
+00:35:28.720 --> 00:35:31.760
+here is a slight variant of the of the
+
+00:35:31.760 --> 00:35:32.880
+function
+
+00:35:32.880 --> 00:35:35.920
+find e key links above in this variant
+
+00:35:35.920 --> 00:35:38.079
+the argument is a string that has to be
+
+00:35:38.079 --> 00:35:39.280
+processed by
+
+00:35:39.280 --> 00:35:42.400
+read cbd macro to convert it to the
+
+00:35:42.400 --> 00:35:45.280
+lower level format
+
+00:35:45.280 --> 00:35:48.160
+and note that these functions here that
+
+00:35:48.160 --> 00:35:49.040
+I wrote
+
+00:35:49.040 --> 00:35:51.440
+they display temporary buffers with no
+
+00:35:51.440 --> 00:35:53.599
+help at all
+
+00:35:53.599 --> 00:35:57.359
+uh to be honest there's a link to a
+
+00:35:57.359 --> 00:35:58.560
+tutorial here but
+
+00:35:58.560 --> 00:36:01.680
+this is a recent edition so let's ignore
+
+00:36:01.680 --> 00:36:03.200
+this
+
+00:36:03.200 --> 00:36:06.640
+uh they they display temporary buffers
+
+00:36:06.640 --> 00:36:08.320
+with no help at all just lots of
+
+00:36:08.320 --> 00:36:09.520
+hyperlinks
+
+00:36:09.520 --> 00:36:11.599
+and these hyperlinks can be they are
+
+00:36:11.599 --> 00:36:13.359
+very hacker friendly in the sense that
+
+00:36:13.359 --> 00:36:15.040
+they can be followed with
+
+00:36:15.040 --> 00:36:17.520
+metae they can be copied to other
+
+00:36:17.520 --> 00:36:19.920
+buffers because they are plain text
+
+00:36:19.920 --> 00:36:23.680
+because they are just sex
+
+00:36:23.680 --> 00:36:26.240
+and they can be inspected in the sense
+
+00:36:26.240 --> 00:36:28.000
+that
+
+00:36:28.000 --> 00:36:32.400
+for example here
+
+00:36:32.400 --> 00:36:34.079
+we have a hyperlink to a function that
+
+00:36:34.079 --> 00:36:35.520
+we
+
+00:36:35.520 --> 00:36:37.599
+it may be difficult to figure out what
+
+00:36:37.599 --> 00:36:39.200
+this function does
+
+00:36:39.200 --> 00:36:42.320
+but we can go to that position and then
+
+00:36:42.320 --> 00:36:45.839
+type ctrl h f to see the descript
+
+00:36:45.839 --> 00:36:48.240
+description of this function
+
+00:36:48.240 --> 00:36:52.400
+and here is a hyperlink to
+
+00:36:52.400 --> 00:36:53.890
+the does that
+
+00:36:53.890 --> 00:36:56.000
+[Music]
+
+00:36:56.000 --> 00:37:00.160
+in my syntax say
+
+00:37:00.160 --> 00:37:02.800
+and this list of hyperlinks were
+
+00:37:02.800 --> 00:37:04.480
+generated by
+
+00:37:04.480 --> 00:37:08.000
+this code here that just just uh
+
+00:37:08.000 --> 00:37:11.119
+used a back quote to to generate
+
+00:37:11.119 --> 00:37:14.640
+lists of sex
+
+00:37:14.640 --> 00:37:18.240
+and I I felt that this function here
+
+00:37:18.240 --> 00:37:21.040
+uh that just generated this list was
+
+00:37:21.040 --> 00:37:22.160
+very easy to understand
+
+00:37:22.160 --> 00:37:24.960
+and to modify so this was hacker
+
+00:37:24.960 --> 00:37:28.480
+friendly in the way that I wanted
+
+00:37:28.480 --> 00:37:31.599
+and so I started using this
+
+00:37:31.599 --> 00:37:34.079
+and this idea of using buffers with sex
+
+00:37:34.079 --> 00:37:36.800
+fiber links and no help violated
+
+00:37:36.800 --> 00:37:38.720
+all the notions of user friendliness
+
+00:37:38.720 --> 00:37:40.079
+that I knew so I was
+
+00:37:40.079 --> 00:37:42.000
+exploring some something new at that
+
+00:37:42.000 --> 00:37:46.160
+time and this is the end of part two
+
+00:37:46.160 --> 00:37:49.359
+part three of this presentation is uh
+
+00:37:49.359 --> 00:37:52.240
+about the killer features of ev or why
+
+00:37:52.240 --> 00:37:54.800
+everybody should use av or at least have
+
+00:37:54.800 --> 00:37:57.920
+eev installed even if they think the tv
+
+00:37:57.920 --> 00:37:59.280
+is too weird
+
+00:37:59.280 --> 00:38:01.440
+so this is a very quick listing eevee
+
+00:38:01.440 --> 00:38:03.440
+has lease hyperlinks which are super
+
+00:38:03.440 --> 00:38:04.240
+nice
+
+00:38:04.240 --> 00:38:06.560
+it comes with lots of tutorials the main
+
+00:38:06.560 --> 00:38:07.599
+one here
+
+00:38:07.599 --> 00:38:10.800
+explains all the main features
+
+00:38:10.800 --> 00:38:14.079
+uh there's also a tutorial with that's
+
+00:38:14.079 --> 00:38:15.040
+an index of
+
+00:38:15.040 --> 00:38:18.079
+all the other tutorials here
+
+00:38:18.079 --> 00:38:21.680
+many many many tutorials uh if we forget
+
+00:38:21.680 --> 00:38:24.079
+everything we can just type meta j
+
+00:38:24.079 --> 00:38:27.280
+and remember that this this part here is
+
+00:38:27.280 --> 00:38:28.880
+beginner friendly and the rest is
+
+00:38:28.880 --> 00:38:30.839
+beginner
+
+00:38:30.839 --> 00:38:32.960
+unfriendly
+
+00:38:32.960 --> 00:38:38.320
+there's a tutorial on max list here
+
+00:38:38.320 --> 00:38:41.920
+it mainly explains how to understand
+
+00:38:41.920 --> 00:38:44.640
+a lisp code which is much easier than
+
+00:38:44.640 --> 00:38:46.320
+it's much easier to understand the lisp
+
+00:38:46.320 --> 00:38:47.040
+code and
+
+00:38:47.040 --> 00:38:48.800
+then to understand how to program in a
+
+00:38:48.800 --> 00:38:50.160
+lisp and
+
+00:38:50.160 --> 00:38:53.440
+most people are only going to need this
+
+00:38:53.440 --> 00:38:55.920
+uh ev is very easy to install it's in
+
+00:38:55.920 --> 00:38:58.240
+helper so we just need to do
+
+00:38:58.240 --> 00:39:00.560
+this thing here and it's very
+
+00:39:00.560 --> 00:39:03.520
+non-invasive
+
+00:39:03.520 --> 00:39:06.079
+uh years ago several years ago it was a
+
+00:39:06.079 --> 00:39:08.000
+very invasive package but then I changed
+
+00:39:08.000 --> 00:39:08.960
+everything
+
+00:39:08.960 --> 00:39:13.520
+now uh if we toggle ev mode on and off
+
+00:39:13.520 --> 00:39:16.640
+what's going to happen is just that the
+
+00:39:16.640 --> 00:39:20.000
+evk map key map becomes activated or
+
+00:39:20.000 --> 00:39:21.599
+deactivated
+
+00:39:21.599 --> 00:39:24.720
+and when we install the evita
+
+00:39:24.720 --> 00:39:28.320
+I mean when we require the only things
+
+00:39:28.320 --> 00:39:28.640
+that
+
+00:39:28.640 --> 00:39:32.640
+happens globally distance here
+
+00:39:32.640 --> 00:39:34.480
+several functions and variables become
+
+00:39:34.480 --> 00:39:36.240
+defined all of them have
+
+00:39:36.240 --> 00:39:40.079
+standard prefixes except for one
+
+00:39:40.079 --> 00:39:43.040
+three characters are changed in the
+
+00:39:43.040 --> 00:39:44.480
+standard display table
+
+00:39:44.480 --> 00:39:48.640
+to make them appear as colored glyphs
+
+00:39:48.640 --> 00:39:52.079
+the red star and two and the open
+
+00:39:52.079 --> 00:39:54.160
+double angle brackets and the closed
+
+00:39:54.160 --> 00:39:58.160
+double angle brackets
+
+00:39:58.160 --> 00:40:01.359
+and two environment variables are set
+
+00:40:01.359 --> 00:40:04.560
+and this is a trivial technicality
+
+00:40:04.560 --> 00:40:07.599
+we just run a def advice
+
+00:40:07.599 --> 00:40:10.160
+around one function that that is used by
+
+00:40:10.160 --> 00:40:10.800
+man
+
+00:40:10.800 --> 00:40:14.240
+justice also
+
+00:40:14.240 --> 00:40:16.720
+eevee has a very high discoverability
+
+00:40:16.720 --> 00:40:18.400
+factor
+
+00:40:18.400 --> 00:40:21.839
+and there's a way to create a very easy
+
+00:40:21.839 --> 00:40:25.200
+way to create a hyperlink to here
+
+00:40:25.200 --> 00:40:27.760
+uh I do not have time to show this now
+
+00:40:27.760 --> 00:40:29.760
+but for example if I'm
+
+00:40:29.760 --> 00:40:32.960
+here in a tutorial and I think that that
+
+00:40:32.960 --> 00:40:34.480
+this
+
+00:40:34.480 --> 00:40:36.240
+section is something interesting and I
+
+00:40:36.240 --> 00:40:39.520
+want to create a hyperlink to it
+
+00:40:39.520 --> 00:40:41.200
+I just have to type a certain key
+
+00:40:41.200 --> 00:40:43.040
+sequence here
+
+00:40:43.040 --> 00:40:46.800
+and here I got a hyperlink that I can
+
+00:40:46.800 --> 00:40:50.400
+copy to my notes and this hyperlink goes
+
+00:40:50.400 --> 00:40:52.260
+to that section
+
+00:40:52.260 --> 00:40:58.240
+[Music]
+
+00:40:58.240 --> 00:41:00.720
+we have hyperlinks that point to
+
+00:41:00.720 --> 00:41:02.319
+specific positions in
+
+00:41:02.319 --> 00:41:05.839
+pdf documents and nvidia files here
+
+00:41:05.839 --> 00:41:09.119
+this one opens a pdf and displays it
+
+00:41:09.119 --> 00:41:09.680
+this one
+
+00:41:09.680 --> 00:41:13.920
+opens a pdf and converts it to text
+
+00:41:13.920 --> 00:41:16.720
+and this one opens the video in a
+
+00:41:16.720 --> 00:41:18.400
+certain position
+
+00:41:18.400 --> 00:41:20.480
+and we also have a way to control
+
+00:41:20.480 --> 00:41:22.079
+shell-like programs
+
+00:41:22.079 --> 00:41:25.280
+uh in my presentation of the last year I
+
+00:41:25.280 --> 00:41:27.440
+spent one third of the presentation
+
+00:41:27.440 --> 00:41:29.520
+explaining this and I think that I gave
+
+00:41:29.520 --> 00:41:31.839
+a very good demonstration there
+
+00:41:31.839 --> 00:41:35.680
+the demonstration is here
+
+00:41:35.680 --> 00:41:38.800
+we can go to the web page and go to
+
+00:41:38.800 --> 00:41:41.839
+this section of the web page
+
+00:41:41.839 --> 00:41:47.680
+and start by this point
+
+00:41:47.680 --> 00:41:51.440
+and here we have an explanation and so
+
+00:41:51.440 --> 00:41:55.920
+on whatever
+
+00:41:55.920 --> 00:41:58.720
+and I've already mentioned this before
+
+00:41:58.720 --> 00:41:59.200
+uh
+
+00:41:59.200 --> 00:42:01.119
+eevee comes with a very nice elise
+
+00:42:01.119 --> 00:42:02.240
+tutorial
+
+00:42:02.240 --> 00:42:04.240
+so that's it this is the end of part
+
+00:42:04.240 --> 00:42:05.599
+three
+
+00:42:05.599 --> 00:42:07.359
+so this is the last part of my
+
+00:42:07.359 --> 00:42:09.839
+presentation and it's about the title of
+
+00:42:09.839 --> 00:42:10.160
+the
+
+00:42:10.160 --> 00:42:11.839
+the presentation I called the
+
+00:42:11.839 --> 00:42:13.599
+presentation why
+
+00:42:13.599 --> 00:42:16.560
+most of the best features in eevee look
+
+00:42:16.560 --> 00:42:16.960
+like
+
+00:42:16.960 --> 00:42:20.480
+like five minute hacks uh I've already
+
+00:42:20.480 --> 00:42:20.960
+run off
+
+00:42:20.960 --> 00:42:23.920
+out of time so I have to to skip this
+
+00:42:23.920 --> 00:42:24.800
+first
+
+00:42:24.800 --> 00:42:28.720
+part here in which I describe how I
+
+00:42:28.720 --> 00:42:31.280
+was exposed to several different notions
+
+00:42:31.280 --> 00:42:33.440
+of user friendliness
+
+00:42:33.440 --> 00:42:35.920
+and how the one that really blew my mind
+
+00:42:35.920 --> 00:42:37.119
+was the one in
+
+00:42:37.119 --> 00:42:41.680
+in a certain uh fought environment
+
+00:42:41.680 --> 00:42:44.160
+uh and let me make the long long story
+
+00:42:44.160 --> 00:42:46.560
+very very short
+
+00:42:46.560 --> 00:42:49.280
+uh in all this process I switched from
+
+00:42:49.280 --> 00:42:49.680
+from
+
+00:42:49.680 --> 00:42:52.079
+the belief that the user was always
+
+00:42:52.079 --> 00:42:52.960
+someone else
+
+00:42:52.960 --> 00:42:55.359
+someone external and that that I always
+
+00:42:55.359 --> 00:42:57.040
+had to write my programs for
+
+00:42:57.040 --> 00:43:00.079
+this external user I switched
+
+00:43:00.079 --> 00:43:02.240
+from from that to the belief that I am
+
+00:43:02.240 --> 00:43:03.200
+the user
+
+00:43:03.200 --> 00:43:05.839
+and I can play with the interface that I
+
+00:43:05.839 --> 00:43:07.040
+want I can
+
+00:43:07.040 --> 00:43:10.079
+write programs which that
+
+00:43:10.079 --> 00:43:12.079
+that only I am going to understand I can
+
+00:43:12.079 --> 00:43:14.240
+experiment with hundreds of interfaces
+
+00:43:14.240 --> 00:43:16.079
+and then select the best ones
+
+00:43:16.079 --> 00:43:18.720
+and document them and then share them
+
+00:43:18.720 --> 00:43:20.960
+with other people
+
+00:43:20.960 --> 00:43:23.520
+who are also experimenting with
+
+00:43:23.520 --> 00:43:24.720
+interfaces in their
+
+00:43:24.720 --> 00:43:28.880
+own ways and so eevee has
+
+00:43:28.880 --> 00:43:31.119
+lots of things that are user-friendly in
+
+00:43:31.119 --> 00:43:33.440
+these unusual ways that I've explained
+
+00:43:33.440 --> 00:43:34.880
+before
+
+00:43:34.880 --> 00:43:37.760
+and uh and if we disconsider that this
+
+00:43:37.760 --> 00:43:40.319
+notion of user friendliness is valid
+
+00:43:40.319 --> 00:43:44.079
+then this implement these things that av
+
+00:43:44.079 --> 00:43:45.119
+implement they are
+
+00:43:45.119 --> 00:43:47.280
+user friendly and hacker friendly at the
+
+00:43:47.280 --> 00:43:48.800
+same time
+
+00:43:48.800 --> 00:43:51.119
+and let me show one example this is one
+
+00:43:51.119 --> 00:43:51.920
+this is
+
+00:43:51.920 --> 00:43:54.640
+one that really took me one only five
+
+00:43:54.640 --> 00:43:56.640
+minutes to implement
+
+00:43:56.640 --> 00:43:59.599
+uh at one point a few months ago I
+
+00:43:59.599 --> 00:44:00.640
+discovered
+
+00:44:00.640 --> 00:44:04.240
+that sasha chewer's weekly posts about
+
+00:44:04.240 --> 00:44:05.599
+the max news
+
+00:44:05.599 --> 00:44:08.800
+had uh were also being posted to a
+
+00:44:08.800 --> 00:44:11.440
+mailing list that is stored at
+
+00:44:11.440 --> 00:44:14.800
+lists.we know.org and it's called max
+
+00:44:14.800 --> 00:44:16.319
+dungeons
+
+00:44:16.319 --> 00:44:19.280
+uh and I just and I found a way to
+
+00:44:19.280 --> 00:44:19.760
+create
+
+00:44:19.760 --> 00:44:25.440
+the links to to the posts in both places
+
+00:44:25.440 --> 00:44:28.400
+but I had to use a template for that so
+
+00:44:28.400 --> 00:44:30.640
+what we are seeing here now
+
+00:44:30.640 --> 00:44:32.560
+is a template with the the default
+
+00:44:32.560 --> 00:44:36.640
+values so this means that we have not uh
+
+00:44:36.640 --> 00:44:39.359
+set the year correctly we have not set
+
+00:44:39.359 --> 00:44:40.720
+the month correctly
+
+00:44:40.720 --> 00:44:44.240
+or the day correctly but if we run this
+
+00:44:44.240 --> 00:44:44.720
+text
+
+00:44:44.720 --> 00:44:48.960
+here uh let me do something else before
+
+00:44:48.960 --> 00:44:53.359
+if we run this text here
+
+00:44:53.359 --> 00:44:57.280
+which we change some of these
+
+00:44:57.280 --> 00:45:00.880
+entries in the
+
+00:45:00.880 --> 00:45:04.400
+in the template and we get these links
+
+00:45:04.400 --> 00:45:05.200
+here
+
+00:45:05.200 --> 00:45:09.119
+they all work for example this one opens
+
+00:45:09.119 --> 00:45:12.160
+uh the blog post in in session sasha
+
+00:45:12.160 --> 00:45:12.800
+chewers
+
+00:45:12.800 --> 00:45:16.000
+site and this one
+
+00:45:16.000 --> 00:45:21.280
+opens it in the mailing list
+
+00:45:21.280 --> 00:45:23.440
+and sometimes I want the org source of
+
+00:45:23.440 --> 00:45:25.760
+that and the easiest way to get the word
+
+00:45:25.760 --> 00:45:27.280
+source is to
+
+00:45:27.280 --> 00:45:30.480
+look at this link here that has an
+
+00:45:30.480 --> 00:45:31.680
+attachment
+
+00:45:31.680 --> 00:45:35.040
+and if I take this
+
+00:45:35.040 --> 00:45:38.560
+link here and I take this
+
+00:45:38.560 --> 00:45:42.319
+stem that points to to the attachment
+
+00:45:42.319 --> 00:45:44.480
+and I put it here and I generate this
+
+00:45:44.480 --> 00:45:45.440
+page again
+
+00:45:45.440 --> 00:45:49.119
+with all this data then I get a script
+
+00:45:49.119 --> 00:45:50.000
+here
+
+00:45:50.000 --> 00:45:53.359
+that downloads let me switch to a
+
+00:45:53.359 --> 00:45:54.640
+smaller font
+
+00:45:54.640 --> 00:45:58.160
+it downloads this attachment
+
+00:45:58.160 --> 00:46:00.960
+and it renames that attachment to
+
+00:46:00.960 --> 00:46:01.599
+something
+
+00:46:01.599 --> 00:46:06.000
+dot slash nx news sorry some things
+
+00:46:06.000 --> 00:46:10.720
+uh iphone mx news hyphen
+
+00:46:10.720 --> 00:46:15.119
+something mxnews.org here
+
+00:46:15.119 --> 00:46:17.599
+the file is already here already with
+
+00:46:17.599 --> 00:46:18.400
+the right name
+
+00:46:18.400 --> 00:46:21.359
+so I can open it with just this
+
+00:46:21.359 --> 00:46:22.079
+hyperlink
+
+00:46:22.079 --> 00:46:23.780
+let me go to the big font again
+
+00:46:23.780 --> 00:46:25.200
+[Music]
+
+00:46:25.200 --> 00:46:28.079
+and now I have the work source for that
+
+00:46:28.079 --> 00:46:29.280
+hyperlink
+
+00:46:29.280 --> 00:46:33.839
+sorry for that blog post
+
+00:46:33.839 --> 00:46:37.040
+and so this one line thing
+
+00:46:37.040 --> 00:46:40.960
+here is in a sense
+
+00:46:40.960 --> 00:46:43.920
+a a to to this blog post in all its
+
+00:46:43.920 --> 00:46:45.119
+formats
+
+00:46:45.119 --> 00:46:48.640
+uh if I execute this I get links to
+
+00:46:48.640 --> 00:46:52.000
+to all the places where it is posted
+
+00:46:52.000 --> 00:46:54.400
+and I get a hype and I get a script to
+
+00:46:54.400 --> 00:46:56.000
+download the local copy
+
+00:46:56.000 --> 00:47:00.480
+of the org source of it and that's it
+
+00:47:00.480 --> 00:47:03.200
+well I'm already out of time so let me
+
+00:47:03.200 --> 00:47:04.480
+finish here
+
+00:47:04.480 --> 00:47:10.079
+thanks bye
diff --git a/2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt b/2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt
new file mode 100644
index 00000000..b1831710
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt
@@ -0,0 +1,2386 @@
+WEBVTT
+
+00:00:01.680 --> 00:00:04.080
+oh you are now muted
+
+00:00:04.080 --> 00:00:07.359
+all right then well uh hello everyone
+
+00:00:07.359 --> 00:00:09.840
+I hope uh you're all enjoying the Emacs
+
+00:00:09.840 --> 00:00:11.519
+conf
+
+00:00:11.519 --> 00:00:14.480
+my name is musa alhassi and I hope
+
+00:00:14.480 --> 00:00:15.040
+you're
+
+00:00:15.040 --> 00:00:17.920
+excited to learn about uh powering up
+
+00:00:17.920 --> 00:00:19.840
+special blocks
+
+00:00:19.840 --> 00:00:22.880
+um so let's let's first off uh find out
+
+00:00:22.880 --> 00:00:24.800
+what these special blocks are and
+
+00:00:24.800 --> 00:00:27.920
+and see what we can uh go from so
+
+00:00:27.920 --> 00:00:30.240
+uh yesterday I saw a lot of cool talks
+
+00:00:30.240 --> 00:00:32.719
+and uh people were chatting about how do
+
+00:00:32.719 --> 00:00:33.200
+you
+
+00:00:33.200 --> 00:00:35.520
+I know how should you present should you
+
+00:00:35.520 --> 00:00:37.200
+do it this way or that way and
+
+00:00:37.200 --> 00:00:38.640
+I thought maybe I should try a different
+
+00:00:38.640 --> 00:00:41.120
+way uh but but I'm talking about special
+
+00:00:41.120 --> 00:00:42.239
+blocks and if I
+
+00:00:42.239 --> 00:00:45.039
+show you an emax then I have to export
+
+00:00:45.039 --> 00:00:47.039
+the html so you can see what it looks
+
+00:00:47.039 --> 00:00:47.840
+like
+
+00:00:47.840 --> 00:00:50.800
+or export to a pdf so you can see what
+
+00:00:50.800 --> 00:00:51.920
+it looks like
+
+00:00:51.920 --> 00:00:54.239
+uh so I ended up writing an org reveal
+
+00:00:54.239 --> 00:00:56.399
+and
+
+00:00:56.399 --> 00:00:58.960
+joyously this this just works you can
+
+00:00:58.960 --> 00:01:00.879
+you can just see things here
+
+00:01:00.879 --> 00:01:02.960
+uh I was worried that I'd have to take
+
+00:01:02.960 --> 00:01:04.559
+pictures and then you know
+
+00:01:04.559 --> 00:01:07.600
+uh uh you know insert pings so that that
+
+00:01:07.600 --> 00:01:09.760
+was a delight
+
+00:01:09.760 --> 00:01:12.159
+okay uh so special blocks are these
+
+00:01:12.159 --> 00:01:12.960
+things like
+
+00:01:12.960 --> 00:01:16.000
+a center small quote uh that's what a
+
+00:01:16.000 --> 00:01:17.280
+special block is
+
+00:01:17.280 --> 00:01:19.360
+and with a bit of lisp we can we can
+
+00:01:19.360 --> 00:01:20.720
+make special blocks
+
+00:01:20.720 --> 00:01:23.200
+and link types right so uh using a
+
+00:01:23.200 --> 00:01:24.799
+single interface
+
+00:01:24.799 --> 00:01:26.720
+um and the interface is going to be
+
+00:01:26.720 --> 00:01:27.840
+similar to one
+
+00:01:27.840 --> 00:01:29.439
+many people are familiar with in
+
+00:01:29.439 --> 00:01:32.560
+particular org babel's
+
+00:01:32.560 --> 00:01:35.840
+source interface as well as using global
+
+00:01:35.840 --> 00:01:37.840
+header arguments for link types
+
+00:01:37.840 --> 00:01:39.680
+and the idea is to write it once and
+
+00:01:39.680 --> 00:01:41.200
+generate many different kinds
+
+00:01:41.200 --> 00:01:44.159
+right you write uh an org markup and you
+
+00:01:44.159 --> 00:01:44.720
+can have
+
+00:01:44.720 --> 00:01:47.680
+uh html you can have pdf and and
+
+00:01:47.680 --> 00:01:48.560
+joyously
+
+00:01:48.560 --> 00:01:51.840
+uh org reveal so that was uh that was an
+
+00:01:51.840 --> 00:01:53.600
+unexpected delight
+
+00:01:53.600 --> 00:01:56.640
+um so here is a few that you'll you'll
+
+00:01:56.640 --> 00:01:57.840
+just see as we
+
+00:01:57.840 --> 00:02:01.759
+uh in this presentation you know some uh
+
+00:02:01.759 --> 00:02:04.000
+uh I won't show some of these uh link
+
+00:02:04.000 --> 00:02:05.040
+only ones
+
+00:02:05.040 --> 00:02:06.799
+but we'll see a few of these other ones
+
+00:02:06.799 --> 00:02:08.080
+just to make the uh
+
+00:02:08.080 --> 00:02:09.920
+presentation look nice so the
+
+00:02:09.920 --> 00:02:11.520
+presentation is really going to
+
+00:02:11.520 --> 00:02:14.000
+present these blocks and the mechanism
+
+00:02:14.000 --> 00:02:15.120
+at the same time
+
+00:02:15.120 --> 00:02:18.400
+so uh so this no no html was written
+
+00:02:18.400 --> 00:02:21.280
+look ma no html just pure org mode and
+
+00:02:21.280 --> 00:02:22.000
+and
+
+00:02:22.000 --> 00:02:23.520
+you get all these beautiful boxes and
+
+00:02:23.520 --> 00:02:25.840
+things okay
+
+00:02:25.840 --> 00:02:27.680
+so the motivation for this is you know
+
+00:02:27.680 --> 00:02:29.120
+what uh
+
+00:02:29.120 --> 00:02:31.200
+you're you're online you run into a blog
+
+00:02:31.200 --> 00:02:32.239
+and you see something you like and
+
+00:02:32.239 --> 00:02:33.120
+you're like man
+
+00:02:33.120 --> 00:02:35.280
+you know I wish I could uh you know
+
+00:02:35.280 --> 00:02:36.640
+produce that
+
+00:02:36.640 --> 00:02:39.519
+um uh but you you check in the author
+
+00:02:39.519 --> 00:02:40.160
+wrote raw
+
+00:02:40.160 --> 00:02:44.239
+html you know plus html everywhere
+
+00:02:44.239 --> 00:02:46.800
+and uh that's that's you know gonna
+
+00:02:46.800 --> 00:02:47.840
+obscure
+
+00:02:47.840 --> 00:02:49.680
+your your real content it's going to be
+
+00:02:49.680 --> 00:02:51.200
+surrounded by all this uh
+
+00:02:51.200 --> 00:02:54.239
+styling information that's unfortunate
+
+00:02:54.239 --> 00:02:56.400
+uh the author decides to use an org
+
+00:02:56.400 --> 00:02:58.959
+macro all right a bit better
+
+00:02:58.959 --> 00:03:01.120
+but then what if you decide hey I want
+
+00:03:01.120 --> 00:03:03.360
+to make a
+
+00:03:03.360 --> 00:03:06.000
+not pdf great and then the worst of all
+
+00:03:06.000 --> 00:03:07.840
+the author doesn't give you the source
+
+00:03:07.840 --> 00:03:10.159
+and then you have to view page source
+
+00:03:10.159 --> 00:03:10.879
+and
+
+00:03:10.879 --> 00:03:13.760
+learn cascading style sheets and and you
+
+00:03:13.760 --> 00:03:14.239
+know
+
+00:03:14.239 --> 00:03:16.159
+sit in a corner and cry decide to do
+
+00:03:16.159 --> 00:03:18.080
+other things with your life
+
+00:03:18.080 --> 00:03:20.959
+so uh we want to give you org users
+
+00:03:20.959 --> 00:03:22.640
+numerous styles
+
+00:03:22.640 --> 00:03:26.000
+and uh and an extensible mechanism to
+
+00:03:26.000 --> 00:03:27.200
+add more of these
+
+00:03:27.200 --> 00:03:28.799
+aesthetically pleasing styles you know
+
+00:03:28.799 --> 00:03:31.200
+to have really nice things
+
+00:03:31.200 --> 00:03:34.720
+look one way in the html and look almost
+
+00:03:34.720 --> 00:03:35.599
+the same way
+
+00:03:35.599 --> 00:03:39.120
+in the pdf and other uh back ends and
+
+00:03:39.120 --> 00:03:41.680
+if by having these newer ones you know
+
+00:03:41.680 --> 00:03:42.159
+people
+
+00:03:42.159 --> 00:03:44.879
+might be encouraged to try making new
+
+00:03:44.879 --> 00:03:45.519
+ones
+
+00:03:45.519 --> 00:03:47.920
+especially when the interface is uh not
+
+00:03:47.920 --> 00:03:49.040
+so difficult
+
+00:03:49.040 --> 00:03:54.159
+uh that's the that's the aim okay
+
+00:03:54.159 --> 00:03:57.360
+uh so let's let's have a a real story to
+
+00:03:57.360 --> 00:03:59.120
+motivate this even more
+
+00:03:59.120 --> 00:04:02.319
+um so here's three friends uh I hope I
+
+00:04:02.319 --> 00:04:03.599
+don't butcher their names but these
+
+00:04:03.599 --> 00:04:04.640
+friends are called
+
+00:04:04.640 --> 00:04:07.040
+amin sasha and corwin and then they're
+
+00:04:07.040 --> 00:04:08.720
+organizing a conference
+
+00:04:08.720 --> 00:04:12.080
+uh EmacsConf 2020.
+
+00:04:12.080 --> 00:04:14.239
+so sasha decides to write an org file
+
+00:04:14.239 --> 00:04:16.479
+and and she would like some feedback
+
+00:04:16.479 --> 00:04:19.199
+okay and and just uh make it clear
+
+00:04:19.199 --> 00:04:19.840
+there's no
+
+00:04:19.840 --> 00:04:22.960
+uh just how easy this looks
+
+00:04:22.960 --> 00:04:27.280
+let's look at the source for this block
+
+00:04:27.280 --> 00:04:30.000
+notice it's just the word green then a
+
+00:04:30.000 --> 00:04:30.720
+colon
+
+00:04:30.720 --> 00:04:34.560
+than amine uh so no
+
+00:04:34.560 --> 00:04:37.759
+no div style coloring just just you know
+
+00:04:37.759 --> 00:04:38.479
+green color
+
+00:04:38.479 --> 00:04:41.520
+immune a very pleasant uh or markup
+
+00:04:41.520 --> 00:04:43.600
+so that's that's quite nice put some
+
+00:04:43.600 --> 00:04:44.960
+bold around it
+
+00:04:44.960 --> 00:04:47.840
+not not too difficult so hopefully uh
+
+00:04:47.840 --> 00:04:49.040
+this will be useful to
+
+00:04:49.040 --> 00:04:51.680
+other people as well so what kind of
+
+00:04:51.680 --> 00:04:52.240
+feedback
+
+00:04:52.240 --> 00:04:56.639
+uh would sasha expect to get um so maybe
+
+00:04:56.639 --> 00:04:59.120
+she would expect top level remarks
+
+00:04:59.120 --> 00:04:59.680
+visible
+
+00:04:59.680 --> 00:05:01.759
+in the export you know when she makes an
+
+00:05:01.759 --> 00:05:04.400
+html she can see right there a big block
+
+00:05:04.400 --> 00:05:07.840
+right maybe
+
+00:05:07.840 --> 00:05:09.840
+amin will suggest to sasha please
+
+00:05:09.840 --> 00:05:11.120
+replace this part
+
+00:05:11.120 --> 00:05:12.960
+with this other part or replace this
+
+00:05:12.960 --> 00:05:14.639
+word with this other word
+
+00:05:14.639 --> 00:05:16.960
+right um this is not really possible
+
+00:05:16.960 --> 00:05:17.680
+with raw
+
+00:05:17.680 --> 00:05:21.919
+html or uh yeah or with even latex
+
+00:05:21.919 --> 00:05:24.000
+you'd have to have multiple arguments
+
+00:05:24.000 --> 00:05:25.360
+the first argument and then
+
+00:05:25.360 --> 00:05:27.840
+the replacement argument and it's a bit
+
+00:05:27.840 --> 00:05:28.800
+clunky
+
+00:05:28.800 --> 00:05:30.960
+um but with our setup you just write
+
+00:05:30.960 --> 00:05:32.080
+some text
+
+00:05:32.080 --> 00:05:34.479
+write hashtag plus replace with and then
+
+00:05:34.479 --> 00:05:36.240
+write more text and you're good to go
+
+00:05:36.240 --> 00:05:39.440
+normal uh org markup um
+
+00:05:39.440 --> 00:05:40.720
+everyone speaks different languages
+
+00:05:40.720 --> 00:05:42.479
+maybe they want to use a
+
+00:05:42.479 --> 00:05:45.919
+uh one word or they're arguing about
+
+00:05:45.919 --> 00:05:48.000
+whether we talk about frames or windows
+
+00:05:48.000 --> 00:05:49.759
+um so maybe they want to have some
+
+00:05:49.759 --> 00:05:50.560
+translations
+
+00:05:50.560 --> 00:05:52.479
+right so there's different kinds of
+
+00:05:52.479 --> 00:05:55.360
+feedbacks uh let's let's take an example
+
+00:05:55.360 --> 00:05:59.360
+uh look at what they are okay
+
+00:05:59.360 --> 00:06:02.560
+uh so for example sasha might write
+
+00:06:02.560 --> 00:06:06.160
+uh this org mode right here and uh
+
+00:06:06.160 --> 00:06:08.319
+and then in her html exports you might
+
+00:06:08.319 --> 00:06:09.759
+see this
+
+00:06:09.759 --> 00:06:12.080
+and uh her feedback might look really
+
+00:06:12.080 --> 00:06:13.840
+nicely from anyone who says you know
+
+00:06:13.840 --> 00:06:14.560
+let's uh
+
+00:06:14.560 --> 00:06:16.639
+let's do some lisp instead of uh
+
+00:06:16.639 --> 00:06:18.560
+mathematics let's just do some list
+
+00:06:18.560 --> 00:06:20.960
+and and corwin says you know let's let's
+
+00:06:20.960 --> 00:06:22.479
+not be so silly
+
+00:06:22.479 --> 00:06:25.120
+maybe let's just say 9 a.m and move on
+
+00:06:25.120 --> 00:06:28.080
+okay
+
+00:06:28.080 --> 00:06:31.360
+um so amin likes to export to pdf
+
+00:06:31.360 --> 00:06:33.039
+and so he writes his top-level remarks
+
+00:06:33.039 --> 00:06:34.720
+using latex that's how
+
+00:06:34.720 --> 00:06:37.600
+so to get this uh square I mean please
+
+00:06:37.600 --> 00:06:38.960
+change whatever
+
+00:06:38.960 --> 00:06:41.440
+he might write like this hashtag you
+
+00:06:41.440 --> 00:06:43.120
+know plus latex
+
+00:06:43.120 --> 00:06:46.960
+hashtag plus latex right but then
+
+00:06:46.960 --> 00:06:50.000
+sasha only exports to p to html uh for
+
+00:06:50.000 --> 00:06:50.880
+example
+
+00:06:50.880 --> 00:06:54.880
+um and uh so she doesn't look at the pdf
+
+00:06:54.880 --> 00:06:57.199
+and she may not see his top-level
+
+00:06:57.199 --> 00:06:58.560
+feedback you know with those nice
+
+00:06:58.560 --> 00:06:59.440
+brackets and
+
+00:06:59.440 --> 00:07:02.160
+and bold right and so she might think
+
+00:07:02.160 --> 00:07:03.120
+everything's good
+
+00:07:03.120 --> 00:07:06.160
+right and that can be a bit disastrous
+
+00:07:06.160 --> 00:07:09.039
+um so maybe sasha will will then uh make
+
+00:07:09.039 --> 00:07:09.440
+some
+
+00:07:09.440 --> 00:07:13.199
+of her own feedback all right uh but
+
+00:07:13.199 --> 00:07:16.160
+and to produce it she might write html
+
+00:07:16.160 --> 00:07:16.560
+uh
+
+00:07:16.560 --> 00:07:20.639
+um html commands hashtag plus html to
+
+00:07:20.639 --> 00:07:21.680
+get that
+
+00:07:21.680 --> 00:07:24.240
+uh but then amin will make a pdf and
+
+00:07:24.240 --> 00:07:25.680
+this won't stick out
+
+00:07:25.680 --> 00:07:27.759
+and then so he might think everything's
+
+00:07:27.759 --> 00:07:30.160
+okay even even though it's not
+
+00:07:30.160 --> 00:07:33.520
+um then corwin actually decides hey
+
+00:07:33.520 --> 00:07:36.240
+uh let me read the exported result and
+
+00:07:36.240 --> 00:07:36.800
+these
+
+00:07:36.800 --> 00:07:38.319
+there's all those feedback from two
+
+00:07:38.319 --> 00:07:39.919
+people who haven't uh
+
+00:07:39.919 --> 00:07:42.080
+read anything because maybe they were in
+
+00:07:42.080 --> 00:07:43.840
+a russian and didn't
+
+00:07:43.840 --> 00:07:46.400
+see the top level feedback and so they
+
+00:07:46.400 --> 00:07:48.160
+agree hey let's have a uniform org
+
+00:07:48.160 --> 00:07:50.000
+interface that exports
+
+00:07:50.000 --> 00:07:53.280
+to both html and pdf make both of us
+
+00:07:53.280 --> 00:07:54.080
+happy
+
+00:07:54.080 --> 00:07:57.280
+okay so they decide to use org special
+
+00:07:57.280 --> 00:07:58.160
+blocks
+
+00:07:58.160 --> 00:08:01.840
+right um and to set this up they need to
+
+00:08:01.840 --> 00:08:04.400
+you know maybe read a little bit of lisp
+
+00:08:04.400 --> 00:08:04.879
+hooks
+
+00:08:04.879 --> 00:08:08.879
+advice macros to get all of this set up
+
+00:08:08.879 --> 00:08:10.840
+and then they'll use org as the main
+
+00:08:10.840 --> 00:08:12.319
+interface okay
+
+00:08:12.319 --> 00:08:14.400
+it's a lot of work but it's worth it
+
+00:08:14.400 --> 00:08:16.479
+right maybe
+
+00:08:16.479 --> 00:08:19.360
+um but then corwin corbin's a bit tears
+
+00:08:19.360 --> 00:08:19.759
+so
+
+00:08:19.759 --> 00:08:22.960
+uh corwin maybe doesn't want to write
+
+00:08:22.960 --> 00:08:24.800
+uh using blocks he thinks they're
+
+00:08:24.800 --> 00:08:26.080
+overkill and
+
+00:08:26.080 --> 00:08:29.360
+and sasha wants html and uh and
+
+00:08:29.360 --> 00:08:31.840
+I mean wants pdf and corwin wants org
+
+00:08:31.840 --> 00:08:32.560
+reveal
+
+00:08:32.560 --> 00:08:34.240
+so now they have to reformat all their
+
+00:08:34.240 --> 00:08:36.320
+code and then they need to use org link
+
+00:08:36.320 --> 00:08:37.120
+types to
+
+00:08:37.120 --> 00:08:39.599
+reduce the overkill all right so they
+
+00:08:39.599 --> 00:08:41.519
+can try to avoid duplication by
+
+00:08:41.519 --> 00:08:44.000
+factoring things out into self-contained
+
+00:08:44.000 --> 00:08:46.800
+uh defined functions or defunds
+
+00:08:46.800 --> 00:08:50.320
+um but now to set up or links
+
+00:08:50.320 --> 00:08:53.440
+uh we'll have uh to learn a new
+
+00:08:53.440 --> 00:08:54.399
+interface
+
+00:08:54.399 --> 00:08:57.040
+org setup link um learn a little bit
+
+00:08:57.040 --> 00:08:58.000
+about fonts
+
+00:08:58.000 --> 00:09:02.160
+follow links exports handles
+
+00:09:02.160 --> 00:09:05.040
+it's so much that's so much but but then
+
+00:09:05.040 --> 00:09:06.800
+you know the friends they learn a lot
+
+00:09:06.800 --> 00:09:08.399
+you know they learn about defund all
+
+00:09:08.399 --> 00:09:11.120
+right so these these words are red
+
+00:09:11.120 --> 00:09:12.480
+you get a little explanation I think
+
+00:09:12.480 --> 00:09:14.320
+it's a bit too small for anyone to read
+
+00:09:14.320 --> 00:09:16.720
+this is lisp documentation right for
+
+00:09:16.720 --> 00:09:18.000
+defund
+
+00:09:18.000 --> 00:09:19.680
+advice ad there's some list
+
+00:09:19.680 --> 00:09:21.600
+documentation right
+
+00:09:21.600 --> 00:09:23.600
+they learn about destructuring let's so
+
+00:09:23.600 --> 00:09:25.279
+this is from the dash library
+
+00:09:25.279 --> 00:09:26.959
+here's all that you know glorious
+
+00:09:26.959 --> 00:09:28.800
+glorious documentation with examples
+
+00:09:28.800 --> 00:09:29.360
+sorry
+
+00:09:29.360 --> 00:09:31.680
+I like that they might make an ad-hoc
+
+00:09:31.680 --> 00:09:33.760
+mechanism to simulate
+
+00:09:33.760 --> 00:09:36.000
+arguments for special blocks so
+
+00:09:36.000 --> 00:09:37.040
+something maybe called
+
+00:09:37.040 --> 00:09:40.399
+extract arguments and then of course to
+
+00:09:40.399 --> 00:09:41.920
+make new link types they have to learn
+
+00:09:41.920 --> 00:09:42.480
+about
+
+00:09:42.480 --> 00:09:45.120
+org link set parameters and then it's
+
+00:09:45.120 --> 00:09:46.480
+numerous uh
+
+00:09:46.480 --> 00:09:49.920
+bits and pieces all right so let's oh
+
+00:09:49.920 --> 00:09:50.720
+let's uh
+
+00:09:50.720 --> 00:09:53.600
+close all these ones down and and uh of
+
+00:09:53.600 --> 00:09:55.040
+course they also need to be uh
+
+00:09:55.040 --> 00:09:56.080
+comfortable with
+
+00:09:56.080 --> 00:09:58.720
+uh loops and maps and matching and
+
+00:09:58.720 --> 00:09:59.920
+string functions
+
+00:09:59.920 --> 00:10:02.560
+so it's it's a bit of a pain it's a bit
+
+00:10:02.560 --> 00:10:03.360
+of a pain
+
+00:10:03.360 --> 00:10:05.839
+um so it's probably not worth it so
+
+00:10:05.839 --> 00:10:06.560
+maybe I'll just
+
+00:10:06.560 --> 00:10:09.360
+rush things quickly or do an ad hoc you
+
+00:10:09.360 --> 00:10:10.320
+know
+
+00:10:10.320 --> 00:10:13.680
+we have things to do right
+
+00:10:13.680 --> 00:10:15.920
+so maybe maybe the squad wants to have a
+
+00:10:15.920 --> 00:10:17.839
+modular
+
+00:10:17.839 --> 00:10:21.120
+and unified interface so everyone's
+
+00:10:21.120 --> 00:10:23.040
+comfortable with defunct to define a
+
+00:10:23.040 --> 00:10:25.279
+function and they say you know what
+
+00:10:25.279 --> 00:10:26.480
+it would be nice if we could just you
+
+00:10:26.480 --> 00:10:29.440
+know define simultaneously
+
+00:10:29.440 --> 00:10:32.959
+both a block and the link type right
+
+00:10:32.959 --> 00:10:34.880
+and uh that way we have a single
+
+00:10:34.880 --> 00:10:36.000
+interface
+
+00:10:36.000 --> 00:10:38.240
+org mode for for these things and it
+
+00:10:38.240 --> 00:10:39.040
+would be nice was
+
+00:10:39.040 --> 00:10:42.079
+modular so if I defined a
+
+00:10:42.079 --> 00:10:43.680
+one kind of block and you defined
+
+00:10:43.680 --> 00:10:45.519
+another we could compose them
+
+00:10:45.519 --> 00:10:47.600
+right and then get a you know a nice
+
+00:10:47.600 --> 00:10:49.360
+bigger block like lego
+
+00:10:49.360 --> 00:10:52.320
+that would be nice building box okay and
+
+00:10:52.320 --> 00:10:54.160
+uh this is uh what we
+
+00:10:54.160 --> 00:10:56.240
+have come up with called death block and
+
+00:10:56.240 --> 00:10:57.600
+it also has a
+
+00:10:57.600 --> 00:11:00.240
+long documentation string containing
+
+00:11:00.240 --> 00:11:01.760
+examples and things
+
+00:11:01.760 --> 00:11:04.800
+so that way you can try to be useful
+
+00:11:04.800 --> 00:11:08.320
+okay um so let's let's look at a a
+
+00:11:08.320 --> 00:11:10.880
+solution to these friends uh trilemma
+
+00:11:10.880 --> 00:11:12.800
+all right so here's here's a way to
+
+00:11:12.800 --> 00:11:14.320
+define a block
+
+00:11:14.320 --> 00:11:17.040
+um it looks it's it doesn't look that
+
+00:11:17.040 --> 00:11:19.200
+difficult but this is how they can
+
+00:11:19.200 --> 00:11:22.320
+define a block for um
+
+00:11:22.320 --> 00:11:25.920
+for uh their top-level feedback right
+
+00:11:25.920 --> 00:11:27.680
+so let's let's look at the three main
+
+00:11:27.680 --> 00:11:28.959
+parts together
+
+00:11:28.959 --> 00:11:31.920
+it's not that uh difficult I hope just
+
+00:11:31.920 --> 00:11:33.040
+six lines
+
+00:11:33.040 --> 00:11:34.720
+and that's including a documentation
+
+00:11:34.720 --> 00:11:36.160
+string and you know
+
+00:11:36.160 --> 00:11:39.440
+uh new lines and things okay so in line
+
+00:11:39.440 --> 00:11:41.279
+one we just define the block just like
+
+00:11:41.279 --> 00:11:42.000
+you define
+
+00:11:42.000 --> 00:11:44.880
+a function we define a block the flag
+
+00:11:44.880 --> 00:11:46.399
+the block name is going to be called
+
+00:11:46.399 --> 00:11:49.680
+feedback it has an author who
+
+00:11:49.680 --> 00:11:53.360
+right the author has no default
+
+00:11:53.360 --> 00:11:56.160
+value it has a color and the color has a
+
+00:11:56.160 --> 00:11:57.760
+default value of red
+
+00:11:57.760 --> 00:12:00.560
+okay so just just as when you define
+
+00:12:00.560 --> 00:12:01.680
+functions they
+
+00:12:01.680 --> 00:12:04.880
+they uh you start by uh define
+
+00:12:04.880 --> 00:12:08.639
+or def block than the name some
+
+00:12:08.639 --> 00:12:10.720
+mandatory argument and some optional
+
+00:12:10.720 --> 00:12:13.440
+arguments okay
+
+00:12:13.440 --> 00:12:15.760
+then the next stage is well and
+
+00:12:15.760 --> 00:12:18.480
+definition a documentation you know
+
+00:12:18.480 --> 00:12:20.880
+uh the people who use this which are
+
+00:12:20.880 --> 00:12:22.880
+future you or future me you know
+
+00:12:22.880 --> 00:12:25.519
+uh might want to know what this is all
+
+00:12:25.519 --> 00:12:27.839
+right so let's get to document this
+
+00:12:27.839 --> 00:12:30.560
+uh and uh for for corwin who might want
+
+00:12:30.560 --> 00:12:32.079
+to use uh tooltips
+
+00:12:32.079 --> 00:12:34.560
+uh when corwin writes feedback whatever
+
+00:12:34.560 --> 00:12:35.120
+and
+
+00:12:35.120 --> 00:12:37.120
+Emacs they'll see a nice little tooltip
+
+00:12:37.120 --> 00:12:38.639
+and the tooltip will have
+
+00:12:38.639 --> 00:12:41.279
+this uh documentation string right so
+
+00:12:41.279 --> 00:12:43.279
+that'll be nice
+
+00:12:43.279 --> 00:12:45.200
+okay and then here's the third part the
+
+00:12:45.200 --> 00:12:46.480
+last three lines are
+
+00:12:46.480 --> 00:12:49.440
+not not so difficult if the back end is
+
+00:12:49.440 --> 00:12:49.680
+in
+
+00:12:49.680 --> 00:12:52.800
+is html the backend is html
+
+00:12:52.800 --> 00:12:55.360
+please use this template string
+
+00:12:55.360 --> 00:12:57.440
+otherwise use the other string
+
+00:12:57.440 --> 00:13:00.639
+okay and for each of these uh string
+
+00:13:00.639 --> 00:13:01.279
+markers
+
+00:13:01.279 --> 00:13:03.600
+please put in the color who wrote it and
+
+00:13:03.600 --> 00:13:04.959
+then the contents
+
+00:13:04.959 --> 00:13:07.279
+of the special block or the link type
+
+00:13:07.279 --> 00:13:08.160
+okay
+
+00:13:08.160 --> 00:13:10.639
+um so that's pretty neat not not so
+
+00:13:10.639 --> 00:13:11.600
+difficult
+
+00:13:11.600 --> 00:13:14.639
+so I thought that was kind of cool and
+
+00:13:14.639 --> 00:13:15.519
+then notice it's
+
+00:13:15.519 --> 00:13:18.480
+anaphoric it's it's a this this def
+
+00:13:18.480 --> 00:13:19.519
+block
+
+00:13:19.519 --> 00:13:21.760
+gives you two new names it gives you a
+
+00:13:21.760 --> 00:13:22.560
+name called
+
+00:13:22.560 --> 00:13:25.120
+uh contents and it gives you a name
+
+00:13:25.120 --> 00:13:26.480
+called back end
+
+00:13:26.480 --> 00:13:29.040
+right and so even if you're writing a
+
+00:13:29.040 --> 00:13:31.040
+def block and you intend it to be used
+
+00:13:31.040 --> 00:13:32.560
+only for links
+
+00:13:32.560 --> 00:13:35.440
+uh like the uh these colors for example
+
+00:13:35.440 --> 00:13:37.600
+uh these colors were defined using dev
+
+00:13:37.600 --> 00:13:38.399
+block
+
+00:13:38.399 --> 00:13:41.279
+uh and I used them as links right here
+
+00:13:41.279 --> 00:13:43.360
+and you don't need to worry
+
+00:13:43.360 --> 00:13:44.880
+where does the text come from in the
+
+00:13:44.880 --> 00:13:48.160
+link you know if I say red colon bob uh
+
+00:13:48.160 --> 00:13:48.959
+is it bob
+
+00:13:48.959 --> 00:13:50.720
+or if I put a description is it the
+
+00:13:50.720 --> 00:13:52.000
+description so
+
+00:13:52.000 --> 00:13:54.000
+it's whatever is available will will
+
+00:13:54.000 --> 00:13:56.720
+become uh the value of contents
+
+00:13:56.720 --> 00:13:59.199
+and if you're really you know interested
+
+00:13:59.199 --> 00:14:00.320
+and you want to do some
+
+00:14:00.320 --> 00:14:03.839
+intricate stuff uh def block also gives
+
+00:14:03.839 --> 00:14:04.959
+you something called
+
+00:14:04.959 --> 00:14:08.160
+raw dash contents if you really want to
+
+00:14:08.160 --> 00:14:09.360
+touch the raw
+
+00:14:09.360 --> 00:14:11.920
+uh contents with all of the org markups
+
+00:14:11.920 --> 00:14:12.639
+still there
+
+00:14:12.639 --> 00:14:16.000
+okay so let's uh let's see
+
+00:14:16.000 --> 00:14:18.320
+how uh everyone can uh communicate
+
+00:14:18.320 --> 00:14:19.440
+amongst themselves
+
+00:14:19.440 --> 00:14:22.480
+using this new interface okay so
+
+00:14:22.480 --> 00:14:26.000
+uh uh sasha speculates and she how does
+
+00:14:26.000 --> 00:14:28.399
+she speculate for her organ html
+
+00:14:28.399 --> 00:14:31.440
+she might just write hey look at that no
+
+00:14:31.440 --> 00:14:34.800
+no no html nice and and
+
+00:14:34.800 --> 00:14:37.519
+amin wants to have some green and so he
+
+00:14:37.519 --> 00:14:39.600
+just says hey here's some color green
+
+00:14:39.600 --> 00:14:42.240
+and and uh there you go it looks almost
+
+00:14:42.240 --> 00:14:42.959
+the same
+
+00:14:42.959 --> 00:14:46.560
+right uh notice that the main argument
+
+00:14:46.560 --> 00:14:49.680
+is right here def block took an author
+
+00:14:49.680 --> 00:14:52.480
+and here's the author again and now the
+
+00:14:52.480 --> 00:14:53.920
+optional argument
+
+00:14:53.920 --> 00:14:57.360
+uses the org babel source interface you
+
+00:14:57.360 --> 00:14:58.000
+just say
+
+00:14:58.000 --> 00:15:00.639
+colon and then a key and then the
+
+00:15:00.639 --> 00:15:01.440
+argument
+
+00:15:01.440 --> 00:15:05.040
+quite quite nice and and corwin doesn't
+
+00:15:05.040 --> 00:15:05.519
+want to
+
+00:15:05.519 --> 00:15:07.920
+use blocks it's a bit of an overkill and
+
+00:15:07.920 --> 00:15:09.760
+can just write a
+
+00:15:09.760 --> 00:15:12.959
+a little um right
+
+00:15:12.959 --> 00:15:16.000
+so the main argument is now the uh uh
+
+00:15:16.000 --> 00:15:17.440
+the label of the link
+
+00:15:17.440 --> 00:15:19.360
+all right and then the description of
+
+00:15:19.360 --> 00:15:21.600
+the link is the contents
+
+00:15:21.600 --> 00:15:24.959
+of uh of the feedback so that was quite
+
+00:15:24.959 --> 00:15:25.680
+nice
+
+00:15:25.680 --> 00:15:28.079
+so it looks like uh everyone uses the
+
+00:15:28.079 --> 00:15:29.360
+same interface on the left
+
+00:15:29.360 --> 00:15:32.800
+and can have varying uh outputs
+
+00:15:32.800 --> 00:15:34.480
+and it looks I think it looks quite nice
+
+00:15:34.480 --> 00:15:36.639
+and I hope you do too
+
+00:15:36.639 --> 00:15:40.000
+um and there's a few more maybe
+
+00:15:40.000 --> 00:15:42.160
+as you saw in some previous ones we had
+
+00:15:42.160 --> 00:15:43.920
+text side beside side
+
+00:15:43.920 --> 00:15:46.800
+right now um or we folded some regions
+
+00:15:46.800 --> 00:15:47.440
+away
+
+00:15:47.440 --> 00:15:49.360
+that was quite nice we put some things
+
+00:15:49.360 --> 00:15:50.959
+in pretty boxes
+
+00:15:50.959 --> 00:15:54.000
+um uh we had some spoilers at the very
+
+00:15:54.000 --> 00:15:57.120
+beginning that we we uh hit some text uh
+
+00:15:57.120 --> 00:15:58.160
+we demoed uh
+
+00:15:58.160 --> 00:15:59.600
+some texts right you know here's some
+
+00:15:59.600 --> 00:16:01.680
+org and here's what it looks like
+
+00:16:01.680 --> 00:16:04.480
+um and and most importantly uh they they
+
+00:16:04.480 --> 00:16:05.199
+compose
+
+00:16:05.199 --> 00:16:08.320
+right there's uh uh there's a
+
+00:16:08.320 --> 00:16:12.639
+a macro called uh uh thread block
+
+00:16:12.639 --> 00:16:14.720
+uh thread block a thread block call and
+
+00:16:14.720 --> 00:16:16.160
+it lets you thread the
+
+00:16:16.160 --> 00:16:18.000
+the contents through a number of blocks
+
+00:16:18.000 --> 00:16:20.639
+treating them as if they were functions
+
+00:16:20.639 --> 00:16:22.480
+and so really you can think of a block
+
+00:16:22.480 --> 00:16:23.680
+as a as a
+
+00:16:23.680 --> 00:16:26.560
+as a string valued function so that's
+
+00:16:26.560 --> 00:16:27.360
+pretty neat
+
+00:16:27.360 --> 00:16:30.959
+I I think and uh thank you for listening
+
+00:16:30.959 --> 00:16:31.759
+and uh
+
+00:16:31.759 --> 00:16:34.320
+I I hope you've uh enjoyed this little
+
+00:16:34.320 --> 00:16:34.880
+uh
+
+00:16:34.880 --> 00:16:37.600
+happy fun time with uh with the Emacs
+
+00:16:37.600 --> 00:16:38.160
+and friends
+
+00:16:38.160 --> 00:16:40.720
+and uh I'll I'm I'll happy happily
+
+00:16:40.720 --> 00:16:41.759
+answer questions
+
+00:16:41.759 --> 00:16:43.730
+uh right now um
+
+00:16:43.730 --> 00:16:45.360
+[Music]
+
+00:16:45.360 --> 00:16:48.160
+so uh someone says why did you put
+
+00:16:48.160 --> 00:16:50.480
+optional arguments in a separate list
+
+00:16:50.480 --> 00:16:53.600
+rather than using cl style argument
+
+00:16:53.600 --> 00:16:54.560
+lists
+
+00:16:54.560 --> 00:16:58.399
+um so that's a very good question
+
+00:16:58.399 --> 00:17:01.680
+and I will answer that by
+
+00:17:01.680 --> 00:17:04.400
+showing you a more involved definition
+
+00:17:04.400 --> 00:17:04.880
+of
+
+00:17:04.880 --> 00:17:08.959
+feedback so let's look at a
+
+00:17:08.959 --> 00:17:13.039
+a more involved one
+
+00:17:13.039 --> 00:17:16.079
+right right here so for example
+
+00:17:16.079 --> 00:17:19.280
+this one is called rural mark all right
+
+00:17:19.280 --> 00:17:21.760
+and uh please let me know if my text is
+
+00:17:21.760 --> 00:17:23.439
+not sufficiently big
+
+00:17:23.439 --> 00:17:26.799
+so here is here is why uh we have
+
+00:17:26.799 --> 00:17:29.520
+two arguments that takes two arguments
+
+00:17:29.520 --> 00:17:30.720
+uh instead of one
+
+00:17:30.720 --> 00:17:33.360
+for for its argument list right so you
+
+00:17:33.360 --> 00:17:34.799
+you have def block
+
+00:17:34.799 --> 00:17:37.679
+then you have the name right then you
+
+00:17:37.679 --> 00:17:38.400
+have
+
+00:17:38.400 --> 00:17:40.960
+the first uh argument list and the
+
+00:17:40.960 --> 00:17:42.880
+second argument list
+
+00:17:42.880 --> 00:17:46.080
+the first argument list uh takes the
+
+00:17:46.080 --> 00:17:49.280
+takes the text right after the begin
+
+00:17:49.280 --> 00:17:51.760
+right the text right after the begin is
+
+00:17:51.760 --> 00:17:52.320
+the main
+
+00:17:52.320 --> 00:17:55.760
+argument okay and then the remaining key
+
+00:17:55.760 --> 00:17:57.039
+value pairs
+
+00:17:57.039 --> 00:18:00.320
+are in the second argument list okay
+
+00:18:00.320 --> 00:18:03.280
+now the reason we have two is because uh
+
+00:18:03.280 --> 00:18:04.640
+in order to
+
+00:18:04.640 --> 00:18:06.799
+streamline the interface to account for
+
+00:18:06.799 --> 00:18:08.880
+both uh special blocks
+
+00:18:08.880 --> 00:18:12.320
+and or link types uh what we do is we
+
+00:18:12.320 --> 00:18:13.360
+say hey
+
+00:18:13.360 --> 00:18:16.160
+uh in the first argument list uh you can
+
+00:18:16.160 --> 00:18:18.000
+give a name to the first argument
+
+00:18:18.000 --> 00:18:21.039
+give it a default value and anything
+
+00:18:21.039 --> 00:18:24.240
+else you provide will become uh
+
+00:18:24.240 --> 00:18:27.760
+uh part of the I'll co link
+
+00:18:27.760 --> 00:18:30.000
+information so for example this link we
+
+00:18:30.000 --> 00:18:32.000
+decided to make its face
+
+00:18:32.000 --> 00:18:34.799
+angry red um you might want to give
+
+00:18:34.799 --> 00:18:35.840
+other features to
+
+00:18:35.840 --> 00:18:37.919
+links so we're trying to streamline the
+
+00:18:37.919 --> 00:18:39.679
+interface for both
+
+00:18:39.679 --> 00:18:42.320
+special blocks and org link types and we
+
+00:18:42.320 --> 00:18:42.880
+thought
+
+00:18:42.880 --> 00:18:46.240
+this way was quite nice um so
+
+00:18:46.240 --> 00:18:49.840
+that was the main reason uh someone asks
+
+00:18:49.840 --> 00:18:52.480
+uh so if if you uh if that's uh if you
+
+00:18:52.480 --> 00:18:55.039
+need if you have follow-up please ask
+
+00:18:55.039 --> 00:18:57.600
+someone asks do you intend to try to
+
+00:18:57.600 --> 00:19:00.559
+upstream this amazing work into org
+
+00:19:00.559 --> 00:19:03.600
+well I'm glad you like it I I don't know
+
+00:19:03.600 --> 00:19:04.559
+how to upstream
+
+00:19:04.559 --> 00:19:06.880
+but but I I will look into it and any
+
+00:19:06.880 --> 00:19:08.799
+advice or guidance would be
+
+00:19:08.799 --> 00:19:11.840
+much appreciated um you know
+
+00:19:11.840 --> 00:19:14.640
+lisp is awesome and just as defunded as
+
+00:19:14.640 --> 00:19:17.120
+a macro deathblock is a macro and then
+
+00:19:17.120 --> 00:19:20.240
+source blocks are awesome and then now
+
+00:19:20.240 --> 00:19:21.919
+maybe we can have arguments and special
+
+00:19:21.919 --> 00:19:24.080
+blocks and motivate and encourage more
+
+00:19:24.080 --> 00:19:25.280
+people to uh
+
+00:19:25.280 --> 00:19:28.799
+to uh learn lisp right
+
+00:19:28.799 --> 00:19:32.559
+so another person asks
+
+00:19:32.559 --> 00:19:35.280
+um what is used to produce colorful
+
+00:19:35.280 --> 00:19:38.559
+boxes around the cursor
+
+00:19:38.559 --> 00:19:40.400
+I I'm not quite sure if you're asking
+
+00:19:40.400 --> 00:19:41.840
+are you talking about my cursor right
+
+00:19:41.840 --> 00:19:42.559
+here
+
+00:19:42.559 --> 00:19:48.400
+or are you talking about in the slide um
+
+00:19:48.400 --> 00:19:50.559
+so this this this cursor is some
+
+00:19:50.559 --> 00:19:52.400
+application called
+
+00:19:52.400 --> 00:19:55.440
+a stream brush that I had to purchase uh
+
+00:19:55.440 --> 00:19:57.679
+unfortunately I could not find a a
+
+00:19:57.679 --> 00:19:59.039
+suitable free one
+
+00:19:59.039 --> 00:20:02.159
+um and the blocks I can demonstrate some
+
+00:20:02.159 --> 00:20:03.840
+Emacs list but I can open up my Emacs if
+
+00:20:03.840 --> 00:20:05.679
+people like and we can try some things
+
+00:20:05.679 --> 00:20:06.320
+out
+
+00:20:06.320 --> 00:20:09.440
+happy to do that uh
+
+00:20:09.440 --> 00:20:12.480
+you're welcome uh someone asks
+
+00:20:12.480 --> 00:20:14.880
+a side question about org reveal how do
+
+00:20:14.880 --> 00:20:15.520
+you get
+
+00:20:15.520 --> 00:20:17.440
+bespoke or multiple column layouts
+
+00:20:17.440 --> 00:20:19.120
+without using html
+
+00:20:19.120 --> 00:20:22.559
+ah excellent question that's what we do
+
+00:20:22.559 --> 00:20:24.640
+that's that's what this uh project is
+
+00:20:24.640 --> 00:20:26.000
+about so it's not
+
+00:20:26.000 --> 00:20:28.960
+org reveal it's it's our fancy parallel
+
+00:20:28.960 --> 00:20:29.440
+uh
+
+00:20:29.440 --> 00:20:32.240
+uh block so we have this thing you say
+
+00:20:32.240 --> 00:20:33.440
+begin parallel
+
+00:20:33.440 --> 00:20:35.679
+you say how many columns you would like
+
+00:20:35.679 --> 00:20:37.120
+uh do you want a bar
+
+00:20:37.120 --> 00:20:39.679
+or not and then you write some text and
+
+00:20:39.679 --> 00:20:40.960
+then you uh
+
+00:20:40.960 --> 00:20:42.480
+you get some text and according with the
+
+00:20:42.480 --> 00:20:44.400
+bar or not right so that's
+
+00:20:44.400 --> 00:20:47.520
+that's how we achieve that in our slides
+
+00:20:47.520 --> 00:20:50.080
+so I'm not uh I'm not quite sure where
+
+00:20:50.080 --> 00:20:52.880
+this was
+
+00:20:52.880 --> 00:20:59.520
+somewhere here I think
+
+00:20:59.520 --> 00:21:06.240
+let me try to find this for you
+
+00:21:06.240 --> 00:21:08.320
+I can't seem to find where the parallel
+
+00:21:08.320 --> 00:21:09.440
+blocks were
+
+00:21:09.440 --> 00:21:12.159
+apologies let's move on to the next
+
+00:21:12.159 --> 00:21:15.039
+question I suppose
+
+00:21:15.039 --> 00:21:17.760
+uh I'm pretty sure they're here ah there
+
+00:21:17.760 --> 00:21:18.400
+they are
+
+00:21:18.400 --> 00:21:21.360
+yes so these these uh were just
+
+00:21:21.360 --> 00:21:22.640
+instances of using
+
+00:21:22.640 --> 00:21:25.440
+uh the parallel block and it makes
+
+00:21:25.440 --> 00:21:26.480
+things parallel
+
+00:21:26.480 --> 00:21:29.600
+so that's quite nice um another person
+
+00:21:29.600 --> 00:21:33.360
+asks uh yes
+
+00:21:33.360 --> 00:21:36.720
+excellent um how does this relate to
+
+00:21:36.720 --> 00:21:37.840
+banda pandoc
+
+00:21:37.840 --> 00:21:39.360
+which is used for converting between
+
+00:21:39.360 --> 00:21:40.960
+markup formats
+
+00:21:40.960 --> 00:21:43.919
+so all we're doing is we're we're saying
+
+00:21:43.919 --> 00:21:44.400
+hey
+
+00:21:44.400 --> 00:21:46.799
+please write org because org is just
+
+00:21:46.799 --> 00:21:47.679
+fantastic
+
+00:21:47.679 --> 00:21:50.400
+and we love it and it's the dream and if
+
+00:21:50.400 --> 00:21:51.760
+you would like to view things
+
+00:21:51.760 --> 00:21:55.039
+in html or in org reveal or
+
+00:21:55.039 --> 00:21:58.559
+in pdf that's up to the user so
+
+00:21:58.559 --> 00:22:02.320
+here is a um oh
+
+00:22:02.320 --> 00:22:05.039
+made it too small now so here is a an
+
+00:22:05.039 --> 00:22:06.080
+example
+
+00:22:06.080 --> 00:22:08.880
+so here's an uh how here's how parallel
+
+00:22:08.880 --> 00:22:10.240
+is implemented
+
+00:22:10.240 --> 00:22:13.120
+uh just as a quick example uh not too
+
+00:22:13.120 --> 00:22:14.320
+long
+
+00:22:14.320 --> 00:22:16.880
+uh about half of the implementation is
+
+00:22:16.880 --> 00:22:18.400
+documentation so
+
+00:22:18.400 --> 00:22:20.720
+uh hopefully that speaks for for how
+
+00:22:20.720 --> 00:22:22.720
+useful this feature is
+
+00:22:22.720 --> 00:22:25.280
+uh so we decide if there's a rule or not
+
+00:22:25.280 --> 00:22:28.080
+um we look for the column break
+
+00:22:28.080 --> 00:22:29.760
+and really here we're looking at the
+
+00:22:29.760 --> 00:22:31.840
+back end if the back end is latex
+
+00:22:31.840 --> 00:22:34.960
+uh please use this uh incantation with
+
+00:22:34.960 --> 00:22:37.679
+multi columns mini pages what have you
+
+00:22:37.679 --> 00:22:38.559
+and if the
+
+00:22:38.559 --> 00:22:41.039
+back end is something else uh please uh
+
+00:22:41.039 --> 00:22:41.600
+do this
+
+00:22:41.600 --> 00:22:44.960
+uh div and style and uh other uh
+
+00:22:44.960 --> 00:22:46.640
+gibberish that we don't really wanna
+
+00:22:46.640 --> 00:22:48.080
+look at uh so
+
+00:22:48.080 --> 00:22:51.760
+uh when you pandoc works from org
+
+00:22:51.760 --> 00:22:55.280
+so it might not work directly since our
+
+00:22:55.280 --> 00:22:58.080
+interface the way we set it up is when
+
+00:22:58.080 --> 00:22:59.679
+you try to export
+
+00:22:59.679 --> 00:23:01.919
+uh we hook in and we do a bunch of
+
+00:23:01.919 --> 00:23:03.039
+pre-processing
+
+00:23:03.039 --> 00:23:05.919
+so this this uh def block is a is a
+
+00:23:05.919 --> 00:23:07.440
+string valued function
+
+00:23:07.440 --> 00:23:10.880
+and so whenever we see these uh begin
+
+00:23:10.880 --> 00:23:13.919
+parallel uh when you do an export
+
+00:23:13.919 --> 00:23:16.480
+I tell Emacs hold up look for those
+
+00:23:16.480 --> 00:23:16.960
+begin
+
+00:23:16.960 --> 00:23:19.360
+parallels please oh you found them grab
+
+00:23:19.360 --> 00:23:20.320
+that text
+
+00:23:20.320 --> 00:23:22.400
+you grabbed it great now please apply
+
+00:23:22.400 --> 00:23:24.080
+this person's uh function
+
+00:23:24.080 --> 00:23:27.120
+onto that text and splice in the result
+
+00:23:27.120 --> 00:23:29.760
+okay so so when you export uh we're
+
+00:23:29.760 --> 00:23:30.400
+performing
+
+00:23:30.400 --> 00:23:33.600
+arbitrary computations on your uh uh on
+
+00:23:33.600 --> 00:23:35.120
+your text
+
+00:23:35.120 --> 00:23:38.799
+so uh um some people might not find that
+
+00:23:38.799 --> 00:23:40.159
+comforting to have
+
+00:23:40.159 --> 00:23:43.039
+arbitrary uh computations happening so
+
+00:23:43.039 --> 00:23:45.039
+in this article there's a few where
+
+00:23:45.039 --> 00:23:47.520
+uh we change your text upon export we
+
+00:23:47.520 --> 00:23:48.320
+translate it
+
+00:23:48.320 --> 00:23:51.760
+we do other things to it um
+
+00:23:51.760 --> 00:23:55.360
+so someone says uh if you export to
+
+00:23:55.360 --> 00:23:57.360
+latex to pdf does that work well with
+
+00:23:57.360 --> 00:23:58.640
+beamer as well
+
+00:23:58.640 --> 00:24:00.320
+to create slides with columns for
+
+00:24:00.320 --> 00:24:02.080
+example for uh
+
+00:24:02.080 --> 00:24:05.200
+um so uh actually uh
+
+00:24:05.200 --> 00:24:08.000
+so uh I I made a bunch of these changes
+
+00:24:08.000 --> 00:24:09.200
+earlier this morning
+
+00:24:09.200 --> 00:24:12.320
+and it just says latex right here um
+
+00:24:12.320 --> 00:24:14.480
+so if you want to go to beamer I think
+
+00:24:14.480 --> 00:24:15.360
+the back end for me
+
+00:24:15.360 --> 00:24:18.240
+beamer is called well beamer so instead
+
+00:24:18.240 --> 00:24:18.960
+of a
+
+00:24:18.960 --> 00:24:21.200
+a p case what we would do is we would
+
+00:24:21.200 --> 00:24:22.000
+say oh
+
+00:24:22.000 --> 00:24:25.360
+if it's a latex or it's a beamer
+
+00:24:25.360 --> 00:24:29.279
+then uh use this uh otherwise
+
+00:24:29.279 --> 00:24:31.120
+it's not a latex it will simply default
+
+00:24:31.120 --> 00:24:33.039
+to this one which could be
+
+00:24:33.039 --> 00:24:36.400
+dangerous for your needs um I think it's
+
+00:24:36.400 --> 00:24:39.679
+a bad practice to put a underscore but I
+
+00:24:39.679 --> 00:24:41.279
+did it really quickly because I just
+
+00:24:41.279 --> 00:24:43.679
+wanted to show you that it works fine in
+
+00:24:43.679 --> 00:24:46.559
+org reveal contributions are more than
+
+00:24:46.559 --> 00:24:47.440
+welcome
+
+00:24:47.440 --> 00:24:51.039
+I I uh happily uh would love any
+
+00:24:51.039 --> 00:24:52.240
+assistance
+
+00:24:52.240 --> 00:24:56.080
+um and and I have a uh we have a
+
+00:24:56.080 --> 00:24:58.640
+list a reference cheat sheet here to to
+
+00:24:58.640 --> 00:25:00.159
+learn a little bit about lisp if you're
+
+00:25:00.159 --> 00:25:02.000
+not comfortable or to
+
+00:25:02.000 --> 00:25:04.640
+ask some questions lots of helpful
+
+00:25:04.640 --> 00:25:06.400
+people
+
+00:25:06.400 --> 00:25:09.440
+so there's another question that says uh
+
+00:25:09.440 --> 00:25:11.679
+does typing in a block mess up with a
+
+00:25:11.679 --> 00:25:13.120
+syntax highlighting
+
+00:25:13.120 --> 00:25:15.679
+usually you use a single color inside an
+
+00:25:15.679 --> 00:25:17.279
+example block for example
+
+00:25:17.279 --> 00:25:21.279
+ah you found my crutch you found
+
+00:25:21.279 --> 00:25:25.279
+my crutch um so I so there's
+
+00:25:25.279 --> 00:25:27.440
+emax's is all encompassing and I'm not
+
+00:25:27.440 --> 00:25:29.760
+quite sure how fonts work or are
+
+00:25:29.760 --> 00:25:32.559
+you know I I learned enough to get by I
+
+00:25:32.559 --> 00:25:33.840
+learned enough to get by
+
+00:25:33.840 --> 00:25:37.440
+so let me um but here's
+
+00:25:37.440 --> 00:25:39.760
+here's how links work they're they're a
+
+00:25:39.760 --> 00:25:40.799
+bit complicated
+
+00:25:40.799 --> 00:25:42.960
+this this is a bit scary I don't
+
+00:25:42.960 --> 00:25:43.919
+recommend anyone
+
+00:25:43.919 --> 00:25:47.039
+uh read it um
+
+00:25:47.039 --> 00:25:49.840
+but uh actually let me open up an email
+
+00:25:49.840 --> 00:25:50.559
+and you can
+
+00:25:50.559 --> 00:25:53.600
+you can see what I see uh so here's an
+
+00:25:53.600 --> 00:25:54.799
+Emacs
+
+00:25:54.799 --> 00:25:56.799
+all right let's make that a bit bigger
+
+00:25:56.799 --> 00:25:58.400
+uh let's change this
+
+00:25:58.400 --> 00:26:01.200
+slightly nope that's worse there you go
+
+00:26:01.200 --> 00:26:01.919
+so
+
+00:26:01.919 --> 00:26:05.760
+here's here's some words um so here's
+
+00:26:05.760 --> 00:26:09.360
+red hello um
+
+00:26:09.360 --> 00:26:12.000
+but you're worried about uh preserving
+
+00:26:12.000 --> 00:26:12.400
+uh
+
+00:26:12.400 --> 00:26:15.679
+uh uh um quantification
+
+00:26:15.679 --> 00:26:18.480
+so let's make an emax list block all
+
+00:26:18.480 --> 00:26:18.880
+right
+
+00:26:18.880 --> 00:26:22.840
+and let's say plus one two ah
+
+00:26:22.840 --> 00:26:28.000
+where's the fun hello
+
+00:26:28.000 --> 00:26:32.080
+um bye okay where's the coloring
+
+00:26:32.080 --> 00:26:34.880
+if we if we zoom in on this on this
+
+00:26:34.880 --> 00:26:36.000
+begin source block
+
+00:26:36.000 --> 00:26:39.200
+if we zoom in you can see down here
+
+00:26:39.200 --> 00:26:42.159
+uh we have our our coloring all right
+
+00:26:42.159 --> 00:26:43.279
+when we zoom in
+
+00:26:43.279 --> 00:26:46.960
+if we if we zoom out ah no coloring
+
+00:26:46.960 --> 00:26:50.080
+zoom in coloring it's about ah no
+
+00:26:50.080 --> 00:26:50.880
+coloring
+
+00:26:50.880 --> 00:26:53.840
+let's take off these bad boys and oh
+
+00:26:53.840 --> 00:26:55.679
+look my coloring's back
+
+00:26:55.679 --> 00:26:59.360
+so um in a previous
+
+00:26:59.360 --> 00:27:02.320
+uh iteration of the system I was able to
+
+00:27:02.320 --> 00:27:03.760
+maintain coloring
+
+00:27:03.760 --> 00:27:06.400
+uh in this new iteration I am not I
+
+00:27:06.400 --> 00:27:08.559
+don't know how to do it I haven't uh
+
+00:27:08.559 --> 00:27:11.039
+had the time to to implement it I spent
+
+00:27:11.039 --> 00:27:13.279
+a lot of time writing this uh
+
+00:27:13.279 --> 00:27:17.279
+48 page uh documentation uh with uh
+
+00:27:17.279 --> 00:27:19.679
+with some fun examples to to to try to
+
+00:27:19.679 --> 00:27:20.320
+help
+
+00:27:20.320 --> 00:27:21.760
+people learn so but but I would
+
+00:27:21.760 --> 00:27:23.760
+appreciate any help or guidance on
+
+00:27:23.760 --> 00:27:26.240
+how to uh maintain the quantification I
+
+00:27:26.240 --> 00:27:28.000
+I really would like to keep those colors
+
+00:27:28.000 --> 00:27:29.200
+in
+
+00:27:29.200 --> 00:27:31.840
+um musa we have time for maybe one more
+
+00:27:31.840 --> 00:27:32.640
+question
+
+00:27:32.640 --> 00:27:34.960
+um one or two more questions and then we
+
+00:27:34.960 --> 00:27:37.039
+have to move on to the next talk
+
+00:27:37.039 --> 00:27:39.120
+um but yeah you're more than welcome to
+
+00:27:39.120 --> 00:27:40.799
+take continue taking the questions via
+
+00:27:40.799 --> 00:27:42.559
+irc or the pad
+
+00:27:42.559 --> 00:27:45.760
+okay thank you thank you
+
+00:27:45.760 --> 00:27:48.480
+let's uh the final question we'll take
+
+00:27:48.480 --> 00:27:48.880
+is
+
+00:27:48.880 --> 00:27:52.320
+um should packages implement
+
+00:27:52.320 --> 00:27:54.399
+interface to one specific format or
+
+00:27:54.399 --> 00:27:55.840
+attempt to be conclusive to all the
+
+00:27:55.840 --> 00:27:57.279
+potential output targets
+
+00:27:57.279 --> 00:27:58.880
+I think you should just make them as you
+
+00:27:58.880 --> 00:28:01.120
+go and you know add them as you need
+
+00:28:01.120 --> 00:28:02.559
+them we'll make uh
+
+00:28:02.559 --> 00:28:05.600
+help requests or things and uh
+
+00:28:05.600 --> 00:28:07.840
+we can we can share recipes in this uh
+
+00:28:07.840 --> 00:28:09.279
+document and then
+
+00:28:09.279 --> 00:28:12.799
+try to add other uh techniques and then
+
+00:28:12.799 --> 00:28:16.000
+and we can uh use these blocks as a
+
+00:28:16.000 --> 00:28:19.200
+common uh interface for
+
+00:28:19.200 --> 00:28:22.240
+for exporting to pdf and other things
+
+00:28:22.240 --> 00:28:26.000
+and since someone asked here is a um
+
+00:28:26.000 --> 00:28:28.399
+here is uh what a pdf looks like this is
+
+00:28:28.399 --> 00:28:30.159
+the same pdf and
+
+00:28:30.159 --> 00:28:33.840
+uh rendered uh just I made no effort to
+
+00:28:33.840 --> 00:28:34.960
+make it look good
+
+00:28:34.960 --> 00:28:37.840
+but it surprisingly does look good so so
+
+00:28:37.840 --> 00:28:38.559
+uh that was
+
+00:28:38.559 --> 00:28:41.600
+uh that was nice um that was a
+
+00:28:41.600 --> 00:28:44.320
+terrible magenta but that is life uh
+
+00:28:44.320 --> 00:28:44.880
+anyhow
+
+00:28:44.880 --> 00:28:47.279
+I hope you all enjoyed this talk I hope
+
+00:28:47.279 --> 00:28:48.960
+you will find um
+
+00:28:48.960 --> 00:28:51.679
+death block uh useful to you it is
+
+00:28:51.679 --> 00:28:52.799
+available on melbourne
+
+00:28:52.799 --> 00:28:54.960
+uh in a rush to make it available for
+
+00:28:54.960 --> 00:28:57.679
+EmacsConf 2020 some melba
+
+00:28:57.679 --> 00:29:00.159
+guidelines may not have been in here too
+
+00:29:00.159 --> 00:29:00.960
+please do not
+
+00:29:00.960 --> 00:29:03.200
+hit me um and I hope everyone enjoys the
+
+00:29:03.200 --> 00:29:04.720
+rest of the EmacsConf
+
+00:29:04.720 --> 00:29:08.559
+2020 thank you
diff --git a/2020/subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--questions--tuan-anh-nguyen-autogen.vtt b/2020/subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--questions--tuan-anh-nguyen-autogen.vtt
new file mode 100644
index 00000000..0f0b2688
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--questions--tuan-anh-nguyen-autogen.vtt
@@ -0,0 +1,1087 @@
+WEBVTT
+
+00:00:00.960 --> 00:00:03.679
+uh okay so the first question is is uh
+
+00:00:03.679 --> 00:00:05.600
+do you think that this package can be
+
+00:00:05.600 --> 00:00:08.000
+included into Emacs or
+
+00:00:08.000 --> 00:00:12.320
+uh empire uh
+
+00:00:12.320 --> 00:00:15.360
+I think uh it most definitely can is
+
+00:00:15.360 --> 00:00:18.560
+just a matter of paperwork but
+
+00:00:18.560 --> 00:00:21.760
+the reason I initially wanted to make it
+
+00:00:21.760 --> 00:00:24.480
+like a central package is that so that I
+
+00:00:24.480 --> 00:00:25.039
+can
+
+00:00:25.039 --> 00:00:28.720
+experiment with it more
+
+00:00:28.720 --> 00:00:31.920
+like have more freedom to experiment but
+
+00:00:31.920 --> 00:00:34.320
+eventually I think is a good candidate
+
+00:00:34.320 --> 00:00:35.680
+for inclusion into
+
+00:00:35.680 --> 00:00:38.800
+core
+
+00:00:38.800 --> 00:00:41.200
+and because because currently not in
+
+00:00:41.200 --> 00:00:42.640
+corey mass there are a couple of
+
+00:00:42.640 --> 00:00:44.480
+problems with it
+
+00:00:44.480 --> 00:00:47.840
+mostly in terms of performance
+
+00:00:47.840 --> 00:00:50.960
+for example like anytime we want to
+
+00:00:50.960 --> 00:00:53.280
+access the text in a buffer we need to
+
+00:00:53.280 --> 00:00:54.160
+make
+
+00:00:54.160 --> 00:00:57.360
+a copy of the text into a string
+
+00:00:57.360 --> 00:01:00.480
+and then right after reading from that
+
+00:01:00.480 --> 00:01:03.520
+text we need to free it right away and
+
+00:01:03.520 --> 00:01:05.280
+that results in a lot of garbage
+
+00:01:05.280 --> 00:01:09.040
+collection so it would be better
+
+00:01:09.040 --> 00:01:11.920
+either the treasure could be included in
+
+00:01:11.920 --> 00:01:12.240
+core
+
+00:01:12.240 --> 00:01:15.680
+imax or dynamic dynamic model support
+
+00:01:15.680 --> 00:01:16.799
+can be
+
+00:01:16.799 --> 00:01:19.439
+augmented with direct text access
+
+00:01:19.439 --> 00:01:24.080
+somehow
+
+00:01:24.080 --> 00:01:26.400
+so the second question is will release
+
+00:01:26.400 --> 00:01:27.200
+performance
+
+00:01:27.200 --> 00:01:30.320
+be more competitive with cce max
+
+00:01:30.320 --> 00:01:33.040
+enough so electricity in english is more
+
+00:01:33.040 --> 00:01:35.670
+attractive
+
+00:01:35.670 --> 00:01:38.240
+[Music]
+
+00:01:38.240 --> 00:01:43.439
+I think it's possible but uh yeah
+
+00:01:43.439 --> 00:01:45.840
+not sure about the amount of effort it
+
+00:01:45.840 --> 00:01:46.799
+can be
+
+00:01:46.799 --> 00:01:52.960
+multi-years effort and one thing that
+
+00:01:52.960 --> 00:01:56.479
+even though gce max can make uh
+
+00:01:56.479 --> 00:02:00.719
+it is fast enough there's
+
+00:02:00.719 --> 00:02:03.119
+there's one thing that it uh cannot have
+
+00:02:03.119 --> 00:02:05.280
+which is that because it's the lisp
+
+00:02:05.280 --> 00:02:09.679
+it needs the garage collector so
+
+00:02:09.679 --> 00:02:12.480
+we may experiment experience some kind
+
+00:02:12.480 --> 00:02:14.000
+of
+
+00:02:14.000 --> 00:02:17.360
+gcc post if we use live whereas the
+
+00:02:17.360 --> 00:02:19.920
+currently transistor is written in c
+
+00:02:19.920 --> 00:02:28.400
+so there's no such latency
+
+00:02:28.400 --> 00:02:31.040
+the next question is do you think three
+
+00:02:31.040 --> 00:02:32.400
+sister would be useful
+
+00:02:32.400 --> 00:02:36.080
+for all buffers I can imagine it being
+
+00:02:36.080 --> 00:02:38.319
+used to keep a post ast about an arc
+
+00:02:38.319 --> 00:02:39.599
+buffer
+
+00:02:39.599 --> 00:02:42.560
+light off element and update it in real
+
+00:02:42.560 --> 00:02:43.920
+time
+
+00:02:43.920 --> 00:02:46.239
+yeah actually this is a very interesting
+
+00:02:46.239 --> 00:02:47.760
+idea
+
+00:02:47.760 --> 00:02:50.800
+I saw someone started
+
+00:02:50.800 --> 00:02:53.760
+resistor grammar for all already I don't
+
+00:02:53.760 --> 00:02:55.120
+have a link right now but
+
+00:02:55.120 --> 00:02:58.159
+I can look for it
+
+00:02:58.159 --> 00:03:01.040
+I'll try looking for it and put the link
+
+00:03:01.040 --> 00:03:01.680
+in
+
+00:03:01.680 --> 00:03:09.599
+here later
+
+00:03:09.599 --> 00:03:13.280
+yeah yes someone has written here the uh
+
+00:03:13.280 --> 00:03:15.519
+and the biggest problem with uh right
+
+00:03:15.519 --> 00:03:17.040
+now is that it doesn't have
+
+00:03:17.040 --> 00:03:21.360
+formal grammar so
+
+00:03:21.360 --> 00:03:22.380
+so the effort
+
+00:03:22.380 --> 00:03:24.400
+[Applause]
+
+00:03:24.400 --> 00:03:27.120
+be quite big I think but but once we
+
+00:03:27.120 --> 00:03:28.799
+have that because the
+
+00:03:28.799 --> 00:03:31.519
+tree sitter can be run on the web as
+
+00:03:31.519 --> 00:03:34.239
+well
+
+00:03:34.239 --> 00:03:37.440
+we can on the web and in many other
+
+00:03:37.440 --> 00:03:38.080
+places
+
+00:03:38.080 --> 00:03:40.720
+if we have a grammar for a traditional
+
+00:03:40.720 --> 00:03:41.840
+grammar for all
+
+00:03:41.840 --> 00:03:45.680
+we can bring off more
+
+00:03:45.680 --> 00:03:49.680
+like everywhere that's a very cool
+
+00:03:49.680 --> 00:03:56.000
+thought
+
+00:03:56.000 --> 00:03:58.080
+next one is could this be used with
+
+00:03:58.080 --> 00:04:00.480
+packages like smart parents that aim to
+
+00:04:00.480 --> 00:04:03.200
+bring structural editing to
+
+00:04:03.200 --> 00:04:07.120
+non-s expression based languages
+
+00:04:07.120 --> 00:04:11.360
+yes that is actually one of the
+
+00:04:11.360 --> 00:04:14.720
+intended use cases initially
+
+00:04:14.720 --> 00:04:17.280
+it's definitely possible but it's just
+
+00:04:17.280 --> 00:04:18.880
+that no one has
+
+00:04:18.880 --> 00:04:37.199
+only started writing the integration yet
+
+00:04:37.199 --> 00:04:40.639
+and next one
+
+00:04:40.639 --> 00:04:41.919
+could you show the source that was
+
+00:04:41.919 --> 00:04:45.040
+matched by the parser in the debug view
+
+00:04:45.040 --> 00:04:48.479
+in addition to the grammar part matched
+
+00:04:48.479 --> 00:04:54.960
+uh yeah that's actually um
+
+00:04:54.960 --> 00:04:57.759
+on my to-do list but I haven't had time
+
+00:04:57.759 --> 00:04:59.280
+for it yet
+
+00:04:59.280 --> 00:05:02.560
+so uh if you go to the treesita
+
+00:05:02.560 --> 00:05:06.560
+website it also has an
+
+00:05:06.560 --> 00:05:08.800
+online playground where you can input
+
+00:05:08.800 --> 00:05:12.000
+the code and see the
+
+00:05:12.000 --> 00:05:14.400
+parse tree in real time and it's
+
+00:05:14.400 --> 00:05:16.000
+actually
+
+00:05:16.000 --> 00:05:19.360
+a lot more fancy than what we have in
+
+00:05:19.360 --> 00:05:22.840
+imax currently so
+
+00:05:22.840 --> 00:05:25.919
+yeah I just don't have time for it yes
+
+00:05:25.919 --> 00:05:27.120
+so
+
+00:05:27.120 --> 00:05:30.320
+some help here would be
+
+00:05:30.320 --> 00:05:38.700
+very appreciated
+
+00:05:38.700 --> 00:05:49.919
+[Music]
+
+00:05:49.919 --> 00:05:52.000
+the next question is will it ever be
+
+00:05:52.000 --> 00:05:54.240
+possible to write resetter grammars in a
+
+00:05:54.240 --> 00:05:55.280
+lisp
+
+00:05:55.280 --> 00:06:00.560
+or will javascript be required
+
+00:06:00.560 --> 00:06:02.800
+yeah that is already answered in the
+
+00:06:02.800 --> 00:06:05.280
+part so the
+
+00:06:05.280 --> 00:06:07.600
+the transcript is actually just used as
+
+00:06:07.600 --> 00:06:08.639
+a sort of
+
+00:06:08.639 --> 00:06:12.160
+preprocessor so the
+
+00:06:12.160 --> 00:06:14.639
+python generator actually works on the
+
+00:06:14.639 --> 00:06:15.680
+on a json
+
+00:06:15.680 --> 00:06:19.280
+structure so uh it's definitely possible
+
+00:06:19.280 --> 00:06:20.240
+to replace
+
+00:06:20.240 --> 00:06:29.039
+javascript with lists for this
+
+00:06:29.039 --> 00:06:31.280
+how extensive will the compatibility
+
+00:06:31.280 --> 00:06:32.160
+between
+
+00:06:32.160 --> 00:06:35.360
+highlighting grammars for e-max and
+
+00:06:35.360 --> 00:06:35.840
+those
+
+00:06:35.840 --> 00:06:44.560
+for veeam nail view
+
+00:06:44.560 --> 00:06:48.720
+so so right now the
+
+00:06:48.720 --> 00:06:51.680
+nail vim and Emacs used a different set
+
+00:06:51.680 --> 00:06:52.000
+of
+
+00:06:52.000 --> 00:06:55.440
+the highlighting queries and
+
+00:06:55.440 --> 00:06:59.520
+item probably uses another set of
+
+00:06:59.520 --> 00:07:03.039
+patterns as well I think it makes sense
+
+00:07:03.039 --> 00:07:04.960
+because
+
+00:07:04.960 --> 00:07:07.680
+each editor has its own like existing
+
+00:07:07.680 --> 00:07:08.479
+conventions
+
+00:07:08.479 --> 00:07:11.919
+for syntax highlighting so
+
+00:07:11.919 --> 00:07:15.599
+at least in the beginning I don't expect
+
+00:07:15.599 --> 00:07:18.560
+there is any compatibility between
+
+00:07:18.560 --> 00:07:21.599
+different editors
+
+00:07:21.599 --> 00:07:27.280
+but I think in the long run it will be
+
+00:07:27.280 --> 00:07:29.520
+would it better if there's some kind of
+
+00:07:29.520 --> 00:07:31.360
+effort to
+
+00:07:31.360 --> 00:07:34.880
+unify the at least provide the
+
+00:07:34.880 --> 00:07:37.440
+most common patterns that should work
+
+00:07:37.440 --> 00:07:42.840
+across
+
+00:07:42.840 --> 00:07:51.759
+editors
+
+00:07:51.759 --> 00:07:53.520
+next one is could there be a
+
+00:07:53.520 --> 00:07:55.280
+standardized approach
+
+00:07:55.280 --> 00:07:57.919
+to coding automatic refactoring in the
+
+00:07:57.919 --> 00:08:01.039
+future
+
+00:08:01.039 --> 00:08:02.639
+so that whichever language mode you're
+
+00:08:02.639 --> 00:08:04.160
+using you could see many
+
+00:08:04.160 --> 00:08:12.960
+available refactoring operations
+
+00:08:12.960 --> 00:08:16.400
+I'm not sure about this because the
+
+00:08:16.400 --> 00:08:19.919
+like
+
+00:08:19.919 --> 00:08:22.240
+most of uh refactoring operations are
+
+00:08:22.240 --> 00:08:23.840
+actually very
+
+00:08:23.840 --> 00:08:26.960
+like highly specific to a language or at
+
+00:08:26.960 --> 00:08:28.720
+least to class of
+
+00:08:28.720 --> 00:08:33.599
+class of languages so
+
+00:08:33.599 --> 00:08:37.839
+so so maybe it's not like uh one single
+
+00:08:37.839 --> 00:08:40.719
+approach for all the languages but maybe
+
+00:08:40.719 --> 00:08:41.519
+uh
+
+00:08:41.519 --> 00:08:43.760
+one for object-oriented oriented
+
+00:08:43.760 --> 00:08:44.959
+languages
+
+00:08:44.959 --> 00:08:50.160
+one for lisp like language for example
+
+00:08:50.160 --> 00:09:02.959
+maybe one for javascript and typestream
+
+00:09:02.959 --> 00:09:05.360
+next question is uh I'm completely new
+
+00:09:05.360 --> 00:09:07.519
+to trisita how do I use it
+
+00:09:07.519 --> 00:09:10.160
+as an end user is there any easy example
+
+00:09:10.160 --> 00:09:11.519
+config out there
+
+00:09:11.519 --> 00:09:14.000
+the organizer otherwise that shows
+
+00:09:14.000 --> 00:09:15.440
+standard usage
+
+00:09:15.440 --> 00:09:18.960
+with whatever programming language
+
+00:09:18.960 --> 00:09:20.480
+[Music]
+
+00:09:20.480 --> 00:09:27.600
+yeah there's no um
+
+00:09:27.600 --> 00:09:30.880
+uh actually that uh so the project has
+
+00:09:30.880 --> 00:09:32.000
+the documentation
+
+00:09:32.000 --> 00:09:36.399
+site but it's not very expensive yet
+
+00:09:36.399 --> 00:09:40.720
+I think we need to add more examples
+
+00:09:40.720 --> 00:09:48.720
+to the documentation
+
+00:09:48.720 --> 00:09:51.200
+can language major mode authors start
+
+00:09:51.200 --> 00:09:53.519
+taking advantage of this now
+
+00:09:53.519 --> 00:09:56.240
+or is it intended to be used as a minor
+
+00:09:56.240 --> 00:09:57.279
+mode
+
+00:09:57.279 --> 00:10:00.399
+uh actually it's both so it's intended
+
+00:10:00.399 --> 00:10:01.600
+to be used
+
+00:10:01.600 --> 00:10:04.480
+as a minor mode but it's also intended
+
+00:10:04.480 --> 00:10:05.920
+to
+
+00:10:05.920 --> 00:10:09.839
+be depended on by the major mode
+
+00:10:09.839 --> 00:10:13.519
+so basically it it wants to be a minor
+
+00:10:13.519 --> 00:10:13.920
+mode
+
+00:10:13.920 --> 00:10:17.200
+that is dependent on by the other
+
+00:10:17.200 --> 00:10:21.839
+major modes
+
+00:10:21.839 --> 00:10:25.680
+and by it here I mean the the base
+
+00:10:25.680 --> 00:10:30.839
+minor mode tree system mode
+
+00:10:30.839 --> 00:10:34.079
+so uh question
+
+00:10:34.079 --> 00:10:37.120
+11 is it possible to use this
+
+00:10:37.120 --> 00:10:40.160
+for refactoring tool
+
+00:10:40.160 --> 00:10:43.360
+uh yeah but
+
+00:10:43.360 --> 00:10:46.720
+um like for the kind of refactoring
+
+00:10:46.720 --> 00:10:47.680
+inside uh
+
+00:10:47.680 --> 00:10:52.640
+buffer it is uh
+
+00:10:52.640 --> 00:10:55.040
+it's very doable right now but you need
+
+00:10:55.040 --> 00:10:57.040
+to write some glue code
+
+00:10:57.040 --> 00:11:01.120
+but for for the kind of more
+
+00:11:01.120 --> 00:11:04.000
+extensive refactoring where you want to
+
+00:11:04.000 --> 00:11:04.399
+touch
+
+00:11:04.399 --> 00:11:09.279
+uh like all files in a project
+
+00:11:09.279 --> 00:11:11.440
+there needs there needs to be some kind
+
+00:11:11.440 --> 00:11:12.839
+of the project
+
+00:11:12.839 --> 00:11:15.920
+and another project and uh
+
+00:11:15.920 --> 00:11:18.399
+understanding of the language uh model
+
+00:11:18.399 --> 00:11:19.200
+system
+
+00:11:19.200 --> 00:11:21.120
+like how they are laid out in the file
+
+00:11:21.120 --> 00:11:22.560
+system as well
+
+00:11:22.560 --> 00:11:24.480
+and with that understanding that there
+
+00:11:24.480 --> 00:11:26.240
+should be passing of
+
+00:11:26.240 --> 00:11:29.920
+the files even files on the file system
+
+00:11:29.920 --> 00:11:30.480
+that
+
+00:11:30.480 --> 00:11:34.000
+are not yet loaded into Emacs
+
+00:11:34.000 --> 00:11:37.760
+so that sounds like something more
+
+00:11:37.760 --> 00:11:41.040
+a lot more
+
+00:11:41.040 --> 00:11:46.320
+a lot more extensive
+
+00:11:46.320 --> 00:11:49.519
+and it probably probably sounds like
+
+00:11:49.519 --> 00:11:50.000
+something
+
+00:11:50.000 --> 00:11:52.160
+something like an id in uh inside your
+
+00:11:52.160 --> 00:11:54.560
+max already like a replacement for
+
+00:11:54.560 --> 00:12:07.360
+for lsp
+
+00:12:07.360 --> 00:12:10.480
+so next question is the that pop-up mx
+
+00:12:10.480 --> 00:12:11.440
+window
+
+00:12:11.440 --> 00:12:15.200
+how do you get that
+
+00:12:15.200 --> 00:12:18.720
+is the custom hem code I wrote a long
+
+00:12:18.720 --> 00:12:20.320
+time ago
+
+00:12:20.320 --> 00:12:24.800
+but but right now the best way to
+
+00:12:24.800 --> 00:12:26.480
+to have something like that is probably
+
+00:12:26.480 --> 00:12:29.440
+the what is written here like uh
+
+00:12:29.440 --> 00:12:33.200
+ham boss frame or iv spring
+
+00:12:33.200 --> 00:12:39.839
+is a lot easier now
+
+00:12:39.839 --> 00:12:43.680
+is there a folding mode for tree sitter
+
+00:12:43.680 --> 00:12:46.320
+nowadays there's no folding mode for
+
+00:12:46.320 --> 00:12:48.079
+three sitters yet
+
+00:12:48.079 --> 00:12:52.000
+but uh
+
+00:12:52.000 --> 00:12:54.880
+uh but I think it would better be better
+
+00:12:54.880 --> 00:12:59.440
+if it's integrated with the
+
+00:12:59.440 --> 00:13:02.079
+like current currently there are
+
+00:13:02.079 --> 00:13:03.120
+multiple
+
+00:13:03.120 --> 00:13:04.880
+I'm not sure they're moving forward
+
+00:13:04.880 --> 00:13:07.200
+there are like code folding frameworks
+
+00:13:07.200 --> 00:13:10.240
+inside imax already or some the
+
+00:13:10.240 --> 00:13:12.800
+code showing packages like third party
+
+00:13:12.800 --> 00:13:13.920
+packaging
+
+00:13:13.920 --> 00:13:15.680
+and I think it's better to integrate
+
+00:13:15.680 --> 00:13:17.680
+with these mods
+
+00:13:17.680 --> 00:13:20.000
+rather than writing something new
+
+00:13:20.000 --> 00:13:32.399
+entirely
+
+00:13:32.399 --> 00:13:34.800
+are there any language major modes that
+
+00:13:34.800 --> 00:13:36.639
+have integrated already
+
+00:13:36.639 --> 00:13:40.079
+uh not yet
+
+00:13:40.079 --> 00:13:42.800
+so the there was a proposed web assembly
+
+00:13:42.800 --> 00:13:43.440
+mode
+
+00:13:43.440 --> 00:13:46.839
+but it's a new major mode in terms of
+
+00:13:46.839 --> 00:13:50.000
+existing major mode there is the
+
+00:13:50.000 --> 00:13:53.279
+typescript mode
+
+00:13:53.279 --> 00:13:55.600
+but they're only discussing about
+
+00:13:55.600 --> 00:13:57.519
+integration
+
+00:13:57.519 --> 00:14:02.079
+they're not integrated yet
+
+00:14:02.079 --> 00:14:04.639
+I think I can try writing the
+
+00:14:04.639 --> 00:14:05.360
+integration
+
+00:14:05.360 --> 00:14:09.199
+sometimes next month
+
+00:14:09.199 --> 00:14:11.839
+uh basically what they want right now is
+
+00:14:11.839 --> 00:14:12.720
+the
+
+00:14:12.720 --> 00:14:16.160
+syntax highlighting and handling
+
+00:14:16.160 --> 00:14:19.199
+synthetic highlighting and
+
+00:14:19.199 --> 00:14:22.959
+code indentation for tsx
+
+00:14:22.959 --> 00:14:27.760
+which is the embedded react
+
+00:14:27.760 --> 00:14:32.160
+syntax inside typescript
+
+00:14:32.160 --> 00:14:36.399
+so it turns out passing these tests
+
+00:14:36.399 --> 00:14:40.639
+is very troublesome so
+
+00:14:40.639 --> 00:14:43.920
+so trees that would be a crystal would
+
+00:14:43.920 --> 00:14:49.920
+be a lot of help there
+
+00:14:49.920 --> 00:14:53.279
+is there any link to the slides yes
+
+00:14:53.279 --> 00:14:59.920
+I'll post it in irc later
+
+00:14:59.920 --> 00:15:01.920
+regarding imax integration we will
+
+00:15:01.920 --> 00:15:04.240
+always need to be a foreign library or
+
+00:15:04.240 --> 00:15:05.440
+can it be included
+
+00:15:05.440 --> 00:15:10.839
+linked directly in compilation
+
+00:15:10.839 --> 00:15:14.480
+uh if if this is about the
+
+00:15:14.480 --> 00:15:17.600
+core library itself
+
+00:15:17.600 --> 00:15:21.839
+then I think it's uh answered it in the
+
+00:15:21.839 --> 00:15:23.440
+first question
+
+00:15:23.440 --> 00:15:27.440
+right now is a right now it's a
+
+00:15:27.440 --> 00:15:29.920
+dynamic model but in the long run it
+
+00:15:29.920 --> 00:15:30.959
+will better if
+
+00:15:30.959 --> 00:15:34.000
+it's included in core Emacs
+
+00:15:34.000 --> 00:15:39.839
+for the language definitions themselves
+
+00:15:39.839 --> 00:15:41.360
+it should be better if they are
+
+00:15:41.360 --> 00:15:43.279
+distributed uh
+
+00:15:43.279 --> 00:15:46.639
+separately like that right now so each
+
+00:15:46.639 --> 00:15:49.199
+uh for each language there will be a
+
+00:15:49.199 --> 00:15:49.680
+shared
+
+00:15:49.680 --> 00:15:52.639
+library that will be loaded by the core
+
+00:15:52.639 --> 00:16:00.480
+library at runtime
+
+00:16:00.480 --> 00:16:02.480
+so the last question is the python mode
+
+00:16:02.480 --> 00:16:04.240
+example is pretty good
+
+00:16:04.240 --> 00:16:06.160
+is that something that one can use
+
+00:16:06.160 --> 00:16:07.600
+already
+
+00:16:07.600 --> 00:16:12.320
+yes I'm using it at work right now
+
+00:16:12.320 --> 00:16:14.639
+I think that's all for that's all the
+
+00:16:14.639 --> 00:16:19.199
+questions right
+
+00:16:19.199 --> 00:16:23.440
+you are now unmuted yeah I think that's
+
+00:16:23.440 --> 00:16:27.839
+all the questions on the pads so far um
+
+00:16:27.839 --> 00:16:30.399
+so thank you but um there may be more
+
+00:16:30.399 --> 00:16:32.399
+questions coming on irc
+
+00:16:32.399 --> 00:16:36.639
+um I'll try to have a look
+
+00:16:36.639 --> 00:16:39.680
+and we still have about 10 or 15 more
+
+00:16:39.680 --> 00:16:40.560
+minutes so
+
+00:16:40.560 --> 00:16:43.600
+um there's no rush to wrap up in case um
+
+00:16:43.600 --> 00:16:48.160
+anyone has any more questions
+
+00:16:48.160 --> 00:16:50.880
+uh yeah I just realized that uh I mixed
+
+00:16:50.880 --> 00:16:51.360
+up the
+
+00:16:51.360 --> 00:16:54.959
+video editing and I uh lost an entire
+
+00:16:54.959 --> 00:16:56.000
+session on the
+
+00:16:56.000 --> 00:17:01.120
+introduction to treesita oh
+
+00:17:01.120 --> 00:17:06.640
+no worries
+
+00:17:06.640 --> 00:17:18.079
+you are now muted
+
+00:17:18.079 --> 00:17:20.079
+sounds like a perfect opportunity for
+
+00:17:20.079 --> 00:17:21.679
+you to redo the introduction if you'd
+
+00:17:21.679 --> 00:17:24.640
+like to
+
+00:17:24.640 --> 00:17:30.799
+uh actually uh forgot a lot of that
+
+00:17:30.799 --> 00:17:33.760
+and I'm with uh tired now so no I don't
+
+00:17:33.760 --> 00:17:35.760
+think I can do it
+
+00:17:35.760 --> 00:17:39.200
+it's uh 30 minutes until my bedtime
+
+00:17:39.200 --> 00:17:43.520
+oh yeah yeah okay you are now unmuted
+
+00:17:43.520 --> 00:17:46.640
+so in that case maybe we should
+
+00:17:46.640 --> 00:17:50.480
+um we should let tona
+
+00:17:50.480 --> 00:17:54.240
+get started going to bed and um and
+
+00:17:54.240 --> 00:17:56.960
+I mean then I will figure out what to do
+
+00:17:56.960 --> 00:17:57.840
+with the time
+
+00:17:57.840 --> 00:17:59.360
+should we start the next talk early
+
+00:17:59.360 --> 00:18:02.160
+since it's pre-recorded
+
+00:18:02.160 --> 00:18:05.360
+um yeah we can do we can do that um
+
+00:18:05.360 --> 00:18:07.919
+but um yeah tonight it you know right
+
+00:18:07.919 --> 00:18:09.919
+now it's pretty late there um no worries
+
+00:18:09.919 --> 00:18:10.480
+but
+
+00:18:10.480 --> 00:18:12.720
+yeah if you know over the next few days
+
+00:18:12.720 --> 00:18:13.520
+or weeks
+
+00:18:13.520 --> 00:18:16.559
+if you would like to um you know
+
+00:18:16.559 --> 00:18:20.240
+do a quick pre-recording or recording
+
+00:18:20.240 --> 00:18:22.080
+to add the introduction and then stitch
+
+00:18:22.080 --> 00:18:24.320
+it in with what you had already sent me
+
+00:18:24.320 --> 00:18:26.559
+um by all means please do that and I
+
+00:18:26.559 --> 00:18:30.160
+will upload the edited version
+
+00:18:30.160 --> 00:18:34.880
+uh yeah yeah I'll try to do that
+
+00:18:34.880 --> 00:18:39.760
+thank you yep thank you so much bye
diff --git a/2020/subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--tuan-anh-nguyen-autogen.vtt b/2020/subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--tuan-anh-nguyen-autogen.vtt
new file mode 100644
index 00000000..99133c78
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--tuan-anh-nguyen-autogen.vtt
@@ -0,0 +1,1522 @@
+WEBVTT
+
+00:00:01.520 --> 00:00:04.400
+hello everyone my name is toniang
+
+00:00:04.400 --> 00:00:07.200
+I've been using amax for about 10 years
+
+00:00:07.200 --> 00:00:09.280
+today I'm going to talk about 360
+
+00:00:09.280 --> 00:00:11.519
+a new imax package that allows ems to
+
+00:00:11.519 --> 00:00:13.759
+pass multiple programming languages
+
+00:00:13.759 --> 00:00:17.840
+in real time
+
+00:00:17.840 --> 00:00:21.840
+so what is the problem statement
+
+00:00:21.840 --> 00:00:23.359
+in order to support programming
+
+00:00:23.359 --> 00:00:24.960
+functionalities for a particular
+
+00:00:24.960 --> 00:00:25.760
+language
+
+00:00:25.760 --> 00:00:27.680
+a text editor needs to have some degree
+
+00:00:27.680 --> 00:00:29.679
+of language understanding
+
+00:00:29.679 --> 00:00:31.840
+traditionally text editors have relied
+
+00:00:31.840 --> 00:00:33.840
+very heavily on regular expressions for
+
+00:00:33.840 --> 00:00:34.960
+this
+
+00:00:34.960 --> 00:00:38.320
+e-max is no different most language
+
+00:00:38.320 --> 00:00:39.280
+major modes use
+
+00:00:39.280 --> 00:00:40.879
+regular expressions for syntax
+
+00:00:40.879 --> 00:00:42.960
+highlighting code navigation
+
+00:00:42.960 --> 00:00:46.239
+folding indexing and so on regular
+
+00:00:46.239 --> 00:00:47.440
+expressions are
+
+00:00:47.440 --> 00:00:50.559
+problematic for a couple of reasons
+
+00:00:50.559 --> 00:00:53.600
+they're slow and inaccurate they also
+
+00:00:53.600 --> 00:00:54.000
+make
+
+00:00:54.000 --> 00:00:56.800
+the code hard to read and write
+
+00:00:56.800 --> 00:00:57.440
+sometimes
+
+00:00:57.440 --> 00:00:59.199
+it's because the regular expressions
+
+00:00:59.199 --> 00:01:01.199
+themselves are very hairy
+
+00:01:01.199 --> 00:01:04.000
+and sometimes because they are just not
+
+00:01:04.000 --> 00:01:05.199
+powerful enough
+
+00:01:05.199 --> 00:01:07.840
+some helper code is usually needed to
+
+00:01:07.840 --> 00:01:11.200
+pass more intricate language features
+
+00:01:11.200 --> 00:01:13.280
+that also illustrates the core problem
+
+00:01:13.280 --> 00:01:16.159
+with regular expressions
+
+00:01:16.159 --> 00:01:18.400
+in that they are not powerful enough to
+
+00:01:18.400 --> 00:01:21.119
+pass programming languages
+
+00:01:21.119 --> 00:01:22.640
+an example feature that regular
+
+00:01:22.640 --> 00:01:25.040
+expressions cannot handle very well
+
+00:01:25.040 --> 00:01:27.520
+is string interpolation which is a very
+
+00:01:27.520 --> 00:01:28.320
+common feature
+
+00:01:28.320 --> 00:01:31.680
+in many modern programming languages
+
+00:01:31.680 --> 00:01:34.079
+it would be much nicer if image somehow
+
+00:01:34.079 --> 00:01:35.840
+had structural understanding of source
+
+00:01:35.840 --> 00:01:36.479
+code
+
+00:01:36.479 --> 00:01:39.520
+like ides do
+
+00:01:39.520 --> 00:01:41.119
+there have been multiple efforts to
+
+00:01:41.119 --> 00:01:42.960
+bring this kind of programming language
+
+00:01:42.960 --> 00:01:45.280
+understanding into Emacs
+
+00:01:45.280 --> 00:01:47.119
+there are language specific persons
+
+00:01:47.119 --> 00:01:48.640
+written in elise
+
+00:01:48.640 --> 00:01:50.240
+they can be thought of as the next
+
+00:01:50.240 --> 00:01:52.320
+logical step of the glue code on top
+
+00:01:52.320 --> 00:01:54.960
+of tribal expressions moving from
+
+00:01:54.960 --> 00:01:56.000
+partial local
+
+00:01:56.000 --> 00:01:58.079
+pattern recognition into a full-fledged
+
+00:01:58.079 --> 00:01:59.840
+parser
+
+00:01:59.840 --> 00:02:01.439
+the most prominent example of this
+
+00:02:01.439 --> 00:02:03.040
+approach is probably the famous
+
+00:02:03.040 --> 00:02:06.479
+js2 mode
+
+00:02:06.479 --> 00:02:10.080
+however this approach has several issues
+
+00:02:10.080 --> 00:02:12.959
+parsing is computationally expensive and
+
+00:02:12.959 --> 00:02:13.680
+imagine
+
+00:02:13.680 --> 00:02:16.800
+is not good at that kind of stuff
+
+00:02:16.800 --> 00:02:18.400
+furthermore maintenance is very
+
+00:02:18.400 --> 00:02:20.840
+troublesome in order to work on these
+
+00:02:20.840 --> 00:02:22.160
+process
+
+00:02:22.160 --> 00:02:23.599
+first you have to know at least well
+
+00:02:23.599 --> 00:02:25.599
+enough and then you have to be
+
+00:02:25.599 --> 00:02:27.760
+comfortable with writing a
+
+00:02:27.760 --> 00:02:30.319
+recursive ascendant parser while
+
+00:02:30.319 --> 00:02:32.080
+constantly keeping up with changes to
+
+00:02:32.080 --> 00:02:34.000
+the language itself
+
+00:02:34.000 --> 00:02:36.879
+which can be evolving very quickly like
+
+00:02:36.879 --> 00:02:39.360
+javascript for example
+
+00:02:39.360 --> 00:02:41.599
+together these constraints significantly
+
+00:02:41.599 --> 00:02:45.680
+reduce the pull of potential maintenance
+
+00:02:45.680 --> 00:02:47.760
+the biggest issue though in my opinion
+
+00:02:47.760 --> 00:02:49.680
+is lack of the set of generic
+
+00:02:49.680 --> 00:02:52.879
+and reusable apis this makes them very
+
+00:02:52.879 --> 00:02:54.319
+hard to use
+
+00:02:54.319 --> 00:02:55.920
+for minor modes that want to deal with
+
+00:02:55.920 --> 00:02:57.920
+cross-cutting concerns across multiple
+
+00:02:57.920 --> 00:02:59.920
+languages
+
+00:02:59.920 --> 00:03:01.760
+the other approach which has been
+
+00:03:01.760 --> 00:03:03.599
+gaining a lot of momentum in recent
+
+00:03:03.599 --> 00:03:04.319
+years
+
+00:03:04.319 --> 00:03:06.560
+is externalizing language understanding
+
+00:03:06.560 --> 00:03:08.159
+to another process
+
+00:03:08.159 --> 00:03:12.239
+also known as language server protocol
+
+00:03:12.239 --> 00:03:14.480
+this second approach is actually a very
+
+00:03:14.480 --> 00:03:16.560
+interesting one
+
+00:03:16.560 --> 00:03:18.400
+my decoupling language understanding
+
+00:03:18.400 --> 00:03:21.280
+from the editing facility itself
+
+00:03:21.280 --> 00:03:23.760
+the usb servers can attract a lot more
+
+00:03:23.760 --> 00:03:25.120
+contributors
+
+00:03:25.120 --> 00:03:28.959
+which makes maintenance easier however
+
+00:03:28.959 --> 00:03:32.400
+they also have several issues available
+
+00:03:32.400 --> 00:03:34.720
+being a separate process they are
+
+00:03:34.720 --> 00:03:36.000
+usually more resource
+
+00:03:36.000 --> 00:03:39.920
+intensive and depending on the language
+
+00:03:39.920 --> 00:03:42.159
+the usb server itself can bring with it
+
+00:03:42.159 --> 00:03:44.640
+a host of additional dependencies
+
+00:03:44.640 --> 00:03:47.680
+external to Emacs which may message to
+
+00:03:47.680 --> 00:03:50.640
+install and manage
+
+00:03:50.640 --> 00:03:53.760
+furthermore json over rpc has pretty
+
+00:03:53.760 --> 00:03:55.120
+high latency
+
+00:03:55.120 --> 00:03:57.840
+for one-off tasks like jumping to source
+
+00:03:57.840 --> 00:04:00.879
+or on-demand completion is great
+
+00:04:00.879 --> 00:04:03.040
+but for things like code highlighting
+
+00:04:03.040 --> 00:04:06.000
+the latency is just too much
+
+00:04:06.000 --> 00:04:08.319
+I was using rust and I was following the
+
+00:04:08.319 --> 00:04:10.480
+community effort to improve its id
+
+00:04:10.480 --> 00:04:11.760
+support
+
+00:04:11.760 --> 00:04:13.680
+hoping to integrate some of that into
+
+00:04:13.680 --> 00:04:15.760
+Emacs itself
+
+00:04:15.760 --> 00:04:17.600
+then I heard someone from community
+
+00:04:17.600 --> 00:04:19.759
+mention tree sitter
+
+00:04:19.759 --> 00:04:23.360
+and I decided to check it out
+
+00:04:23.360 --> 00:04:25.520
+basically trisita is an incremental
+
+00:04:25.520 --> 00:04:28.720
+parsing library and a parser generator
+
+00:04:28.720 --> 00:04:31.000
+it was introduced by the item editor in
+
+00:04:31.000 --> 00:04:33.040
+2018
+
+00:04:33.040 --> 00:04:35.680
+besides item is also being integrated
+
+00:04:35.680 --> 00:04:36.960
+into the neo-vim
+
+00:04:36.960 --> 00:04:41.040
+editor and github is using it to power
+
+00:04:41.040 --> 00:04:42.479
+their source code analysis and
+
+00:04:42.479 --> 00:04:45.840
+navigation features
+
+00:04:45.840 --> 00:04:48.639
+it is written in c and can be compiled
+
+00:04:48.639 --> 00:04:49.199
+for all
+
+00:04:49.199 --> 00:04:53.120
+major platforms it can even be compiled
+
+00:04:53.120 --> 00:04:56.080
+to web assembly to run on the web that's
+
+00:04:56.080 --> 00:04:57.600
+how github is using it
+
+00:04:57.600 --> 00:05:00.800
+on their website
+
+00:05:00.800 --> 00:05:02.960
+so why is trisita an interesting
+
+00:05:02.960 --> 00:05:05.840
+solution to this problem
+
+00:05:05.840 --> 00:05:07.360
+there are multiple features that make it
+
+00:05:07.360 --> 00:05:10.000
+an attractive option
+
+00:05:10.000 --> 00:05:12.400
+it is designed to be fast by being
+
+00:05:12.400 --> 00:05:13.680
+incremental
+
+00:05:13.680 --> 00:05:15.680
+the initial parts of a typical big fight
+
+00:05:15.680 --> 00:05:18.160
+can take tens of milliseconds
+
+00:05:18.160 --> 00:05:20.240
+while subsequent incremental processes
+
+00:05:20.240 --> 00:05:22.560
+are sub milliseconds
+
+00:05:22.560 --> 00:05:24.720
+it achieves this by using structural
+
+00:05:24.720 --> 00:05:26.240
+sharing
+
+00:05:26.240 --> 00:05:29.360
+meaning replacing only affected nodes
+
+00:05:29.360 --> 00:05:32.960
+in the old tree when it needs to
+
+00:05:32.960 --> 00:05:36.000
+also unlike lsp being in the same
+
+00:05:36.000 --> 00:05:37.120
+process
+
+00:05:37.120 --> 00:05:40.639
+it has much lower latency
+
+00:05:40.639 --> 00:05:42.880
+secondly it provides a uniform
+
+00:05:42.880 --> 00:05:44.960
+programming interface
+
+00:05:44.960 --> 00:05:47.039
+the same data structures and functions
+
+00:05:47.039 --> 00:05:48.720
+work on parse trees of different
+
+00:05:48.720 --> 00:05:50.400
+languages
+
+00:05:50.400 --> 00:05:52.160
+syntax knows of different languages
+
+00:05:52.160 --> 00:05:54.160
+differ only by their types
+
+00:05:54.160 --> 00:05:57.360
+and their possible child nodes this
+
+00:05:57.360 --> 00:05:58.960
+is a big advantage over language
+
+00:05:58.960 --> 00:06:02.240
+specific parcels
+
+00:06:02.240 --> 00:06:04.880
+thirdly it's written in self-contained
+
+00:06:04.880 --> 00:06:06.880
+embeddable c
+
+00:06:06.880 --> 00:06:09.680
+as I mentioned previously it can even be
+
+00:06:09.680 --> 00:06:10.400
+compiled
+
+00:06:10.400 --> 00:06:13.759
+to webassembly this makes integrating it
+
+00:06:13.759 --> 00:06:15.199
+into various editors
+
+00:06:15.199 --> 00:06:18.240
+quite easy without having to install
+
+00:06:18.240 --> 00:06:22.880
+any external dependencies
+
+00:06:22.880 --> 00:06:24.639
+one thing that is not mentioned here is
+
+00:06:24.639 --> 00:06:28.000
+that being a parcel generator
+
+00:06:28.000 --> 00:06:31.039
+scrummers are declarative
+
+00:06:31.039 --> 00:06:34.880
+together with being editor independent
+
+00:06:34.880 --> 00:06:36.720
+this makes the pool of potential
+
+00:06:36.720 --> 00:06:38.160
+contributors
+
+00:06:38.160 --> 00:06:42.400
+much larger so I was convinced
+
+00:06:42.400 --> 00:06:45.520
+that trisito is a good fit for Emacs
+
+00:06:45.520 --> 00:06:48.000
+last year I started writing the bindings
+
+00:06:48.000 --> 00:06:48.720
+using
+
+00:06:48.720 --> 00:06:50.960
+dynamic model support introduced in imax
+
+00:06:50.960 --> 00:06:53.280
+25.
+
+00:06:53.280 --> 00:06:55.360
+dynamic module means there is platform
+
+00:06:55.360 --> 00:06:58.479
+specific native code involved
+
+00:06:58.479 --> 00:07:00.560
+but since they are pre-compiled binaries
+
+00:07:00.560 --> 00:07:02.880
+for the three major platforms
+
+00:07:02.880 --> 00:07:06.319
+it should work in most places currently
+
+00:07:06.319 --> 00:07:08.319
+the core functionalities are in a pretty
+
+00:07:08.319 --> 00:07:09.440
+good shape
+
+00:07:09.440 --> 00:07:12.560
+syntax highlighting is working nicely
+
+00:07:12.560 --> 00:07:14.840
+the whole thing is split into three
+
+00:07:14.840 --> 00:07:16.080
+packages
+
+00:07:16.080 --> 00:07:17.759
+tree sitter is the main package that
+
+00:07:17.759 --> 00:07:20.319
+other packages should depend on
+
+00:07:20.319 --> 00:07:22.800
+tree system lens is the language bundle
+
+00:07:22.800 --> 00:07:24.000
+that includes support
+
+00:07:24.000 --> 00:07:27.199
+for most common languages
+
+00:07:27.199 --> 00:07:30.080
+and finally the core apis are in the
+
+00:07:30.080 --> 00:07:32.160
+package tsc
+
+00:07:32.160 --> 00:07:36.160
+which stands for trees the core
+
+00:07:36.160 --> 00:07:38.800
+it is the implicit dependency of the
+
+00:07:38.800 --> 00:07:43.520
+three-seater package
+
+00:07:43.520 --> 00:07:46.000
+the main package includes the miner mode
+
+00:07:46.000 --> 00:07:47.520
+3-seater mode
+
+00:07:47.520 --> 00:07:49.840
+this provides the base for other major
+
+00:07:49.840 --> 00:07:52.560
+or minor modes to build on
+
+00:07:52.560 --> 00:07:55.280
+using image change tracking hooks it
+
+00:07:55.280 --> 00:07:55.840
+enables
+
+00:07:55.840 --> 00:07:58.080
+incremental parsing and provides a
+
+00:07:58.080 --> 00:08:00.800
+syntax tree that is always up to date
+
+00:08:00.800 --> 00:08:04.080
+after any edits in a buffer
+
+00:08:04.080 --> 00:08:06.560
+there is also a basic debug mode that
+
+00:08:06.560 --> 00:08:10.080
+shows the parse tree in another buffer
+
+00:08:10.080 --> 00:08:13.360
+here is a quick demo
+
+00:08:13.360 --> 00:08:15.759
+here I mean an empty python buffer with
+
+00:08:15.759 --> 00:08:17.520
+three seater enabled
+
+00:08:17.520 --> 00:08:19.440
+I'm going to turn on the debug mode to
+
+00:08:19.440 --> 00:08:26.560
+see the parse tree
+
+00:08:26.560 --> 00:08:28.720
+since the buffer is empty there is only
+
+00:08:28.720 --> 00:08:30.639
+one node in the syntax tree the top
+
+00:08:30.639 --> 00:08:33.279
+level module node
+
+00:08:33.279 --> 00:09:11.040
+let's try typing some code
+
+00:09:11.040 --> 00:09:13.600
+as you can see as I type into the python
+
+00:09:13.600 --> 00:09:14.640
+buffer
+
+00:09:14.640 --> 00:09:19.120
+the syntax tree updates in real time
+
+00:09:19.120 --> 00:09:21.120
+the other minor mode included in the
+
+00:09:21.120 --> 00:09:23.279
+main package is 3-seater
+
+00:09:23.279 --> 00:09:26.640
+hl mode it overrides font-lock mode and
+
+00:09:26.640 --> 00:09:28.480
+provides its own set of phases
+
+00:09:28.480 --> 00:09:31.839
+and customization options it is query
+
+00:09:31.839 --> 00:09:32.800
+driven
+
+00:09:32.800 --> 00:09:35.200
+that means instead of regular
+
+00:09:35.200 --> 00:09:36.240
+expressions
+
+00:09:36.240 --> 00:09:38.720
+it uses a list like query language to
+
+00:09:38.720 --> 00:09:40.320
+map syntax notes
+
+00:09:40.320 --> 00:09:43.760
+to highlighting phrases I'm going to
+
+00:09:43.760 --> 00:09:45.760
+open a python file with small snippets
+
+00:09:45.760 --> 00:09:54.320
+that showcase syntax highlighting
+
+00:09:54.320 --> 00:09:55.920
+so this is the default highlighting
+
+00:09:55.920 --> 00:10:00.880
+provided by python mode
+
+00:10:00.880 --> 00:10:02.839
+this is the highlighting enabled by tree
+
+00:10:02.839 --> 00:10:04.640
+sitter
+
+00:10:04.640 --> 00:10:07.680
+as you can see string interpolation
+
+00:10:07.680 --> 00:10:11.680
+and decorators are highlighted correctly
+
+00:10:11.680 --> 00:10:17.440
+function calls are also highlighted
+
+00:10:17.440 --> 00:10:20.240
+you can also note that property
+
+00:10:20.240 --> 00:10:21.839
+assessors
+
+00:10:21.839 --> 00:10:24.640
+and property assignments are highlighted
+
+00:10:24.640 --> 00:10:27.440
+differently
+
+00:10:27.440 --> 00:10:29.360
+what I like the most about this is that
+
+00:10:29.360 --> 00:10:30.880
+new bindings are consistently
+
+00:10:30.880 --> 00:10:32.640
+highlighted
+
+00:10:32.640 --> 00:10:36.320
+this included local variable
+
+00:10:36.320 --> 00:10:39.760
+function parameters and property
+
+00:10:39.760 --> 00:10:45.760
+mutations
+
+00:10:45.760 --> 00:10:48.000
+before going through the three queries
+
+00:10:48.000 --> 00:10:49.279
+and the syntax highlighting
+
+00:10:49.279 --> 00:10:51.680
+customization options
+
+00:10:51.680 --> 00:10:53.760
+let's take a brief look at the core data
+
+00:10:53.760 --> 00:10:55.040
+structures and functions
+
+00:10:55.040 --> 00:10:58.079
+that tree sitter provides
+
+00:10:58.079 --> 00:10:59.839
+so parsing is done with the help of a
+
+00:10:59.839 --> 00:11:02.240
+generic parser object
+
+00:11:02.240 --> 00:11:04.160
+a single parser object can be used to
+
+00:11:04.160 --> 00:11:06.000
+pass different languages
+
+00:11:06.000 --> 00:11:08.320
+by sending different language objects to
+
+00:11:08.320 --> 00:11:09.279
+it
+
+00:11:09.279 --> 00:11:10.880
+the language objects themselves are
+
+00:11:10.880 --> 00:11:14.079
+loaded from shared libraries
+
+00:11:14.079 --> 00:11:16.079
+since three seater mode already handles
+
+00:11:16.079 --> 00:11:17.360
+the parsing part
+
+00:11:17.360 --> 00:11:19.440
+we will instead focus on the functions
+
+00:11:19.440 --> 00:11:20.800
+that inspect nodes
+
+00:11:20.800 --> 00:11:25.279
+and in the resulting path tree
+
+00:11:25.279 --> 00:11:27.200
+we can ask tree sitter what is the
+
+00:11:27.200 --> 00:11:44.240
+syntax node at point
+
+00:11:44.240 --> 00:11:47.200
+uh is it an opaque object so this is not
+
+00:11:47.200 --> 00:11:48.480
+very useful
+
+00:11:48.480 --> 00:12:03.760
+we can instead ask what is its type
+
+00:12:03.760 --> 00:12:06.560
+so his type is the symbol comparison
+
+00:12:06.560 --> 00:12:08.959
+operator
+
+00:12:08.959 --> 00:12:11.600
+trees there are two kinds of nodes
+
+00:12:11.600 --> 00:12:13.680
+anonymous nodes and named nodes
+
+00:12:13.680 --> 00:12:15.519
+anonymous nodes correspond to simple
+
+00:12:15.519 --> 00:12:17.040
+grammar elements
+
+00:12:17.040 --> 00:12:19.839
+like keywords operators punctuations and
+
+00:12:19.839 --> 00:12:21.279
+so on
+
+00:12:21.279 --> 00:12:24.160
+name nodes on the other hand grammar
+
+00:12:24.160 --> 00:12:25.920
+elements that are interesting enough for
+
+00:12:25.920 --> 00:12:26.639
+their own
+
+00:12:26.639 --> 00:12:30.320
+to have a name like an identifier an
+
+00:12:30.320 --> 00:12:31.839
+expression
+
+00:12:31.839 --> 00:12:35.440
+or a function definition
+
+00:12:35.440 --> 00:12:37.760
+name node types are symbols while
+
+00:12:37.760 --> 00:12:42.639
+anonymous node types are strings
+
+00:12:42.639 --> 00:12:46.320
+for example if we are on this
+
+00:12:46.320 --> 00:12:49.760
+comparison operator
+
+00:12:49.760 --> 00:12:55.920
+the node type should be a string
+
+00:12:55.920 --> 00:12:57.920
+we can also get other information about
+
+00:12:57.920 --> 00:12:58.959
+the node
+
+00:12:58.959 --> 00:13:09.680
+for example what is this text
+
+00:13:09.680 --> 00:13:20.800
+or where it is in the buffer
+
+00:13:20.800 --> 00:13:43.199
+or what is its parent
+
+00:13:43.199 --> 00:13:46.160
+there are many other apis to query or
+
+00:13:46.160 --> 00:13:46.839
+not
+
+00:13:46.839 --> 00:13:52.639
+properties
+
+00:13:52.639 --> 00:13:54.399
+tree sitter allows searching for
+
+00:13:54.399 --> 00:13:58.240
+structural patterns within a parse tree
+
+00:13:58.240 --> 00:14:01.440
+it does so through a list like language
+
+00:14:01.440 --> 00:14:03.519
+this language supports by the matching
+
+00:14:03.519 --> 00:14:04.639
+by node types
+
+00:14:04.639 --> 00:14:07.760
+field names and predicates
+
+00:14:07.760 --> 00:14:10.079
+it also allows capturing nodes for
+
+00:14:10.079 --> 00:14:12.639
+further processing
+
+00:14:12.639 --> 00:14:37.680
+let's try to see some examples
+
+00:14:37.680 --> 00:14:41.040
+so in this very simple query we just
+
+00:14:41.040 --> 00:14:43.839
+try to highlight all the identifiers in
+
+00:14:43.839 --> 00:14:49.040
+the buffer
+
+00:14:49.040 --> 00:14:51.920
+this s side tells trisito to capture a
+
+00:14:51.920 --> 00:14:53.120
+node
+
+00:14:53.120 --> 00:14:55.839
+in the context of the query builder it's
+
+00:14:55.839 --> 00:14:57.360
+not very important
+
+00:14:57.360 --> 00:15:00.320
+but in normal highlighting query this
+
+00:15:00.320 --> 00:15:01.760
+will determine
+
+00:15:01.760 --> 00:15:06.639
+the face used to highlight the note
+
+00:15:06.639 --> 00:15:08.800
+suppose we want to capture all the
+
+00:15:08.800 --> 00:15:10.320
+function names
+
+00:15:10.320 --> 00:15:13.519
+instead of just any identifier
+
+00:15:13.519 --> 00:15:29.440
+you can improve the query like this
+
+00:15:29.440 --> 00:15:31.600
+uh this will highlight the whole
+
+00:15:31.600 --> 00:15:32.639
+definition
+
+00:15:32.639 --> 00:15:35.519
+but we only want to capture the function
+
+00:15:35.519 --> 00:15:36.399
+name
+
+00:15:36.399 --> 00:15:39.600
+which means the identifier
+
+00:15:39.600 --> 00:15:42.800
+here so we
+
+00:15:42.800 --> 00:15:46.320
+move the capture to after the identifier
+
+00:15:46.320 --> 00:15:49.600
+node
+
+00:15:49.600 --> 00:15:51.759
+if we want to capture the class names as
+
+00:15:51.759 --> 00:15:52.959
+well
+
+00:15:52.959 --> 00:16:10.079
+we just add another pattern
+
+00:16:10.079 --> 00:16:20.320
+let's look at a more practical example
+
+00:16:20.320 --> 00:16:22.959
+here we can see that single quotes
+
+00:16:22.959 --> 00:16:23.759
+strings and
+
+00:16:23.759 --> 00:16:25.600
+double quotes screens are highlighted
+
+00:16:25.600 --> 00:16:27.279
+the same
+
+00:16:27.279 --> 00:16:30.399
+but in some places
+
+00:16:30.399 --> 00:16:33.440
+because of some coding conventions
+
+00:16:33.440 --> 00:16:35.440
+it may be desirable to highlight them
+
+00:16:35.440 --> 00:16:37.279
+differently for example if
+
+00:16:37.279 --> 00:16:39.680
+the string is single quoted we may want
+
+00:16:39.680 --> 00:16:40.880
+to highlight it
+
+00:16:40.880 --> 00:16:44.399
+as a constant
+
+00:16:44.399 --> 00:16:46.160
+let's try to see whether we can
+
+00:16:46.160 --> 00:16:47.600
+distinguish these
+
+00:16:47.600 --> 00:16:56.240
+two cases
+
+00:16:56.240 --> 00:17:00.639
+so here we get all the strings
+
+00:17:00.639 --> 00:17:04.079
+if we want to see if it's single quotes
+
+00:17:04.079 --> 00:17:04.559
+or
+
+00:17:04.559 --> 00:17:08.799
+double quote strings
+
+00:17:08.799 --> 00:17:11.039
+we can try looking at the first
+
+00:17:11.039 --> 00:17:12.480
+character
+
+00:17:12.480 --> 00:17:15.280
+of the string I mean the first character
+
+00:17:15.280 --> 00:17:16.720
+of the note
+
+00:17:16.720 --> 00:17:19.360
+to check whether it's a single quote or
+
+00:17:19.360 --> 00:17:33.600
+a double quote
+
+00:17:33.600 --> 00:17:36.080
+yeah so for that we use the three
+
+00:17:36.080 --> 00:17:36.799
+setters
+
+00:17:36.799 --> 00:17:40.160
+support for predicate in this case
+
+00:17:40.160 --> 00:17:43.360
+we use a match predicate
+
+00:17:43.360 --> 00:17:46.080
+to check whether the string where the
+
+00:17:46.080 --> 00:17:46.799
+note
+
+00:17:46.799 --> 00:17:50.320
+starts with a single quote and with this
+
+00:17:50.320 --> 00:17:51.280
+pattern
+
+00:17:51.280 --> 00:17:58.840
+we only capture the single quotes
+
+00:17:58.840 --> 00:18:00.400
+strings
+
+00:18:00.400 --> 00:18:03.760
+let's try to give it a different face
+
+00:18:03.760 --> 00:18:13.039
+so we copy the pattern
+
+00:18:13.039 --> 00:18:18.640
+and we add this pattern
+
+00:18:18.640 --> 00:18:25.120
+pop item only
+
+00:18:25.120 --> 00:18:28.400
+but we also want to give the
+
+00:18:28.400 --> 00:18:31.440
+capture a different name
+
+00:18:31.440 --> 00:18:40.840
+let's say we want to highlight it as a
+
+00:18:40.840 --> 00:18:46.559
+keyword
+
+00:18:46.559 --> 00:19:06.320
+and now if we refresh the buffer
+
+00:19:06.320 --> 00:19:08.799
+we see that single quote strings are
+
+00:19:08.799 --> 00:19:10.320
+highlighted as
+
+00:19:10.320 --> 00:19:14.400
+keywords
+
+00:19:14.400 --> 00:19:16.400
+the highlighting patterns can also be
+
+00:19:16.400 --> 00:19:19.200
+set for a single project
+
+00:19:19.200 --> 00:19:23.440
+using directory local variable
+
+00:19:23.440 --> 00:19:26.880
+for example let's take a look at
+
+00:19:26.880 --> 00:19:35.760
+ems source code
+
+00:19:35.760 --> 00:19:40.400
+so in image c source there are a lot of
+
+00:19:40.400 --> 00:19:43.760
+uses of these different macros
+
+00:19:43.760 --> 00:19:47.679
+to define functions
+
+00:19:47.679 --> 00:19:51.200
+and you can see
+
+00:19:51.200 --> 00:19:53.520
+this is actually the function name but
+
+00:19:53.520 --> 00:19:55.760
+it's highlighted as the
+
+00:19:55.760 --> 00:19:59.120
+string so what we want
+
+00:19:59.120 --> 00:20:03.679
+is to somehow recognize this pattern
+
+00:20:03.679 --> 00:20:07.600
+and highlight it
+
+00:20:07.600 --> 00:20:11.280
+as highlight this part
+
+00:20:11.280 --> 00:20:14.559
+with the function phase instead
+
+00:20:14.559 --> 00:20:17.679
+in order to do that
+
+00:20:17.679 --> 00:20:20.240
+we put a pattern in this project
+
+00:20:20.240 --> 00:20:21.760
+directory local
+
+00:20:21.760 --> 00:20:31.760
+settings file
+
+00:20:31.760 --> 00:20:34.799
+so we can put this button in the c
+
+00:20:34.799 --> 00:20:40.159
+mode section
+
+00:20:40.159 --> 00:20:48.000
+and now if we enable tree sitter
+
+00:20:48.000 --> 00:20:50.480
+you can see that this is the highlighted
+
+00:20:50.480 --> 00:20:53.200
+uh
+
+00:20:53.200 --> 00:20:55.520
+as a normal function definition so this
+
+00:20:55.520 --> 00:20:56.559
+is the function
+
+00:20:56.559 --> 00:21:01.200
+face like we wanted
+
+00:21:01.200 --> 00:21:03.760
+the pattern for this is actually pretty
+
+00:21:03.760 --> 00:21:07.200
+simple
+
+00:21:07.200 --> 00:21:10.720
+it's only
+
+00:21:10.720 --> 00:21:14.720
+only this part so
+
+00:21:14.720 --> 00:21:17.440
+if it's a function call where the name
+
+00:21:17.440 --> 00:21:19.679
+of the function is different
+
+00:21:19.679 --> 00:21:21.600
+then we highlight the different as a
+
+00:21:21.600 --> 00:21:24.240
+keyword
+
+00:21:24.240 --> 00:21:27.360
+and then the first string element we
+
+00:21:27.360 --> 00:21:28.159
+highlighted
+
+00:21:28.159 --> 00:21:35.360
+as a function name
+
+00:21:35.360 --> 00:21:37.679
+since the language objects are actually
+
+00:21:37.679 --> 00:21:39.280
+native code
+
+00:21:39.280 --> 00:21:40.799
+they have to be compiled for each
+
+00:21:40.799 --> 00:21:43.440
+platform that we want to support
+
+00:21:43.440 --> 00:21:45.600
+this will become a big obstacle for
+
+00:21:45.600 --> 00:21:48.159
+3-seater adoption
+
+00:21:48.159 --> 00:21:50.240
+therefore I've created a language window
+
+00:21:50.240 --> 00:21:52.960
+package 3-seater length
+
+00:21:52.960 --> 00:21:54.960
+that takes care of pre-compiling the
+
+00:21:54.960 --> 00:21:56.320
+grammars the
+
+00:21:56.320 --> 00:21:59.679
+most common grammars for all three major
+
+00:21:59.679 --> 00:22:01.600
+platforms
+
+00:22:01.600 --> 00:22:04.080
+it also takes care of distributing these
+
+00:22:04.080 --> 00:22:05.360
+binaries
+
+00:22:05.360 --> 00:22:08.080
+and provides some highlighting queries
+
+00:22:08.080 --> 00:22:11.440
+for some of the languages
+
+00:22:11.440 --> 00:22:13.760
+it should be noted that this package
+
+00:22:13.760 --> 00:22:15.919
+should be treated as a temporary
+
+00:22:15.919 --> 00:22:19.919
+distribution mechanism only
+
+00:22:19.919 --> 00:22:22.240
+to help with bootstrapping three-seaters
+
+00:22:22.240 --> 00:22:24.720
+adoption
+
+00:22:24.720 --> 00:22:27.760
+the plan is that eventually these files
+
+00:22:27.760 --> 00:22:29.760
+should be provided by the language major
+
+00:22:29.760 --> 00:22:32.480
+modes themselves
+
+00:22:32.480 --> 00:22:35.120
+but in order to do that we need better
+
+00:22:35.120 --> 00:22:36.320
+tooling
+
+00:22:36.320 --> 00:22:40.240
+so we're not there yet
+
+00:22:40.240 --> 00:22:42.559
+since the call already works reasonably
+
+00:22:42.559 --> 00:22:43.280
+well
+
+00:22:43.280 --> 00:22:44.640
+there are several areas that would
+
+00:22:44.640 --> 00:22:46.320
+benefit from the community's
+
+00:22:46.320 --> 00:22:49.120
+contribution
+
+00:22:49.120 --> 00:22:51.520
+so three seaters upstream language
+
+00:22:51.520 --> 00:22:52.640
+prepositories
+
+00:22:52.640 --> 00:22:54.400
+already contain highlighting queries on
+
+00:22:54.400 --> 00:22:55.679
+their own
+
+00:22:55.679 --> 00:22:58.480
+however they are pretty basic and they
+
+00:22:58.480 --> 00:23:00.480
+may not fit well with existing emax
+
+00:23:00.480 --> 00:23:02.559
+conventions
+
+00:23:02.559 --> 00:23:04.320
+therefore the language bundle has its
+
+00:23:04.320 --> 00:23:07.120
+own set of highlighting queries
+
+00:23:07.120 --> 00:23:10.559
+this requires maintenance until language
+
+00:23:10.559 --> 00:23:11.600
+measurements adopt
+
+00:23:11.600 --> 00:23:13.760
+three sitter and maintain the queries on
+
+00:23:13.760 --> 00:23:16.640
+their own
+
+00:23:16.640 --> 00:23:18.480
+the queries are actually quite easy to
+
+00:23:18.480 --> 00:23:22.000
+write as you've already seen
+
+00:23:22.000 --> 00:23:24.240
+you just need to be familiar with the
+
+00:23:24.240 --> 00:23:25.360
+language
+
+00:23:25.360 --> 00:23:30.000
+familiar enough to come up with sensible
+
+00:23:30.000 --> 00:23:35.200
+highlighting patterns
+
+00:23:35.200 --> 00:23:37.600
+and if you are a maintainer of a
+
+00:23:37.600 --> 00:23:39.679
+language major mode
+
+00:23:39.679 --> 00:23:42.320
+you may want to consider integrating
+
+00:23:42.320 --> 00:23:43.360
+tree sitter into
+
+00:23:43.360 --> 00:23:46.960
+your mode initially maybe as an
+
+00:23:46.960 --> 00:23:50.080
+optional feature the integration is
+
+00:23:50.080 --> 00:23:53.279
+actually pretty straightforward
+
+00:23:53.279 --> 00:23:56.640
+especially for syntax highlighting
+
+00:23:56.640 --> 00:24:01.520
+or alternatively
+
+00:24:01.520 --> 00:24:03.760
+you can also try writing a new major
+
+00:24:03.760 --> 00:24:04.640
+mode
+
+00:24:04.640 --> 00:24:08.000
+from scratch that relies on tree sitter
+
+00:24:08.000 --> 00:24:12.559
+from the very beginning
+
+00:24:12.559 --> 00:24:16.320
+the code for such a major mode is
+
+00:24:16.320 --> 00:24:19.679
+quite simple for example
+
+00:24:19.679 --> 00:24:23.200
+this is the proposed
+
+00:24:23.200 --> 00:24:26.240
+what mode for web assembly
+
+00:24:26.240 --> 00:24:31.039
+the code is just
+
+00:24:31.039 --> 00:24:34.559
+like one page of code not
+
+00:24:34.559 --> 00:24:39.520
+not a lot
+
+00:24:39.520 --> 00:24:42.720
+you can also try writing new minor modes
+
+00:24:42.720 --> 00:24:46.559
+or writing integration packages
+
+00:24:46.559 --> 00:24:50.080
+for example a lot of package a lot of
+
+00:24:50.080 --> 00:24:50.880
+packages
+
+00:24:50.880 --> 00:24:54.559
+may benefit from tree sitter integration
+
+00:24:54.559 --> 00:24:58.840
+but no one has written the integration
+
+00:24:58.840 --> 00:25:02.960
+yet
+
+00:25:02.960 --> 00:25:05.039
+if you are interested in 3-seater you
+
+00:25:05.039 --> 00:25:06.720
+can use these links to
+
+00:25:06.720 --> 00:25:10.320
+learn more about it I think that's it
+
+00:25:10.320 --> 00:25:11.440
+for me today
+
+00:25:11.440 --> 00:25:18.159
+I'm happy to answer any questions
diff --git a/2020/subtitles/emacsconf-2020--25-traverse-complex-json-structures-with-live-feedback-counsel-jq--zen-monk-alain-m-lafon-autogen.vtt b/2020/subtitles/emacsconf-2020--25-traverse-complex-json-structures-with-live-feedback-counsel-jq--zen-monk-alain-m-lafon-autogen.vtt
new file mode 100644
index 00000000..e7eada5b
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--25-traverse-complex-json-structures-with-live-feedback-counsel-jq--zen-monk-alain-m-lafon-autogen.vtt
@@ -0,0 +1,757 @@
+WEBVTT
+
+00:00:00.799 --> 00:00:04.000
+hello everyone and welcome to this short
+
+00:00:04.000 --> 00:00:05.520
+lightning talk
+
+00:00:05.520 --> 00:00:08.160
+traverse complex json structures with
+
+00:00:08.160 --> 00:00:09.519
+live feedback
+
+00:00:09.519 --> 00:00:13.040
+this is a pre-recorded talk and part of
+
+00:00:13.040 --> 00:00:18.000
+the e-max conf 2020 schedule
+
+00:00:18.000 --> 00:00:19.920
+this is what we're going to do I'll make
+
+00:00:19.920 --> 00:00:21.840
+a quick introduction to the topic at
+
+00:00:21.840 --> 00:00:22.320
+hand
+
+00:00:22.320 --> 00:00:23.920
+I'll give you a demonstration of some
+
+00:00:23.920 --> 00:00:25.760
+tools and then we'll leave you
+
+00:00:25.760 --> 00:00:29.199
+with the links to set tools
+
+00:00:29.199 --> 00:00:31.920
+before that just a little bit about me I
+
+00:00:31.920 --> 00:00:32.399
+am the
+
+00:00:32.399 --> 00:00:36.079
+ceo and co-founder of a company
+
+00:00:36.079 --> 00:00:39.520
+based in the swiss mountains called 200
+
+00:00:39.520 --> 00:00:40.399
+okay
+
+00:00:40.399 --> 00:00:43.600
+we are a product incubator and
+
+00:00:43.600 --> 00:00:46.160
+service consultancy but we like to spend
+
+00:00:46.160 --> 00:00:47.200
+most or at least
+
+00:00:47.200 --> 00:00:50.719
+as much time as we can building free
+
+00:00:50.719 --> 00:00:52.719
+software
+
+00:00:52.719 --> 00:00:55.520
+I'm also an ordained zen monk and abbott
+
+00:00:55.520 --> 00:00:56.879
+of the lambda zen temple
+
+00:00:56.879 --> 00:01:00.160
+you can reach me anytime on questions
+
+00:01:00.160 --> 00:01:01.359
+regarding Emacs
+
+00:01:01.359 --> 00:01:05.860
+for example at ala at 200ok.ch
+
+00:01:05.860 --> 00:01:07.200
+[Music]
+
+00:01:07.200 --> 00:01:09.600
+but back to the topic at hand the
+
+00:01:09.600 --> 00:01:11.760
+proposition is as following
+
+00:01:11.760 --> 00:01:13.680
+most work on the computer is based on
+
+00:01:13.680 --> 00:01:15.520
+either text processing or text
+
+00:01:15.520 --> 00:01:16.479
+consumption
+
+00:01:16.479 --> 00:01:19.920
+and very often the text which you need
+
+00:01:19.920 --> 00:01:20.880
+to process
+
+00:01:20.880 --> 00:01:23.520
+is in a structured format for example in
+
+00:01:23.520 --> 00:01:24.560
+json
+
+00:01:24.560 --> 00:01:26.640
+that might even be if your job is not
+
+00:01:26.640 --> 00:01:28.560
+programming per se
+
+00:01:28.560 --> 00:01:30.400
+and reading through such a bigger chunk
+
+00:01:30.400 --> 00:01:33.119
+of json can be non-trivial however
+
+00:01:33.119 --> 00:01:36.479
+while just reading and understanding it
+
+00:01:36.479 --> 00:01:39.119
+will be essential to getting your job
+
+00:01:39.119 --> 00:01:40.320
+done
+
+00:01:40.320 --> 00:01:43.680
+so let's quickly check out an example
+
+00:01:43.680 --> 00:01:47.200
+json file this is from the github api
+
+00:01:47.200 --> 00:01:50.560
+where which is a request sorry the
+
+00:01:50.560 --> 00:01:53.119
+response to a request for a specific
+
+00:01:53.119 --> 00:01:55.280
+issue on the github api so let's
+
+00:01:55.280 --> 00:01:58.799
+quickly check that one out
+
+00:01:58.799 --> 00:02:01.280
+okay so here it is open and we can
+
+00:02:01.280 --> 00:02:03.280
+already see that there is lots of stuff
+
+00:02:03.280 --> 00:02:05.439
+going on here
+
+00:02:05.439 --> 00:02:08.319
+it's uh 200 lines it's not going to be
+
+00:02:08.319 --> 00:02:10.319
+very easy just just to find out what are
+
+00:02:10.319 --> 00:02:12.160
+the top level things in here what are
+
+00:02:12.160 --> 00:02:13.920
+the top level attributes of course I can
+
+00:02:13.920 --> 00:02:14.560
+do this
+
+00:02:14.560 --> 00:02:16.480
+and maybe it would by hand but that
+
+00:02:16.480 --> 00:02:17.840
+doesn't scale
+
+00:02:17.840 --> 00:02:20.560
+I can use cool Emacs facilities like the
+
+00:02:20.560 --> 00:02:22.560
+height show mode and try to
+
+00:02:22.560 --> 00:02:24.720
+fold all the things that are top level
+
+00:02:24.720 --> 00:02:27.200
+but that also doesn't really scale
+
+00:02:27.200 --> 00:02:29.760
+there must be a better way and of course
+
+00:02:29.760 --> 00:02:32.000
+there is there is prior art
+
+00:02:32.000 --> 00:02:34.959
+there is a tool called jq I'm going to
+
+00:02:34.959 --> 00:02:36.080
+quote the usp
+
+00:02:36.080 --> 00:02:39.120
+from their website jq is like
+
+00:02:39.120 --> 00:02:42.959
+sed said for json data you can use it to
+
+00:02:42.959 --> 00:02:44.720
+slice and filter and map
+
+00:02:44.720 --> 00:02:46.720
+and transform structured data with the
+
+00:02:46.720 --> 00:02:47.840
+same ease that
+
+00:02:47.840 --> 00:02:51.519
+z awk grep and friends let you play with
+
+00:02:51.519 --> 00:02:54.000
+text
+
+00:02:54.000 --> 00:02:56.160
+let me give you a quick demonstration of
+
+00:02:56.160 --> 00:02:57.519
+it by the way
+
+00:02:57.519 --> 00:02:59.680
+it's written in portable c it has zero
+
+00:02:59.680 --> 00:03:01.920
+runtime dependency so it's very easy
+
+00:03:01.920 --> 00:03:04.959
+to get started with it and use it on
+
+00:03:04.959 --> 00:03:09.040
+pretty much any unix-based
+
+00:03:09.040 --> 00:03:12.800
+computer sorry no linux based computer
+
+00:03:12.800 --> 00:03:16.159
+apologies okay so let's explore a
+
+00:03:16.159 --> 00:03:19.599
+json file with it it's a command line
+
+00:03:19.599 --> 00:03:21.120
+tool and it has a very
+
+00:03:21.120 --> 00:03:24.640
+simple command line syntax so you
+
+00:03:24.640 --> 00:03:26.799
+call the binary and then you give it a
+
+00:03:26.799 --> 00:03:27.840
+query
+
+00:03:27.840 --> 00:03:31.680
+and a file and then we'll return
+
+00:03:31.680 --> 00:03:33.840
+its answer so for example if I want the
+
+00:03:33.840 --> 00:03:35.440
+top level keys
+
+00:03:35.440 --> 00:03:38.319
+I will just say jq keys the file and it
+
+00:03:38.319 --> 00:03:39.840
+will return the keys
+
+00:03:39.840 --> 00:03:42.319
+simple as that so let's check this out
+
+00:03:42.319 --> 00:03:43.519
+in a real
+
+00:03:43.519 --> 00:03:46.879
+shell here I am in eshel
+
+00:03:46.879 --> 00:03:50.080
+let's run jq keys on the github
+
+00:03:50.080 --> 00:03:53.200
+issue comment and we can see
+
+00:03:53.200 --> 00:03:56.959
+that we have actually received a list
+
+00:03:56.959 --> 00:04:00.000
+back here with the top level
+
+00:04:00.000 --> 00:04:02.000
+things okay so this issue it looks very
+
+00:04:02.000 --> 00:04:04.319
+very interesting so let's uh ask it to
+
+00:04:04.319 --> 00:04:06.239
+give me more information on this
+
+00:04:06.239 --> 00:04:10.080
+issue then it's hairy again that's a lot
+
+00:04:10.080 --> 00:04:11.360
+of stuff
+
+00:04:11.360 --> 00:04:14.319
+I mean lucky for for us we are in Emacs
+
+00:04:14.319 --> 00:04:17.759
+here so we can use nice shortcuts we can
+
+00:04:17.759 --> 00:04:21.040
+copy this we go can go in here just
+
+00:04:21.040 --> 00:04:22.000
+select that
+
+00:04:22.000 --> 00:04:24.400
+get that out or something like this but
+
+00:04:24.400 --> 00:04:25.600
+still
+
+00:04:25.600 --> 00:04:28.320
+this is not really it's not really the
+
+00:04:28.320 --> 00:04:29.600
+best way
+
+00:04:29.600 --> 00:04:34.080
+to do that right it gets kind of tedious
+
+00:04:34.080 --> 00:04:36.639
+at this point the output can be
+
+00:04:36.639 --> 00:04:37.680
+humongous
+
+00:04:37.680 --> 00:04:39.360
+the shell is not really the best place
+
+00:04:39.360 --> 00:04:42.479
+to read through such big output I mean e
+
+00:04:42.479 --> 00:04:43.600
+shell is
+
+00:04:43.600 --> 00:04:45.440
+probably one of the better shells for
+
+00:04:45.440 --> 00:04:47.440
+this because it's just a regular Emacs
+
+00:04:47.440 --> 00:04:48.560
+buffer but still
+
+00:04:48.560 --> 00:04:51.199
+it's not really the best tool and I need
+
+00:04:51.199 --> 00:04:52.720
+to repeat the command
+
+00:04:52.720 --> 00:04:55.280
+all the time until I finally build the
+
+00:04:55.280 --> 00:04:56.000
+right query
+
+00:04:56.000 --> 00:04:59.120
+and all the time I use I lose my
+
+00:04:59.120 --> 00:05:02.080
+focus I lose what I'm currently looking
+
+00:05:02.080 --> 00:05:02.800
+at
+
+00:05:02.800 --> 00:05:06.080
+I'm seeing the new result it would be so
+
+00:05:06.080 --> 00:05:08.160
+much nicer to have live feedback
+
+00:05:08.160 --> 00:05:10.080
+and when working with Emacs we're quite
+
+00:05:10.080 --> 00:05:11.600
+used to that so there should be an
+
+00:05:11.600 --> 00:05:12.320
+option
+
+00:05:12.320 --> 00:05:15.120
+and of course there is it's Emacs right
+
+00:05:15.120 --> 00:05:17.759
+so you can do anything
+
+00:05:17.759 --> 00:05:20.880
+there is various good tools for
+
+00:05:20.880 --> 00:05:22.960
+completion in Emacs
+
+00:05:22.960 --> 00:05:26.000
+I used ivy for this
+
+00:05:26.000 --> 00:05:29.039
+I'm going to code the usp for ivy
+
+00:05:29.039 --> 00:05:31.840
+iv is a generic completion mechanism for
+
+00:05:31.840 --> 00:05:32.639
+Emacs
+
+00:05:32.639 --> 00:05:34.639
+while it operates similarly to other
+
+00:05:34.639 --> 00:05:35.919
+completion schemes
+
+00:05:35.919 --> 00:05:38.960
+such as icomplete mode iv aims to be
+
+00:05:38.960 --> 00:05:40.400
+more efficient smaller
+
+00:05:40.400 --> 00:05:43.120
+simpler and smoother to use yet highly
+
+00:05:43.120 --> 00:05:45.199
+customizable
+
+00:05:45.199 --> 00:05:47.840
+and that's true one of the cool things
+
+00:05:47.840 --> 00:05:49.440
+of iv
+
+00:05:49.440 --> 00:05:52.479
+compared to other completion mechanisms
+
+00:05:52.479 --> 00:05:54.320
+in Emacs
+
+00:05:54.320 --> 00:05:58.160
+is that it can be used on dynamic
+
+00:05:58.160 --> 00:06:01.600
+data so usually completion works on a
+
+00:06:01.600 --> 00:06:03.520
+static input for example you're in a
+
+00:06:03.520 --> 00:06:05.360
+buffer a text buffer
+
+00:06:05.360 --> 00:06:08.800
+and you use I search maybe with idle
+
+00:06:08.800 --> 00:06:09.600
+mode
+
+00:06:09.600 --> 00:06:12.400
+and you find your results that's all
+
+00:06:12.400 --> 00:06:13.360
+nice
+
+00:06:13.360 --> 00:06:16.960
+however if I
+
+00:06:16.960 --> 00:06:19.840
+want to search on dynamic data that
+
+00:06:19.840 --> 00:06:20.720
+doesn't work
+
+00:06:20.720 --> 00:06:23.759
+so whenever I type in my query
+
+00:06:23.759 --> 00:06:27.039
+for jq I actually need to call the jq
+
+00:06:27.039 --> 00:06:28.000
+binary
+
+00:06:28.000 --> 00:06:30.160
+and it will give a different result set
+
+00:06:30.160 --> 00:06:32.840
+back so it's a really
+
+00:06:32.840 --> 00:06:36.319
+dynamic mechanism that we need here it's
+
+00:06:36.319 --> 00:06:38.240
+much more like a search engine
+
+00:06:38.240 --> 00:06:41.440
+and ivy luckily has something built in
+
+00:06:41.440 --> 00:06:42.560
+and it's called
+
+00:06:42.560 --> 00:06:46.000
+console so I used council and jq
+
+00:06:46.000 --> 00:06:48.160
+and combined them and build a new
+
+00:06:48.160 --> 00:06:49.199
+package
+
+00:06:49.199 --> 00:06:52.960
+with which we can use Emacs and jq
+
+00:06:52.960 --> 00:06:56.000
+to have live feedback
+
+00:06:56.000 --> 00:06:58.800
+it's very easy to use so you just call
+
+00:06:58.800 --> 00:06:59.840
+console.jq
+
+00:06:59.840 --> 00:07:02.800
+on a buffer containing json for example
+
+00:07:02.800 --> 00:07:04.319
+the one we have here
+
+00:07:04.319 --> 00:07:07.280
+let's call console.jq on it and we
+
+00:07:07.280 --> 00:07:08.319
+already
+
+00:07:08.319 --> 00:07:11.280
+get a default query the dot query which
+
+00:07:11.280 --> 00:07:13.039
+just gives us
+
+00:07:13.039 --> 00:07:16.080
+the same file but now we can change it
+
+00:07:16.080 --> 00:07:17.280
+and for example
+
+00:07:17.280 --> 00:07:19.039
+find all the keys in here and then we
+
+00:07:19.039 --> 00:07:21.039
+see I had this issue this was the one
+
+00:07:21.039 --> 00:07:22.800
+that we were interested in
+
+00:07:22.800 --> 00:07:24.639
+so let's find more information on the
+
+00:07:24.639 --> 00:07:26.479
+issue what
+
+00:07:26.479 --> 00:07:28.800
+keys does it have actually have uh it
+
+00:07:28.800 --> 00:07:31.680
+has assignees that that interests me
+
+00:07:31.680 --> 00:07:34.800
+so let's check out the assignees in here
+
+00:07:34.800 --> 00:07:37.039
+there's two of them but I'm only
+
+00:07:37.039 --> 00:07:39.759
+interested in the first one
+
+00:07:39.759 --> 00:07:42.000
+I'm making stuff up as I go here of
+
+00:07:42.000 --> 00:07:43.599
+course
+
+00:07:43.599 --> 00:07:46.000
+and whenever I hit enter I get a new
+
+00:07:46.000 --> 00:07:47.039
+buffer
+
+00:07:47.039 --> 00:07:50.160
+which just shows me this
+
+00:07:50.160 --> 00:07:53.520
+particular result for the particular
+
+00:07:53.520 --> 00:07:55.599
+query that I entered
+
+00:07:55.599 --> 00:07:59.199
+so let me do that again we are in here
+
+00:07:59.199 --> 00:08:03.199
+we are looking at a
+
+00:08:03.199 --> 00:08:05.840
+json file this can be very very big
+
+00:08:05.840 --> 00:08:07.520
+doesn't also need to be a file just
+
+00:08:07.520 --> 00:08:09.520
+needs to be a buffer
+
+00:08:09.520 --> 00:08:12.160
+you call console.jq on it and you can do
+
+00:08:12.160 --> 00:08:13.599
+any kind of
+
+00:08:13.599 --> 00:08:16.479
+query on it for example let's see if
+
+00:08:16.479 --> 00:08:18.080
+there is a url here
+
+00:08:18.080 --> 00:08:20.319
+yes there's a url let's see if there's a
+
+00:08:20.319 --> 00:08:23.759
+repository here repository
+
+00:08:23.759 --> 00:08:26.879
+no there isn't what was it called issue
+
+00:08:26.879 --> 00:08:33.440
+keys repository url it was called okay
+
+00:08:33.440 --> 00:08:36.640
+so let's see issue pause
+
+00:08:36.640 --> 00:08:40.240
+url and then we see so
+
+00:08:40.240 --> 00:08:42.959
+apparently this issue command is for a
+
+00:08:42.959 --> 00:08:44.159
+repository called
+
+00:08:44.159 --> 00:08:47.839
+organize I wonder what that might be
+
+00:08:47.839 --> 00:08:50.320
+okay so that was a very short
+
+00:08:50.320 --> 00:08:52.640
+introduction to console jq
+
+00:08:52.640 --> 00:08:54.800
+you can see the timer here I only have
+
+00:08:54.800 --> 00:08:56.800
+one minute left to go so I'm going to
+
+00:08:56.800 --> 00:08:57.440
+leave
+
+00:08:57.440 --> 00:08:59.760
+with a very very short introduction to
+
+00:08:59.760 --> 00:09:01.519
+the console gq
+
+00:09:01.519 --> 00:09:05.040
+code it's not even 60 lines
+
+00:09:05.040 --> 00:09:07.519
+of e-lisp so building something like
+
+00:09:07.519 --> 00:09:09.600
+this is very very easy
+
+00:09:09.600 --> 00:09:12.800
+I would encourage you to go and read
+
+00:09:12.800 --> 00:09:14.560
+through the code in your own time
+
+00:09:14.560 --> 00:09:16.160
+if you're interested in building
+
+00:09:16.160 --> 00:09:18.320
+something like this if you're interested
+
+00:09:18.320 --> 00:09:19.600
+in just using
+
+00:09:19.600 --> 00:09:22.720
+jq or you're done
+
+00:09:22.720 --> 00:09:24.320
+these are the links to all the tools
+
+00:09:24.320 --> 00:09:25.839
+console.jq of course
+
+00:09:25.839 --> 00:09:28.800
+is readily available on melpah also
+
+00:09:28.800 --> 00:09:29.519
+developed
+
+00:09:29.519 --> 00:09:32.959
+under the agpl license on github
+
+00:09:32.959 --> 00:09:36.080
+and disorganized thing by the way it's
+
+00:09:36.080 --> 00:09:37.839
+orig mode for mobile and desktop
+
+00:09:37.839 --> 00:09:39.839
+browsers also a great
+
+00:09:39.839 --> 00:09:42.399
+free software tool maybe that interests
+
+00:09:42.399 --> 00:09:43.120
+you
+
+00:09:43.120 --> 00:09:46.240
+thank you for listening have great time
+
+00:09:46.240 --> 00:09:48.800
+10 seconds left I am going to stop this
+
+00:09:48.800 --> 00:09:49.360
+now
+
+00:09:49.360 --> 00:09:53.920
+enjoy EmacsConf have a great day
diff --git a/2020/subtitles/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--pierce-wang-autogen.vtt b/2020/subtitles/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--pierce-wang-autogen.vtt
new file mode 100644
index 00000000..e0ddcb76
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--pierce-wang-autogen.vtt
@@ -0,0 +1,769 @@
+WEBVTT
+
+00:00:01.360 --> 00:00:03.040
+hello and welcome to my
+
+00:00:03.040 --> 00:00:05.520
+Emacs conference lightning talk today
+
+00:00:05.520 --> 00:00:07.120
+I'll be talking about
+
+00:00:07.120 --> 00:00:09.840
+my journey into Emacs as a high schooler
+
+00:00:09.840 --> 00:00:14.400
+and how it has changed my life
+
+00:00:14.400 --> 00:00:17.359
+right so who am I I am a senior at
+
+00:00:17.359 --> 00:00:19.520
+stanford online high school
+
+00:00:19.520 --> 00:00:22.800
+and I am also a violinist
+
+00:00:22.800 --> 00:00:24.320
+I started violin when I was two and a
+
+00:00:24.320 --> 00:00:26.960
+half and I have been
+
+00:00:26.960 --> 00:00:29.119
+keeping it up ever since violin is a
+
+00:00:29.119 --> 00:00:30.240
+huge part of my life
+
+00:00:30.240 --> 00:00:33.360
+and I am very much a musician at heart
+
+00:00:33.360 --> 00:00:36.239
+I am also a somewhat capable programmer
+
+00:00:36.239 --> 00:00:37.840
+I've done a lot of informal programming
+
+00:00:37.840 --> 00:00:39.280
+in the past
+
+00:00:39.280 --> 00:00:42.559
+and this year I'm taking my first ap
+
+00:00:42.559 --> 00:00:44.079
+compsci course
+
+00:00:44.079 --> 00:00:47.440
+in my high school and so
+
+00:00:47.440 --> 00:00:51.039
+I've done a lot of side projects
+
+00:00:51.039 --> 00:00:54.239
+mainly in python and some very short
+
+00:00:54.239 --> 00:00:56.800
+scripts in e-lisp
+
+00:00:56.800 --> 00:00:59.840
+and last but not least I am a tinker
+
+00:00:59.840 --> 00:01:02.879
+I love to play around with things and
+
+00:01:02.879 --> 00:01:06.720
+see what I can do better and just
+
+00:01:06.720 --> 00:01:10.880
+have as much fun as possible
+
+00:01:10.880 --> 00:01:15.040
+so how did I find Emacs
+
+00:01:15.040 --> 00:01:17.600
+I discovered it actually through a talk
+
+00:01:17.600 --> 00:01:18.880
+funnily enough
+
+00:01:18.880 --> 00:01:21.360
+at a vim conference given by aaron
+
+00:01:21.360 --> 00:01:23.520
+bieber
+
+00:01:23.520 --> 00:01:25.840
+titled evil mode or how I learned to
+
+00:01:25.840 --> 00:01:28.320
+stop worrying and love Emacs
+
+00:01:28.320 --> 00:01:31.439
+I watched that talk a couple times over
+
+00:01:31.439 --> 00:01:33.360
+just marveling at all the wonderful
+
+00:01:33.360 --> 00:01:35.759
+things that he could do in Emacs
+
+00:01:35.759 --> 00:01:38.799
+and being a previous vim user myself
+
+00:01:38.799 --> 00:01:41.680
+I found it very enticing to be able to
+
+00:01:41.680 --> 00:01:42.399
+have
+
+00:01:42.399 --> 00:01:44.960
+the evil mode package and very quickly
+
+00:01:44.960 --> 00:01:47.040
+switch to Emacs
+
+00:01:47.040 --> 00:01:48.799
+at the time I was also in my sophomore
+
+00:01:48.799 --> 00:01:51.040
+year and so
+
+00:01:51.040 --> 00:01:54.640
+I had had sort of a note-taking system
+
+00:01:54.640 --> 00:01:56.320
+in the past
+
+00:01:56.320 --> 00:01:59.360
+but it was not good um and I needed a
+
+00:01:59.360 --> 00:02:01.680
+more organized note-taking system
+
+00:02:01.680 --> 00:02:03.759
+my parents had suggested paper for a
+
+00:02:03.759 --> 00:02:04.960
+while and
+
+00:02:04.960 --> 00:02:08.160
+there was the whole organization
+
+00:02:08.160 --> 00:02:10.959
+part of that but that did not really
+
+00:02:10.959 --> 00:02:12.080
+work out for me
+
+00:02:12.080 --> 00:02:14.000
+and so I was trying to find this better
+
+00:02:14.000 --> 00:02:16.239
+note-taking system
+
+00:02:16.239 --> 00:02:19.440
+and it was very hard
+
+00:02:19.440 --> 00:02:22.239
+I had two main criteria which I did not
+
+00:02:22.239 --> 00:02:23.520
+define at the time
+
+00:02:23.520 --> 00:02:25.360
+but I realized was really what I was
+
+00:02:25.360 --> 00:02:26.640
+looking for
+
+00:02:26.640 --> 00:02:28.720
+first of all it had to be flexible
+
+00:02:28.720 --> 00:02:30.959
+enough and second of all it had
+
+00:02:30.959 --> 00:02:33.920
+I had to have control over the data and
+
+00:02:33.920 --> 00:02:34.959
+so
+
+00:02:34.959 --> 00:02:37.519
+through this process I actually went
+
+00:02:37.519 --> 00:02:39.680
+through a bunch of note-taking softwares
+
+00:02:39.680 --> 00:02:42.640
+rather systematically I went through
+
+00:02:42.640 --> 00:02:44.080
+google docs
+
+00:02:44.080 --> 00:02:47.519
+which very much did not work out
+
+00:02:47.519 --> 00:02:49.840
+I also went through evernote which also
+
+00:02:49.840 --> 00:02:50.640
+was not
+
+00:02:50.640 --> 00:02:53.200
+great for me and one note which I
+
+00:02:53.200 --> 00:02:55.200
+settled on for a little while
+
+00:02:55.200 --> 00:02:58.800
+but it did not meet these criteria
+
+00:02:58.800 --> 00:03:01.519
+particularly the second one I had taken
+
+00:03:01.519 --> 00:03:02.159
+some notes
+
+00:03:02.159 --> 00:03:05.280
+and I wanted to export it and onenote
+
+00:03:05.280 --> 00:03:07.519
+did not let me do that
+
+00:03:07.519 --> 00:03:12.000
+it was pdf horribly organized pdf
+
+00:03:12.000 --> 00:03:14.879
+and that's when I knew I needed some
+
+00:03:14.879 --> 00:03:17.440
+change
+
+00:03:17.440 --> 00:03:21.519
+so I discovered Emacs through this talk
+
+00:03:21.519 --> 00:03:24.080
+and through the wonderful features of
+
+00:03:24.080 --> 00:03:27.040
+org mode
+
+00:03:27.040 --> 00:03:30.080
+this is my first journal entry in Emacs
+
+00:03:30.080 --> 00:03:34.000
+I had been playing with it for one day
+
+00:03:34.000 --> 00:03:36.159
+and I was on the org agenda and I
+
+00:03:36.159 --> 00:03:38.159
+happened to press I
+
+00:03:38.159 --> 00:03:40.720
+which for the Emacs combined is the
+
+00:03:40.720 --> 00:03:41.599
+default for
+
+00:03:41.599 --> 00:03:45.440
+diary entry and so I was very excited
+
+00:03:45.440 --> 00:03:48.720
+um and I shouldn't stay on the slide too
+
+00:03:48.720 --> 00:03:50.239
+long unless you read it
+
+00:03:50.239 --> 00:03:53.760
+um so let's move on to the next one
+
+00:03:53.760 --> 00:03:57.200
+um so the learning curve for me I think
+
+00:03:57.200 --> 00:04:00.480
+particularly being an xbm user
+
+00:04:00.480 --> 00:04:03.760
+evil mode made it very easy to switch
+
+00:04:03.760 --> 00:04:06.080
+thankfully I there was the emax
+
+00:04:06.080 --> 00:04:07.439
+reference sheet
+
+00:04:07.439 --> 00:04:10.799
+and having evil mode to
+
+00:04:10.799 --> 00:04:14.080
+switch between um
+
+00:04:14.080 --> 00:04:17.440
+texts and whether it be editing a text
+
+00:04:17.440 --> 00:04:17.919
+file
+
+00:04:17.919 --> 00:04:20.560
+or going to other parts of just Emacs in
+
+00:04:20.560 --> 00:04:21.600
+general
+
+00:04:21.600 --> 00:04:24.800
+I think vim really helped with making me
+
+00:04:24.800 --> 00:04:26.840
+feel comfortable within this new
+
+00:04:26.840 --> 00:04:28.000
+environment
+
+00:04:28.000 --> 00:04:31.440
+and so having that experience I also
+
+00:04:31.440 --> 00:04:31.919
+wasn't
+
+00:04:31.919 --> 00:04:34.240
+new to the keybind-based world I have
+
+00:04:34.240 --> 00:04:36.320
+been very comfortable with computer
+
+00:04:36.320 --> 00:04:40.160
+and the keyboard for most of my life
+
+00:04:40.160 --> 00:04:43.520
+and so it was not a totally new
+
+00:04:43.520 --> 00:04:45.520
+environment for me
+
+00:04:45.520 --> 00:04:47.440
+I also spent a lot of time looking at
+
+00:04:47.440 --> 00:04:49.360
+the Emacs reference sheet
+
+00:04:49.360 --> 00:04:53.040
+just thinking about trying to find
+
+00:04:53.040 --> 00:04:55.040
+all of the different functions if I
+
+00:04:55.040 --> 00:04:56.639
+didn't know what something was
+
+00:04:56.639 --> 00:04:59.680
+then I queried it in Emacs and then I
+
+00:04:59.680 --> 00:05:01.199
+figured out what it was
+
+00:05:01.199 --> 00:05:03.759
+and that was one of the best ways for me
+
+00:05:03.759 --> 00:05:05.600
+to discover
+
+00:05:05.600 --> 00:05:09.360
+all of the capabilities of Emacs
+
+00:05:09.360 --> 00:05:11.440
+thirdly of course the self-documenting
+
+00:05:11.440 --> 00:05:12.800
+feature
+
+00:05:12.800 --> 00:05:15.199
+or nature of Emacs and narrowing
+
+00:05:15.199 --> 00:05:17.120
+frameworks such as helm
+
+00:05:17.120 --> 00:05:20.479
+really helped find things especially for
+
+00:05:20.479 --> 00:05:21.360
+mx
+
+00:05:21.360 --> 00:05:25.919
+for a while I was just
+
+00:05:25.919 --> 00:05:28.160
+I would go about my day and if I pressed
+
+00:05:28.160 --> 00:05:29.520
+to keep mine that I didn't know what it
+
+00:05:29.520 --> 00:05:30.720
+did
+
+00:05:30.720 --> 00:05:34.560
+I would do the losses and
+
+00:05:34.560 --> 00:05:36.240
+see the list of key binds that I had
+
+00:05:36.240 --> 00:05:37.600
+pressed and
+
+00:05:37.600 --> 00:05:40.400
+tried to find that one and query the
+
+00:05:40.400 --> 00:05:41.280
+function
+
+00:05:41.280 --> 00:05:45.280
+and what not so
+
+00:05:45.280 --> 00:05:49.120
+yeah and now we jump to now so
+
+00:05:49.120 --> 00:05:51.759
+there there is at least one moment in
+
+00:05:51.759 --> 00:05:53.280
+each day when I think
+
+00:05:53.280 --> 00:05:55.600
+how would I live without umax
+
+00:05:55.600 --> 00:05:57.680
+particularly now during my senior year
+
+00:05:57.680 --> 00:05:59.120
+in high school
+
+00:05:59.120 --> 00:06:02.720
+things are very busy with school violin
+
+00:06:02.720 --> 00:06:05.520
+and other side projects it's pretty
+
+00:06:05.520 --> 00:06:06.400
+crazy
+
+00:06:06.400 --> 00:06:09.680
+and so Emacs
+
+00:06:09.680 --> 00:06:12.720
+and org mode has really helped me stay
+
+00:06:12.720 --> 00:06:14.479
+on track with everything
+
+00:06:14.479 --> 00:06:16.960
+and the flexibility of these software is
+
+00:06:16.960 --> 00:06:18.840
+being able to have things in different
+
+00:06:18.840 --> 00:06:21.600
+files notes within the tasks
+
+00:06:21.600 --> 00:06:24.639
+all of that stuff has been truly a
+
+00:06:24.639 --> 00:06:25.840
+lifesaver
+
+00:06:25.840 --> 00:06:28.400
+and so I think I can confidently say
+
+00:06:28.400 --> 00:06:31.199
+that I have found Emacs to be
+
+00:06:31.199 --> 00:06:35.280
+the perfect software for me
+
+00:06:35.280 --> 00:06:38.639
+over the past two years of using Emacs
+
+00:06:38.639 --> 00:06:42.240
+now it is about two years and two months
+
+00:06:42.240 --> 00:06:45.039
+I have built a fairly well organized
+
+00:06:45.039 --> 00:06:46.160
+2000
+
+00:06:46.160 --> 00:06:49.520
+plus line org literate config
+
+00:06:49.520 --> 00:06:52.160
+and so I actually I started with an
+
+00:06:52.160 --> 00:06:53.840
+e-lisp config
+
+00:06:53.840 --> 00:06:56.800
+just the vanilla e-max with evil mode
+
+00:06:56.800 --> 00:06:57.919
+and I built it up
+
+00:06:57.919 --> 00:07:00.319
+from there eventually I switched to org
+
+00:07:00.319 --> 00:07:02.400
+literate configs
+
+00:07:02.400 --> 00:07:05.840
+and used that to organize the snippets
+
+00:07:05.840 --> 00:07:10.080
+that I was putting in there and so
+
+00:07:10.080 --> 00:07:14.000
+yeah this is really my workflow now
+
+00:07:14.000 --> 00:07:16.639
+currently about 90 of everything I do on
+
+00:07:16.639 --> 00:07:18.960
+my computer is in Emacs
+
+00:07:18.960 --> 00:07:21.520
+the most notable things of course the
+
+00:07:21.520 --> 00:07:22.319
+list is far
+
+00:07:22.319 --> 00:07:26.000
+too long to put on one slide but I do a
+
+00:07:26.000 --> 00:07:28.160
+lot of my programming in Emacs
+
+00:07:28.160 --> 00:07:31.280
+mainly python and e-lisp
+
+00:07:31.280 --> 00:07:33.759
+because of my ap comp sci class I have
+
+00:07:33.759 --> 00:07:35.199
+to do java as well
+
+00:07:35.199 --> 00:07:38.720
+and thank goodness Emacs has wonderful
+
+00:07:38.720 --> 00:07:41.840
+support for that as well
+
+00:07:41.840 --> 00:07:45.840
+also I do all of my school assignments
+
+00:07:45.840 --> 00:07:48.800
+more or less in Emacs essay writing I do
+
+00:07:48.800 --> 00:07:50.400
+an org mode and I have some template
+
+00:07:50.400 --> 00:07:51.919
+files
+
+00:07:51.919 --> 00:07:53.919
+template org files which I just include
+
+00:07:53.919 --> 00:07:55.039
+at the top
+
+00:07:55.039 --> 00:07:58.160
+and then I can export easily to latex
+
+00:07:58.160 --> 00:08:01.440
+and a beautiful pdf
+
+00:08:01.440 --> 00:08:04.400
+math physics same thing latex fragments
+
+00:08:04.400 --> 00:08:05.840
+are a lifesaver
+
+00:08:05.840 --> 00:08:09.599
+and also really pretty
+
+00:08:09.599 --> 00:08:13.199
+and I take notes on basically everything
+
+00:08:13.199 --> 00:08:15.520
+at first I had things separate and then
+
+00:08:15.520 --> 00:08:16.319
+I started
+
+00:08:16.319 --> 00:08:19.360
+sort of putting it all into onenotes.org
+
+00:08:19.360 --> 00:08:21.360
+file or most of it into one
+
+00:08:21.360 --> 00:08:24.000
+file and that has actually worked out
+
+00:08:24.000 --> 00:08:24.960
+surprisingly well
+
+00:08:24.960 --> 00:08:26.479
+especially with all the searching
+
+00:08:26.479 --> 00:08:28.879
+features of agenda
+
+00:08:28.879 --> 00:08:33.440
+and whatnot um and I also use mail
+
+00:08:33.440 --> 00:08:35.680
+I recently made the switch probably
+
+00:08:35.680 --> 00:08:37.680
+about one or two months ago
+
+00:08:37.680 --> 00:08:40.479
+and it has been one of the best switches
+
+00:08:40.479 --> 00:08:40.959
+I've
+
+00:08:40.959 --> 00:08:44.480
+I've ever had especially given
+
+00:08:44.480 --> 00:08:46.320
+connecting to tasks all of this
+
+00:08:46.320 --> 00:08:47.839
+wonderful stuff
+
+00:08:47.839 --> 00:08:50.640
+just putting even more in Emacs is
+
+00:08:50.640 --> 00:08:54.160
+always a good thing I found
+
+00:08:54.160 --> 00:08:57.680
+so reflecting back on my journey I think
+
+00:08:57.680 --> 00:08:59.760
+one of the most important things was
+
+00:08:59.760 --> 00:09:01.440
+just having a reason to use it
+
+00:09:01.440 --> 00:09:04.480
+when I came to Emacs I had something
+
+00:09:04.480 --> 00:09:06.080
+that I was looking for
+
+00:09:06.080 --> 00:09:09.600
+and as soon as I found it I delved right
+
+00:09:09.600 --> 00:09:09.839
+in
+
+00:09:09.839 --> 00:09:12.720
+and I I started using it for that thing
+
+00:09:12.720 --> 00:09:14.480
+and so I was sort of forced to
+
+00:09:14.480 --> 00:09:16.959
+take the time to read the docs and
+
+00:09:16.959 --> 00:09:19.279
+figure out what functions I needed
+
+00:09:19.279 --> 00:09:22.399
+to function and how
+
+00:09:22.399 --> 00:09:25.839
+I was going to put my workflow
+
+00:09:25.839 --> 00:09:30.399
+and also of course the desire to tinker
+
+00:09:30.399 --> 00:09:33.519
+and yeah so really what's next for me
+
+00:09:33.519 --> 00:09:36.800
+is just wanting to become a more active
+
+00:09:36.800 --> 00:09:38.640
+member of the Emacs community
+
+00:09:38.640 --> 00:09:40.640
+I want to give back and I think this
+
+00:09:40.640 --> 00:09:43.760
+talk is sort of the first step to that
+
+00:09:43.760 --> 00:09:45.920
+being a more active part of this
+
+00:09:45.920 --> 00:09:48.000
+community that has
+
+00:09:48.000 --> 00:09:51.040
+indirectly perhaps um but just like
+
+00:09:51.040 --> 00:09:54.000
+really helped me become a better and
+
+00:09:54.000 --> 00:09:55.839
+more organized human being
+
+00:09:55.839 --> 00:09:58.880
+um I have some package ideas that I'm
+
+00:09:58.880 --> 00:10:01.920
+slowly working on and yeah I just hope
+
+00:10:01.920 --> 00:10:05.920
+to spread the word
+
+00:10:05.920 --> 00:10:08.000
+so thank you very much for listening to
+
+00:10:08.000 --> 00:10:09.360
+my lightning talk
+
+00:10:09.360 --> 00:10:11.360
+if you'd like to contact me here are
+
+00:10:11.360 --> 00:10:12.480
+three modes of
+
+00:10:12.480 --> 00:10:15.279
+or two modes of communication I will be
+
+00:10:15.279 --> 00:10:17.120
+on irc more
+
+00:10:17.120 --> 00:10:20.079
+soon and you can always email me if you
+
+00:10:20.079 --> 00:10:20.560
+have
+
+00:10:20.560 --> 00:10:23.200
+any questions you can also search me on
+
+00:10:23.200 --> 00:10:23.680
+youtube
+
+00:10:23.680 --> 00:10:26.399
+pierce wong violin thank you very much
+
+00:10:26.399 --> 00:10:26.800
+and
+
+00:10:26.800 --> 00:10:30.040
+I hope you enjoy the rest of the
+
+00:10:30.040 --> 00:10:33.040
+conference
diff --git a/2020/subtitles/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--questions--pierce-wang-autogen.vtt b/2020/subtitles/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--questions--pierce-wang-autogen.vtt
new file mode 100644
index 00000000..e0ddcb76
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--questions--pierce-wang-autogen.vtt
@@ -0,0 +1,769 @@
+WEBVTT
+
+00:00:01.360 --> 00:00:03.040
+hello and welcome to my
+
+00:00:03.040 --> 00:00:05.520
+Emacs conference lightning talk today
+
+00:00:05.520 --> 00:00:07.120
+I'll be talking about
+
+00:00:07.120 --> 00:00:09.840
+my journey into Emacs as a high schooler
+
+00:00:09.840 --> 00:00:14.400
+and how it has changed my life
+
+00:00:14.400 --> 00:00:17.359
+right so who am I I am a senior at
+
+00:00:17.359 --> 00:00:19.520
+stanford online high school
+
+00:00:19.520 --> 00:00:22.800
+and I am also a violinist
+
+00:00:22.800 --> 00:00:24.320
+I started violin when I was two and a
+
+00:00:24.320 --> 00:00:26.960
+half and I have been
+
+00:00:26.960 --> 00:00:29.119
+keeping it up ever since violin is a
+
+00:00:29.119 --> 00:00:30.240
+huge part of my life
+
+00:00:30.240 --> 00:00:33.360
+and I am very much a musician at heart
+
+00:00:33.360 --> 00:00:36.239
+I am also a somewhat capable programmer
+
+00:00:36.239 --> 00:00:37.840
+I've done a lot of informal programming
+
+00:00:37.840 --> 00:00:39.280
+in the past
+
+00:00:39.280 --> 00:00:42.559
+and this year I'm taking my first ap
+
+00:00:42.559 --> 00:00:44.079
+compsci course
+
+00:00:44.079 --> 00:00:47.440
+in my high school and so
+
+00:00:47.440 --> 00:00:51.039
+I've done a lot of side projects
+
+00:00:51.039 --> 00:00:54.239
+mainly in python and some very short
+
+00:00:54.239 --> 00:00:56.800
+scripts in e-lisp
+
+00:00:56.800 --> 00:00:59.840
+and last but not least I am a tinker
+
+00:00:59.840 --> 00:01:02.879
+I love to play around with things and
+
+00:01:02.879 --> 00:01:06.720
+see what I can do better and just
+
+00:01:06.720 --> 00:01:10.880
+have as much fun as possible
+
+00:01:10.880 --> 00:01:15.040
+so how did I find Emacs
+
+00:01:15.040 --> 00:01:17.600
+I discovered it actually through a talk
+
+00:01:17.600 --> 00:01:18.880
+funnily enough
+
+00:01:18.880 --> 00:01:21.360
+at a vim conference given by aaron
+
+00:01:21.360 --> 00:01:23.520
+bieber
+
+00:01:23.520 --> 00:01:25.840
+titled evil mode or how I learned to
+
+00:01:25.840 --> 00:01:28.320
+stop worrying and love Emacs
+
+00:01:28.320 --> 00:01:31.439
+I watched that talk a couple times over
+
+00:01:31.439 --> 00:01:33.360
+just marveling at all the wonderful
+
+00:01:33.360 --> 00:01:35.759
+things that he could do in Emacs
+
+00:01:35.759 --> 00:01:38.799
+and being a previous vim user myself
+
+00:01:38.799 --> 00:01:41.680
+I found it very enticing to be able to
+
+00:01:41.680 --> 00:01:42.399
+have
+
+00:01:42.399 --> 00:01:44.960
+the evil mode package and very quickly
+
+00:01:44.960 --> 00:01:47.040
+switch to Emacs
+
+00:01:47.040 --> 00:01:48.799
+at the time I was also in my sophomore
+
+00:01:48.799 --> 00:01:51.040
+year and so
+
+00:01:51.040 --> 00:01:54.640
+I had had sort of a note-taking system
+
+00:01:54.640 --> 00:01:56.320
+in the past
+
+00:01:56.320 --> 00:01:59.360
+but it was not good um and I needed a
+
+00:01:59.360 --> 00:02:01.680
+more organized note-taking system
+
+00:02:01.680 --> 00:02:03.759
+my parents had suggested paper for a
+
+00:02:03.759 --> 00:02:04.960
+while and
+
+00:02:04.960 --> 00:02:08.160
+there was the whole organization
+
+00:02:08.160 --> 00:02:10.959
+part of that but that did not really
+
+00:02:10.959 --> 00:02:12.080
+work out for me
+
+00:02:12.080 --> 00:02:14.000
+and so I was trying to find this better
+
+00:02:14.000 --> 00:02:16.239
+note-taking system
+
+00:02:16.239 --> 00:02:19.440
+and it was very hard
+
+00:02:19.440 --> 00:02:22.239
+I had two main criteria which I did not
+
+00:02:22.239 --> 00:02:23.520
+define at the time
+
+00:02:23.520 --> 00:02:25.360
+but I realized was really what I was
+
+00:02:25.360 --> 00:02:26.640
+looking for
+
+00:02:26.640 --> 00:02:28.720
+first of all it had to be flexible
+
+00:02:28.720 --> 00:02:30.959
+enough and second of all it had
+
+00:02:30.959 --> 00:02:33.920
+I had to have control over the data and
+
+00:02:33.920 --> 00:02:34.959
+so
+
+00:02:34.959 --> 00:02:37.519
+through this process I actually went
+
+00:02:37.519 --> 00:02:39.680
+through a bunch of note-taking softwares
+
+00:02:39.680 --> 00:02:42.640
+rather systematically I went through
+
+00:02:42.640 --> 00:02:44.080
+google docs
+
+00:02:44.080 --> 00:02:47.519
+which very much did not work out
+
+00:02:47.519 --> 00:02:49.840
+I also went through evernote which also
+
+00:02:49.840 --> 00:02:50.640
+was not
+
+00:02:50.640 --> 00:02:53.200
+great for me and one note which I
+
+00:02:53.200 --> 00:02:55.200
+settled on for a little while
+
+00:02:55.200 --> 00:02:58.800
+but it did not meet these criteria
+
+00:02:58.800 --> 00:03:01.519
+particularly the second one I had taken
+
+00:03:01.519 --> 00:03:02.159
+some notes
+
+00:03:02.159 --> 00:03:05.280
+and I wanted to export it and onenote
+
+00:03:05.280 --> 00:03:07.519
+did not let me do that
+
+00:03:07.519 --> 00:03:12.000
+it was pdf horribly organized pdf
+
+00:03:12.000 --> 00:03:14.879
+and that's when I knew I needed some
+
+00:03:14.879 --> 00:03:17.440
+change
+
+00:03:17.440 --> 00:03:21.519
+so I discovered Emacs through this talk
+
+00:03:21.519 --> 00:03:24.080
+and through the wonderful features of
+
+00:03:24.080 --> 00:03:27.040
+org mode
+
+00:03:27.040 --> 00:03:30.080
+this is my first journal entry in Emacs
+
+00:03:30.080 --> 00:03:34.000
+I had been playing with it for one day
+
+00:03:34.000 --> 00:03:36.159
+and I was on the org agenda and I
+
+00:03:36.159 --> 00:03:38.159
+happened to press I
+
+00:03:38.159 --> 00:03:40.720
+which for the Emacs combined is the
+
+00:03:40.720 --> 00:03:41.599
+default for
+
+00:03:41.599 --> 00:03:45.440
+diary entry and so I was very excited
+
+00:03:45.440 --> 00:03:48.720
+um and I shouldn't stay on the slide too
+
+00:03:48.720 --> 00:03:50.239
+long unless you read it
+
+00:03:50.239 --> 00:03:53.760
+um so let's move on to the next one
+
+00:03:53.760 --> 00:03:57.200
+um so the learning curve for me I think
+
+00:03:57.200 --> 00:04:00.480
+particularly being an xbm user
+
+00:04:00.480 --> 00:04:03.760
+evil mode made it very easy to switch
+
+00:04:03.760 --> 00:04:06.080
+thankfully I there was the emax
+
+00:04:06.080 --> 00:04:07.439
+reference sheet
+
+00:04:07.439 --> 00:04:10.799
+and having evil mode to
+
+00:04:10.799 --> 00:04:14.080
+switch between um
+
+00:04:14.080 --> 00:04:17.440
+texts and whether it be editing a text
+
+00:04:17.440 --> 00:04:17.919
+file
+
+00:04:17.919 --> 00:04:20.560
+or going to other parts of just Emacs in
+
+00:04:20.560 --> 00:04:21.600
+general
+
+00:04:21.600 --> 00:04:24.800
+I think vim really helped with making me
+
+00:04:24.800 --> 00:04:26.840
+feel comfortable within this new
+
+00:04:26.840 --> 00:04:28.000
+environment
+
+00:04:28.000 --> 00:04:31.440
+and so having that experience I also
+
+00:04:31.440 --> 00:04:31.919
+wasn't
+
+00:04:31.919 --> 00:04:34.240
+new to the keybind-based world I have
+
+00:04:34.240 --> 00:04:36.320
+been very comfortable with computer
+
+00:04:36.320 --> 00:04:40.160
+and the keyboard for most of my life
+
+00:04:40.160 --> 00:04:43.520
+and so it was not a totally new
+
+00:04:43.520 --> 00:04:45.520
+environment for me
+
+00:04:45.520 --> 00:04:47.440
+I also spent a lot of time looking at
+
+00:04:47.440 --> 00:04:49.360
+the Emacs reference sheet
+
+00:04:49.360 --> 00:04:53.040
+just thinking about trying to find
+
+00:04:53.040 --> 00:04:55.040
+all of the different functions if I
+
+00:04:55.040 --> 00:04:56.639
+didn't know what something was
+
+00:04:56.639 --> 00:04:59.680
+then I queried it in Emacs and then I
+
+00:04:59.680 --> 00:05:01.199
+figured out what it was
+
+00:05:01.199 --> 00:05:03.759
+and that was one of the best ways for me
+
+00:05:03.759 --> 00:05:05.600
+to discover
+
+00:05:05.600 --> 00:05:09.360
+all of the capabilities of Emacs
+
+00:05:09.360 --> 00:05:11.440
+thirdly of course the self-documenting
+
+00:05:11.440 --> 00:05:12.800
+feature
+
+00:05:12.800 --> 00:05:15.199
+or nature of Emacs and narrowing
+
+00:05:15.199 --> 00:05:17.120
+frameworks such as helm
+
+00:05:17.120 --> 00:05:20.479
+really helped find things especially for
+
+00:05:20.479 --> 00:05:21.360
+mx
+
+00:05:21.360 --> 00:05:25.919
+for a while I was just
+
+00:05:25.919 --> 00:05:28.160
+I would go about my day and if I pressed
+
+00:05:28.160 --> 00:05:29.520
+to keep mine that I didn't know what it
+
+00:05:29.520 --> 00:05:30.720
+did
+
+00:05:30.720 --> 00:05:34.560
+I would do the losses and
+
+00:05:34.560 --> 00:05:36.240
+see the list of key binds that I had
+
+00:05:36.240 --> 00:05:37.600
+pressed and
+
+00:05:37.600 --> 00:05:40.400
+tried to find that one and query the
+
+00:05:40.400 --> 00:05:41.280
+function
+
+00:05:41.280 --> 00:05:45.280
+and what not so
+
+00:05:45.280 --> 00:05:49.120
+yeah and now we jump to now so
+
+00:05:49.120 --> 00:05:51.759
+there there is at least one moment in
+
+00:05:51.759 --> 00:05:53.280
+each day when I think
+
+00:05:53.280 --> 00:05:55.600
+how would I live without umax
+
+00:05:55.600 --> 00:05:57.680
+particularly now during my senior year
+
+00:05:57.680 --> 00:05:59.120
+in high school
+
+00:05:59.120 --> 00:06:02.720
+things are very busy with school violin
+
+00:06:02.720 --> 00:06:05.520
+and other side projects it's pretty
+
+00:06:05.520 --> 00:06:06.400
+crazy
+
+00:06:06.400 --> 00:06:09.680
+and so Emacs
+
+00:06:09.680 --> 00:06:12.720
+and org mode has really helped me stay
+
+00:06:12.720 --> 00:06:14.479
+on track with everything
+
+00:06:14.479 --> 00:06:16.960
+and the flexibility of these software is
+
+00:06:16.960 --> 00:06:18.840
+being able to have things in different
+
+00:06:18.840 --> 00:06:21.600
+files notes within the tasks
+
+00:06:21.600 --> 00:06:24.639
+all of that stuff has been truly a
+
+00:06:24.639 --> 00:06:25.840
+lifesaver
+
+00:06:25.840 --> 00:06:28.400
+and so I think I can confidently say
+
+00:06:28.400 --> 00:06:31.199
+that I have found Emacs to be
+
+00:06:31.199 --> 00:06:35.280
+the perfect software for me
+
+00:06:35.280 --> 00:06:38.639
+over the past two years of using Emacs
+
+00:06:38.639 --> 00:06:42.240
+now it is about two years and two months
+
+00:06:42.240 --> 00:06:45.039
+I have built a fairly well organized
+
+00:06:45.039 --> 00:06:46.160
+2000
+
+00:06:46.160 --> 00:06:49.520
+plus line org literate config
+
+00:06:49.520 --> 00:06:52.160
+and so I actually I started with an
+
+00:06:52.160 --> 00:06:53.840
+e-lisp config
+
+00:06:53.840 --> 00:06:56.800
+just the vanilla e-max with evil mode
+
+00:06:56.800 --> 00:06:57.919
+and I built it up
+
+00:06:57.919 --> 00:07:00.319
+from there eventually I switched to org
+
+00:07:00.319 --> 00:07:02.400
+literate configs
+
+00:07:02.400 --> 00:07:05.840
+and used that to organize the snippets
+
+00:07:05.840 --> 00:07:10.080
+that I was putting in there and so
+
+00:07:10.080 --> 00:07:14.000
+yeah this is really my workflow now
+
+00:07:14.000 --> 00:07:16.639
+currently about 90 of everything I do on
+
+00:07:16.639 --> 00:07:18.960
+my computer is in Emacs
+
+00:07:18.960 --> 00:07:21.520
+the most notable things of course the
+
+00:07:21.520 --> 00:07:22.319
+list is far
+
+00:07:22.319 --> 00:07:26.000
+too long to put on one slide but I do a
+
+00:07:26.000 --> 00:07:28.160
+lot of my programming in Emacs
+
+00:07:28.160 --> 00:07:31.280
+mainly python and e-lisp
+
+00:07:31.280 --> 00:07:33.759
+because of my ap comp sci class I have
+
+00:07:33.759 --> 00:07:35.199
+to do java as well
+
+00:07:35.199 --> 00:07:38.720
+and thank goodness Emacs has wonderful
+
+00:07:38.720 --> 00:07:41.840
+support for that as well
+
+00:07:41.840 --> 00:07:45.840
+also I do all of my school assignments
+
+00:07:45.840 --> 00:07:48.800
+more or less in Emacs essay writing I do
+
+00:07:48.800 --> 00:07:50.400
+an org mode and I have some template
+
+00:07:50.400 --> 00:07:51.919
+files
+
+00:07:51.919 --> 00:07:53.919
+template org files which I just include
+
+00:07:53.919 --> 00:07:55.039
+at the top
+
+00:07:55.039 --> 00:07:58.160
+and then I can export easily to latex
+
+00:07:58.160 --> 00:08:01.440
+and a beautiful pdf
+
+00:08:01.440 --> 00:08:04.400
+math physics same thing latex fragments
+
+00:08:04.400 --> 00:08:05.840
+are a lifesaver
+
+00:08:05.840 --> 00:08:09.599
+and also really pretty
+
+00:08:09.599 --> 00:08:13.199
+and I take notes on basically everything
+
+00:08:13.199 --> 00:08:15.520
+at first I had things separate and then
+
+00:08:15.520 --> 00:08:16.319
+I started
+
+00:08:16.319 --> 00:08:19.360
+sort of putting it all into onenotes.org
+
+00:08:19.360 --> 00:08:21.360
+file or most of it into one
+
+00:08:21.360 --> 00:08:24.000
+file and that has actually worked out
+
+00:08:24.000 --> 00:08:24.960
+surprisingly well
+
+00:08:24.960 --> 00:08:26.479
+especially with all the searching
+
+00:08:26.479 --> 00:08:28.879
+features of agenda
+
+00:08:28.879 --> 00:08:33.440
+and whatnot um and I also use mail
+
+00:08:33.440 --> 00:08:35.680
+I recently made the switch probably
+
+00:08:35.680 --> 00:08:37.680
+about one or two months ago
+
+00:08:37.680 --> 00:08:40.479
+and it has been one of the best switches
+
+00:08:40.479 --> 00:08:40.959
+I've
+
+00:08:40.959 --> 00:08:44.480
+I've ever had especially given
+
+00:08:44.480 --> 00:08:46.320
+connecting to tasks all of this
+
+00:08:46.320 --> 00:08:47.839
+wonderful stuff
+
+00:08:47.839 --> 00:08:50.640
+just putting even more in Emacs is
+
+00:08:50.640 --> 00:08:54.160
+always a good thing I found
+
+00:08:54.160 --> 00:08:57.680
+so reflecting back on my journey I think
+
+00:08:57.680 --> 00:08:59.760
+one of the most important things was
+
+00:08:59.760 --> 00:09:01.440
+just having a reason to use it
+
+00:09:01.440 --> 00:09:04.480
+when I came to Emacs I had something
+
+00:09:04.480 --> 00:09:06.080
+that I was looking for
+
+00:09:06.080 --> 00:09:09.600
+and as soon as I found it I delved right
+
+00:09:09.600 --> 00:09:09.839
+in
+
+00:09:09.839 --> 00:09:12.720
+and I I started using it for that thing
+
+00:09:12.720 --> 00:09:14.480
+and so I was sort of forced to
+
+00:09:14.480 --> 00:09:16.959
+take the time to read the docs and
+
+00:09:16.959 --> 00:09:19.279
+figure out what functions I needed
+
+00:09:19.279 --> 00:09:22.399
+to function and how
+
+00:09:22.399 --> 00:09:25.839
+I was going to put my workflow
+
+00:09:25.839 --> 00:09:30.399
+and also of course the desire to tinker
+
+00:09:30.399 --> 00:09:33.519
+and yeah so really what's next for me
+
+00:09:33.519 --> 00:09:36.800
+is just wanting to become a more active
+
+00:09:36.800 --> 00:09:38.640
+member of the Emacs community
+
+00:09:38.640 --> 00:09:40.640
+I want to give back and I think this
+
+00:09:40.640 --> 00:09:43.760
+talk is sort of the first step to that
+
+00:09:43.760 --> 00:09:45.920
+being a more active part of this
+
+00:09:45.920 --> 00:09:48.000
+community that has
+
+00:09:48.000 --> 00:09:51.040
+indirectly perhaps um but just like
+
+00:09:51.040 --> 00:09:54.000
+really helped me become a better and
+
+00:09:54.000 --> 00:09:55.839
+more organized human being
+
+00:09:55.839 --> 00:09:58.880
+um I have some package ideas that I'm
+
+00:09:58.880 --> 00:10:01.920
+slowly working on and yeah I just hope
+
+00:10:01.920 --> 00:10:05.920
+to spread the word
+
+00:10:05.920 --> 00:10:08.000
+so thank you very much for listening to
+
+00:10:08.000 --> 00:10:09.360
+my lightning talk
+
+00:10:09.360 --> 00:10:11.360
+if you'd like to contact me here are
+
+00:10:11.360 --> 00:10:12.480
+three modes of
+
+00:10:12.480 --> 00:10:15.279
+or two modes of communication I will be
+
+00:10:15.279 --> 00:10:17.120
+on irc more
+
+00:10:17.120 --> 00:10:20.079
+soon and you can always email me if you
+
+00:10:20.079 --> 00:10:20.560
+have
+
+00:10:20.560 --> 00:10:23.200
+any questions you can also search me on
+
+00:10:23.200 --> 00:10:23.680
+youtube
+
+00:10:23.680 --> 00:10:26.399
+pierce wong violin thank you very much
+
+00:10:26.399 --> 00:10:26.800
+and
+
+00:10:26.800 --> 00:10:30.040
+I hope you enjoy the rest of the
+
+00:10:30.040 --> 00:10:33.040
+conference
diff --git a/2020/subtitles/emacsconf-2020--27-state-of-retro-gaming-in-emacs-chip8--vasilij-wasamasa-schneidermann-autogen.vtt b/2020/subtitles/emacsconf-2020--27-state-of-retro-gaming-in-emacs-chip8--vasilij-wasamasa-schneidermann-autogen.vtt
new file mode 100644
index 00000000..1d41f1e5
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--27-state-of-retro-gaming-in-emacs-chip8--vasilij-wasamasa-schneidermann-autogen.vtt
@@ -0,0 +1,913 @@
+WEBVTT
+
+00:00:00.880 --> 00:00:02.879
+hello everyone and welcome to my talk
+
+00:00:02.879 --> 00:00:04.520
+state of retrogaming and Emacs
+
+00:00:04.520 --> 00:00:06.960
+[Music]
+
+00:00:06.960 --> 00:00:08.639
+first of all a little bit about myself
+
+00:00:08.639 --> 00:00:12.000
+my name is neilman I'm 28 years old
+
+00:00:12.000 --> 00:00:13.599
+I work as a cyber security consultant
+
+00:00:13.599 --> 00:00:15.200
+msg systems and
+
+00:00:15.200 --> 00:00:17.440
+test other people's web applications and
+
+00:00:17.440 --> 00:00:19.359
+review the source code for security
+
+00:00:19.359 --> 00:00:20.160
+problems
+
+00:00:20.160 --> 00:00:22.960
+you can reach me by email I have my own
+
+00:00:22.960 --> 00:00:25.039
+self-hosted git repositories
+
+00:00:25.039 --> 00:00:26.480
+and I have a blog where you can
+
+00:00:26.480 --> 00:00:28.480
+occasionally find new posts by me on all
+
+00:00:28.480 --> 00:00:32.160
+kinds of things not just emix things
+
+00:00:32.160 --> 00:00:34.800
+so but the motivation about this one I
+
+00:00:34.800 --> 00:00:36.480
+found that Emacs is the ultimate
+
+00:00:36.480 --> 00:00:38.079
+procrastination machine and there are
+
+00:00:38.079 --> 00:00:40.160
+lots of fun demonstrations I'll go over
+
+00:00:40.160 --> 00:00:41.200
+a few of them
+
+00:00:41.200 --> 00:00:44.160
+for example someone made a thing to
+
+00:00:44.160 --> 00:00:46.079
+order sell it for himself online so it
+
+00:00:46.079 --> 00:00:48.239
+doesn't have to walk over to the shop
+
+00:00:48.239 --> 00:00:50.879
+there's plenty rc bots there's some game
+
+00:00:50.879 --> 00:00:51.760
+things
+
+00:00:51.760 --> 00:00:53.520
+there's an emulator for the z machine
+
+00:00:53.520 --> 00:00:55.600
+which you can use to play zorg
+
+00:00:55.600 --> 00:00:57.600
+and so I asked myself at this point can
+
+00:00:57.600 --> 00:00:59.039
+you actually emulate retro games at
+
+00:00:59.039 --> 00:01:01.039
+60fps and it looked around a bit
+
+00:01:01.039 --> 00:01:02.800
+and found some projects but none that
+
+00:01:02.800 --> 00:01:04.479
+were actually able to
+
+00:01:04.479 --> 00:01:07.360
+do it at 60fps so I set out to do my own
+
+00:01:07.360 --> 00:01:08.000
+one
+
+00:01:08.000 --> 00:01:09.439
+and looked out for a console that you
+
+00:01:09.439 --> 00:01:11.119
+can actually emulate at that speed
+
+00:01:11.119 --> 00:01:13.439
+using emax with its very very limited
+
+00:01:13.439 --> 00:01:14.690
+rendering
+
+00:01:14.690 --> 00:01:16.320
+[Music]
+
+00:01:16.320 --> 00:01:19.520
+and here's the project chip8.el it's
+
+00:01:19.520 --> 00:01:20.560
+pretty much finished
+
+00:01:20.560 --> 00:01:22.880
+it clocks into under 1000 sourced lines
+
+00:01:22.880 --> 00:01:24.000
+of code
+
+00:01:24.000 --> 00:01:26.159
+it supports the superchip 8 extensions
+
+00:01:26.159 --> 00:01:28.080
+it runs at full speed all games behave
+
+00:01:28.080 --> 00:01:30.159
+okay as far as I'm concerned and
+
+00:01:30.159 --> 00:01:32.320
+yeah I'm pretty happy with it it's very
+
+00:01:32.320 --> 00:01:34.479
+much the hell world of emulation
+
+00:01:34.479 --> 00:01:37.040
+and I might maybe do some other
+
+00:01:37.040 --> 00:01:40.880
+emulation projects in the future
+
+00:01:40.880 --> 00:01:43.360
+now for the section which is the longest
+
+00:01:43.360 --> 00:01:45.439
+bunch of fun facts about ship a dot el
+
+00:01:45.439 --> 00:01:46.320
+which I've learned
+
+00:01:46.320 --> 00:01:49.759
+during this project so
+
+00:01:49.759 --> 00:01:52.240
+what the hell is debate anyway first of
+
+00:01:52.240 --> 00:01:54.640
+all unlike many other emulation game
+
+00:01:54.640 --> 00:01:56.799
+things it's not a console but a vm
+
+00:01:56.799 --> 00:01:58.560
+it was designed for easy parting of home
+
+00:01:58.560 --> 00:02:00.000
+computer games
+
+00:02:00.000 --> 00:02:02.560
+it wasn't terribly successful and but
+
+00:02:02.560 --> 00:02:03.680
+there's still a small community of
+
+00:02:03.680 --> 00:02:04.320
+enthusiasts
+
+00:02:04.320 --> 00:02:06.079
+writing games for it and there are even
+
+00:02:06.079 --> 00:02:09.119
+a few demos
+
+00:02:09.119 --> 00:02:11.920
+this vm has system specs it has a very
+
+00:02:11.920 --> 00:02:14.720
+very simple 8-bit cpu with 16 registers
+
+00:02:14.720 --> 00:02:14.959
+and
+
+00:02:14.959 --> 00:02:17.760
+36 fixed size instructions you have a
+
+00:02:17.760 --> 00:02:18.160
+whole
+
+00:02:18.160 --> 00:02:20.560
+4 kilobyte of ram you have a stack with
+
+00:02:20.560 --> 00:02:22.080
+16 return addresses
+
+00:02:22.080 --> 00:02:24.480
+the resolution is 64 by 32 black white
+
+00:02:24.480 --> 00:02:25.760
+pixels
+
+00:02:25.760 --> 00:02:28.000
+rendering is done by drawing sprites
+
+00:02:28.000 --> 00:02:29.440
+these are drawn in excel mode meaning
+
+00:02:29.440 --> 00:02:30.160
+that if you
+
+00:02:30.160 --> 00:02:32.239
+draw a sprite and set a bit it just
+
+00:02:32.239 --> 00:02:33.840
+flips over from black to white or white
+
+00:02:33.840 --> 00:02:35.040
+to black
+
+00:02:35.040 --> 00:02:36.560
+first one you have a modern buzz that
+
+00:02:36.560 --> 00:02:38.239
+can just beep at one
+
+00:02:38.239 --> 00:02:40.640
+frequency and most unusually there's a
+
+00:02:40.640 --> 00:02:43.120
+hexadecimal keypad as input
+
+00:02:43.120 --> 00:02:45.360
+so the keys are basically zero to nine
+
+00:02:45.360 --> 00:02:48.480
+and a to f
+
+00:02:48.480 --> 00:02:50.879
+so how does this whole thing work it
+
+00:02:50.879 --> 00:02:52.400
+runs an unspecified speed
+
+00:02:52.400 --> 00:02:53.599
+you'll probably have to do some fine
+
+00:02:53.599 --> 00:02:54.879
+tune you find the speed you're happy
+
+00:02:54.879 --> 00:02:56.080
+with
+
+00:02:56.080 --> 00:02:58.560
+sound and delay timers exist they count
+
+00:02:58.560 --> 00:03:01.120
+down at 60fps down to zero
+
+00:03:01.120 --> 00:03:02.879
+this is done so that you can play a
+
+00:03:02.879 --> 00:03:05.120
+sound at some specific time
+
+00:03:05.120 --> 00:03:06.640
+the game itself is loaded with a fixed
+
+00:03:06.640 --> 00:03:08.640
+offset into ram the program account is
+
+00:03:08.640 --> 00:03:10.480
+set to exactly that offset
+
+00:03:10.480 --> 00:03:11.920
+and from there it enters the game loop
+
+00:03:11.920 --> 00:03:13.840
+where decodes and instruction executes
+
+00:03:13.840 --> 00:03:15.519
+it for the side effects and just
+
+00:03:15.519 --> 00:03:18.130
+loops and does this at infinitum
+
+00:03:18.130 --> 00:03:19.599
+[Music]
+
+00:03:19.599 --> 00:03:21.920
+so the game was the first thing where
+
+00:03:21.920 --> 00:03:23.920
+into problems the usual game approach is
+
+00:03:23.920 --> 00:03:24.239
+to
+
+00:03:24.239 --> 00:03:26.640
+do stuff figure out how long to eight
+
+00:03:26.640 --> 00:03:28.239
+wait for exactly that much and
+
+00:03:28.239 --> 00:03:30.640
+repeat this doesn't work well in imax at
+
+00:03:30.640 --> 00:03:31.680
+all because well
+
+00:03:31.680 --> 00:03:34.959
+user input basically and
+
+00:03:34.959 --> 00:03:37.280
+Emacs is designed to just do whatever it
+
+00:03:37.280 --> 00:03:39.040
+needs to do whenever you enter use input
+
+00:03:39.040 --> 00:03:40.080
+instead of
+
+00:03:40.080 --> 00:03:42.799
+doing things at one specific time if you
+
+00:03:42.799 --> 00:03:43.440
+try to do
+
+00:03:43.440 --> 00:03:45.040
+interruptable sleep well you get
+
+00:03:45.040 --> 00:03:46.640
+unpredictable behavior
+
+00:03:46.640 --> 00:03:49.440
+for example can be the timer doesn't run
+
+00:03:49.440 --> 00:03:50.959
+at all at next time because you've
+
+00:03:50.959 --> 00:03:52.560
+accidentally cancelled it
+
+00:03:52.560 --> 00:03:54.400
+if you do uninterruptable sleep it's
+
+00:03:54.400 --> 00:03:55.760
+freezes instead which isn't what you
+
+00:03:55.760 --> 00:03:56.720
+want either
+
+00:03:56.720 --> 00:03:59.360
+so I went for timers which forced me to
+
+00:03:59.360 --> 00:04:00.560
+do inversion of control
+
+00:04:00.560 --> 00:04:02.159
+meaning that I have to write code in the
+
+00:04:02.159 --> 00:04:04.080
+style where it's just call it
+
+00:04:04.080 --> 00:04:06.159
+time and this allows this input to
+
+00:04:06.159 --> 00:04:07.200
+happen and to
+
+00:04:07.200 --> 00:04:09.120
+for things to progress at roughly the
+
+00:04:09.120 --> 00:04:11.040
+speed I want to
+
+00:04:11.040 --> 00:04:12.879
+so there's the skydiver function which
+
+00:04:12.879 --> 00:04:14.159
+is called a 60fps
+
+00:04:14.159 --> 00:04:16.000
+and I have to be very careful to not do
+
+00:04:16.000 --> 00:04:17.359
+too much in it
+
+00:04:17.359 --> 00:04:20.479
+and say this function execute cpu cycles
+
+00:04:20.479 --> 00:04:22.960
+decrypt the sound delay registers and
+
+00:04:22.960 --> 00:04:23.680
+redraw
+
+00:04:23.680 --> 00:04:27.759
+the screen so to map this whole system
+
+00:04:27.759 --> 00:04:28.800
+to mx lisp
+
+00:04:28.800 --> 00:04:31.199
+I've used just integers and vectors
+
+00:04:31.199 --> 00:04:33.120
+which contain even more integers
+
+00:04:33.120 --> 00:04:35.040
+this is used for the ram registers
+
+00:04:35.040 --> 00:04:37.759
+return stack key state screen and so on
+
+00:04:37.759 --> 00:04:39.120
+and so forth basically
+
+00:04:39.120 --> 00:04:41.520
+what you would do if you were writing c
+
+00:04:41.520 --> 00:04:42.800
+all of this is stored in global
+
+00:04:42.800 --> 00:04:44.560
+variables I'm not using any
+
+00:04:44.560 --> 00:04:46.479
+lists at all and as a side effect
+
+00:04:46.479 --> 00:04:48.400
+there's no constant going on at all
+
+00:04:48.400 --> 00:04:50.320
+there are no extra objects created which
+
+00:04:50.320 --> 00:04:51.120
+would trigger
+
+00:04:51.120 --> 00:04:53.919
+garbage collection pulses this getting
+
+00:04:53.919 --> 00:04:55.840
+this red was rather tricky actually and
+
+00:04:55.840 --> 00:04:56.720
+there were some
+
+00:04:56.720 --> 00:04:58.560
+in garbage collection problems which I
+
+00:04:58.560 --> 00:05:01.759
+had to resolve over time
+
+00:05:01.759 --> 00:05:04.320
+so the coding instructions for this you
+
+00:05:04.320 --> 00:05:05.520
+have to know that all instructions are
+
+00:05:05.520 --> 00:05:06.800
+two bytes long
+
+00:05:06.800 --> 00:05:08.880
+and the arguments encoded inside them
+
+00:05:08.880 --> 00:05:10.240
+for example the jump to address
+
+00:05:10.240 --> 00:05:11.440
+instruction
+
+00:05:11.440 --> 00:05:15.120
+is encoded as one and three hex digits
+
+00:05:15.120 --> 00:05:18.400
+the type is extracted masking with f000
+
+00:05:18.400 --> 00:05:20.800
+and then shifting it by 12 bits mask
+
+00:05:20.800 --> 00:05:21.680
+means the hd
+
+00:05:21.680 --> 00:05:24.000
+performance binary end you can do the
+
+00:05:24.000 --> 00:05:25.440
+same with the argument basement with
+
+00:05:25.440 --> 00:05:26.639
+zero fff
+
+00:05:26.639 --> 00:05:29.520
+and no shift if you do this long enough
+
+00:05:29.520 --> 00:05:31.039
+you'll find common patterns for example
+
+00:05:31.039 --> 00:05:32.639
+addresses are always encoded like this
+
+00:05:32.639 --> 00:05:35.280
+using the last three nibbles in the code
+
+00:05:35.280 --> 00:05:36.880
+you'll find a big count which dispatches
+
+00:05:36.880 --> 00:05:38.400
+on the type and executes it for the side
+
+00:05:38.400 --> 00:05:40.070
+effects
+
+00:05:40.070 --> 00:05:41.440
+[Music]
+
+00:05:41.440 --> 00:05:43.440
+for testing I've initially just accused
+
+00:05:43.440 --> 00:05:45.919
+the rom until I fit ctrl g
+
+00:05:45.919 --> 00:05:47.280
+and then use the debug command to run
+
+00:05:47.280 --> 00:05:49.039
+the screen to a buffer
+
+00:05:49.039 --> 00:05:51.360
+later on I found tiny roms that just
+
+00:05:51.360 --> 00:05:52.320
+display a static
+
+00:05:52.320 --> 00:05:55.680
+test screen for example logo and looked
+
+00:05:55.680 --> 00:05:57.280
+whether it looked right
+
+00:05:57.280 --> 00:05:59.199
+I added instructions as needed and went
+
+00:05:59.199 --> 00:06:00.960
+through more and more and more roms and
+
+00:06:00.960 --> 00:06:03.360
+later I wrote in unit test suite as a
+
+00:06:03.360 --> 00:06:05.199
+safety net and this unit test suite it
+
+00:06:05.199 --> 00:06:06.000
+just
+
+00:06:06.000 --> 00:06:08.400
+sets up an empty emulator state executes
+
+00:06:08.400 --> 00:06:10.080
+some instructions and then looks whether
+
+00:06:10.080 --> 00:06:10.400
+the
+
+00:06:10.400 --> 00:06:14.880
+expected side effects have happened
+
+00:06:14.880 --> 00:06:17.120
+for debugging I usually use e-debug but
+
+00:06:17.120 --> 00:06:19.120
+this was super ineffective because well
+
+00:06:19.120 --> 00:06:20.880
+you don't really want to step through
+
+00:06:20.880 --> 00:06:22.960
+big cons doing side effects for every
+
+00:06:22.960 --> 00:06:24.960
+single cycle when it can take like 100
+
+00:06:24.960 --> 00:06:26.880
+cycles for things to happen
+
+00:06:26.880 --> 00:06:29.680
+therefore I've set up logging and
+
+00:06:29.680 --> 00:06:31.360
+whenever I locked something
+
+00:06:31.360 --> 00:06:32.720
+and couldn't figure out the error I
+
+00:06:32.720 --> 00:06:33.919
+compared my lock output with
+
+00:06:33.919 --> 00:06:37.039
+instrumented version of another emulator
+
+00:06:37.039 --> 00:06:39.199
+and if the locks diverge then I have
+
+00:06:39.199 --> 00:06:40.880
+figured out where the bug lies and could
+
+00:06:40.880 --> 00:06:42.720
+look deeper into it
+
+00:06:42.720 --> 00:06:44.479
+future project idea might be a chip 8
+
+00:06:44.479 --> 00:06:46.639
+debugger but I doubt I'll ever
+
+00:06:46.639 --> 00:06:50.720
+go into it for analysis I initially
+
+00:06:50.720 --> 00:06:52.639
+wrote a disassembler which is a very
+
+00:06:52.639 --> 00:06:54.400
+simple thing but super tedious
+
+00:06:54.400 --> 00:06:56.160
+especially if you wanted to add advanced
+
+00:06:56.160 --> 00:06:57.599
+functionality for example analysis or
+
+00:06:57.599 --> 00:06:59.120
+thinking of what part is data what had
+
+00:06:59.120 --> 00:07:00.000
+this code
+
+00:07:00.000 --> 00:07:01.840
+and I had this great idea for using the
+
+00:07:01.840 --> 00:07:03.360
+radari 2 framework
+
+00:07:03.360 --> 00:07:05.120
+and adding analysis and disassembly
+
+00:07:05.120 --> 00:07:06.479
+plug-in for it
+
+00:07:06.479 --> 00:07:08.400
+so I looked into this found okay here
+
+00:07:08.400 --> 00:07:10.319
+where you can write plugins in c
+
+00:07:10.319 --> 00:07:12.160
+but also in python so I wrote one in
+
+00:07:12.160 --> 00:07:13.520
+python and then the scout there's
+
+00:07:13.520 --> 00:07:15.039
+actually existing one in core which you
+
+00:07:15.039 --> 00:07:17.440
+have to enable explicitly by passing its
+
+00:07:17.440 --> 00:07:19.599
+argument so I've tried it and found it's
+
+00:07:19.599 --> 00:07:21.840
+not exactly as good as my own one so
+
+00:07:21.840 --> 00:07:23.680
+improved this one and submitted pull
+
+00:07:23.680 --> 00:07:26.610
+requests until it was at the same level
+
+00:07:26.610 --> 00:07:28.080
+[Music]
+
+00:07:28.080 --> 00:07:30.160
+rendering was the trickiest part of this
+
+00:07:30.160 --> 00:07:31.360
+whole thing because
+
+00:07:31.360 --> 00:07:34.319
+well I decided against using a library
+
+00:07:34.319 --> 00:07:35.759
+not like there would have been any
+
+00:07:35.759 --> 00:07:37.120
+usable library for this
+
+00:07:37.120 --> 00:07:39.599
+my usual approach of accelerating svg
+
+00:07:39.599 --> 00:07:41.680
+file was too expensive it just created
+
+00:07:41.680 --> 00:07:45.120
+too much garbage and took too long time
+
+00:07:45.120 --> 00:07:47.360
+I then tried creating mutating strings
+
+00:07:47.360 --> 00:07:49.599
+this was either either too expensive
+
+00:07:49.599 --> 00:07:52.639
+just like svgs or too complicated I
+
+00:07:52.639 --> 00:07:55.039
+tried changing svg tiles which created
+
+00:07:55.039 --> 00:07:57.280
+gaps between the lines
+
+00:07:57.280 --> 00:07:59.520
+then I tried to create an xpm file which
+
+00:07:59.520 --> 00:08:00.720
+was backed by a bull vector
+
+00:08:00.720 --> 00:08:02.400
+administrating this bull vector
+
+00:08:02.400 --> 00:08:04.400
+but the image caching effect made it
+
+00:08:04.400 --> 00:08:06.879
+just every nth frame to appear which
+
+00:08:06.879 --> 00:08:10.000
+wasn't good either then I had the idea
+
+00:08:10.000 --> 00:08:11.440
+to just use plain text
+
+00:08:11.440 --> 00:08:13.280
+and paint the individual characters with
+
+00:08:13.280 --> 00:08:14.800
+a different background color this
+
+00:08:14.800 --> 00:08:17.120
+this had perfect perfect performance
+
+00:08:17.120 --> 00:08:18.479
+there were many optimization attempts
+
+00:08:18.479 --> 00:08:20.000
+until I got there and it was
+
+00:08:20.000 --> 00:08:21.840
+very very stressful I wasn't sure
+
+00:08:21.840 --> 00:08:23.199
+whether I would ever get to accept the
+
+00:08:23.199 --> 00:08:26.160
+performance at all
+
+00:08:26.160 --> 00:08:28.560
+for sound you only need to a single beep
+
+00:08:28.560 --> 00:08:30.319
+so technically it shouldn't be difficult
+
+00:08:30.319 --> 00:08:31.280
+to emulate it
+
+00:08:31.280 --> 00:08:33.519
+however doing this is hard because Emacs
+
+00:08:33.519 --> 00:08:34.880
+officially only supports synchronous
+
+00:08:34.880 --> 00:08:37.200
+playback of sounds
+
+00:08:37.200 --> 00:08:39.039
+but there's also emax process which you
+
+00:08:39.039 --> 00:08:41.360
+can launch in asynchronous way
+
+00:08:41.360 --> 00:08:43.519
+so I looked into it and found that
+
+00:08:43.519 --> 00:08:45.279
+employee has a slave mode and mpv
+
+00:08:45.279 --> 00:08:46.640
+supports listing on the
+
+00:08:46.640 --> 00:08:50.880
+fifo for commands so I've created a pipe
+
+00:08:50.880 --> 00:08:54.000
+started a past mpv in loop mode and
+
+00:08:54.000 --> 00:08:55.519
+always send in pause and pause command
+
+00:08:55.519 --> 00:08:58.000
+to the fifo and that way I could control
+
+00:08:58.000 --> 00:09:02.640
+when to start beeping and stop beeping
+
+00:09:02.640 --> 00:09:05.760
+so yeah that's it so far was a very
+
+00:09:05.760 --> 00:09:07.200
+educational experience
+
+00:09:07.200 --> 00:09:09.279
+I have tried out a bunch of games which
+
+00:09:09.279 --> 00:09:10.320
+were
+
+00:09:10.320 --> 00:09:12.640
+well I almost say the worst ports of
+
+00:09:12.640 --> 00:09:14.320
+classic games I've ever tried
+
+00:09:14.320 --> 00:09:15.839
+it wasn't terribly fun to play them but
+
+00:09:15.839 --> 00:09:18.320
+was fun to improve the emulator until
+
+00:09:18.320 --> 00:09:21.760
+well things worked good enough
+
+00:09:21.760 --> 00:09:23.279
+and I've learned a lot about how
+
+00:09:23.279 --> 00:09:25.120
+computers work at this level
+
+00:09:25.120 --> 00:09:27.760
+so maybe maybe I'll in the future make
+
+00:09:27.760 --> 00:09:28.880
+another emulator
+
+00:09:28.880 --> 00:09:31.920
+but uh I'm not sure whether anything
+
+00:09:31.920 --> 00:09:34.000
+more advanced like intel 8080 emulator
+
+00:09:34.000 --> 00:09:36.560
+will actually run mix fast enough
+
+00:09:36.560 --> 00:09:37.839
+but it's still an interesting idea
+
+00:09:37.839 --> 00:09:39.200
+because then you could actually have an
+
+00:09:39.200 --> 00:09:39.600
+os
+
+00:09:39.600 --> 00:09:41.680
+inside Emacs and fulfill that one
+
+00:09:41.680 --> 00:09:43.120
+specific meme
+
+00:09:43.120 --> 00:09:45.440
+but if I try to do most serious stuff
+
+00:09:45.440 --> 00:09:47.279
+I'll probably use chicken scheme which
+
+00:09:47.279 --> 00:09:48.000
+is my
+
+00:09:48.000 --> 00:09:49.920
+preferred language for serious projects
+
+00:09:49.920 --> 00:09:53.279
+and writing neso gamer emulator
+
+00:09:53.279 --> 00:09:57.839
+and that's it thank you
diff --git a/2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.vtt b/2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.vtt
new file mode 100644
index 00000000..cf3c1134
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.vtt
@@ -0,0 +1,4993 @@
+WEBVTT
+
+00:00:08.559 --> 00:00:12.960
+okay
+
+00:00:12.960 --> 00:00:14.960
+so I'm gonna start with my just my demo
+
+00:00:14.960 --> 00:00:18.000
+Emacs here eric we're ready
+
+00:00:18.000 --> 00:00:31.840
+oh we are live
+
+00:00:31.840 --> 00:00:35.440
+okay so you're starting then
+
+00:00:35.440 --> 00:00:39.200
+I guess I'll start right now here we go
+
+00:00:39.200 --> 00:00:41.760
+so I'm a windows user as we talked about
+
+00:00:41.760 --> 00:00:43.440
+yesterday
+
+00:00:43.440 --> 00:00:46.719
+I'm gonna try to uh start Emacs for you
+
+00:00:46.719 --> 00:00:47.440
+now
+
+00:00:47.440 --> 00:00:48.960
+and I've kind of got it pinned to this
+
+00:00:48.960 --> 00:00:52.879
+thing but mostly what I actually do
+
+00:00:52.879 --> 00:00:55.760
+is grab a file explorer and head to my
+
+00:00:55.760 --> 00:01:00.559
+desktop where I have all sorts of Emacs
+
+00:01:00.559 --> 00:01:05.960
+eric can you make sure that your vlc is
+
+00:01:05.960 --> 00:01:10.840
+muted
+
+00:01:10.840 --> 00:01:21.840
+okay
+
+00:01:21.840 --> 00:01:39.360
+give me a second please
+
+00:01:39.360 --> 00:01:42.079
+I do okay all right we should be we
+
+00:01:42.079 --> 00:01:44.000
+should be working again now my apologies
+
+00:01:44.000 --> 00:01:44.560
+for that
+
+00:01:44.560 --> 00:01:46.560
+all right handling technical problems in
+
+00:01:46.560 --> 00:01:47.759
+real time is
+
+00:01:47.759 --> 00:01:50.079
+uh what Emacs is all about as we're
+
+00:01:50.079 --> 00:01:52.079
+coding we're constantly making errors
+
+00:01:52.079 --> 00:01:53.360
+and fixing them and
+
+00:01:53.360 --> 00:01:54.560
+learning from the kinds of errors that
+
+00:01:54.560 --> 00:01:56.159
+we make and adjusting the editor to be
+
+00:01:56.159 --> 00:01:57.759
+easier to use
+
+00:01:57.759 --> 00:02:00.719
+so today we'll try to build on uh some
+
+00:02:00.719 --> 00:02:02.640
+of the ideas we introduced yesterday
+
+00:02:02.640 --> 00:02:05.600
+around how a community can help us learn
+
+00:02:05.600 --> 00:02:07.280
+Emacs faster
+
+00:02:07.280 --> 00:02:10.479
+and how we can think broadly
+
+00:02:10.479 --> 00:02:13.040
+about the people in our team when we
+
+00:02:13.040 --> 00:02:14.160
+decide how
+
+00:02:14.160 --> 00:02:16.080
+what kind of Emacs configuration we're
+
+00:02:16.080 --> 00:02:18.000
+going to have going for our project
+
+00:02:18.000 --> 00:02:19.680
+so I'm just going to fire up my normal
+
+00:02:19.680 --> 00:02:22.239
+Emacs config now so that we get
+
+00:02:22.239 --> 00:02:25.440
+uh hopefully a nice pretty demo or uh
+
+00:02:25.440 --> 00:02:29.120
+at least some slides and for safety
+
+00:02:29.120 --> 00:02:30.959
+we're going to avoid the server because
+
+00:02:30.959 --> 00:02:33.360
+I hate it when it crashes
+
+00:02:33.360 --> 00:02:35.280
+it's a little less stable under windows
+
+00:02:35.280 --> 00:02:41.120
+I think
+
+00:02:41.120 --> 00:02:43.360
+and well uh while this starts up I'll
+
+00:02:43.360 --> 00:02:44.800
+just briefly introduce
+
+00:02:44.800 --> 00:02:47.200
+my lifelong friend and eric uh elm
+
+00:02:47.200 --> 00:02:49.519
+salzer who's hanging in the wings and
+
+00:02:49.519 --> 00:02:51.120
+waiting impatiently for us to be able to
+
+00:02:51.120 --> 00:02:54.400
+start our slides
+
+00:02:54.400 --> 00:02:58.560
+hello everybody
+
+00:02:58.560 --> 00:03:00.720
+so you've heard plenty from me already
+
+00:03:00.720 --> 00:03:02.000
+this conference
+
+00:03:02.000 --> 00:03:05.760
+um I suppose
+
+00:03:05.760 --> 00:03:09.120
+uh so I'm just gonna uh
+
+00:03:09.120 --> 00:03:10.720
+so eric and I have worked things out so
+
+00:03:10.720 --> 00:03:12.400
+that he'll do most of the talking today
+
+00:03:12.400 --> 00:03:14.159
+I'll drive us through some code parts
+
+00:03:14.159 --> 00:03:14.879
+but
+
+00:03:14.879 --> 00:03:16.239
+the hope is that we'll just focus a
+
+00:03:16.239 --> 00:03:18.000
+little more on the game and if you have
+
+00:03:18.000 --> 00:03:20.000
+questions about the game at all please
+
+00:03:20.000 --> 00:03:21.840
+don't hesitate to ask those as well as
+
+00:03:21.840 --> 00:03:28.480
+your Emacs questions
+
+00:03:28.480 --> 00:03:34.959
+and I think we're starting out welcome
+
+00:03:34.959 --> 00:03:37.680
+and let's cut away here so we can show
+
+00:03:37.680 --> 00:03:41.200
+some faces
+
+00:03:41.200 --> 00:03:45.040
+I lost you eric why would you do that
+
+00:03:45.040 --> 00:03:48.319
+there he is
+
+00:03:48.319 --> 00:03:50.239
+and let's just do one more thing because
+
+00:03:50.239 --> 00:03:53.280
+that's just kind of offensive
+
+00:03:53.280 --> 00:03:55.439
+I'm gonna kill off that cute wallpaper
+
+00:03:55.439 --> 00:03:59.360
+we all were playing with yesterday
+
+00:03:59.360 --> 00:04:02.640
+although that's not so bad anymore
+
+00:04:02.640 --> 00:04:04.480
+oh that's terrible it's got to come back
+
+00:04:04.480 --> 00:04:11.120
+I'm sorry everybody
+
+00:04:11.120 --> 00:04:16.720
+oh my dear all right
+
+00:04:16.720 --> 00:04:19.040
+and we just opened Emacs so I have to
+
+00:04:19.040 --> 00:04:25.040
+open my slideshow
+
+00:04:25.040 --> 00:04:28.479
+and there we are
+
+00:04:28.479 --> 00:04:30.320
+okay eric I think I'm about as ready as
+
+00:04:30.320 --> 00:04:32.560
+I get
+
+00:04:32.560 --> 00:04:35.520
+cool well uh let's begin here welcome to
+
+00:04:35.520 --> 00:04:37.840
+the dungeon everybody
+
+00:04:37.840 --> 00:04:41.199
+I'm eric and this
+
+00:04:41.199 --> 00:04:43.199
+london is that we've been working on for
+
+00:04:43.199 --> 00:04:45.120
+about a year now
+
+00:04:45.120 --> 00:04:48.240
+um the dungeon
+
+00:04:48.240 --> 00:04:52.000
+game is based on
+
+00:04:52.000 --> 00:04:54.000
+a tradition of gaming that came out of
+
+00:04:54.000 --> 00:04:56.160
+the university of minnesota back in like
+
+00:04:56.160 --> 00:04:57.520
+the 1950s
+
+00:04:57.520 --> 00:05:00.639
+as far as we can tell and it
+
+00:05:00.639 --> 00:05:03.680
+is a predecessor an ancestor of most of
+
+00:05:03.680 --> 00:05:05.199
+the commercial role-playing games
+
+00:05:05.199 --> 00:05:07.680
+that you have heard of or maybe tried
+
+00:05:07.680 --> 00:05:08.720
+out from
+
+00:05:08.720 --> 00:05:10.800
+various stores and friends when I have
+
+00:05:10.800 --> 00:05:11.919
+you
+
+00:05:11.919 --> 00:05:14.240
+so one of the first things we want to
+
+00:05:14.240 --> 00:05:15.759
+talk about is what is it that sets
+
+00:05:15.759 --> 00:05:17.039
+dungeon apart
+
+00:05:17.039 --> 00:05:19.440
+why is it you know what is it about this
+
+00:05:19.440 --> 00:05:20.800
+game that makes us want to
+
+00:05:20.800 --> 00:05:22.880
+continue bringing it forward when there
+
+00:05:22.880 --> 00:05:25.039
+are so many games
+
+00:05:25.039 --> 00:05:26.800
+already commercially available that are
+
+00:05:26.800 --> 00:05:28.479
+descended from it
+
+00:05:28.479 --> 00:05:32.400
+um dungeon is kind of a
+
+00:05:32.400 --> 00:05:36.479
+simpler game like we
+
+00:05:36.479 --> 00:05:39.280
+don't a lot of the mechanics that you
+
+00:05:39.280 --> 00:05:40.400
+think of about like
+
+00:05:40.400 --> 00:05:42.240
+what is it that defines your character
+
+00:05:42.240 --> 00:05:44.560
+stats and skills and attributes
+
+00:05:44.560 --> 00:05:48.080
+we just don't deal with in dungeon um
+
+00:05:48.080 --> 00:05:51.199
+but dungeon
+
+00:05:51.199 --> 00:05:54.720
+the simplicity of it allows it um
+
+00:05:54.720 --> 00:05:59.560
+to be a view over creativity more than
+
+00:05:59.560 --> 00:06:01.840
+um
+
+00:06:01.840 --> 00:06:04.720
+so that's kind of why we like it but
+
+00:06:04.720 --> 00:06:16.639
+also
+
+00:06:16.639 --> 00:06:20.800
+so when we look at it as kind of like
+
+00:06:20.800 --> 00:06:24.000
+uh a technology problem whoops
+
+00:06:24.000 --> 00:06:26.880
+when we try to hey home uh I'm sorry I
+
+00:06:26.880 --> 00:06:27.919
+got ahead of us I'll
+
+00:06:27.919 --> 00:06:32.160
+I'll cut back
+
+00:06:32.160 --> 00:06:35.520
+I I thought we were doing fine
+
+00:06:35.520 --> 00:06:37.600
+okay well then I'll I'll just yeah
+
+00:06:37.600 --> 00:06:40.319
+either way
+
+00:06:40.319 --> 00:06:43.360
+so we've been friends since um
+
+00:06:43.360 --> 00:06:46.479
+it was our parents basically
+
+00:06:46.479 --> 00:06:49.840
+um our parents are friends uh and
+
+00:06:49.840 --> 00:06:53.120
+we learn this game from our parents
+
+00:06:53.120 --> 00:07:02.479
+um specifically um
+
+00:07:02.479 --> 00:07:04.560
+uh yeah that's where that's that's
+
+00:07:04.560 --> 00:07:06.400
+that's my q in right
+
+00:07:06.400 --> 00:07:09.599
+so um yeah my my
+
+00:07:09.599 --> 00:07:13.759
+my folks uh and and eric's folks were
+
+00:07:13.759 --> 00:07:15.120
+were really tight they used to run
+
+00:07:15.120 --> 00:07:17.360
+science fiction conventions together
+
+00:07:17.360 --> 00:07:20.400
+and yeah we our play
+
+00:07:20.400 --> 00:07:21.840
+featured you know imaginative
+
+00:07:21.840 --> 00:07:23.520
+role-playing usually we would find ways
+
+00:07:23.520 --> 00:07:25.360
+to work the computers in
+
+00:07:25.360 --> 00:07:28.639
+to things and uh uh
+
+00:07:28.639 --> 00:07:30.479
+I don't I don't know I I hardly have
+
+00:07:30.479 --> 00:07:35.000
+memories uh that proceed eric
+
+00:07:35.000 --> 00:07:37.840
+um also it turns out we're both
+
+00:07:37.840 --> 00:07:44.240
+kind of nervous uh we've been um
+
+00:07:44.240 --> 00:07:47.280
+back in the early 80s and
+
+00:07:47.280 --> 00:07:49.039
+for as long as we've been friends
+
+00:07:49.039 --> 00:07:51.360
+basically we've also been into playing
+
+00:07:51.360 --> 00:07:52.800
+with computers
+
+00:07:52.800 --> 00:07:55.440
+um over the years we've worked with many
+
+00:07:55.440 --> 00:07:55.840
+many
+
+00:07:55.840 --> 00:08:11.360
+different systems we've played
+
+00:08:11.360 --> 00:08:14.560
+like um so we
+
+00:08:14.560 --> 00:08:17.919
+also always thought like
+
+00:08:17.919 --> 00:08:20.800
+how is it that we can use these cool
+
+00:08:20.800 --> 00:08:22.639
+computers
+
+00:08:22.639 --> 00:08:28.319
+to build this dungeons
+
+00:08:28.319 --> 00:08:32.080
+right that's certainly what we did um
+
+00:08:32.080 --> 00:08:35.039
+so after some decades of bike shedding
+
+00:08:35.039 --> 00:08:35.839
+where we saw
+
+00:08:35.839 --> 00:08:37.360
+really a lot of changes in the
+
+00:08:37.360 --> 00:08:39.039
+technology field
+
+00:08:39.039 --> 00:08:40.800
+cell phones were invented smartphones
+
+00:08:40.800 --> 00:08:42.880
+were invented text messaging in
+
+00:08:42.880 --> 00:08:44.720
+particular had a dramatic
+
+00:08:44.720 --> 00:08:47.120
+impact on on what we thought dungeon
+
+00:08:47.120 --> 00:08:48.640
+would have to be able to do to be more
+
+00:08:48.640 --> 00:08:49.519
+fun
+
+00:08:49.519 --> 00:08:54.720
+than scribbling in in graph paper
+
+00:08:54.720 --> 00:08:58.480
+um yeah either way
+
+00:08:58.480 --> 00:09:01.519
+we've been using linux since the mid 90s
+
+00:09:01.519 --> 00:09:04.399
+um I don't remember exactly when I did
+
+00:09:04.399 --> 00:09:06.160
+my first linux install
+
+00:09:06.160 --> 00:09:09.279
+but uh I really
+
+00:09:09.279 --> 00:09:12.560
+liked it from the get-go and um I think
+
+00:09:12.560 --> 00:09:13.279
+it was
+
+00:09:13.279 --> 00:09:23.360
+you know um
+
+00:09:23.360 --> 00:09:26.320
+uh and I'll add I remember the day that
+
+00:09:26.320 --> 00:09:28.800
+I learned about the formation of gnu
+
+00:09:28.800 --> 00:09:32.560
+it um it had a life I I mean I read lots
+
+00:09:32.560 --> 00:09:33.440
+of licenses I
+
+00:09:33.440 --> 00:09:36.880
+I think a lot of us have written our own
+
+00:09:36.880 --> 00:09:38.480
+swag license code
+
+00:09:38.480 --> 00:09:41.600
+and uh I definitely credit the formation
+
+00:09:41.600 --> 00:09:42.800
+of gnu to my
+
+00:09:42.800 --> 00:09:48.640
+being interested in thinking about that
+
+00:09:48.640 --> 00:09:50.720
+right I am working the slides here okay
+
+00:09:50.720 --> 00:09:53.040
+well um
+
+00:09:53.040 --> 00:09:55.200
+so yeah this is your turn I already
+
+00:09:55.200 --> 00:09:56.080
+mentioned uh
+
+00:09:56.080 --> 00:09:58.720
+jeff yesterday so you're turning to take
+
+00:09:58.720 --> 00:10:00.399
+it for a few slides
+
+00:10:00.399 --> 00:10:03.519
+okay well I mean you know along the
+
+00:10:03.519 --> 00:10:04.240
+learning
+
+00:10:04.240 --> 00:10:07.200
+linux we started learning the various
+
+00:10:07.200 --> 00:10:08.560
+tools that were available
+
+00:10:08.560 --> 00:10:11.680
+through the new free software movement
+
+00:10:11.680 --> 00:10:14.000
+and um it didn't take very long before
+
+00:10:14.000 --> 00:10:14.720
+we got
+
+00:10:14.720 --> 00:10:18.240
+into using Emacs um and when we were
+
+00:10:18.240 --> 00:10:21.040
+working as software developers um back
+
+00:10:21.040 --> 00:10:24.000
+in the 90s we both were using Emacs in
+
+00:10:24.000 --> 00:10:25.680
+an office environment with
+
+00:10:25.680 --> 00:10:28.959
+some other developers and it I mean
+
+00:10:28.959 --> 00:10:40.560
+it was obviously a very powerful
+
+00:10:40.560 --> 00:10:43.120
+um yeah I'm not going to go on at length
+
+00:10:43.120 --> 00:10:48.880
+about my love for Emacs here so um
+
+00:10:48.880 --> 00:10:52.000
+so we yeah so we put together a project
+
+00:10:52.000 --> 00:10:52.480
+and
+
+00:10:52.480 --> 00:10:54.240
+and each time we rehearse this eric
+
+00:10:54.240 --> 00:10:56.320
+introduces it with it's my story to tell
+
+00:10:56.320 --> 00:10:58.000
+but since our flow is already to hell
+
+00:10:58.000 --> 00:10:59.360
+and we're just having a conversation
+
+00:10:59.360 --> 00:11:00.880
+with you today
+
+00:11:00.880 --> 00:11:03.920
+um I'll just jump in and say
+
+00:11:03.920 --> 00:11:06.399
+from a project standpoint the the
+
+00:11:06.399 --> 00:11:08.160
+project owes its inception
+
+00:11:08.160 --> 00:11:09.839
+to a tremendous number of people in
+
+00:11:09.839 --> 00:11:12.079
+fandom that you know
+
+00:11:12.079 --> 00:11:14.000
+uh encouraged us to just do crazy
+
+00:11:14.000 --> 00:11:15.680
+projects and
+
+00:11:15.680 --> 00:11:18.160
+in this case to our friends that were
+
+00:11:18.160 --> 00:11:18.800
+hanging out
+
+00:11:18.800 --> 00:11:21.360
+with us on discord all the time while we
+
+00:11:21.360 --> 00:11:22.560
+played different games
+
+00:11:22.560 --> 00:11:25.200
+and uh through that and while I was
+
+00:11:25.200 --> 00:11:26.640
+fooling with Emacs is
+
+00:11:26.640 --> 00:11:34.000
+generally other people played games uh
+
+00:11:34.000 --> 00:11:35.680
+kind of the pieces fell into place and
+
+00:11:35.680 --> 00:11:37.200
+we were all there so we could talk about
+
+00:11:37.200 --> 00:11:38.320
+it and the idea got
+
+00:11:38.320 --> 00:11:41.040
+exciting again and we started going back
+
+00:11:41.040 --> 00:11:42.800
+to all the places that we had
+
+00:11:42.800 --> 00:11:44.480
+had trouble with it in the past and it
+
+00:11:44.480 --> 00:11:46.640
+really did seem to add up we built proof
+
+00:11:46.640 --> 00:11:48.000
+of concepts to do
+
+00:11:48.000 --> 00:11:50.240
+hard stuff quickly and I guess we'll
+
+00:11:50.240 --> 00:11:51.440
+probably head into that
+
+00:11:51.440 --> 00:11:54.880
+that area now
+
+00:11:54.880 --> 00:12:03.360
+so
+
+00:12:03.360 --> 00:12:06.800
+and there was a slide about all of
+
+00:12:06.800 --> 00:12:31.360
+the problems
+
+00:12:31.360 --> 00:12:34.959
+hey there hey
+
+00:12:34.959 --> 00:12:37.279
+um yeah go ahead and continue I just got
+
+00:12:37.279 --> 00:12:38.800
+a phone call I think from leo so I'm
+
+00:12:38.800 --> 00:12:40.639
+gonna mute
+
+00:12:40.639 --> 00:12:44.480
+okay so um what we did in
+
+00:12:44.480 --> 00:12:47.600
+in the project was basically come up
+
+00:12:47.600 --> 00:12:49.680
+with our minimum play testable candidate
+
+00:12:49.680 --> 00:12:51.440
+we listed all of the things that we need
+
+00:12:51.440 --> 00:12:52.000
+to be able
+
+00:12:52.000 --> 00:12:56.240
+to make the project do in order to
+
+00:12:56.240 --> 00:12:59.040
+recreate the dungeon experience that we
+
+00:12:59.040 --> 00:12:59.519
+had
+
+00:12:59.519 --> 00:13:01.279
+with paper and dice sitting around a
+
+00:13:01.279 --> 00:13:05.600
+table when we were kids
+
+00:13:05.600 --> 00:13:09.680
+and
+
+00:13:09.680 --> 00:13:12.079
+I mean we you know it took a while for
+
+00:13:12.079 --> 00:13:13.839
+us to kind of
+
+00:13:13.839 --> 00:13:16.079
+tease apart the problem in a way where
+
+00:13:16.079 --> 00:13:18.000
+we could actually list out all of the
+
+00:13:18.000 --> 00:13:19.120
+features like
+
+00:13:19.120 --> 00:13:20.959
+what are the problems we have to solve
+
+00:13:20.959 --> 00:13:27.760
+and how do we solve them
+
+00:13:27.760 --> 00:13:30.959
+so creating any free software any
+
+00:13:30.959 --> 00:13:33.040
+self-organizing free software project
+
+00:13:33.040 --> 00:13:36.000
+is is challenging to start with and
+
+00:13:36.000 --> 00:13:37.200
+we're generally
+
+00:13:37.200 --> 00:13:38.480
+people with a bunch of other
+
+00:13:38.480 --> 00:13:40.320
+responsibilities by the time we get to
+
+00:13:40.320 --> 00:13:40.560
+it
+
+00:13:40.560 --> 00:13:44.000
+so it's it's not just hey
+
+00:13:44.000 --> 00:13:47.040
+you know the general herding cats it's
+
+00:13:47.040 --> 00:13:47.680
+it's
+
+00:13:47.680 --> 00:13:49.120
+you know trying to make it a part of
+
+00:13:49.120 --> 00:13:51.040
+your life to
+
+00:13:51.040 --> 00:13:54.399
+uh that being kind of a
+
+00:13:54.399 --> 00:13:57.680
+you know challenging battle we we
+
+00:13:57.680 --> 00:14:00.480
+kind of aligned on some some principles
+
+00:14:00.480 --> 00:14:02.639
+that we wanted to adhere to
+
+00:14:02.639 --> 00:14:04.079
+once we started taking the project
+
+00:14:04.079 --> 00:14:05.680
+seriously
+
+00:14:05.680 --> 00:14:09.519
+like pre you know particularly
+
+00:14:09.519 --> 00:14:12.720
+recognizing gnu in specific as we focus
+
+00:14:12.720 --> 00:14:15.199
+on giving back to the community
+
+00:14:15.199 --> 00:14:16.480
+taking what we learned as pearl
+
+00:14:16.480 --> 00:14:18.240
+programmers and
+
+00:14:18.240 --> 00:14:22.079
+uh you know bringing that spirit forward
+
+00:14:22.079 --> 00:14:24.320
+into into our work and maybe
+
+00:14:24.320 --> 00:14:26.399
+specifically support making sure that we
+
+00:14:26.399 --> 00:14:27.120
+can
+
+00:14:27.120 --> 00:14:30.639
+um you know write uh functions for the
+
+00:14:30.639 --> 00:14:31.760
+game
+
+00:14:31.760 --> 00:14:35.199
+um in pearl if we want to
+
+00:14:35.199 --> 00:14:38.079
+and then to use the game as a vehicle to
+
+00:14:38.079 --> 00:14:40.320
+make people look beyond
+
+00:14:40.320 --> 00:14:43.360
+the
+
+00:14:43.360 --> 00:14:46.800
+typically open source or sorry typically
+
+00:14:46.800 --> 00:14:49.600
+uh nominally open source at best
+
+00:14:49.600 --> 00:14:52.160
+generally pretty closed world of
+
+00:14:52.160 --> 00:14:54.160
+computer gaming a lot of windows users
+
+00:14:54.160 --> 00:14:55.440
+out there a lot of free
+
+00:14:55.440 --> 00:14:57.519
+non-free communication tools and a lot
+
+00:14:57.519 --> 00:14:59.760
+of uh
+
+00:14:59.760 --> 00:15:01.839
+you know a lot of ground to cover from a
+
+00:15:01.839 --> 00:15:03.360
+free software perspective
+
+00:15:03.360 --> 00:15:05.920
+so what can Emacs do from a gaming
+
+00:15:05.920 --> 00:15:07.360
+standpoint to
+
+00:15:07.360 --> 00:15:12.160
+to open that up
+
+00:15:12.160 --> 00:15:14.880
+and not to mention the hubris of the you
+
+00:15:14.880 --> 00:15:16.720
+know the two of us with a few friends
+
+00:15:16.720 --> 00:15:18.399
+basically deciding to take on what
+
+00:15:18.399 --> 00:15:19.440
+amounts to a
+
+00:15:19.440 --> 00:15:21.839
+huge project um you know we're
+
+00:15:21.839 --> 00:15:24.720
+essentially a year in now and we haven't
+
+00:15:24.720 --> 00:15:27.839
+really gotten over halfway to our
+
+00:15:27.839 --> 00:15:30.000
+minimum playtestable candidate
+
+00:15:30.000 --> 00:15:32.880
+um it's a it's a work in progress we've
+
+00:15:32.880 --> 00:15:34.320
+got a long row to go
+
+00:15:34.320 --> 00:15:36.800
+there's at least 50 items on the things
+
+00:15:36.800 --> 00:15:38.399
+that we think are critical to
+
+00:15:38.399 --> 00:15:40.320
+to be able to introduce it to my younger
+
+00:15:40.320 --> 00:15:44.720
+kids for example
+
+00:15:44.720 --> 00:15:48.399
+um okay so we're in the accomplishments
+
+00:15:48.399 --> 00:15:49.279
+section
+
+00:15:49.279 --> 00:15:50.959
+so we're supposed to be talking about
+
+00:15:50.959 --> 00:15:52.639
+the things that we have
+
+00:15:52.639 --> 00:15:55.920
+succeeded in doing in our first year um
+
+00:15:55.920 --> 00:15:58.880
+we have succeeded in working with data
+
+00:15:58.880 --> 00:16:01.199
+in org documents using org mode
+
+00:16:01.199 --> 00:16:04.480
+tables to store the data that we're
+
+00:16:04.480 --> 00:16:05.360
+going to use
+
+00:16:05.360 --> 00:16:09.279
+in the various parts of our game
+
+00:16:09.279 --> 00:16:12.519
+um and we've had a lot of success with
+
+00:16:12.519 --> 00:16:14.160
+svg.el
+
+00:16:14.160 --> 00:16:16.639
+uh it started withdrawing maps and we
+
+00:16:16.639 --> 00:16:17.279
+have
+
+00:16:17.279 --> 00:16:19.440
+another talk about our mapping
+
+00:16:19.440 --> 00:16:21.440
+specifically coming up next so we'll
+
+00:16:21.440 --> 00:16:23.759
+put off some of that discussion for a
+
+00:16:23.759 --> 00:16:25.199
+separate talk
+
+00:16:25.199 --> 00:16:28.720
+um but we've also succeeded in
+
+00:16:28.720 --> 00:16:32.320
+um getting into a bunch of different
+
+00:16:32.320 --> 00:16:35.680
+elements of the game where uh
+
+00:16:35.680 --> 00:16:38.160
+we're you know making a lot of progress
+
+00:16:38.160 --> 00:16:38.959
+using this
+
+00:16:38.959 --> 00:16:41.920
+drawing engine we developed to also draw
+
+00:16:41.920 --> 00:16:43.759
+this other thing and also draw this
+
+00:16:43.759 --> 00:16:45.279
+other thing and also draw this other
+
+00:16:45.279 --> 00:16:46.079
+thing and it's
+
+00:16:46.079 --> 00:16:49.519
+um you know we kind of backed into
+
+00:16:49.519 --> 00:16:52.560
+we've got this aesthetic and we're
+
+00:16:52.560 --> 00:16:54.720
+using it to draw interfaces for all of
+
+00:16:54.720 --> 00:17:03.120
+the different parts of the game
+
+00:17:03.120 --> 00:17:05.600
+so let's talk let's talk a little bit
+
+00:17:05.600 --> 00:17:06.959
+about what
+
+00:17:06.959 --> 00:17:10.880
+uh what works now um
+
+00:17:10.880 --> 00:17:13.360
+first of all there's the mapping part
+
+00:17:13.360 --> 00:17:14.640
+that eric mentioned
+
+00:17:14.640 --> 00:17:18.480
+and we'll jump here into um we'll start
+
+00:17:18.480 --> 00:17:20.880
+opening up some files and looking around
+
+00:17:20.880 --> 00:17:22.160
+um but then
+
+00:17:22.160 --> 00:17:25.520
+also later uh we'll we'll fire up an eye
+
+00:17:25.520 --> 00:17:26.959
+elm and look at some of the
+
+00:17:26.959 --> 00:17:28.400
+some of the other proofs of concept so
+
+00:17:28.400 --> 00:17:30.240
+hopefully we can
+
+00:17:30.240 --> 00:17:32.240
+pivot the second talk more toward the
+
+00:17:32.240 --> 00:17:34.320
+demos as as we skip some of the
+
+00:17:34.320 --> 00:17:35.520
+interactive stuff that might be
+
+00:17:35.520 --> 00:17:43.200
+mentioned in the slides that we go by
+
+00:17:43.200 --> 00:17:46.880
+so maps
+
+00:17:46.880 --> 00:17:50.080
+visual battle board um
+
+00:17:50.080 --> 00:17:53.120
+the battle board I'm just gonna I'm just
+
+00:17:53.120 --> 00:17:54.160
+gonna skip it eric
+
+00:17:54.160 --> 00:18:02.000
+we'll hit it in the next one okay
+
+00:18:02.000 --> 00:18:08.480
+hang on
+
+00:18:08.480 --> 00:18:09.919
+okay so I'm just going to go ahead and
+
+00:18:09.919 --> 00:18:11.840
+open up uh maps and
+
+00:18:11.840 --> 00:18:13.760
+let you talk from the from the svg
+
+00:18:13.760 --> 00:18:15.039
+process itself
+
+00:18:15.039 --> 00:18:16.480
+because that's the interesting part to
+
+00:18:16.480 --> 00:18:22.240
+me that uh to me
+
+00:18:22.240 --> 00:18:26.080
+okay talk about the svg
+
+00:18:26.080 --> 00:18:28.640
+process like what what are you thinking
+
+00:18:28.640 --> 00:18:30.640
+exactly we want to talk about how
+
+00:18:30.640 --> 00:18:33.760
+we turn our data into an image or
+
+00:18:33.760 --> 00:18:37.919
+what what are you hoping for yeah so
+
+00:18:37.919 --> 00:18:39.760
+I mean did you did you want to talk more
+
+00:18:39.760 --> 00:18:41.200
+from from the
+
+00:18:41.200 --> 00:18:45.679
+svg the hand-drawn svg graphics at all
+
+00:18:45.679 --> 00:18:47.039
+I thought we were going to save that
+
+00:18:47.039 --> 00:18:49.760
+stuff for the passing talk okay
+
+00:18:49.760 --> 00:18:52.000
+right now if you want yeah I mean so
+
+00:18:52.000 --> 00:18:53.440
+we've got about
+
+00:18:53.440 --> 00:18:56.559
+uh 10 minutes before the turn where we
+
+00:18:56.559 --> 00:18:58.400
+thought we would first take any
+
+00:18:58.400 --> 00:19:00.400
+questions that are hanging out there
+
+00:19:00.400 --> 00:19:02.320
+I unfortunately closed the ether pad but
+
+00:19:02.320 --> 00:19:04.799
+I can open it again real quick
+
+00:19:04.799 --> 00:19:08.480
+and or you can jump
+
+00:19:08.480 --> 00:19:11.440
+jump into the to the pathing stuff now
+
+00:19:11.440 --> 00:19:12.320
+or I can just
+
+00:19:12.320 --> 00:19:13.760
+throw up an animal and we can start the
+
+00:19:13.760 --> 00:19:15.440
+demos so
+
+00:19:15.440 --> 00:19:18.880
+let me invite uh almond or sasha back in
+
+00:19:18.880 --> 00:19:19.840
+if you guys
+
+00:19:19.840 --> 00:19:22.160
+or leo if any of you want to join the
+
+00:19:22.160 --> 00:19:22.960
+conversation
+
+00:19:22.960 --> 00:19:25.840
+make a suggestion as to how we balance
+
+00:19:25.840 --> 00:19:27.120
+between the remaining time
+
+00:19:27.120 --> 00:19:29.840
+the rest of what we have left starts in
+
+00:19:29.840 --> 00:19:32.480
+on toward the technical so especially
+
+00:19:32.480 --> 00:19:35.120
+if there would be questions uh questions
+
+00:19:35.120 --> 00:19:36.840
+about the game right now that would be
+
+00:19:36.840 --> 00:19:40.160
+awesome
+
+00:19:40.160 --> 00:19:48.720
+and I'm gonna get seated again
+
+00:19:48.720 --> 00:19:51.200
+I'm not sure if I talk over the stream
+
+00:19:51.200 --> 00:19:53.200
+um if you'll hear it because I'm just
+
+00:19:53.200 --> 00:19:54.720
+watching your stream
+
+00:19:54.720 --> 00:20:01.200
+but I can try writing an irc um
+
+00:20:01.200 --> 00:20:04.640
+sure yeah questions would be cool um or
+
+00:20:04.640 --> 00:20:07.360
+um yeah well eric why don't you just go
+
+00:20:07.360 --> 00:20:08.559
+ahead and start walking us through the
+
+00:20:08.559 --> 00:20:09.120
+hand
+
+00:20:09.120 --> 00:20:11.440
+hand-drawn svg stuff just a little bit
+
+00:20:11.440 --> 00:20:12.960
+because I think
+
+00:20:12.960 --> 00:20:14.640
+if that isn't interesting to people we
+
+00:20:14.640 --> 00:20:17.120
+can just preempt for a question
+
+00:20:17.120 --> 00:20:21.120
+okay so historically when we
+
+00:20:21.120 --> 00:20:24.080
+um decided to actually start writing
+
+00:20:24.080 --> 00:20:25.840
+code one of the very first things we
+
+00:20:25.840 --> 00:20:26.720
+wanted to do
+
+00:20:26.720 --> 00:20:30.080
+was the maps because initially it seemed
+
+00:20:30.080 --> 00:20:31.919
+like the maps were going to be one of
+
+00:20:31.919 --> 00:20:33.840
+the biggest challenges
+
+00:20:33.840 --> 00:20:35.760
+in terms of how do we get a text editor
+
+00:20:35.760 --> 00:20:38.000
+to draw pictures for us
+
+00:20:38.000 --> 00:20:42.159
+um we pretty quickly decided we wanted
+
+00:20:42.159 --> 00:20:45.280
+to work with svgs because it allowed us
+
+00:20:45.280 --> 00:20:48.559
+to leverage the power of Emacs as a text
+
+00:20:48.559 --> 00:20:52.159
+editor and a text manipulator to write
+
+00:20:52.159 --> 00:20:56.080
+text graphics with the svg format
+
+00:20:56.080 --> 00:20:59.520
+so we did some svg graphics by hand
+
+00:20:59.520 --> 00:21:01.440
+we went in and just started hand coding
+
+00:21:01.440 --> 00:21:02.640
+things that looked
+
+00:21:02.640 --> 00:21:05.440
+visually like the maps we used to draw
+
+00:21:05.440 --> 00:21:07.440
+by hand on graph paper when
+
+00:21:07.440 --> 00:21:08.960
+we were you know sitting around the
+
+00:21:08.960 --> 00:21:11.360
+table
+
+00:21:11.360 --> 00:21:14.559
+yep absolutely what emerged from that
+
+00:21:14.559 --> 00:21:17.840
+is as we started working on um some of
+
+00:21:17.840 --> 00:21:20.400
+these files this particular image is a
+
+00:21:20.400 --> 00:21:24.000
+test of some 20 wide water
+
+00:21:24.000 --> 00:21:26.240
+with some beaches around it and a
+
+00:21:26.240 --> 00:21:28.000
+special chamber kind of off to the side
+
+00:21:28.000 --> 00:21:29.679
+called a clapper
+
+00:21:29.679 --> 00:21:33.760
+and this was the way we would code is by
+
+00:21:33.760 --> 00:21:36.559
+sketching by hand all of these things to
+
+00:21:36.559 --> 00:21:37.600
+look right
+
+00:21:37.600 --> 00:21:39.440
+and then we would take that code and we
+
+00:21:39.440 --> 00:21:42.080
+noticed um it became real repetitive
+
+00:21:42.080 --> 00:21:43.919
+as we would go like chunk of water chunk
+
+00:21:43.919 --> 00:21:45.440
+of water chunk of water
+
+00:21:45.440 --> 00:21:46.880
+and we're like okay so what we really
+
+00:21:46.880 --> 00:21:48.559
+need is to define a
+
+00:21:48.559 --> 00:21:52.000
+set of um we called it tiles um but like
+
+00:21:52.000 --> 00:21:53.600
+you could think of it as rubber stamps
+
+00:21:53.600 --> 00:21:55.760
+where we write this graphics code
+
+00:21:55.760 --> 00:21:57.440
+and then we're able to repeat it in
+
+00:21:57.440 --> 00:22:00.400
+different places around the map
+
+00:22:00.400 --> 00:22:03.039
+um you want to flip over to code view
+
+00:22:03.039 --> 00:22:07.120
+and show that or do we want to move into
+
+00:22:07.120 --> 00:22:10.240
+tiles code
+
+00:22:10.240 --> 00:22:12.720
+so you know you can see just really
+
+00:22:12.720 --> 00:22:14.320
+obviously here the only thing that's
+
+00:22:14.320 --> 00:22:15.200
+changing from
+
+00:22:15.200 --> 00:22:18.240
+chunk of water to chunk of water is the
+
+00:22:18.240 --> 00:22:21.600
+x and y coordinates um
+
+00:22:21.600 --> 00:22:24.640
+we're you know we can skip getting into
+
+00:22:24.640 --> 00:22:26.000
+the svg directives
+
+00:22:26.000 --> 00:22:29.360
+and how all of the path statements
+
+00:22:29.360 --> 00:22:30.640
+actually work
+
+00:22:30.640 --> 00:22:33.679
+but you can trust us
+
+00:22:33.679 --> 00:22:36.480
+all of these d equals and there's m's
+
+00:22:36.480 --> 00:22:39.039
+and h's and v's that turns out to be
+
+00:22:39.039 --> 00:22:41.039
+horizontal lines and vertical lines and
+
+00:22:41.039 --> 00:22:42.480
+cursor moves and it's kind of like
+
+00:22:42.480 --> 00:22:44.159
+turtle graphics if anyone
+
+00:22:44.159 --> 00:22:46.640
+remembers that far back and we're
+
+00:22:46.640 --> 00:22:48.720
+picking up our pen and dropping it and
+
+00:22:48.720 --> 00:22:54.720
+drawing lines around on our map
+
+00:22:54.720 --> 00:22:56.240
+so we do have a few questions if you
+
+00:22:56.240 --> 00:22:58.000
+want to take them now otherwise
+
+00:22:58.000 --> 00:23:01.200
+um we can also jump in
+
+00:23:01.200 --> 00:23:03.120
+let's get them while they're fresh okay
+
+00:23:03.120 --> 00:23:04.559
+sounds good
+
+00:23:04.559 --> 00:23:07.520
+um so we'll probably shift to question
+
+00:23:07.520 --> 00:23:08.000
+and answer
+
+00:23:08.000 --> 00:23:10.799
+mode for up to 15 minutes here so if you
+
+00:23:10.799 --> 00:23:11.919
+do have questions
+
+00:23:11.919 --> 00:23:14.480
+um maybe stack rank go ahead and sort
+
+00:23:14.480 --> 00:23:15.679
+the questions
+
+00:23:15.679 --> 00:23:17.600
+a little for us or comment on them to
+
+00:23:17.600 --> 00:23:18.960
+let us know which ones you want to see
+
+00:23:18.960 --> 00:23:19.760
+us get here
+
+00:23:19.760 --> 00:23:21.280
+if we start getting a little long-winded
+
+00:23:21.280 --> 00:23:23.600
+or nudges along we'll take direction
+
+00:23:23.600 --> 00:23:26.960
+but thanks for your questions um I'd
+
+00:23:26.960 --> 00:23:28.799
+like to see a demo as well we'll look at
+
+00:23:28.799 --> 00:23:30.720
+that with the remaining time after this
+
+00:23:30.720 --> 00:23:32.159
+question block
+
+00:23:32.159 --> 00:23:35.200
+um more about what the game is
+
+00:23:35.200 --> 00:23:38.720
+okay sure so let's let's take our
+
+00:23:38.720 --> 00:23:40.720
+uh one minute each swing at what the
+
+00:23:40.720 --> 00:23:42.799
+game is you wanna go first I called
+
+00:23:42.799 --> 00:23:45.120
+weapons
+
+00:23:45.120 --> 00:23:48.840
+okay um dungeon
+
+00:23:48.840 --> 00:23:52.720
+is like role-playing games
+
+00:23:52.720 --> 00:23:55.440
+but you don't really do role-playing
+
+00:23:55.440 --> 00:23:56.159
+like the
+
+00:23:56.159 --> 00:23:57.919
+for me the thing the core of being a
+
+00:23:57.919 --> 00:23:59.520
+role-playing game is you
+
+00:23:59.520 --> 00:24:02.080
+take on the role of being your character
+
+00:24:02.080 --> 00:24:03.039
+and you play
+
+00:24:03.039 --> 00:24:06.000
+your character and dungeon's not like
+
+00:24:06.000 --> 00:24:06.400
+that
+
+00:24:06.400 --> 00:24:10.320
+dungeon um you can play
+
+00:24:10.320 --> 00:24:12.640
+so the dungeon party always has eight
+
+00:24:12.640 --> 00:24:13.840
+characters in it
+
+00:24:13.840 --> 00:24:15.840
+there's four in the front row and four
+
+00:24:15.840 --> 00:24:17.679
+in the back row and you march through
+
+00:24:17.679 --> 00:24:18.720
+the dungeon
+
+00:24:18.720 --> 00:24:22.159
+fighting whatever you encounter and if
+
+00:24:22.159 --> 00:24:24.000
+there's one player you play all eight
+
+00:24:24.000 --> 00:24:25.200
+characters
+
+00:24:25.200 --> 00:24:27.120
+and depending on how many players you
+
+00:24:27.120 --> 00:24:28.720
+have you split up the party
+
+00:24:28.720 --> 00:24:30.799
+in whatever way seems fair and equitable
+
+00:24:30.799 --> 00:24:32.960
+to everybody
+
+00:24:32.960 --> 00:24:34.880
+similarly I said the dungeon is kind of
+
+00:24:34.880 --> 00:24:36.720
+a simple game like there's only
+
+00:24:36.720 --> 00:24:38.320
+three races and there's only three
+
+00:24:38.320 --> 00:24:40.080
+classes all of your characters are
+
+00:24:40.080 --> 00:24:41.760
+either human elf dwarf
+
+00:24:41.760 --> 00:24:44.080
+they're all a warrior a priest or a
+
+00:24:44.080 --> 00:24:44.880
+wizard
+
+00:24:44.880 --> 00:24:46.640
+and all of these characters have you
+
+00:24:46.640 --> 00:24:48.320
+know special properties
+
+00:24:48.320 --> 00:24:51.279
+and special talents that is why they
+
+00:24:51.279 --> 00:24:53.760
+come together in this party of eight
+
+00:24:53.760 --> 00:24:56.240
+but essentially dungeon is a game about
+
+00:24:56.240 --> 00:24:57.600
+making up all of these
+
+00:24:57.600 --> 00:25:00.000
+um eight characters and stomping through
+
+00:25:00.000 --> 00:25:01.679
+the dungeon killing things taking their
+
+00:25:01.679 --> 00:25:03.840
+stuff
+
+00:25:03.840 --> 00:25:05.120
+well you're way over but I don't know
+
+00:25:05.120 --> 00:25:06.960
+how much I have to add to that
+
+00:25:06.960 --> 00:25:10.080
+I will just add that if if you're
+
+00:25:10.080 --> 00:25:14.159
+uh if if one's passion as a dungeon
+
+00:25:14.159 --> 00:25:16.559
+master is killing player characters this
+
+00:25:16.559 --> 00:25:17.120
+game
+
+00:25:17.120 --> 00:25:19.600
+is meant for you you don't have to build
+
+00:25:19.600 --> 00:25:21.039
+your game like that
+
+00:25:21.039 --> 00:25:22.559
+but that's definitely a thing that
+
+00:25:22.559 --> 00:25:24.400
+people do with this game
+
+00:25:24.400 --> 00:25:27.360
+um and then as eric said it just
+
+00:25:27.360 --> 00:25:28.960
+encourages you to put your creativity on
+
+00:25:28.960 --> 00:25:30.320
+the table to bring all the different
+
+00:25:30.320 --> 00:25:31.039
+elements
+
+00:25:31.039 --> 00:25:33.760
+um and this hopefully this may be clear
+
+00:25:33.760 --> 00:25:35.039
+in our slides since we were a little
+
+00:25:35.039 --> 00:25:36.400
+fumbling for the first few minutes of
+
+00:25:36.400 --> 00:25:36.960
+the talk
+
+00:25:36.960 --> 00:25:40.480
+but um there's also a kind of a player's
+
+00:25:40.480 --> 00:25:41.200
+guide
+
+00:25:41.200 --> 00:25:43.760
+that that I started a few years ago um
+
+00:25:43.760 --> 00:25:45.919
+that's that's not super complete
+
+00:25:45.919 --> 00:25:48.400
+but um but does cover some of the high
+
+00:25:48.400 --> 00:25:50.159
+level basics of the game that eric's
+
+00:25:50.159 --> 00:25:52.320
+been talking from
+
+00:25:52.320 --> 00:25:55.679
+and I would add that some of the things
+
+00:25:55.679 --> 00:25:56.960
+you know some of what makes dungeon
+
+00:25:56.960 --> 00:25:58.480
+great is that there's a lot of mystery
+
+00:25:58.480 --> 00:25:59.360
+about it
+
+00:25:59.360 --> 00:26:01.120
+like the player's handbook doesn't tell
+
+00:26:01.120 --> 00:26:02.880
+you all of the rules
+
+00:26:02.880 --> 00:26:06.080
+um or like really mystery
+
+00:26:06.080 --> 00:26:08.080
+and like there's mazes and there's
+
+00:26:08.080 --> 00:26:09.679
+puzzles and
+
+00:26:09.679 --> 00:26:12.240
+you have to figure out how things work
+
+00:26:12.240 --> 00:26:12.799
+and like
+
+00:26:12.799 --> 00:26:14.559
+we've got all of these treasure items in
+
+00:26:14.559 --> 00:26:16.640
+there that could help you deal with a
+
+00:26:16.640 --> 00:26:18.480
+particular monster if it occurs to you
+
+00:26:18.480 --> 00:26:19.919
+to use it
+
+00:26:19.919 --> 00:26:22.720
+and um you know like that there's a lot
+
+00:26:22.720 --> 00:26:23.360
+of
+
+00:26:23.360 --> 00:26:25.279
+um you don't know what's going on you're
+
+00:26:25.279 --> 00:26:27.039
+dropped in the middle of this situation
+
+00:26:27.039 --> 00:26:28.559
+and you have to try and survive
+
+00:26:28.559 --> 00:26:31.919
+and level up and figure it out and
+
+00:26:31.919 --> 00:26:33.840
+if you succeed in doing that for long
+
+00:26:33.840 --> 00:26:35.520
+enough eventually you start realizing
+
+00:26:35.520 --> 00:26:37.520
+that there are big picture puzzles
+
+00:26:37.520 --> 00:26:40.000
+that there are you know there is more to
+
+00:26:40.000 --> 00:26:41.760
+this than just killing things and taking
+
+00:26:41.760 --> 00:26:43.360
+their stuff
+
+00:26:43.360 --> 00:26:46.000
+and that's where the joy of designing
+
+00:26:46.000 --> 00:26:47.279
+these games comes in
+
+00:26:47.279 --> 00:26:49.679
+for me is like designing the mazes and
+
+00:26:49.679 --> 00:26:51.679
+designing the puzzles and like
+
+00:26:51.679 --> 00:26:53.200
+oh yeah and then they're going to come
+
+00:26:53.200 --> 00:26:54.240
+out of this room and you know what
+
+00:26:54.240 --> 00:26:55.919
+they're going to do they want to
+
+00:26:55.919 --> 00:26:58.240
+go that way so I'm going to put the trap
+
+00:26:58.240 --> 00:26:59.600
+right there
+
+00:26:59.600 --> 00:27:01.360
+and they'll walk right into it every
+
+00:27:01.360 --> 00:27:03.840
+time and then when the party does get in
+
+00:27:03.840 --> 00:27:05.440
+your map and they do exactly what you
+
+00:27:05.440 --> 00:27:07.200
+thought and they hit the trap it's just
+
+00:27:07.200 --> 00:27:09.279
+really satisfying to watch the look on
+
+00:27:09.279 --> 00:27:10.960
+their little faces as they squirm and
+
+00:27:10.960 --> 00:27:12.320
+struggle to stay alive
+
+00:27:12.320 --> 00:27:13.760
+yeah that's that's what I was trying to
+
+00:27:13.760 --> 00:27:15.520
+get at thanks all right that was perfect
+
+00:27:15.520 --> 00:27:16.320
+for me
+
+00:27:16.320 --> 00:27:19.200
+all right um so so highlight your
+
+00:27:19.200 --> 00:27:20.320
+question for me if you think it's
+
+00:27:20.320 --> 00:27:21.840
+important we grab it here before we jump
+
+00:27:21.840 --> 00:27:22.960
+into demos
+
+00:27:22.960 --> 00:27:25.039
+but otherwise I think it's time to try
+
+00:27:25.039 --> 00:27:27.919
+running some code
+
+00:27:27.919 --> 00:27:31.279
+what say okay I say do it
+
+00:27:31.279 --> 00:27:33.840
+okay so you less less camera more more
+
+00:27:33.840 --> 00:27:36.480
+Emacs now
+
+00:27:36.480 --> 00:27:39.120
+and hopefully I could find the right e
+
+00:27:39.120 --> 00:27:39.840
+max
+
+00:27:39.840 --> 00:27:42.960
+the right desktop all right there we are
+
+00:27:42.960 --> 00:27:48.799
+so we'll try to fire up uh
+
+00:27:48.799 --> 00:27:54.000
+and right now and I usually like to do
+
+00:27:54.000 --> 00:27:59.120
+the full path to emax
+
+00:27:59.120 --> 00:28:07.279
+when I'm gonna run it under minus q
+
+00:28:07.279 --> 00:28:13.120
+all right
+
+00:28:13.120 --> 00:28:16.720
+let's have some iom
+
+00:28:16.720 --> 00:28:19.360
+all right and then I'm also going to do
+
+00:28:19.360 --> 00:28:20.000
+a
+
+00:28:20.000 --> 00:28:24.000
+load file on the init script that you
+
+00:28:24.000 --> 00:28:25.840
+can find in the repository
+
+00:28:25.840 --> 00:28:30.480
+in the Emacs user and it's uh
+
+00:28:30.480 --> 00:28:34.960
+init scripts
+
+00:28:34.960 --> 00:28:40.159
+uh users folder
+
+00:28:40.159 --> 00:28:48.080
+user folder nice
+
+00:28:48.080 --> 00:28:49.919
+and it's called init dm because that
+
+00:28:49.919 --> 00:28:51.840
+happened to fit with my naming scheme
+
+00:28:51.840 --> 00:28:55.360
+potentially terrible all right and with
+
+00:28:55.360 --> 00:28:56.320
+that loaded
+
+00:28:56.320 --> 00:28:58.320
+in theory some very basic stuff will
+
+00:28:58.320 --> 00:29:00.159
+work even without us doing anything in
+
+00:29:00.159 --> 00:29:02.159
+iom so I think the the last thing eric
+
+00:29:02.159 --> 00:29:04.399
+was talking about was the svg code
+
+00:29:04.399 --> 00:29:06.000
+behind the maps
+
+00:29:06.000 --> 00:29:10.720
+um there as kind of the technical thread
+
+00:29:10.720 --> 00:29:13.760
+so we'll just fire open the maps pick a
+
+00:29:13.760 --> 00:29:15.440
+dungeon level
+
+00:29:15.440 --> 00:29:18.480
+let's pick a pretty one okay if I show
+
+00:29:18.480 --> 00:29:19.840
+this
+
+00:29:19.840 --> 00:29:23.440
+yeah whatever
+
+00:29:23.440 --> 00:29:27.679
+is that the surface yeah
+
+00:29:27.679 --> 00:29:30.799
+and let's scale it here I think if I
+
+00:29:30.799 --> 00:29:32.159
+wrap
+
+00:29:32.159 --> 00:29:34.960
+like once once we got the engine up and
+
+00:29:34.960 --> 00:29:36.399
+running a little bit
+
+00:29:36.399 --> 00:29:39.120
+we decided to do some experimentation
+
+00:29:39.120 --> 00:29:42.480
+about seeing what we could do to push
+
+00:29:42.480 --> 00:29:46.080
+the limits of our tile
+
+00:29:46.080 --> 00:29:49.360
+and gender so we more or less on the
+
+00:29:49.360 --> 00:29:50.080
+surface
+
+00:29:50.080 --> 00:29:53.120
+map I
+
+00:29:53.120 --> 00:29:56.399
+basically started with almost no
+
+00:29:56.399 --> 00:29:58.399
+tiles from below like the water and the
+
+00:29:58.399 --> 00:30:00.240
+beaches and the general store and the
+
+00:30:00.240 --> 00:30:01.279
+stairs
+
+00:30:01.279 --> 00:30:03.679
+were existing tiles but then we were
+
+00:30:03.679 --> 00:30:05.200
+like this is going to be a surface map
+
+00:30:05.200 --> 00:30:07.279
+so we're outdoors so I want hills and I
+
+00:30:07.279 --> 00:30:08.399
+want trees
+
+00:30:08.399 --> 00:30:11.760
+and I want grass and um it took a little
+
+00:30:11.760 --> 00:30:12.399
+while
+
+00:30:12.399 --> 00:30:15.039
+playing with svg to come up with some
+
+00:30:15.039 --> 00:30:16.320
+acceptable code
+
+00:30:16.320 --> 00:30:18.480
+but once the like the grass gets tiled
+
+00:30:18.480 --> 00:30:19.840
+out it
+
+00:30:19.840 --> 00:30:21.600
+kind of you know gives the illusion of
+
+00:30:21.600 --> 00:30:23.039
+grass and
+
+00:30:23.039 --> 00:30:24.880
+you know these are all in my estimation
+
+00:30:24.880 --> 00:30:26.399
+kind of crude graphics
+
+00:30:26.399 --> 00:30:28.640
+but we're at the proof of concept stage
+
+00:30:28.640 --> 00:30:30.399
+and it definitely proves that we can use
+
+00:30:30.399 --> 00:30:31.679
+our graphics engine
+
+00:30:31.679 --> 00:30:34.640
+to decide what we want our maps to look
+
+00:30:34.640 --> 00:30:35.279
+like
+
+00:30:35.279 --> 00:30:39.440
+and real quickly compose new map tiles
+
+00:30:39.440 --> 00:30:44.240
+and uh stamp out a bunch of new maps
+
+00:30:44.240 --> 00:30:46.880
+so now I'll uh show off one of the other
+
+00:30:46.880 --> 00:30:48.640
+things so the next thing we did once we
+
+00:30:48.640 --> 00:30:50.559
+once we had the maps doing
+
+00:30:50.559 --> 00:30:51.919
+and we haven't gotten into the features
+
+00:30:51.919 --> 00:30:53.600
+of the maps we can we can appoint time
+
+00:30:53.600 --> 00:30:54.960
+to that or not
+
+00:30:54.960 --> 00:30:58.960
+but um there are a number of
+
+00:30:58.960 --> 00:31:00.720
+uh featured features there that we can
+
+00:31:00.720 --> 00:31:02.840
+look at the
+
+00:31:02.840 --> 00:31:05.760
+uh we then wanted to
+
+00:31:05.760 --> 00:31:08.640
+try to see if that could make other
+
+00:31:08.640 --> 00:31:10.399
+interfaces more appealing so we built
+
+00:31:10.399 --> 00:31:11.360
+stuff like
+
+00:31:11.360 --> 00:31:14.320
+oop that's gonna be the map again um
+
+00:31:14.320 --> 00:31:15.919
+I'll just run it here through I
+
+00:31:15.919 --> 00:31:18.320
+am so it's more obvious what I'm doing
+
+00:31:18.320 --> 00:31:20.080
+um
+
+00:31:20.080 --> 00:31:21.679
+so let's look next to the character
+
+00:31:21.679 --> 00:31:26.080
+sheet oops
+
+00:31:26.080 --> 00:31:32.880
+back and alt p doesn't work okay
+
+00:31:32.880 --> 00:31:35.840
+that's a bummer uh that is not
+
+00:31:35.840 --> 00:31:38.240
+autoloaded
+
+00:31:38.240 --> 00:31:40.559
+so this this project is a bit of a mess
+
+00:31:40.559 --> 00:31:41.600
+right now y'all
+
+00:31:41.600 --> 00:31:43.120
+it does some stuff that's really
+
+00:31:43.120 --> 00:31:45.120
+exciting to us but the code is terrible
+
+00:31:45.120 --> 00:31:47.039
+and we need all the help we can get uh
+
+00:31:47.039 --> 00:31:48.399
+being told what our problems are and how
+
+00:31:48.399 --> 00:31:49.279
+to fix them
+
+00:31:49.279 --> 00:31:51.360
+so that is if you take nothing away from
+
+00:31:51.360 --> 00:31:52.559
+this talk
+
+00:31:52.559 --> 00:31:54.799
+uh take away from it that we could use
+
+00:31:54.799 --> 00:32:00.480
+your help
+
+00:32:00.480 --> 00:32:02.399
+yeah that doubles back to uh when we
+
+00:32:02.399 --> 00:32:04.640
+were talking about larry wall's cardinal
+
+00:32:04.640 --> 00:32:06.320
+virtues of programming like we
+
+00:32:06.320 --> 00:32:07.440
+definitely
+
+00:32:07.440 --> 00:32:09.760
+took on some hubris thinking we could do
+
+00:32:09.760 --> 00:32:10.640
+this
+
+00:32:10.640 --> 00:32:13.519
+and we might not be wrong but um we
+
+00:32:13.519 --> 00:32:14.799
+could do it easier with
+
+00:32:14.799 --> 00:32:16.799
+more hands you know many hands make
+
+00:32:16.799 --> 00:32:18.240
+light work all right
+
+00:32:18.240 --> 00:32:21.760
+I'll bite yeah
+
+00:32:21.760 --> 00:32:23.360
+and the character she won't load for us
+
+00:32:23.360 --> 00:32:24.799
+today I had some problems with my
+
+00:32:24.799 --> 00:32:26.960
+version control I had to revert my thing
+
+00:32:26.960 --> 00:32:29.360
+I threw all my local changes in a stash
+
+00:32:29.360 --> 00:32:31.200
+and it's it's a terrible mess let's look
+
+00:32:31.200 --> 00:32:32.080
+at stuff I
+
+00:32:32.080 --> 00:32:37.519
+tested already today uh before
+
+00:32:37.519 --> 00:32:40.559
+you got the battle board available
+
+00:32:40.559 --> 00:32:43.760
+let's find out first we'll load library
+
+00:32:43.760 --> 00:32:45.760
+it
+
+00:32:45.760 --> 00:32:48.000
+uh in fact actually your basic require
+
+00:32:48.000 --> 00:32:57.440
+should work
+
+00:32:57.440 --> 00:33:00.480
+no uh I can try load library
+
+00:33:00.480 --> 00:33:02.640
+uh you know what let's forg I'm just
+
+00:33:02.640 --> 00:33:03.760
+gonna go ahead and give it to you as a
+
+00:33:03.760 --> 00:33:04.960
+lab beast
+
+00:33:04.960 --> 00:33:09.919
+since that's probably more fun to watch
+
+00:33:09.919 --> 00:33:11.600
+we'll take it from my own inet
+
+00:33:11.600 --> 00:33:16.640
+this is more likely to be healthy
+
+00:33:16.640 --> 00:33:19.840
+since only some of the time uh first we
+
+00:33:19.840 --> 00:33:20.880
+have to
+
+00:33:20.880 --> 00:33:24.799
+uh ctrl x alt I d m
+
+00:33:24.799 --> 00:33:28.559
+all right and having then loaded
+
+00:33:28.559 --> 00:33:31.760
+the init control u f9
+
+00:33:31.760 --> 00:33:34.080
+should give me the maps and we can
+
+00:33:34.080 --> 00:33:35.200
+verify
+
+00:33:35.200 --> 00:33:37.200
+things work in a basic way just by
+
+00:33:37.200 --> 00:33:38.640
+changing level
+
+00:33:38.640 --> 00:33:43.200
+let's look at something else
+
+00:33:43.200 --> 00:33:46.399
+um I mentioned there were a number of
+
+00:33:46.399 --> 00:33:47.360
+bindings
+
+00:33:47.360 --> 00:33:51.600
+show them briefly we wrote our own
+
+00:33:51.600 --> 00:33:54.080
+functions to handle movement some of
+
+00:33:54.080 --> 00:33:56.640
+those in svg.el the left
+
+00:33:56.640 --> 00:33:59.679
+uh left and right movements didn't
+
+00:33:59.679 --> 00:34:02.640
+didn't seem to work quite quite likely
+
+00:34:02.640 --> 00:34:03.120
+coding
+
+00:34:03.120 --> 00:34:06.720
+of course
+
+00:34:06.720 --> 00:34:09.760
+um all right enough
+
+00:34:09.760 --> 00:34:11.760
+so let's let's see if battleboard works
+
+00:34:11.760 --> 00:34:13.040
+now
+
+00:34:13.040 --> 00:34:15.760
+I really thought that was on f7 up
+
+00:34:15.760 --> 00:34:17.040
+that's the character sheet
+
+00:34:17.040 --> 00:34:19.679
+sweet that's why you stay out of user
+
+00:34:19.679 --> 00:34:24.879
+bindings
+
+00:34:24.879 --> 00:34:28.079
+so that looks a little better
+
+00:34:28.079 --> 00:34:33.919
+so let's talk about the character sheet
+
+00:34:33.919 --> 00:34:35.919
+yeah
+
+00:34:35.919 --> 00:34:38.000
+so the character sheet was our first big
+
+00:34:38.000 --> 00:34:39.839
+uh repurposing
+
+00:34:39.839 --> 00:34:42.560
+of the engine that we couldn't do uh the
+
+00:34:42.560 --> 00:34:44.159
+battle board program
+
+00:34:44.159 --> 00:34:53.599
+that uh let's see if that runs now too
+
+00:34:53.599 --> 00:35:00.880
+uh it's not interactive if it does
+
+00:35:00.880 --> 00:35:04.960
+good
+
+00:35:04.960 --> 00:35:08.480
+no
+
+00:35:08.480 --> 00:35:11.760
+try let cemex guess no joy all right I'm
+
+00:35:11.760 --> 00:35:13.040
+not sure what's up with the battle board
+
+00:35:13.040 --> 00:35:14.079
+eric
+
+00:35:14.079 --> 00:35:15.280
+we haven't messed with that one for a
+
+00:35:15.280 --> 00:35:17.119
+while in fact um
+
+00:35:17.119 --> 00:35:18.880
+we had discussed using its code as an
+
+00:35:18.880 --> 00:35:21.040
+example so maybe we'll debug it with you
+
+00:35:21.040 --> 00:35:22.640
+um I'll certainly check for questions
+
+00:35:22.640 --> 00:35:25.359
+first um
+
+00:35:25.359 --> 00:35:28.079
+the uh so the character sheet which is
+
+00:35:28.079 --> 00:35:31.280
+not scaling ideally here
+
+00:35:31.280 --> 00:35:35.680
+see if reloading it does anything
+
+00:35:35.680 --> 00:35:39.440
+nope not as far as I can tell assuming
+
+00:35:39.440 --> 00:35:40.960
+you don't have this scale implemented
+
+00:35:40.960 --> 00:35:42.800
+for character sheet
+
+00:35:42.800 --> 00:35:44.960
+that's right there's everything in scale
+
+00:35:44.960 --> 00:35:46.800
+it take in order to get what you were
+
+00:35:46.800 --> 00:35:54.079
+looking at there
+
+00:35:54.079 --> 00:35:58.640
+all right this uh
+
+00:35:58.640 --> 00:36:02.240
+this whole thing is hard-coded
+
+00:36:02.240 --> 00:36:05.440
+basically to the gills except
+
+00:36:05.440 --> 00:36:09.040
+for things like this this program
+
+00:36:09.040 --> 00:36:10.640
+represents a re-implementation of the
+
+00:36:10.640 --> 00:36:11.040
+draw
+
+00:36:11.040 --> 00:36:14.880
+engine using um all of the same things
+
+00:36:14.880 --> 00:36:19.599
+let's see that's selected so
+
+00:36:19.599 --> 00:36:21.680
+uh we'll just try bringing up a map
+
+00:36:21.680 --> 00:36:23.119
+again
+
+00:36:23.119 --> 00:36:26.320
+there's one and you'll notice um dm
+
+00:36:26.320 --> 00:36:28.560
+map doesn't know anything about the new
+
+00:36:28.560 --> 00:36:29.839
+draw engine
+
+00:36:29.839 --> 00:36:31.599
+and there are a couple of places where
+
+00:36:31.599 --> 00:36:33.520
+the new draw engine is still
+
+00:36:33.520 --> 00:36:36.480
+hooked in to the s for example
+
+00:36:36.480 --> 00:36:37.440
+particularly
+
+00:36:37.440 --> 00:36:39.680
+the sizing of the graph paper background
+
+00:36:39.680 --> 00:36:41.119
+so I've started the work
+
+00:36:41.119 --> 00:36:44.240
+in dmdraw.el
+
+00:36:44.240 --> 00:36:47.040
+of trying to show how exactly we did
+
+00:36:47.040 --> 00:36:47.440
+this
+
+00:36:47.440 --> 00:36:50.160
+removing the how did we get data out of
+
+00:36:50.160 --> 00:36:51.760
+org mode that I talked about yesterday
+
+00:36:51.760 --> 00:36:53.280
+with our etl flows
+
+00:36:53.280 --> 00:36:56.480
+and just focusing on
+
+00:36:56.480 --> 00:36:58.960
+how did we solve the problem of
+
+00:36:58.960 --> 00:37:00.160
+predicated drawing
+
+00:37:00.160 --> 00:37:01.839
+which I realized we didn't really talk
+
+00:37:01.839 --> 00:37:05.200
+about so should I jump into that
+
+00:37:05.200 --> 00:37:07.760
+yeah I guess uh how are we on time we
+
+00:37:07.760 --> 00:37:09.280
+have time for detours
+
+00:37:09.280 --> 00:37:11.359
+um yeah it looks like we could spend two
+
+00:37:11.359 --> 00:37:12.800
+or three minutes on that and then
+
+00:37:12.800 --> 00:37:15.599
+uh come back for the questions cool do
+
+00:37:15.599 --> 00:37:17.680
+it
+
+00:37:17.680 --> 00:37:20.480
+and I'm just gonna peek into my org mode
+
+00:37:20.480 --> 00:37:20.800
+by
+
+00:37:20.800 --> 00:37:23.200
+into my chat conference and I don't see
+
+00:37:23.200 --> 00:37:24.960
+anybody talking to me from the organizer
+
+00:37:24.960 --> 00:37:25.520
+channel
+
+00:37:25.520 --> 00:37:26.560
+so I'm going to assume that's a good
+
+00:37:26.560 --> 00:37:28.800
+guess
+
+00:37:28.800 --> 00:37:32.079
+um all right so let's let's go ahead and
+
+00:37:32.079 --> 00:37:34.160
+play with the map a little then that is
+
+00:37:34.160 --> 00:37:37.760
+uh pretty fun and and uh so much fun
+
+00:37:37.760 --> 00:37:39.440
+that we had to curtail play sessions in
+
+00:37:39.440 --> 00:37:41.760
+order to keep working on the project
+
+00:37:41.760 --> 00:37:45.119
+um
+
+00:37:45.119 --> 00:37:48.480
+so uh I'll
+
+00:37:48.480 --> 00:37:51.839
+I'll do the
+
+00:37:51.839 --> 00:37:55.920
+um we'll try to find something different
+
+00:37:55.920 --> 00:38:01.040
+from any gif I've shared here right
+
+00:38:01.040 --> 00:38:03.359
+so here we are in a random go ahead eric
+
+00:38:03.359 --> 00:38:05.760
+you phil
+
+00:38:05.760 --> 00:38:08.240
+oh okay so what what what corwin is
+
+00:38:08.240 --> 00:38:10.000
+doing here is he's about to put the
+
+00:38:10.000 --> 00:38:13.359
+the map into play mode um
+
+00:38:13.359 --> 00:38:16.800
+which is going to turn on the fog of war
+
+00:38:16.800 --> 00:38:19.920
+and then we're gonna use
+
+00:38:19.920 --> 00:38:23.040
+the fog of war and the the play mode to
+
+00:38:23.040 --> 00:38:24.560
+kind of reveal the map
+
+00:38:24.560 --> 00:38:26.240
+one square at a time like we would
+
+00:38:26.240 --> 00:38:28.160
+during a play session
+
+00:38:28.160 --> 00:38:29.920
+so we'll just drop the party randomly
+
+00:38:29.920 --> 00:38:31.280
+somewhere onto this map
+
+00:38:31.280 --> 00:38:33.839
+looks like we're on alpha maze level
+
+00:38:33.839 --> 00:38:36.079
+three here
+
+00:38:36.079 --> 00:38:40.800
+and um
+
+00:38:40.800 --> 00:38:46.320
+uh-oh then we'll walk around a little
+
+00:38:46.320 --> 00:38:50.480
+okay there we go we're halfway there
+
+00:38:50.480 --> 00:38:52.160
+I'll have to I'll have to do a full
+
+00:38:52.160 --> 00:38:53.520
+redraw
+
+00:38:53.520 --> 00:38:55.920
+uh the sketch the sketching stuff has
+
+00:38:55.920 --> 00:38:58.480
+has has broken things here like I said
+
+00:38:58.480 --> 00:39:00.240
+the two aren't separated once I run them
+
+00:39:00.240 --> 00:39:01.599
+in the same instance they're not
+
+00:39:01.599 --> 00:39:03.520
+predictable
+
+00:39:03.520 --> 00:39:05.359
+okay so let me elaborate here when he
+
+00:39:05.359 --> 00:39:07.040
+says the sketching stuff
+
+00:39:07.040 --> 00:39:10.560
+the current um focus of our work is to
+
+00:39:10.560 --> 00:39:13.520
+turn all of this map stuff we've got
+
+00:39:13.520 --> 00:39:14.320
+into
+
+00:39:14.320 --> 00:39:17.920
+a basically a wysiwyg map editor
+
+00:39:17.920 --> 00:39:20.880
+where we can get into the tiles and
+
+00:39:20.880 --> 00:39:22.160
+we'll be able to
+
+00:39:22.160 --> 00:39:24.480
+select the tile and basically rubber
+
+00:39:24.480 --> 00:39:26.560
+stamp it into a map
+
+00:39:26.560 --> 00:39:29.680
+graphically and then save the map file
+
+00:39:29.680 --> 00:39:30.000
+out
+
+00:39:30.000 --> 00:39:33.280
+and load it back in later so that um
+
+00:39:33.280 --> 00:39:36.720
+we're able to you know just pound out
+
+00:39:36.720 --> 00:39:38.480
+these maps real fast
+
+00:39:38.480 --> 00:39:42.000
+um using a graphical editor rather than
+
+00:39:42.000 --> 00:39:43.200
+having to hand code
+
+00:39:43.200 --> 00:39:45.440
+every symbol and every square of the
+
+00:39:45.440 --> 00:39:48.000
+tables
+
+00:39:48.000 --> 00:39:52.960
+so the process of doing that um
+
+00:39:52.960 --> 00:39:54.800
+things are a mess we've got covers off
+
+00:39:54.800 --> 00:39:56.720
+there's wires hanging out
+
+00:39:56.720 --> 00:39:58.720
+um different stuff works on different
+
+00:39:58.720 --> 00:40:03.119
+days
+
+00:40:03.119 --> 00:40:05.200
+well I will say in our defense this is
+
+00:40:05.200 --> 00:40:07.119
+exactly why we staged a complicated
+
+00:40:07.119 --> 00:40:07.520
+thing
+
+00:40:07.520 --> 00:40:09.680
+and uh probably we should have just gone
+
+00:40:09.680 --> 00:40:11.119
+with that instead of
+
+00:40:11.119 --> 00:40:14.160
+trying to give you uh the experience
+
+00:40:14.160 --> 00:40:17.760
+of of of what it's like uh to use Emacs
+
+00:40:17.760 --> 00:40:19.200
+to do this which is
+
+00:40:19.200 --> 00:40:21.359
+which is sort of the last minute thought
+
+00:40:21.359 --> 00:40:23.280
+there and my apologies for that
+
+00:40:23.280 --> 00:40:25.119
+if that's made it harder to follow the
+
+00:40:25.119 --> 00:40:27.200
+thread let's check back now for
+
+00:40:27.200 --> 00:40:28.240
+questions
+
+00:40:28.240 --> 00:40:30.000
+and see if anybody wants to redirect at
+
+00:40:30.000 --> 00:40:36.640
+all
+
+00:40:36.640 --> 00:40:39.599
+so yep this so what you're looking at
+
+00:40:39.599 --> 00:40:40.800
+all uses prog
+
+00:40:40.800 --> 00:40:44.880
+pragmatic svg uh
+
+00:40:44.880 --> 00:40:47.760
+svg generation uh for question number
+
+00:40:47.760 --> 00:40:49.119
+four there have you played with
+
+00:40:49.119 --> 00:40:52.000
+generating svgs pragmatically in Emacs
+
+00:40:52.000 --> 00:40:55.119
+that is what the maps are doing um in
+
+00:40:55.119 --> 00:40:55.680
+terms
+
+00:40:55.680 --> 00:40:58.480
+of uh uh we should have been maybe more
+
+00:40:58.480 --> 00:41:00.400
+explicit about that we started hand
+
+00:41:00.400 --> 00:41:01.680
+coding things and
+
+00:41:01.680 --> 00:41:05.119
+once we got the idea of what the code
+
+00:41:05.119 --> 00:41:06.400
+was going to look like
+
+00:41:06.400 --> 00:41:09.359
+we switched to doing it programmatically
+
+00:41:09.359 --> 00:41:10.000
+so
+
+00:41:10.000 --> 00:41:12.880
+um we were going to open up maybe now if
+
+00:41:12.880 --> 00:41:14.640
+we've got time we can get into the tile
+
+00:41:14.640 --> 00:41:15.839
+set real quick
+
+00:41:15.839 --> 00:41:18.640
+sure we definitely didn't do any of the
+
+00:41:18.640 --> 00:41:20.560
+pathing slides and so now we've skipped
+
+00:41:20.560 --> 00:41:23.040
+over some stuff we were going to present
+
+00:41:23.040 --> 00:41:25.040
+yeah that's right we skipped a whole
+
+00:41:25.040 --> 00:41:26.880
+bunch of slides and I can certainly uh
+
+00:41:26.880 --> 00:41:28.160
+go back to them they're open here
+
+00:41:28.160 --> 00:41:31.040
+obviously
+
+00:41:31.040 --> 00:41:33.599
+um right I was just showing off the
+
+00:41:33.599 --> 00:41:34.480
+sketching
+
+00:41:34.480 --> 00:41:36.880
+tool uh briefly in that context but I
+
+00:41:36.880 --> 00:41:38.000
+think you're right let's
+
+00:41:38.000 --> 00:41:40.000
+we can jump over to the actually I
+
+00:41:40.000 --> 00:41:41.280
+should finish with this now having
+
+00:41:41.280 --> 00:41:42.000
+teased it
+
+00:41:42.000 --> 00:41:45.119
+so let's do the same thing here ctrl h m
+
+00:41:45.119 --> 00:41:47.119
+and you'll see in this case there are
+
+00:41:47.119 --> 00:41:48.560
+very few keyboard
+
+00:41:48.560 --> 00:41:52.160
+key bindings that are set up um even
+
+00:41:52.160 --> 00:41:55.359
+this uh shift delete has a tera uh
+
+00:41:55.359 --> 00:41:59.280
+or shift with uh
+
+00:41:59.280 --> 00:42:02.560
+yeah control delete it would seem to be
+
+00:42:02.560 --> 00:42:05.680
+so that has couple obvious bugs with it
+
+00:42:05.680 --> 00:42:07.119
+right didn't pick it didn't pick up
+
+00:42:07.119 --> 00:42:09.280
+those control points until I reused them
+
+00:42:09.280 --> 00:42:11.280
+not clearing that stack
+
+00:42:11.280 --> 00:42:13.760
+um and also should probably think about
+
+00:42:13.760 --> 00:42:14.480
+whether
+
+00:42:14.480 --> 00:42:16.720
+the origin should return and hey marking
+
+00:42:16.720 --> 00:42:18.400
+that origin would be nice
+
+00:42:18.400 --> 00:42:19.839
+so there's a tremendous amount to do
+
+00:42:19.839 --> 00:42:21.680
+here this is just uh
+
+00:42:21.680 --> 00:42:24.400
+showing that it is possible to use
+
+00:42:24.400 --> 00:42:26.079
+essentially like a touch input
+
+00:42:26.079 --> 00:42:31.680
+to um uh
+
+00:42:31.680 --> 00:42:35.119
+yeah and then also we can switch over to
+
+00:42:35.119 --> 00:42:35.760
+our place
+
+00:42:35.760 --> 00:42:39.040
+tool and
+
+00:42:39.040 --> 00:42:43.040
+um hopefully we can get a nice big menu
+
+00:42:43.040 --> 00:42:45.040
+of all the tiles that eric prepared for
+
+00:42:45.040 --> 00:42:49.440
+the game maps
+
+00:42:49.440 --> 00:42:51.680
+uh that was probably a terrible choice
+
+00:42:51.680 --> 00:42:53.119
+but there you have just a bit of
+
+00:42:53.119 --> 00:42:56.800
+corridor right
+
+00:42:56.800 --> 00:43:00.480
+that looks
+
+00:43:00.480 --> 00:43:04.560
+uh and even the click yep and this this
+
+00:43:04.560 --> 00:43:06.160
+glitch action here is the last thing I
+
+00:43:06.160 --> 00:43:07.280
+was working on before I dropped
+
+00:43:07.280 --> 00:43:08.079
+everything to
+
+00:43:08.079 --> 00:43:10.079
+to build the decks that uh we will soon
+
+00:43:10.079 --> 00:43:14.240
+share for this conference
+
+00:43:14.240 --> 00:43:19.680
+so okay back to the tile sets
+
+00:43:19.680 --> 00:43:22.160
+right so the way we approached drawing
+
+00:43:22.160 --> 00:43:23.440
+it programmatically
+
+00:43:23.440 --> 00:43:25.200
+is we broke our code up into little
+
+00:43:25.200 --> 00:43:27.280
+snippets we called tiles
+
+00:43:27.280 --> 00:43:29.280
+um corman's going to open up the tile
+
+00:43:29.280 --> 00:43:32.160
+set here basically each tile has a name
+
+00:43:32.160 --> 00:43:35.280
+and then with that name we place data
+
+00:43:35.280 --> 00:43:37.920
+into different layers of the image
+
+00:43:37.920 --> 00:43:40.640
+some of the layers are just svg paths
+
+00:43:40.640 --> 00:43:41.280
+and
+
+00:43:41.280 --> 00:43:44.880
+the data is just svg commands
+
+00:43:44.880 --> 00:43:47.920
+like we saw in that handwritten code and
+
+00:43:47.920 --> 00:43:50.960
+some of it is compositions of other
+
+00:43:50.960 --> 00:43:54.160
+tiles so a tile can be made up of other
+
+00:43:54.160 --> 00:43:56.160
+tiles
+
+00:43:56.160 --> 00:43:58.000
+furthermore some of these tiles have
+
+00:43:58.000 --> 00:43:59.599
+conditional code in it
+
+00:43:59.599 --> 00:44:02.319
+where like some of this stuff is talking
+
+00:44:02.319 --> 00:44:02.720
+about
+
+00:44:02.720 --> 00:44:06.560
+elf and bang elf so the map is going to
+
+00:44:06.560 --> 00:44:08.079
+be drawn differently depending
+
+00:44:08.079 --> 00:44:09.440
+on whether or not there's elves in the
+
+00:44:09.440 --> 00:44:11.200
+party
+
+00:44:11.200 --> 00:44:16.880
+um so and that's the demo they broke
+
+00:44:16.880 --> 00:44:18.240
+the engine has to make all those
+
+00:44:18.240 --> 00:44:20.000
+decisions um
+
+00:44:20.000 --> 00:44:21.599
+and that's what we're calling predicated
+
+00:44:21.599 --> 00:44:23.280
+drawing oh there's a
+
+00:44:23.280 --> 00:44:25.200
+special room here do you have any elves
+
+00:44:25.200 --> 00:44:26.480
+you do so I draw
+
+00:44:26.480 --> 00:44:32.880
+there is elf's way um
+
+00:44:32.880 --> 00:44:35.839
+yeah so we built up the set of tiles and
+
+00:44:35.839 --> 00:44:36.319
+then
+
+00:44:36.319 --> 00:44:39.920
+um we basically made map files which
+
+00:44:39.920 --> 00:44:43.760
+take um our map and break it up into xy
+
+00:44:43.760 --> 00:44:47.839
+grids and then we drop these tiles into
+
+00:44:47.839 --> 00:44:50.240
+positions on the map so we can use the
+
+00:44:50.240 --> 00:44:52.000
+same tile square after square after
+
+00:44:52.000 --> 00:44:52.480
+square
+
+00:44:52.480 --> 00:44:54.720
+when there's a corridor north south it's
+
+00:44:54.720 --> 00:44:55.680
+the same tile
+
+00:44:55.680 --> 00:44:59.119
+over and over again and that makes it
+
+00:44:59.119 --> 00:45:02.400
+easy to reuse the code and then also
+
+00:45:02.400 --> 00:45:05.920
+when uh
+
+00:45:05.920 --> 00:45:10.560
+when we go to present um the
+
+00:45:10.560 --> 00:45:13.520
+what am I trying to say the the drawing
+
+00:45:13.520 --> 00:45:15.839
+in in fog of war mode as we move down
+
+00:45:15.839 --> 00:45:18.000
+the corridor we can just add the
+
+00:45:18.000 --> 00:45:20.640
+necessary code one bit at a time to the
+
+00:45:20.640 --> 00:45:23.440
+visible image so that what we're
+
+00:45:23.440 --> 00:45:24.960
+displaying doesn't contain
+
+00:45:24.960 --> 00:45:27.359
+any data except what the party has
+
+00:45:27.359 --> 00:45:30.240
+already discovered
+
+00:45:30.240 --> 00:45:32.319
+and thus we have kind of spoiler rich
+
+00:45:32.319 --> 00:45:34.400
+documents sitting on the gm
+
+00:45:34.400 --> 00:45:37.359
+server and then less you know and
+
+00:45:37.359 --> 00:45:38.400
+spoiler-free
+
+00:45:38.400 --> 00:45:41.440
+data that flows down to the org mode uh
+
+00:45:41.440 --> 00:45:44.000
+files on the player system and the only
+
+00:45:44.000 --> 00:45:47.040
+real challenge is making sure that the
+
+00:45:47.040 --> 00:45:50.160
+the nothing that the game does can mess
+
+00:45:50.160 --> 00:45:50.960
+with the
+
+00:45:50.960 --> 00:45:54.480
+the the users the the players data file
+
+00:45:54.480 --> 00:45:55.280
+in case they
+
+00:45:55.280 --> 00:45:57.680
+might have their own notes and things in
+
+00:45:57.680 --> 00:46:00.160
+it that that would be the one
+
+00:46:00.160 --> 00:46:06.160
+uh you know number one thing to avoid
+
+00:46:06.160 --> 00:46:08.000
+another thing we can talk about here is
+
+00:46:08.000 --> 00:46:09.680
+that there are layers
+
+00:46:09.680 --> 00:46:11.839
+you can see this table at the bottom has
+
+00:46:11.839 --> 00:46:13.520
+tile and overlay
+
+00:46:13.520 --> 00:46:15.119
+the overlay column is just going to
+
+00:46:15.119 --> 00:46:17.040
+contain some actual svg
+
+00:46:17.040 --> 00:46:20.800
+xml style tags um so that's where we can
+
+00:46:20.800 --> 00:46:21.599
+add whatever
+
+00:46:21.599 --> 00:46:25.359
+text elements or other svg like raw svg
+
+00:46:25.359 --> 00:46:26.720
+tags we want
+
+00:46:26.720 --> 00:46:28.880
+whereas a lot of the other layers are
+
+00:46:28.880 --> 00:46:30.560
+going to be like path layers we've got
+
+00:46:30.560 --> 00:46:32.960
+water layers and beach layers
+
+00:46:32.960 --> 00:46:35.359
+and our plan was to have a style sheet
+
+00:46:35.359 --> 00:46:37.680
+that defines how each of those layers
+
+00:46:37.680 --> 00:46:38.720
+are represented
+
+00:46:38.720 --> 00:46:40.720
+so like when the water gets drawn blue
+
+00:46:40.720 --> 00:46:42.160
+and it's got arrows on it
+
+00:46:42.160 --> 00:46:45.520
+giving it direction um all of that
+
+00:46:45.520 --> 00:46:47.680
+can be customized with a style sheet to
+
+00:46:47.680 --> 00:46:49.200
+change the water to be
+
+00:46:49.200 --> 00:46:51.200
+whatever you want and like we have
+
+00:46:51.200 --> 00:46:52.960
+beaches as yellow but maybe you like
+
+00:46:52.960 --> 00:46:54.319
+beaches as red or
+
+00:46:54.319 --> 00:46:57.359
+you know whatever so we also built
+
+00:46:57.359 --> 00:47:01.200
+some test programs um
+
+00:47:01.200 --> 00:47:04.079
+and various of the I'm not not sure what
+
+00:47:04.079 --> 00:47:05.359
+kind of shape we're gonna find these in
+
+00:47:05.359 --> 00:47:07.040
+but we can try running them
+
+00:47:07.040 --> 00:47:10.640
+um here for example is just a
+
+00:47:10.640 --> 00:47:12.960
+very basic all of using a saint using
+
+00:47:12.960 --> 00:47:15.119
+the same file to define
+
+00:47:15.119 --> 00:47:18.560
+the tiles and and then
+
+00:47:18.560 --> 00:47:24.880
+the layout so to speak oh look at that
+
+00:47:24.880 --> 00:47:26.640
+uh there's the layout okay so that
+
+00:47:26.640 --> 00:47:28.960
+actually looks fine tile
+
+00:47:28.960 --> 00:47:30.960
+and it's pat so this is defining a tile
+
+00:47:30.960 --> 00:47:32.400
+named seas
+
+00:47:32.400 --> 00:47:35.440
+and uh it's gonna have a list of tiles
+
+00:47:35.440 --> 00:47:38.720
+defined above um and you'll notice also
+
+00:47:38.720 --> 00:47:41.839
+that we can just sort of freely define
+
+00:47:41.839 --> 00:47:44.559
+and redefine and it sort of figures out
+
+00:47:44.559 --> 00:47:46.160
+oh this must still be part of the b
+
+00:47:46.160 --> 00:47:50.839
+row um we could also have done
+
+00:47:50.839 --> 00:48:00.000
+this
+
+00:48:00.000 --> 00:48:02.160
+okay so this would this would work as
+
+00:48:02.160 --> 00:48:08.480
+would this
+
+00:48:08.480 --> 00:48:11.599
+one of uh early on in development when
+
+00:48:11.599 --> 00:48:12.720
+we were talking about
+
+00:48:12.720 --> 00:48:14.400
+getting data in and out of these org
+
+00:48:14.400 --> 00:48:15.839
+tables it
+
+00:48:15.839 --> 00:48:19.440
+was kind of a priority to us to
+
+00:48:19.440 --> 00:48:22.319
+leave the way the data is organized open
+
+00:48:22.319 --> 00:48:23.040
+to
+
+00:48:23.040 --> 00:48:26.960
+the users and to the dungeon masters so
+
+00:48:26.960 --> 00:48:30.720
+while we set our tile set apart from our
+
+00:48:30.720 --> 00:48:32.559
+map sets
+
+00:48:32.559 --> 00:48:35.440
+this clearly shows that you can cram a
+
+00:48:35.440 --> 00:48:38.319
+tile set and a map into a single file
+
+00:48:38.319 --> 00:48:41.040
+so in situations like the surface where
+
+00:48:41.040 --> 00:48:43.040
+we're using different tiles from other
+
+00:48:43.040 --> 00:48:43.760
+maps
+
+00:48:43.760 --> 00:48:46.559
+maybe it makes sense to move you know
+
+00:48:46.559 --> 00:48:48.079
+those tiles just into the file
+
+00:48:48.079 --> 00:48:50.559
+with your map or like it's hard for us
+
+00:48:50.559 --> 00:48:52.400
+to predict how other people are going to
+
+00:48:52.400 --> 00:48:54.319
+want to use this when they design their
+
+00:48:54.319 --> 00:48:55.119
+games
+
+00:48:55.119 --> 00:48:57.359
+so we wanted to leave it as versatile as
+
+00:48:57.359 --> 00:48:58.160
+possible
+
+00:48:58.160 --> 00:49:01.599
+about how you can use it where it
+
+00:49:01.599 --> 00:49:02.640
+matters right
+
+00:49:02.640 --> 00:49:04.319
+not support every feature in the world I
+
+00:49:04.319 --> 00:49:05.920
+can't count the number of times I said
+
+00:49:05.920 --> 00:49:07.280
+eric eric eric
+
+00:49:07.280 --> 00:49:09.200
+hey if we do it like this people will be
+
+00:49:09.200 --> 00:49:10.800
+able and he just like
+
+00:49:10.800 --> 00:49:14.000
+does it have to do that do we do we does
+
+00:49:14.000 --> 00:49:14.480
+it like
+
+00:49:14.480 --> 00:49:17.920
+do we need it right away uh
+
+00:49:17.920 --> 00:49:19.599
+do you have to really rewrite everything
+
+00:49:19.599 --> 00:49:21.040
+so it can all do that
+
+00:49:21.040 --> 00:49:24.160
+and uh a lot of those
+
+00:49:24.160 --> 00:49:26.880
+a lot of those conversations too but the
+
+00:49:26.880 --> 00:49:28.240
+the key flexibilities
+
+00:49:28.240 --> 00:49:31.200
+are really there people might want to
+
+00:49:31.200 --> 00:49:32.559
+use a lot of different files they might
+
+00:49:32.559 --> 00:49:34.160
+want to lay the tables out however they
+
+00:49:34.160 --> 00:49:35.760
+want they have to be able to say hey
+
+00:49:35.760 --> 00:49:37.440
+this is a table that has
+
+00:49:37.440 --> 00:49:39.440
+data that's controlled by the game and
+
+00:49:39.440 --> 00:49:40.720
+everything else in the file
+
+00:49:40.720 --> 00:49:44.079
+is not the game's problem
+
+00:49:44.079 --> 00:49:45.920
+on our table some of our tables started
+
+00:49:45.920 --> 00:49:47.440
+getting really wide so we started
+
+00:49:47.440 --> 00:49:48.960
+striping the tables
+
+00:49:48.960 --> 00:49:51.119
+where we'll repeat the same table over
+
+00:49:51.119 --> 00:49:52.640
+and over and over again to
+
+00:49:52.640 --> 00:49:56.400
+get all of the columns in there without
+
+00:49:56.400 --> 00:49:59.119
+making it you know a million miles wide
+
+00:49:59.119 --> 00:49:59.599
+yeah
+
+00:49:59.599 --> 00:50:01.040
+do you want to should I go ahead and
+
+00:50:01.040 --> 00:50:02.640
+pull open like a level here
+
+00:50:02.640 --> 00:50:06.079
+do you think sure just to have shown it
+
+00:50:06.079 --> 00:50:08.319
+the aisle set's a great example of
+
+00:50:08.319 --> 00:50:09.680
+striped tables if you
+
+00:50:09.680 --> 00:50:11.119
+look down like in the level change
+
+00:50:11.119 --> 00:50:18.800
+feature oh sure
+
+00:50:18.800 --> 00:50:20.240
+sorry I'm not quite sitting well to my
+
+00:50:20.240 --> 00:50:22.400
+keyboard here I can just readjust things
+
+00:50:22.400 --> 00:50:30.079
+real quick
+
+00:50:30.079 --> 00:50:33.280
+so what you know you can see here
+
+00:50:33.280 --> 00:50:35.200
+like some of these tables got real wide
+
+00:50:35.200 --> 00:50:36.800
+when we're stuffing svg
+
+00:50:36.800 --> 00:50:40.559
+tags into them and what we
+
+00:50:40.559 --> 00:50:44.160
+oh maybe it's not in these
+
+00:50:44.160 --> 00:50:50.079
+I thought it was
+
+00:50:50.079 --> 00:50:52.960
+special probably yeah no there it is
+
+00:50:52.960 --> 00:50:54.240
+yeah
+
+00:50:54.240 --> 00:50:56.000
+it was in level change it does the table
+
+00:50:56.000 --> 00:50:58.720
+can you repeat okay great
+
+00:50:58.720 --> 00:51:00.640
+up and down so fast I didn't realize so
+
+00:51:00.640 --> 00:51:01.920
+this first table
+
+00:51:01.920 --> 00:51:05.680
+we've got path and what is that stairs
+
+00:51:05.680 --> 00:51:08.800
+so the stairs level is one that draws in
+
+00:51:08.800 --> 00:51:10.079
+like a pink color
+
+00:51:10.079 --> 00:51:11.920
+to highlight the places where you can
+
+00:51:11.920 --> 00:51:13.440
+change level
+
+00:51:13.440 --> 00:51:15.200
+and then if we scroll down to the second
+
+00:51:15.200 --> 00:51:17.200
+half of this section
+
+00:51:17.200 --> 00:51:19.359
+the second table is going to have all of
+
+00:51:19.359 --> 00:51:20.960
+these same tiles in it but
+
+00:51:20.960 --> 00:51:22.800
+instead of path and stairs we're going
+
+00:51:22.800 --> 00:51:24.720
+to have other
+
+00:51:24.720 --> 00:51:27.920
+columns can we
+
+00:51:27.920 --> 00:51:31.680
+see the next table
+
+00:51:31.680 --> 00:51:33.839
+there we go so the same tiles only here
+
+00:51:33.839 --> 00:51:35.359
+we've got overlay
+
+00:51:35.359 --> 00:51:38.720
+documentation and behavior and I guess
+
+00:51:38.720 --> 00:51:40.319
+we haven't talked about this at all the
+
+00:51:40.319 --> 00:51:41.839
+behavior column
+
+00:51:41.839 --> 00:51:44.880
+was our concept of a way that we could
+
+00:51:44.880 --> 00:51:47.520
+attach
+
+00:51:47.520 --> 00:51:49.680
+functions basically to these different
+
+00:51:49.680 --> 00:51:51.359
+areas of the map
+
+00:51:51.359 --> 00:51:54.720
+because sometimes when you enter an area
+
+00:51:54.720 --> 00:51:57.760
+we want it to do something like
+
+00:51:57.760 --> 00:51:59.920
+when you enter a stairs down maybe we
+
+00:51:59.920 --> 00:52:02.319
+want it to change to the next level
+
+00:52:02.319 --> 00:52:04.559
+and draw the stairs up behind you and
+
+00:52:04.559 --> 00:52:06.160
+draw you where you are
+
+00:52:06.160 --> 00:52:09.200
+on the next level so
+
+00:52:09.200 --> 00:52:11.040
+these are like hooks where we could
+
+00:52:11.040 --> 00:52:12.240
+attach functions
+
+00:52:12.240 --> 00:52:16.400
+or you know macros or whatever to
+
+00:52:16.400 --> 00:52:18.480
+make the map have these behaviors as we
+
+00:52:18.480 --> 00:52:23.440
+get further towards automation
+
+00:52:23.440 --> 00:52:26.559
+cool um so that's that
+
+00:52:26.559 --> 00:52:30.839
+should be pretty close to our time
+
+00:52:30.839 --> 00:52:33.920
+um questions or just say goodbye
+
+00:52:33.920 --> 00:52:36.880
+um yeah so there's the I'm sorry we
+
+00:52:36.880 --> 00:52:38.559
+couldn't show it earlier there is the
+
+00:52:38.559 --> 00:52:40.000
+battle board
+
+00:52:40.000 --> 00:52:44.240
+um and so this is used just to keep
+
+00:52:44.240 --> 00:52:48.079
+track of hit points so with this example
+
+00:52:48.079 --> 00:52:49.319
+battle board
+
+00:52:49.319 --> 00:52:51.680
+dmbattleboard.el there's there's a
+
+00:52:51.680 --> 00:52:53.760
+complete example of not only
+
+00:52:53.760 --> 00:52:57.200
+in a single file repub filling out the
+
+00:52:57.200 --> 00:53:00.480
+the cells and the tiles but then coming
+
+00:53:00.480 --> 00:53:00.960
+in
+
+00:53:00.960 --> 00:53:04.640
+and keeping the org mode file in sync
+
+00:53:04.640 --> 00:53:05.280
+with
+
+00:53:05.280 --> 00:53:09.040
+with clicks so and I can press the star
+
+00:53:09.040 --> 00:53:12.319
+key and set my damage to -1 and
+
+00:53:12.319 --> 00:53:15.359
+take the damage back off I just haven't
+
+00:53:15.359 --> 00:53:16.400
+spent a lot of time
+
+00:53:16.400 --> 00:53:18.079
+building up fancy bindings for this
+
+00:53:18.079 --> 00:53:20.800
+you'll also find that the crew
+
+00:53:20.800 --> 00:53:23.119
+probably find how I figure out what was
+
+00:53:23.119 --> 00:53:23.839
+clicked on
+
+00:53:23.839 --> 00:53:26.880
+in the code hard but if I just assign
+
+00:53:26.880 --> 00:53:28.000
+something recognizable
+
+00:53:28.000 --> 00:53:33.520
+for damage and then come into
+
+00:53:33.520 --> 00:53:35.440
+it will now have opened the org mode
+
+00:53:35.440 --> 00:53:37.040
+file behind the scenes because it's
+
+00:53:37.040 --> 00:53:41.280
+changing it
+
+00:53:41.280 --> 00:53:44.640
+and we can then look at that file a
+
+00:53:44.640 --> 00:53:47.599
+little bit and hopefully
+
+00:53:47.599 --> 00:53:51.040
+that is un
+
+00:53:51.040 --> 00:53:53.440
+uh large enough you can kind of see
+
+00:53:53.440 --> 00:53:55.520
+there's our 17 damage landed
+
+00:53:55.520 --> 00:53:59.119
+in armor the logic that sits behind that
+
+00:53:59.119 --> 00:54:01.200
+to figure out the part of the screen
+
+00:54:01.200 --> 00:54:08.880
+is not necessarily our finest work
+
+00:54:08.880 --> 00:54:11.839
+uh uh but it but it does work and it's
+
+00:54:11.839 --> 00:54:12.319
+one for
+
+00:54:12.319 --> 00:54:14.000
+the stuff was used on the map a little
+
+00:54:14.000 --> 00:54:15.920
+bit too we didn't really need to show
+
+00:54:15.920 --> 00:54:17.520
+that in the demo but as you're scrolling
+
+00:54:17.520 --> 00:54:19.680
+around there's like a highlighter
+
+00:54:19.680 --> 00:54:22.960
+um that that you know we were drawing on
+
+00:54:22.960 --> 00:54:24.720
+shaft to show you which square you've
+
+00:54:24.720 --> 00:54:26.160
+got selected
+
+00:54:26.160 --> 00:54:28.800
+um because we were having trouble with
+
+00:54:28.800 --> 00:54:29.839
+that code
+
+00:54:29.839 --> 00:54:31.280
+initially and we were sometimes
+
+00:54:31.280 --> 00:54:36.839
+revealing the wrong
+
+00:54:36.839 --> 00:54:38.720
+okay
+
+00:54:38.720 --> 00:54:40.480
+and I don't know how we're set for time
+
+00:54:40.480 --> 00:54:42.160
+but I just saw a message
+
+00:54:42.160 --> 00:54:44.400
+um from trixie that she could jump on if
+
+00:54:44.400 --> 00:54:46.480
+we want her oh that would be amazing
+
+00:54:46.480 --> 00:54:47.920
+yeah go ahead and invite her in I'll
+
+00:54:47.920 --> 00:54:51.680
+just cut to the scene as soon as she's
+
+00:54:51.680 --> 00:54:56.160
+I in uh yeah so we're reaching the ask
+
+00:54:56.160 --> 00:54:56.799
+me any
+
+00:54:56.799 --> 00:54:58.960
+anything uh portion of the program here
+
+00:54:58.960 --> 00:55:01.200
+with what uh with what time we have left
+
+00:55:01.200 --> 00:55:02.559
+for your questions
+
+00:55:02.559 --> 00:55:05.200
+um please correct me if we're still like
+
+00:55:05.200 --> 00:55:06.160
+10 minutes
+
+00:55:06.160 --> 00:55:08.799
+you know if we're if we're more than
+
+00:55:08.799 --> 00:55:10.000
+like
+
+00:55:10.000 --> 00:55:12.640
+15 to 20 minutes from our time but I I
+
+00:55:12.640 --> 00:55:13.760
+suspect we've less weight
+
+00:55:13.760 --> 00:55:16.640
+left way less than that and out of
+
+00:55:16.640 --> 00:55:17.440
+respect for
+
+00:55:17.440 --> 00:55:24.319
+all the other presenters um
+
+00:55:24.319 --> 00:55:28.720
+oh I don't want to close that actually
+
+00:55:28.720 --> 00:55:30.640
+I think I may have found an old version
+
+00:55:30.640 --> 00:55:32.839
+of my slides that could have some good
+
+00:55:32.839 --> 00:55:35.200
+stuff
+
+00:55:35.200 --> 00:55:36.799
+it's been an event for a couple of weeks
+
+00:55:36.799 --> 00:55:38.799
+here I had a break in and uh
+
+00:55:38.799 --> 00:55:41.359
+my somebody got into our bank accounts
+
+00:55:41.359 --> 00:55:43.599
+and
+
+00:55:43.599 --> 00:55:46.880
+nasty business just a lot going on over
+
+00:55:46.880 --> 00:55:50.720
+over this whole year I think
+
+00:55:50.720 --> 00:55:53.040
+do we have more questions to shag or
+
+00:55:53.040 --> 00:55:53.839
+where
+
+00:55:53.839 --> 00:55:56.960
+sure so I think
+
+00:55:56.960 --> 00:55:58.799
+there was at least one we deferred a
+
+00:55:58.799 --> 00:56:01.040
+little bit uh what the game
+
+00:56:01.040 --> 00:56:05.040
+is
+
+00:56:05.040 --> 00:56:06.799
+uh always eight characters that can be
+
+00:56:06.799 --> 00:56:08.400
+divided right that's so always eight
+
+00:56:08.400 --> 00:56:10.000
+characters that can be divided between
+
+00:56:10.000 --> 00:56:12.160
+the party is the classic formula
+
+00:56:12.160 --> 00:56:14.319
+it actually works pretty well for a
+
+00:56:14.319 --> 00:56:16.240
+conversational group remember that
+
+00:56:16.240 --> 00:56:17.760
+role-playing games are about talking to
+
+00:56:17.760 --> 00:56:18.480
+each other
+
+00:56:18.480 --> 00:56:20.000
+and being good at them is about taking
+
+00:56:20.000 --> 00:56:22.079
+excellent notes so
+
+00:56:22.079 --> 00:56:23.200
+when you're sitting around with a group
+
+00:56:23.200 --> 00:56:24.559
+of people and you're going to have to
+
+00:56:24.559 --> 00:56:25.920
+wait for them while they dig through
+
+00:56:25.920 --> 00:56:26.880
+their notes
+
+00:56:26.880 --> 00:56:28.720
+and listen to all of the things they
+
+00:56:28.720 --> 00:56:30.319
+find interesting to say
+
+00:56:30.319 --> 00:56:32.240
+and try to reach an imaginative place
+
+00:56:32.240 --> 00:56:34.160
+that you can stay together
+
+00:56:34.160 --> 00:56:36.160
+while you're doing all that and working
+
+00:56:36.160 --> 00:56:38.319
+in dice and remembering the rules
+
+00:56:38.319 --> 00:56:40.880
+it's actually a complicated activity I
+
+00:56:40.880 --> 00:56:43.200
+liken it more to a bridge game
+
+00:56:43.200 --> 00:56:46.240
+than to like uh
+
+00:56:46.240 --> 00:56:48.960
+you know parcheesi or perhaps even like
+
+00:56:48.960 --> 00:56:51.359
+risk or access and allies or other games
+
+00:56:51.359 --> 00:56:52.160
+that
+
+00:56:52.160 --> 00:56:54.319
+have have definitely the strategy to
+
+00:56:54.319 --> 00:56:56.160
+them but
+
+00:56:56.160 --> 00:57:00.160
+I don't eric your thoughts
+
+00:57:00.160 --> 00:57:03.920
+yeah I mean I think that's fair um
+
+00:57:03.920 --> 00:57:06.640
+you know yes definitely the the
+
+00:57:06.640 --> 00:57:08.160
+tradition is to always have eight
+
+00:57:08.160 --> 00:57:09.440
+characters in the party
+
+00:57:09.440 --> 00:57:12.079
+and you know one of the great things
+
+00:57:12.079 --> 00:57:13.760
+about dungeon is that everybody who
+
+00:57:13.760 --> 00:57:15.200
+writes their own dungeon
+
+00:57:15.200 --> 00:57:18.000
+gets to write their own rules and is
+
+00:57:18.000 --> 00:57:19.440
+free to change whatever
+
+00:57:19.440 --> 00:57:21.760
+you want and that being said I've
+
+00:57:21.760 --> 00:57:22.720
+certainly seen
+
+00:57:22.720 --> 00:57:25.839
+people try to take on challenging that
+
+00:57:25.839 --> 00:57:28.079
+always eight characters in a party
+
+00:57:28.079 --> 00:57:30.640
+thing um I've seen people take
+
+00:57:30.640 --> 00:57:32.640
+approaches like every player gets two
+
+00:57:32.640 --> 00:57:34.640
+characters and then you can have a party
+
+00:57:34.640 --> 00:57:36.319
+ranging from two to ten
+
+00:57:36.319 --> 00:57:38.079
+or there's always going to be ten or
+
+00:57:38.079 --> 00:57:40.000
+there's you know this or that or people
+
+00:57:40.000 --> 00:57:43.200
+have um tried stuff and none of it has
+
+00:57:43.200 --> 00:57:45.280
+really worked out very satisfactorily we
+
+00:57:45.280 --> 00:57:45.839
+always
+
+00:57:45.839 --> 00:57:48.319
+seem to keep coming back to our um party
+
+00:57:48.319 --> 00:57:49.680
+of eight
+
+00:57:49.680 --> 00:57:54.160
+yeah it's I I I I it's one of the things
+
+00:57:54.160 --> 00:57:55.839
+dungeon that you can't change when you
+
+00:57:55.839 --> 00:57:57.359
+write your own dungeon
+
+00:57:57.359 --> 00:57:58.720
+and that's the reason it's so
+
+00:57:58.720 --> 00:58:00.960
+complicated as a as a software
+
+00:58:00.960 --> 00:58:03.119
+project why it's taken us decades
+
+00:58:03.119 --> 00:58:04.559
+because
+
+00:58:04.559 --> 00:58:08.000
+trying to model the data for example or
+
+00:58:08.000 --> 00:58:11.280
+really any attempt to
+
+00:58:11.280 --> 00:58:14.160
+quantify it in specific terms always
+
+00:58:14.160 --> 00:58:15.680
+falls to examples
+
+00:58:15.680 --> 00:58:18.880
+well you know dungeons usually have
+
+00:58:18.880 --> 00:58:22.079
+elves dwarves and humans they have uh
+
+00:58:22.079 --> 00:58:25.280
+priests wizards and warriors uh they
+
+00:58:25.280 --> 00:58:27.599
+have eight characters in the party
+
+00:58:27.599 --> 00:58:30.000
+the bell rocks are particularly nasty
+
+00:58:30.000 --> 00:58:31.680
+and live in a room of some
+
+00:58:31.680 --> 00:58:35.119
+specific shape um spoilers
+
+00:58:35.119 --> 00:58:38.319
+uh right and we don't tell you the rules
+
+00:58:38.319 --> 00:58:39.520
+and that's what you know
+
+00:58:39.520 --> 00:58:40.960
+and you sit down at the table and you
+
+00:58:40.960 --> 00:58:42.640
+say what's your character name and
+
+00:58:42.640 --> 00:58:44.480
+what's your special power
+
+00:58:44.480 --> 00:58:48.400
+and and then I say uh I
+
+00:58:48.400 --> 00:58:51.599
+I I'm zelda and uh
+
+00:58:51.599 --> 00:58:53.839
+I I have this bridge that I can put down
+
+00:58:53.839 --> 00:58:56.000
+that always gets me across the river
+
+00:58:56.000 --> 00:58:59.040
+um so let's touch on special power real
+
+00:58:59.040 --> 00:58:59.359
+quick
+
+00:58:59.359 --> 00:59:01.119
+since that's one of the things that is
+
+00:59:01.119 --> 00:59:03.280
+kind of unique to dungeon
+
+00:59:03.280 --> 00:59:06.160
+and one of the things that is the
+
+00:59:06.160 --> 00:59:06.720
+biggest
+
+00:59:06.720 --> 00:59:08.960
+challenge to us in trying to code a
+
+00:59:08.960 --> 00:59:10.240
+system like this for
+
+00:59:10.240 --> 00:59:13.200
+automated play and that's that every
+
+00:59:13.200 --> 00:59:14.319
+character gets a
+
+00:59:14.319 --> 00:59:17.119
+unique special power and traditionally
+
+00:59:17.119 --> 00:59:18.000
+you negotiate
+
+00:59:18.000 --> 00:59:19.520
+your special power with the dungeon
+
+00:59:19.520 --> 00:59:21.839
+master when you create your character
+
+00:59:21.839 --> 00:59:24.079
+and occasionally throughout the course
+
+00:59:24.079 --> 00:59:25.839
+of the character's life their special
+
+00:59:25.839 --> 00:59:27.359
+power might change
+
+00:59:27.359 --> 00:59:29.920
+due to game circumstances usually it
+
+00:59:29.920 --> 00:59:33.280
+improves but sometimes not
+
+00:59:33.280 --> 00:59:34.960
+uh and that's those are the most fun
+
+00:59:34.960 --> 00:59:36.960
+conversations right sometimes we have
+
+00:59:36.960 --> 00:59:39.440
+fun gaming sessions where we barely get
+
+00:59:39.440 --> 00:59:41.760
+all the characters created and started
+
+00:59:41.760 --> 00:59:43.680
+because we get off into arguing about
+
+00:59:43.680 --> 00:59:45.440
+the special powers no zelda special
+
+00:59:45.440 --> 00:59:48.319
+powers obviously the candle come on
+
+00:59:48.319 --> 00:59:53.359
+also that was link not zelda
+
+00:59:53.359 --> 00:59:56.240
+I still have my t-shirt hey there she is
+
+00:59:56.240 --> 01:00:01.440
+let's cut scene
+
+01:00:01.440 --> 01:00:05.839
+you get video fun filters today because
+
+01:00:05.839 --> 01:00:07.359
+that's what we got going on over here
+
+01:00:07.359 --> 01:00:08.799
+today all right I'm gonna recut
+
+01:00:08.799 --> 01:00:18.079
+everybody hang on tight
+
+01:00:18.079 --> 01:00:20.799
+all right there's eric this is gonna be
+
+01:00:20.799 --> 01:00:23.200
+eric for a second hope
+
+01:00:23.200 --> 01:00:25.200
+no worries and welcome to the welcome to
+
+01:00:25.200 --> 01:00:27.440
+the stream uh trixie horror
+
+01:00:27.440 --> 01:00:30.960
+uh who is
+
+01:00:30.960 --> 01:00:32.720
+uh one of our project team members
+
+01:00:32.720 --> 01:00:34.559
+somebody who's learning Emacs as part of
+
+01:00:34.559 --> 01:00:35.440
+the project
+
+01:00:35.440 --> 01:00:38.480
+and um yeah I
+
+01:00:38.480 --> 01:00:40.720
+I I particularly wanted to invite you on
+
+01:00:40.720 --> 01:00:42.160
+to talk about your experience learning
+
+01:00:42.160 --> 01:00:44.319
+Emacs I think you have run into
+
+01:00:44.319 --> 01:00:46.079
+places where it's a pain in the butt to
+
+01:00:46.079 --> 01:00:47.839
+learn Emacs and that this is a safe
+
+01:00:47.839 --> 01:00:56.000
+space to talk about that
+
+01:00:56.000 --> 01:00:58.960
+jump into that by saying um the Emacs
+
+01:00:58.960 --> 01:01:00.640
+cheat sheet
+
+01:01:00.640 --> 01:01:02.880
+um I think it's the one that canoe puts
+
+01:01:02.880 --> 01:01:03.680
+out
+
+01:01:03.680 --> 01:01:07.680
+is a lifesaver um a little bit of a
+
+01:01:07.680 --> 01:01:09.440
+vocabulary disconnect
+
+01:01:09.440 --> 01:01:12.480
+like and this actually kind of comes up
+
+01:01:12.480 --> 01:01:13.359
+a lot
+
+01:01:13.359 --> 01:01:15.200
+in conversation with corona and eric and
+
+01:01:15.200 --> 01:01:18.000
+I but copy paste versus
+
+01:01:18.000 --> 01:01:21.920
+what yank and w
+
+01:01:21.920 --> 01:01:27.920
+whatever w
+
+01:01:27.920 --> 01:01:30.000
+why would you even do that to us right
+
+01:01:30.000 --> 01:01:31.200
+where where were you
+
+01:01:31.200 --> 01:01:33.359
+when zero's park happened no I I
+
+01:01:33.359 --> 01:01:38.480
+understand that makes sense what else
+
+01:01:38.480 --> 01:01:39.520
+I mean you don't have to sit here and
+
+01:01:39.520 --> 01:01:41.440
+rag on Emacs but we're here for that
+
+01:01:41.440 --> 01:01:43.119
+that's all I'm saying
+
+01:01:43.119 --> 01:01:44.400
+no I'm like that's been the biggest
+
+01:01:44.400 --> 01:01:46.799
+thing like I'm
+
+01:01:46.799 --> 01:01:49.920
+I'm used to like just kind of the
+
+01:01:49.920 --> 01:01:52.319
+very binary nature like nope that didn't
+
+01:01:52.319 --> 01:01:53.839
+work try something else
+
+01:01:53.839 --> 01:01:57.119
+so as long as you're like willing to try
+
+01:01:57.119 --> 01:01:59.200
+other stuff
+
+01:01:59.200 --> 01:02:02.880
+like Emacs will be fine so
+
+01:02:02.880 --> 01:02:06.559
+it's a tough cookie I can take it
+
+01:02:06.559 --> 01:02:08.960
+worst thing that happens is you have to
+
+01:02:08.960 --> 01:02:11.119
+really install it
+
+01:02:11.119 --> 01:02:13.520
+throw your ignite file that you
+
+01:02:13.520 --> 01:02:19.920
+hopefully have a backup of
+
+01:02:19.920 --> 01:02:22.079
+all right fine um are there more
+
+01:02:22.079 --> 01:02:24.640
+questions in the hopper
+
+01:02:24.640 --> 01:02:26.480
+yeah if anybody does have any questions
+
+01:02:26.480 --> 01:02:27.680
+up there uh
+
+01:02:27.680 --> 01:02:29.839
+for hope for eric or I so just to
+
+01:02:29.839 --> 01:02:32.000
+summarize I've known eric
+
+01:02:32.000 --> 01:02:34.240
+I've known eric my whole life I've known
+
+01:02:34.240 --> 01:02:36.160
+hope around a decade we
+
+01:02:36.160 --> 01:02:39.599
+worked together on a project for
+
+01:02:39.599 --> 01:02:44.559
+uh for a science fiction convention yeah
+
+01:02:44.559 --> 01:02:46.880
+we got conventions and then I also
+
+01:02:46.880 --> 01:02:48.960
+helped with I just wrote a bio
+
+01:02:48.960 --> 01:02:50.799
+so this should like all theoretically be
+
+01:02:50.799 --> 01:02:53.599
+in my head right
+
+01:02:53.599 --> 01:02:58.079
+I want I refer to my own bio
+
+01:02:58.079 --> 01:03:00.160
+I'm the project coordinator for dungeon
+
+01:03:00.160 --> 01:03:10.799
+mode
+
+01:03:10.799 --> 01:03:14.000
+um that's nice
+
+01:03:14.000 --> 01:03:16.400
+we've gotten a ton of support from a lot
+
+01:03:16.400 --> 01:03:18.000
+of our lifelong friends people
+
+01:03:18.000 --> 01:03:20.480
+and also people that we just met maybe
+
+01:03:20.480 --> 01:03:22.319
+that's a that's a great segue
+
+01:03:22.319 --> 01:03:25.039
+um do throw your questions in there I'm
+
+01:03:25.039 --> 01:03:26.400
+gonna fill for just a second and then
+
+01:03:26.400 --> 01:03:27.839
+we'll probably cut away
+
+01:03:27.839 --> 01:03:32.319
+um but uh
+
+01:03:32.319 --> 01:03:34.960
+uh I mean thematically actually that's
+
+01:03:34.960 --> 01:03:36.319
+that's too abrupt so we need to go
+
+01:03:36.319 --> 01:03:37.200
+around the room
+
+01:03:37.200 --> 01:03:39.119
+eric you had hours and hours to rehearse
+
+01:03:39.119 --> 01:03:40.720
+hope kind of jumped in on the last
+
+01:03:40.720 --> 01:03:41.359
+minute
+
+01:03:41.359 --> 01:03:43.520
+so let's let's is it okay to pick on you
+
+01:03:43.520 --> 01:03:46.319
+or do you want me to give mine
+
+01:03:46.319 --> 01:03:48.880
+uh to what are you asking me to do what
+
+01:03:48.880 --> 01:03:50.000
+do you what do you want people to take
+
+01:03:50.000 --> 01:03:51.359
+away from this talk
+
+01:03:51.359 --> 01:03:54.240
+you know as we think about dungeon and
+
+01:03:54.240 --> 01:03:55.280
+sharing it's
+
+01:03:55.280 --> 01:03:57.520
+sharing its tradition as we think about
+
+01:03:57.520 --> 01:03:58.799
+learning Emacs
+
+01:03:58.799 --> 01:04:02.799
+and like making that awesome um
+
+01:04:02.799 --> 01:04:04.880
+and just you know generally what's up
+
+01:04:04.880 --> 01:04:07.599
+with free software and trying to make
+
+01:04:07.599 --> 01:04:12.480
+computers a tool to make people freer
+
+01:04:12.480 --> 01:04:15.200
+wow that's like five questions yeah so
+
+01:04:15.200 --> 01:04:15.920
+I'm gonna start
+
+01:04:15.920 --> 01:04:18.960
+with jumping um I think
+
+01:04:18.960 --> 01:04:22.240
+that dungeon is a lot of fun and
+
+01:04:22.240 --> 01:04:25.359
+you know I'm I've played many
+
+01:04:25.359 --> 01:04:27.599
+commercial role-playing games over the
+
+01:04:27.599 --> 01:04:28.480
+years
+
+01:04:28.480 --> 01:04:31.680
+and I've enjoyed all of them and there
+
+01:04:31.680 --> 01:04:32.000
+are
+
+01:04:32.000 --> 01:04:34.720
+very few of them that I've had as many
+
+01:04:34.720 --> 01:04:36.319
+belly laughs and as much
+
+01:04:36.319 --> 01:04:40.160
+just joy playing as from dungeon
+
+01:04:40.160 --> 01:04:42.799
+and I think you know the magic of it is
+
+01:04:42.799 --> 01:04:43.280
+you know
+
+01:04:43.280 --> 01:04:45.520
+like any game like the real magic is the
+
+01:04:45.520 --> 01:04:47.200
+people you play with and having fun with
+
+01:04:47.200 --> 01:04:49.599
+your friends
+
+01:04:49.599 --> 01:04:51.280
+and what I would hope that people can
+
+01:04:51.280 --> 01:04:53.440
+take away from is that dungeon has the
+
+01:04:53.440 --> 01:04:55.920
+ability to be that magical thing
+
+01:04:55.920 --> 01:04:59.280
+and hopefully we can get our project to
+
+01:04:59.280 --> 01:05:00.000
+the point
+
+01:05:00.000 --> 01:05:02.160
+where it gets out of the way and lets
+
+01:05:02.160 --> 01:05:04.960
+you have that fun with your friends
+
+01:05:04.960 --> 01:05:07.200
+um but there's a lot of work to do we
+
+01:05:07.200 --> 01:05:08.240
+could use some help
+
+01:05:08.240 --> 01:05:10.880
+so if you're interested in having fun
+
+01:05:10.880 --> 01:05:20.960
+come help us build this fun tool
+
+01:05:20.960 --> 01:05:22.319
+all right so I just got the call that
+
+01:05:22.319 --> 01:05:24.079
+we've got just about two to three
+
+01:05:24.079 --> 01:05:25.039
+minutes left
+
+01:05:25.039 --> 01:05:28.160
+and we should start our wrap-up
+
+01:05:28.160 --> 01:05:31.440
+okay wrap up so
+
+01:05:31.440 --> 01:05:34.240
+yeah um so I'll I'll see if I can charge
+
+01:05:34.240 --> 01:05:35.920
+the room with some energy unless you're
+
+01:05:35.920 --> 01:05:38.480
+ready to have at it hope
+
+01:05:38.480 --> 01:05:40.720
+here here's here's what I want people to
+
+01:05:40.720 --> 01:05:42.799
+take away
+
+01:05:42.799 --> 01:05:47.039
+were you like no okay
+
+01:05:47.039 --> 01:05:53.599
+I'm not getting your audio hope
+
+01:05:53.599 --> 01:05:55.839
+it's okay on my end maybe I just need to
+
+01:05:55.839 --> 01:05:57.359
+speak up
+
+01:05:57.359 --> 01:05:58.880
+is this better let me know when I'm
+
+01:05:58.880 --> 01:06:00.640
+coming through yeah you're coming
+
+01:06:00.640 --> 01:06:01.680
+through now
+
+01:06:01.680 --> 01:06:05.359
+okay cool oh no I
+
+01:06:05.359 --> 01:06:08.799
+was gonna say go ahead I didn't okay
+
+01:06:08.799 --> 01:06:10.559
+I mean I I don't know that I know what I
+
+01:06:10.559 --> 01:06:12.880
+want to say either except a whole ton of
+
+01:06:12.880 --> 01:06:13.599
+thank yous
+
+01:06:13.599 --> 01:06:16.480
+so I will I will save those for the for
+
+01:06:16.480 --> 01:06:17.200
+the literal
+
+01:06:17.200 --> 01:06:20.880
+end here and instead
+
+01:06:20.880 --> 01:06:24.160
+what I would say is as we build
+
+01:06:24.160 --> 01:06:27.839
+our amazing innovations and
+
+01:06:27.839 --> 01:06:32.160
+explore our ideas in Emacs
+
+01:06:32.160 --> 01:06:35.119
+we are fighting our own ego for the will
+
+01:06:35.119 --> 01:06:36.079
+to get them done
+
+01:06:36.079 --> 01:06:37.680
+it's hard and we're not sure if they're
+
+01:06:37.680 --> 01:06:38.960
+going to be a good idea and will it
+
+01:06:38.960 --> 01:06:40.000
+excite people and part of our
+
+01:06:40.000 --> 01:06:41.680
+responsibility is to excite people so
+
+01:06:41.680 --> 01:06:43.440
+that they can feel good about liking
+
+01:06:43.440 --> 01:06:44.240
+them
+
+01:06:44.240 --> 01:06:45.680
+if you come off and you're like hey this
+
+01:06:45.680 --> 01:06:47.359
+is a terrible idea it's really hard to
+
+01:06:47.359 --> 01:06:47.920
+be like
+
+01:06:47.920 --> 01:06:49.760
+no I love that idea it works
+
+01:06:49.760 --> 01:06:51.200
+theatrically but
+
+01:06:51.200 --> 01:06:55.680
+in larger groups may not scale
+
+01:06:55.680 --> 01:06:58.400
+so that's a crucible for ideas and a
+
+01:06:58.400 --> 01:07:00.400
+crucible for teams
+
+01:07:00.400 --> 01:07:03.280
+the first part is definitely healthy the
+
+01:07:03.280 --> 01:07:04.240
+second part
+
+01:07:04.240 --> 01:07:07.440
+there's a lot we can we can do you know
+
+01:07:07.440 --> 01:07:08.640
+having upfront
+
+01:07:08.640 --> 01:07:10.880
+and and and good faith conversations on
+
+01:07:10.880 --> 01:07:15.440
+that subject
+
+01:07:15.440 --> 01:07:17.520
+anybody else wanted I want to weigh it
+
+01:07:17.520 --> 01:07:19.119
+in after that sorry that that was more
+
+01:07:19.119 --> 01:07:23.200
+of a calm down than a then a fire out
+
+01:07:23.200 --> 01:07:27.280
+oh that's okay
+
+01:07:27.280 --> 01:07:29.280
+I mean um the first part of this but I
+
+01:07:29.280 --> 01:07:30.960
+think um
+
+01:07:30.960 --> 01:07:32.960
+we would be remiss not to highlight org
+
+01:07:32.960 --> 01:07:34.880
+mode a little bit
+
+01:07:34.880 --> 01:07:37.839
+yeah like that's that's our bread and
+
+01:07:37.839 --> 01:07:38.480
+butter
+
+01:07:38.480 --> 01:07:40.240
+yeah our whole project is built on org
+
+01:07:40.240 --> 01:07:42.720
+mode right and I'm just really excited
+
+01:07:42.720 --> 01:07:46.240
+because like I have I don't have adhd
+
+01:07:46.240 --> 01:07:49.680
+but I have like something similar and so
+
+01:07:49.680 --> 01:07:51.119
+like to know that there's something that
+
+01:07:51.119 --> 01:07:54.880
+exists that is like purely hierarchical
+
+01:07:54.880 --> 01:07:57.760
+is incredible like I can just run a
+
+01:07:57.760 --> 01:07:58.559
+report
+
+01:07:58.559 --> 01:08:01.839
+basically and get all of my like
+
+01:08:01.839 --> 01:08:03.839
+to-do lists that I didn't have to put in
+
+01:08:03.839 --> 01:08:05.760
+one specific place
+
+01:08:05.760 --> 01:08:10.559
+um and like that's kind of been
+
+01:08:10.559 --> 01:08:14.559
+a complex issue for me of like
+
+01:08:14.559 --> 01:08:16.480
+okay I have all these to-do lists like
+
+01:08:16.480 --> 01:08:18.080
+in google keep or whatever like what do
+
+01:08:18.080 --> 01:08:18.319
+I
+
+01:08:18.319 --> 01:08:20.719
+do with them now so being able to like
+
+01:08:20.719 --> 01:08:21.359
+pull them
+
+01:08:21.359 --> 01:08:24.400
+into one list and then just cycle
+
+01:08:24.400 --> 01:08:26.640
+through them is really incredible
+
+01:08:26.640 --> 01:08:30.239
+and I think taking a dungeon and
+
+01:08:30.239 --> 01:08:34.480
+like using it to
+
+01:08:34.480 --> 01:08:35.839
+like combining it with org mode
+
+01:08:35.839 --> 01:08:37.759
+basically um
+
+01:08:37.759 --> 01:08:41.040
+really yeah I'm excited about it I'm
+
+01:08:41.040 --> 01:08:42.560
+excited to see like what it can do for
+
+01:08:42.560 --> 01:08:44.159
+player groups
+
+01:08:44.159 --> 01:08:47.759
+um yeah especially
+
+01:08:47.759 --> 01:08:50.319
+like I was excited about dungeon mode um
+
+01:08:50.319 --> 01:08:52.319
+before the pandemic and now like I'm
+
+01:08:52.319 --> 01:08:53.920
+only more enthusiastic
+
+01:08:53.920 --> 01:08:57.120
+so yeah uh definitely the pandemic has
+
+01:08:57.120 --> 01:08:58.400
+been the greatest thing that happened to
+
+01:08:58.400 --> 01:08:59.120
+this game
+
+01:08:59.120 --> 01:09:02.080
+terrible terrible as it is to say that
+
+01:09:02.080 --> 01:09:02.640
+it
+
+01:09:02.640 --> 01:09:05.120
+if we uh needed a hobby and it turns out
+
+01:09:05.120 --> 01:09:06.719
+role-playing games are
+
+01:09:06.719 --> 01:09:11.279
+a really good fit
+
+01:09:11.279 --> 01:09:13.839
+so um so I think that's probably about
+
+01:09:13.839 --> 01:09:14.799
+our time
+
+01:09:14.799 --> 01:09:18.560
+um I'm guessing that's my call and
+
+01:09:18.560 --> 01:09:21.759
+uh thank you very much thank you
+
+01:09:21.759 --> 01:09:23.120
+everybody
+
+01:09:23.120 --> 01:09:25.679
+we'll be around for discord and stuff
+
+01:09:25.679 --> 01:09:31.759
+later come catch us if you want to talk
diff --git a/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo-autogen.vtt b/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo-autogen.vtt
new file mode 100644
index 00000000..49db0989
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo-autogen.vtt
@@ -0,0 +1,634 @@
+WEBVTT
+
+00:00:00.880 --> 00:00:03.760
+hello and welcome to the stock
+
+00:00:03.760 --> 00:00:06.080
+the title of the stock is a tour feature
+
+00:00:06.080 --> 00:00:07.919
+a fast and fully featured terminal
+
+00:00:07.919 --> 00:00:08.559
+emulator
+
+00:00:08.559 --> 00:00:11.840
+inside new e-max so let's try to
+
+00:00:11.840 --> 00:00:13.360
+understand what we mean with the pass
+
+00:00:13.360 --> 00:00:14.559
+and fully featured
+
+00:00:14.559 --> 00:00:17.520
+and to do that we'll compare v term with
+
+00:00:17.520 --> 00:00:18.320
+the
+
+00:00:18.320 --> 00:00:20.640
+packages which are built in Emacs mean
+
+00:00:20.640 --> 00:00:22.400
+the term
+
+00:00:22.400 --> 00:00:25.199
+so let's let's jump into the v term so
+
+00:00:25.199 --> 00:00:26.720
+this is a feature buffer
+
+00:00:26.720 --> 00:00:29.679
+and this is a ansi term buffer what I'm
+
+00:00:29.679 --> 00:00:31.519
+going to do now is first I'm going to
+
+00:00:31.519 --> 00:00:32.160
+prove you
+
+00:00:32.160 --> 00:00:35.760
+what we move fast so to do that let me
+
+00:00:35.760 --> 00:00:37.520
+open a large file display on screen or
+
+00:00:37.520 --> 00:00:39.280
+large file this is about one megabyte of
+
+00:00:39.280 --> 00:00:40.239
+data
+
+00:00:40.239 --> 00:00:43.520
+and let me time that it takes about 0.6
+
+00:00:43.520 --> 00:00:44.160
+seconds
+
+00:00:44.160 --> 00:00:47.200
+with feature let's do the same with
+
+00:00:47.200 --> 00:00:49.760
+with ancient term well we already
+
+00:00:49.760 --> 00:00:51.520
+already see the difference
+
+00:00:51.520 --> 00:00:53.039
+so I will use this time to tell you
+
+00:00:53.039 --> 00:00:54.559
+what's different and
+
+00:00:54.559 --> 00:00:57.360
+what is v term exactly so v term is a
+
+00:00:57.360 --> 00:00:58.879
+terminal emulator built
+
+00:00:58.879 --> 00:01:01.120
+on top of an external library the
+
+00:01:01.120 --> 00:01:02.719
+library is called libvi term
+
+00:01:02.719 --> 00:01:05.519
+and is the same library used by newton
+
+00:01:05.519 --> 00:01:07.200
+for their own terminal emulator
+
+00:01:07.200 --> 00:01:10.000
+it's a c library and this is what gives
+
+00:01:10.000 --> 00:01:10.799
+us
+
+00:01:10.799 --> 00:01:15.119
+a lot of good features first the speed
+
+00:01:15.119 --> 00:01:17.280
+time spent here 0.6 is essentially the
+
+00:01:17.280 --> 00:01:18.479
+time that it takes to
+
+00:01:18.479 --> 00:01:21.520
+one convert the emax representation of
+
+00:01:21.520 --> 00:01:22.240
+like text
+
+00:01:22.240 --> 00:01:23.840
+into the visa and representation of what
+
+00:01:23.840 --> 00:01:26.400
+was a string and two into
+
+00:01:26.400 --> 00:01:28.479
+actually displaying that and that can
+
+00:01:28.479 --> 00:01:29.520
+take time
+
+00:01:29.520 --> 00:01:31.840
+if there's a if there's quantification
+
+00:01:31.840 --> 00:01:33.680
+involved so these are the 0.6 seconds
+
+00:01:33.680 --> 00:01:34.240
+there
+
+00:01:34.240 --> 00:01:36.960
+as we say in the in ancestor that's much
+
+00:01:36.960 --> 00:01:37.920
+much
+
+00:01:37.920 --> 00:01:39.920
+more time it's much slower so the
+
+00:01:39.920 --> 00:01:41.680
+terminal will feel much snappier much
+
+00:01:41.680 --> 00:01:42.880
+faster
+
+00:01:42.880 --> 00:01:46.079
+but that's not the main benefit or the
+
+00:01:46.079 --> 00:01:47.840
+only benefit of using this external
+
+00:01:47.840 --> 00:01:48.799
+library
+
+00:01:48.799 --> 00:01:52.320
+feature the second big benefit
+
+00:01:52.320 --> 00:01:55.439
+is that v term has support for all the
+
+00:01:55.439 --> 00:01:56.560
+escape codes
+
+00:01:56.560 --> 00:01:59.200
+that exterm has support for so v term is
+
+00:01:59.200 --> 00:02:01.119
+essentially as running x term
+
+00:02:01.119 --> 00:02:03.600
+inside an imax buffer so let's see that
+
+00:02:03.600 --> 00:02:04.799
+this for example
+
+00:02:04.799 --> 00:02:07.119
+let's start by looking at the support
+
+00:02:07.119 --> 00:02:08.239
+for colors
+
+00:02:08.239 --> 00:02:09.920
+we have support for all the colors out
+
+00:02:09.920 --> 00:02:11.840
+of the box we don't have to do anything
+
+00:02:11.840 --> 00:02:15.040
+and if we did the same here well we have
+
+00:02:15.040 --> 00:02:15.680
+only
+
+00:02:15.680 --> 00:02:17.920
+20 colors there's a way to get all the
+
+00:02:17.920 --> 00:02:19.680
+colors but it's much more involved
+
+00:02:19.680 --> 00:02:23.040
+but this is not where v term shines
+
+00:02:23.040 --> 00:02:26.000
+uh we can run all the commands that we
+
+00:02:26.000 --> 00:02:27.200
+want
+
+00:02:27.200 --> 00:02:30.480
+h top and cdu
+
+00:02:30.480 --> 00:02:33.040
+everything runs here also this title
+
+00:02:33.040 --> 00:02:33.840
+it's a
+
+00:02:33.840 --> 00:02:36.400
+it's a fairly complicated manipulation
+
+00:02:36.400 --> 00:02:37.040
+of
+
+00:02:37.040 --> 00:02:40.879
+the window and it will not work here
+
+00:02:40.879 --> 00:02:42.319
+it just doesn't work actually now the
+
+00:02:42.319 --> 00:02:44.640
+terminal is probably messed up
+
+00:02:44.640 --> 00:02:48.400
+yes so using this external library
+
+00:02:48.400 --> 00:02:50.959
+removes the burden from the developers
+
+00:02:50.959 --> 00:02:52.000
+of having to implement
+
+00:02:52.000 --> 00:02:54.000
+support for all these cape codes we just
+
+00:02:54.000 --> 00:02:55.360
+use those
+
+00:02:55.360 --> 00:02:58.480
+so in many ways running veteran
+
+00:02:58.480 --> 00:03:01.760
+is us running extern inside a max
+
+00:03:01.760 --> 00:03:04.400
+but it's better than that because since
+
+00:03:04.400 --> 00:03:05.840
+this is an e-max buffer
+
+00:03:05.840 --> 00:03:08.879
+we can enjoy a lot of features from
+
+00:03:08.879 --> 00:03:09.760
+Emacs
+
+00:03:09.760 --> 00:03:11.920
+as well as a tighter integration with
+
+00:03:11.920 --> 00:03:13.200
+e-max itself
+
+00:03:13.200 --> 00:03:16.560
+for example as you see here the title of
+
+00:03:16.560 --> 00:03:17.599
+my buffer
+
+00:03:17.599 --> 00:03:20.720
+is from the director I'm in so let's go
+
+00:03:20.720 --> 00:03:21.760
+to my tmp
+
+00:03:21.760 --> 00:03:24.799
+the title will change so there's
+
+00:03:24.799 --> 00:03:26.560
+information being exchanged between v
+
+00:03:26.560 --> 00:03:28.000
+term and index
+
+00:03:28.000 --> 00:03:29.760
+and of course the title is not the only
+
+00:03:29.760 --> 00:03:32.000
+place where information is exchanged
+
+00:03:32.000 --> 00:03:34.799
+I can find a file and I will be in the
+
+00:03:34.799 --> 00:03:35.920
+directory
+
+00:03:35.920 --> 00:03:38.239
+where my terminal is this feature is
+
+00:03:38.239 --> 00:03:40.000
+also available in nc term
+
+00:03:40.000 --> 00:03:41.680
+and it works also on b term and it
+
+00:03:41.680 --> 00:03:43.840
+follows me so if I go to tmp I'll get
+
+00:03:43.840 --> 00:03:44.720
+the tmp
+
+00:03:44.720 --> 00:03:48.000
+if I ssh to a remote server it will work
+
+00:03:48.000 --> 00:03:48.640
+also
+
+00:03:48.640 --> 00:03:51.120
+on remote servers as well which is a
+
+00:03:51.120 --> 00:03:53.920
+very nice way to edit files remotely
+
+00:03:53.920 --> 00:03:55.760
+while we're working on a shelf and
+
+00:03:55.760 --> 00:03:57.360
+second while vterm
+
+00:03:57.360 --> 00:03:59.599
+is not an e-lisp interpreter like
+
+00:03:59.599 --> 00:04:02.159
+initial what we can do is we can
+
+00:04:02.159 --> 00:04:06.080
+still run inbox functions so for example
+
+00:04:06.080 --> 00:04:08.319
+that requires some configuration the
+
+00:04:08.319 --> 00:04:10.159
+term
+
+00:04:10.159 --> 00:04:12.480
+command message I as you see there's a
+
+00:04:12.480 --> 00:04:14.000
+higher so what I'm doing
+
+00:04:14.000 --> 00:04:16.239
+is I'm executing the eagles function I
+
+00:04:16.239 --> 00:04:17.199
+and I can drop that
+
+00:04:17.199 --> 00:04:19.840
+and turn it around uh hash function to
+
+00:04:19.840 --> 00:04:20.320
+run
+
+00:04:20.320 --> 00:04:24.880
+a-list functions or another one file see
+
+00:04:24.880 --> 00:04:27.600
+we call this feature message passing and
+
+00:04:27.600 --> 00:04:28.800
+it requires
+
+00:04:28.800 --> 00:04:30.880
+some configuration on the emac side as
+
+00:04:30.880 --> 00:04:32.000
+well as in the shell side
+
+00:04:32.000 --> 00:04:34.000
+it's important to stress what's the
+
+00:04:34.000 --> 00:04:35.360
+nature of feature
+
+00:04:35.360 --> 00:04:37.360
+for instance every time I'm sending a
+
+00:04:37.360 --> 00:04:39.120
+key binding it's not immediately clear
+
+00:04:39.120 --> 00:04:40.800
+if my intention is to send it to the
+
+00:04:40.800 --> 00:04:42.720
+shell or to imax so v term implements
+
+00:04:42.720 --> 00:04:44.320
+some reasonable defaults
+
+00:04:44.320 --> 00:04:46.800
+but at the moment it's mainly packaged
+
+00:04:46.800 --> 00:04:49.120
+to display characters on a screen
+
+00:04:49.120 --> 00:04:51.199
+so for example if you're using evil the
+
+00:04:51.199 --> 00:04:53.600
+editing commands in evil will not work
+
+00:04:53.600 --> 00:04:55.759
+immediately there's some work to be done
+
+00:04:55.759 --> 00:04:57.840
+and integration can be improved on that
+
+00:04:57.840 --> 00:04:58.479
+side but
+
+00:04:58.479 --> 00:05:00.240
+sometimes we really want this to behave
+
+00:05:00.240 --> 00:05:02.240
+exactly like a imax buffer
+
+00:05:02.240 --> 00:05:05.440
+we want to be able to search if
+
+00:05:05.440 --> 00:05:07.039
+if I try to get it to search it will not
+
+00:05:07.039 --> 00:05:08.880
+work I will send it to the shop so to do
+
+00:05:08.880 --> 00:05:09.360
+that
+
+00:05:09.360 --> 00:05:12.400
+we enabled the term copy mode so as you
+
+00:05:12.400 --> 00:05:12.800
+see
+
+00:05:12.800 --> 00:05:15.280
+copy mode and now this buffer is
+
+00:05:15.280 --> 00:05:17.039
+essentially a fundamental buffer
+
+00:05:17.039 --> 00:05:21.120
+I can move around as I can search
+
+00:05:21.120 --> 00:05:24.400
+uh so it must have I
+
+00:05:24.400 --> 00:05:25.840
+can do everything I want and there are
+
+00:05:25.840 --> 00:05:27.120
+additional features for example I can
+
+00:05:27.120 --> 00:05:29.600
+jump around
+
+00:05:29.600 --> 00:05:31.440
+all the prompts and I find this
+
+00:05:31.440 --> 00:05:32.639
+extremely useful
+
+00:05:32.639 --> 00:05:34.400
+because I can copy update from my
+
+00:05:34.400 --> 00:05:35.919
+programs or
+
+00:05:35.919 --> 00:05:39.199
+what I always have to do is I have to
+
+00:05:39.199 --> 00:05:42.400
+google some errors so what I do is I
+
+00:05:42.400 --> 00:05:43.120
+select that
+
+00:05:43.120 --> 00:05:45.919
+and I have my keybinding in maksakov and
+
+00:05:45.919 --> 00:05:46.880
+I'm googling
+
+00:05:46.880 --> 00:05:49.199
+what I have to google so this is very
+
+00:05:49.199 --> 00:05:50.400
+nice and
+
+00:05:50.400 --> 00:05:52.800
+if I now that have selected something if
+
+00:05:52.800 --> 00:05:54.400
+I just press return I will
+
+00:05:54.400 --> 00:05:57.120
+go back to my normal editing mode with
+
+00:05:57.120 --> 00:05:57.440
+the
+
+00:05:57.440 --> 00:06:00.400
+text copied so I can paste it back so
+
+00:06:00.400 --> 00:06:01.600
+it's a quick way to
+
+00:06:01.600 --> 00:06:04.160
+interact with copy and interact with uh
+
+00:06:04.160 --> 00:06:06.400
+with the output of a buffer so finally
+
+00:06:06.400 --> 00:06:07.840
+let's discuss how to actually
+
+00:06:07.840 --> 00:06:10.560
+use beta let's circle back and let's go
+
+00:06:10.560 --> 00:06:12.400
+and let's look at the github repo
+
+00:06:12.400 --> 00:06:14.400
+where development is happening v term is
+
+00:06:14.400 --> 00:06:15.520
+available in velpa
+
+00:06:15.520 --> 00:06:17.919
+but since it's leveraging the power of
+
+00:06:17.919 --> 00:06:18.960
+an external module
+
+00:06:18.960 --> 00:06:20.639
+you must have Emacs compiled with
+
+00:06:20.639 --> 00:06:22.000
+support for modules
+
+00:06:22.000 --> 00:06:25.600
+and many distros like ubuntu debian
+
+00:06:25.600 --> 00:06:27.199
+that's not there so you have to get
+
+00:06:27.199 --> 00:06:29.840
+Emacs with support for modules compiling
+
+00:06:29.840 --> 00:06:30.160
+or
+
+00:06:30.160 --> 00:06:32.000
+getting images somewhere else and also
+
+00:06:32.000 --> 00:06:33.840
+the first time you are going to use this
+
+00:06:33.840 --> 00:06:34.400
+which
+
+00:06:34.400 --> 00:06:37.440
+works only on mac or
+
+00:06:37.440 --> 00:06:40.319
+new linux systems Emacs will try to find
+
+00:06:40.319 --> 00:06:41.759
+and compile this module
+
+00:06:41.759 --> 00:06:43.680
+so it's important this requirement is
+
+00:06:43.680 --> 00:06:45.440
+important if you're using windows
+
+00:06:45.440 --> 00:06:47.600
+well that's not it's not available and
+
+00:06:47.600 --> 00:06:49.199
+will not work
+
+00:06:49.199 --> 00:06:52.560
+so to conclude I want to just advertise
+
+00:06:52.560 --> 00:06:53.440
+this page
+
+00:06:53.440 --> 00:06:56.240
+if you have problems look at the issues
+
+00:06:56.240 --> 00:06:57.120
+and
+
+00:06:57.120 --> 00:06:59.039
+open unusual in case we'll try to help
+
+00:06:59.039 --> 00:07:00.800
+you we are very excited about feature
+
+00:07:00.800 --> 00:07:02.639
+and I think it's a transformative
+
+00:07:02.639 --> 00:07:10.319
+terminal experience inside glue imax
diff --git a/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--questions--gabriele-bozzola-sbozzolo-autogen.vtt b/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--questions--gabriele-bozzola-sbozzolo-autogen.vtt
new file mode 100644
index 00000000..c9477c2d
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--questions--gabriele-bozzola-sbozzolo-autogen.vtt
@@ -0,0 +1,385 @@
+WEBVTT
+
+00:00:01.520 --> 00:00:03.360
+okay I mean can you hear me yep I can
+
+00:00:03.360 --> 00:00:05.279
+hear you can you hear me
+
+00:00:05.279 --> 00:00:07.200
+yes perfect so gabrielle uh if you want
+
+00:00:07.200 --> 00:00:08.480
+to start answering questions and by the
+
+00:00:08.480 --> 00:00:09.280
+way people for the
+
+00:00:09.280 --> 00:00:10.880
+for the stream I'm actually on a phone
+
+00:00:10.880 --> 00:00:12.400
+call right now so the quality might be a
+
+00:00:12.400 --> 00:00:13.360
+little bad
+
+00:00:13.360 --> 00:00:17.199
+but we're trying our best
+
+00:00:17.199 --> 00:00:20.480
+hello uh thanks for attending my talk
+
+00:00:20.480 --> 00:00:22.800
+I see four questions on the user product
+
+00:00:22.800 --> 00:00:24.000
+I'm going to answer
+
+00:00:24.000 --> 00:00:27.039
+them okay so the first one is
+
+00:00:27.039 --> 00:00:29.039
+can you put your test space from up
+
+00:00:29.039 --> 00:00:31.119
+somewhere uh yes they're very simple
+
+00:00:31.119 --> 00:00:31.840
+skips
+
+00:00:31.840 --> 00:00:33.680
+uh I'll find a way to distribute them
+
+00:00:33.680 --> 00:00:35.520
+somehow
+
+00:00:35.520 --> 00:00:37.600
+that's so that's an easy one the second
+
+00:00:37.600 --> 00:00:38.800
+one is more difficult it's more
+
+00:00:38.800 --> 00:00:40.559
+difficult it's the differences between
+
+00:00:40.559 --> 00:00:44.320
+e shell and v term so I did very basic
+
+00:00:44.320 --> 00:00:47.360
+level the main difference is that v
+
+00:00:47.360 --> 00:00:50.399
+term is implemented with
+
+00:00:50.399 --> 00:00:52.800
+as a bridge between Emacs and an
+
+00:00:52.800 --> 00:00:53.840
+external library
+
+00:00:53.840 --> 00:00:56.079
+which means that most of the code base
+
+00:00:56.079 --> 00:00:57.039
+is actually c
+
+00:00:57.039 --> 00:01:00.320
+it's not easy uh this is is a critical
+
+00:01:00.320 --> 00:01:01.280
+difference
+
+00:01:01.280 --> 00:01:03.760
+uh in terms of performance in terms of
+
+00:01:03.760 --> 00:01:04.320
+speed
+
+00:01:04.320 --> 00:01:06.960
+and all the other uh features that we
+
+00:01:06.960 --> 00:01:07.360
+can
+
+00:01:07.360 --> 00:01:10.400
+inherit from this library so vterm
+
+00:01:10.400 --> 00:01:13.119
+is similar to a real terminal it's not
+
+00:01:13.119 --> 00:01:13.600
+as
+
+00:01:13.600 --> 00:01:15.840
+uh it's not like a shell it's a real
+
+00:01:15.840 --> 00:01:17.040
+terminal emulator
+
+00:01:17.040 --> 00:01:19.600
+that can actually uh display but
+
+00:01:19.600 --> 00:01:20.479
+manipulate the
+
+00:01:20.479 --> 00:01:22.960
+terminal in pretty much any way whereas
+
+00:01:22.960 --> 00:01:23.520
+isha
+
+00:01:23.520 --> 00:01:25.759
+is simply a way to interact with your
+
+00:01:25.759 --> 00:01:26.640
+system
+
+00:01:26.640 --> 00:01:29.680
+in the data page we have a more
+
+00:01:29.680 --> 00:01:31.840
+complete discussion about this topic and
+
+00:01:31.840 --> 00:01:33.520
+where we compare v-terms with e-shell
+
+00:01:33.520 --> 00:01:34.799
+with shell with nc
+
+00:01:34.799 --> 00:01:38.720
+term as well I think so
+
+00:01:38.720 --> 00:01:40.640
+I think just to conclude this I think
+
+00:01:40.640 --> 00:01:42.000
+eshell and v term
+
+00:01:42.000 --> 00:01:44.079
+are somehow orthogonal in the sense that
+
+00:01:44.079 --> 00:01:45.280
+v3 is before a
+
+00:01:45.280 --> 00:01:46.880
+full complete terminal experience
+
+00:01:46.880 --> 00:01:49.439
+whereas isil is more for specific tasks
+
+00:01:49.439 --> 00:01:50.240
+of this
+
+00:01:50.240 --> 00:01:53.280
+uh which are not like terminal uh
+
+00:01:53.280 --> 00:01:55.759
+interfaces you know like page stock this
+
+00:01:55.759 --> 00:01:56.799
+kind of stuff
+
+00:01:56.799 --> 00:01:59.759
+uh the next question is uh is there a
+
+00:01:59.759 --> 00:02:01.200
+plan to avoid compilation of the initial
+
+00:02:01.200 --> 00:02:02.560
+completion steps
+
+00:02:02.560 --> 00:02:05.759
+so since the term is based on again
+
+00:02:05.759 --> 00:02:08.000
+on an external module we need to combine
+
+00:02:08.000 --> 00:02:08.800
+this module
+
+00:02:08.800 --> 00:02:10.800
+and we're using the dynamic module
+
+00:02:10.800 --> 00:02:11.920
+system to
+
+00:02:11.920 --> 00:02:13.920
+be able to interface with this module
+
+00:02:13.920 --> 00:02:16.239
+and this requires
+
+00:02:16.239 --> 00:02:18.879
+us to compile the module at least the
+
+00:02:18.879 --> 00:02:20.160
+very first time you start
+
+00:02:20.160 --> 00:02:23.920
+the I don't think we can do
+
+00:02:23.920 --> 00:02:26.720
+without that in the near future we need
+
+00:02:26.720 --> 00:02:28.480
+to compile this
+
+00:02:28.480 --> 00:02:31.599
+and we must there's no way around
+
+00:02:31.599 --> 00:02:33.360
+if we cannot simply distribute the
+
+00:02:33.360 --> 00:02:37.440
+module um
+
+00:02:37.440 --> 00:02:39.519
+if you want to think very long term
+
+00:02:39.519 --> 00:02:40.480
+maybe
+
+00:02:40.480 --> 00:02:42.959
+uh but I think there's no current plan
+
+00:02:42.959 --> 00:02:43.599
+to
+
+00:02:43.599 --> 00:02:45.760
+avoid the compilation as the very first
+
+00:02:45.760 --> 00:02:47.280
+step the first time you
+
+00:02:47.280 --> 00:02:50.400
+uh run vtor however all the subsequent
+
+00:02:50.400 --> 00:02:50.959
+times
+
+00:02:50.959 --> 00:02:54.720
+you will not have to compile peter um
+
+00:02:54.720 --> 00:02:57.840
+so for question four it's uh I have a
+
+00:02:57.840 --> 00:02:58.720
+nice looking problem
+
+00:02:58.720 --> 00:03:01.920
+thanks uh and if
+
+00:03:01.920 --> 00:03:04.159
+there's a git repo where you can see it
+
+00:03:04.159 --> 00:03:05.599
+or something like that
+
+00:03:05.599 --> 00:03:08.560
+so if you go to my github repo I have
+
+00:03:08.560 --> 00:03:09.760
+adobe files
+
+00:03:09.760 --> 00:03:12.560
+repo but look at that it's terrible it's
+
+00:03:12.560 --> 00:03:13.840
+super updated
+
+00:03:13.840 --> 00:03:16.800
+so I've been meaning to polish it for
+
+00:03:16.800 --> 00:03:17.519
+like years
+
+00:03:17.519 --> 00:03:20.080
+and I haven't got it so don't look at it
+
+00:03:20.080 --> 00:03:21.760
+my font is actually extremely simple
+
+00:03:21.760 --> 00:03:25.200
+I think it's the pure prompt from uh zsh
+
+00:03:25.200 --> 00:03:26.640
+or fish depending
+
+00:03:26.640 --> 00:03:28.799
+uh and I think I didn't do anything but
+
+00:03:28.799 --> 00:03:30.640
+like maybe tweaking the colors a little
+
+00:03:30.640 --> 00:03:31.360
+bit
+
+00:03:31.360 --> 00:03:33.280
+okay gabriel just sorry to interject if
+
+00:03:33.280 --> 00:03:35.519
+you could just take one more question
+
+00:03:35.519 --> 00:03:37.120
+yes the last question is already the
+
+00:03:37.120 --> 00:03:39.440
+answer which is uh will it work with
+
+00:03:39.440 --> 00:03:42.480
+e max terminal so minus and w and answer
+
+00:03:42.480 --> 00:03:44.480
+yes it works without any problem with
+
+00:03:44.480 --> 00:03:46.239
+imax terminal so you can run a terminal
+
+00:03:46.239 --> 00:03:47.760
+inside image inside of terminal
+
+00:03:47.760 --> 00:03:49.680
+and you can continue paying up as much
+
+00:03:49.680 --> 00:03:51.200
+as you want okay
+
+00:03:51.200 --> 00:03:53.920
+I think that's it explain the question
+
+00:03:53.920 --> 00:03:56.239
+oh sorry thank you
+
+00:03:56.239 --> 00:03:59.760
+thanks for attending this talk
+
+00:03:59.760 --> 00:04:01.519
+well thank you so much for giving it so
+
+00:04:01.519 --> 00:04:03.360
+I'm in back to you
+
+00:04:03.360 --> 00:04:07.280
+you are now unmuted thank you very much
+
+00:04:07.280 --> 00:04:09.519
+to gabrielle for the awesome talk and
+
+00:04:09.519 --> 00:04:11.200
+for taking live questions
+
+00:04:11.200 --> 00:04:14.319
+and also many thanks to leo for getting
+
+00:04:14.319 --> 00:04:15.200
+through to gabriel
+
+00:04:15.200 --> 00:04:18.720
+via phone in the face of gabriel having
+
+00:04:18.720 --> 00:04:20.720
+technical difficulties
+
+00:04:20.720 --> 00:04:24.160
+with using big blue button
diff --git a/2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--grant-shangreaux-autogen.vtt b/2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--grant-shangreaux-autogen.vtt
new file mode 100644
index 00000000..b3feac2d
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--grant-shangreaux-autogen.vtt
@@ -0,0 +1,859 @@
+WEBVTT
+
+00:00:10.480 --> 00:00:11.519
+hello relatives
+
+00:00:11.519 --> 00:00:15.040
+grant shangri is what they call me
+
+00:00:15.040 --> 00:00:18.960
+and all of you I gladly take your hand
+
+00:00:18.960 --> 00:00:22.160
+and shake it um
+
+00:00:22.160 --> 00:00:26.240
+greetings everyone
+
+00:00:26.240 --> 00:00:28.560
+today I'm going to talk about lakota
+
+00:00:28.560 --> 00:00:30.480
+language and Emacs and how
+
+00:00:30.480 --> 00:00:33.680
+free software and Emacs empowered me to
+
+00:00:33.680 --> 00:00:36.000
+write on the computer in the language of
+
+00:00:36.000 --> 00:00:39.520
+my ancestors
+
+00:00:39.520 --> 00:00:42.640
+um start off the look with the story of
+
+00:00:42.640 --> 00:00:45.760
+lakotiappi the lakota language
+
+00:00:45.760 --> 00:00:48.800
+the lakota dakota dialect area
+
+00:00:48.800 --> 00:00:52.160
+for those of you who you don't know
+
+00:00:52.160 --> 00:00:55.600
+the lakota dakota people are also known
+
+00:00:55.600 --> 00:00:56.840
+as the sioux
+
+00:00:56.840 --> 00:00:59.760
+and the tribes cover an
+
+00:00:59.760 --> 00:01:03.120
+area of roughly 10 us states and parts
+
+00:01:03.120 --> 00:01:05.199
+of canada and so this language is
+
+00:01:05.199 --> 00:01:08.479
+spoken over a wide range of of
+
+00:01:08.479 --> 00:01:11.520
+area
+
+00:01:11.520 --> 00:01:14.400
+however the us government policy
+
+00:01:14.400 --> 00:01:16.640
+directly tried to silence this language
+
+00:01:16.640 --> 00:01:18.640
+my father was taken to a boarding school
+
+00:01:18.640 --> 00:01:20.960
+and was punished for speaking
+
+00:01:20.960 --> 00:01:23.280
+his native language and so he didn't
+
+00:01:23.280 --> 00:01:25.119
+teach it to his children
+
+00:01:25.119 --> 00:01:28.880
+several generations of lakota and dakota
+
+00:01:28.880 --> 00:01:29.600
+people
+
+00:01:29.600 --> 00:01:31.600
+and other tribes all over the country
+
+00:01:31.600 --> 00:01:32.640
+lost
+
+00:01:32.640 --> 00:01:34.560
+lost their first language their native
+
+00:01:34.560 --> 00:01:38.320
+language so today only around 2000
+
+00:01:38.320 --> 00:01:41.040
+first first language native speakers are
+
+00:01:41.040 --> 00:01:43.119
+speaking lakota
+
+00:01:43.119 --> 00:01:44.960
+however there's language recovery
+
+00:01:44.960 --> 00:01:47.600
+projects that are empowering
+
+00:01:47.600 --> 00:01:49.759
+second language learners like myself to
+
+00:01:49.759 --> 00:01:51.720
+teach it to the new generation of
+
+00:01:51.720 --> 00:01:54.479
+children um
+
+00:01:54.479 --> 00:01:57.119
+which brings me to my story um I grew up
+
+00:01:57.119 --> 00:01:58.000
+without knowing
+
+00:01:58.000 --> 00:02:00.880
+my heritage um I didn't know who my
+
+00:02:00.880 --> 00:02:01.520
+father was
+
+00:02:01.520 --> 00:02:04.719
+both my parents were white um
+
+00:02:04.719 --> 00:02:07.119
+I discovered my biological family in
+
+00:02:07.119 --> 00:02:08.720
+around 2015
+
+00:02:08.720 --> 00:02:12.160
+was kind of a shock to me up until that
+
+00:02:12.160 --> 00:02:13.840
+point probably the only time I'd heard
+
+00:02:13.840 --> 00:02:15.520
+the lakota language was in
+
+00:02:15.520 --> 00:02:18.720
+the movie dances with wolves possibly
+
+00:02:18.720 --> 00:02:20.720
+some other times
+
+00:02:20.720 --> 00:02:24.160
+around nebraska I'd heard it um but
+
+00:02:24.160 --> 00:02:27.200
+even myself growing up you know pretty
+
+00:02:27.200 --> 00:02:28.319
+close to
+
+00:02:28.319 --> 00:02:30.560
+to lakota people and other native
+
+00:02:30.560 --> 00:02:32.239
+american people
+
+00:02:32.239 --> 00:02:34.560
+american indian people I kind of thought
+
+00:02:34.560 --> 00:02:36.640
+it was just dead I thought the language
+
+00:02:36.640 --> 00:02:39.760
+was not alive anymore um
+
+00:02:39.760 --> 00:02:42.000
+but in 2016 my daughter began her
+
+00:02:42.000 --> 00:02:43.920
+journey into this world and I
+
+00:02:43.920 --> 00:02:46.720
+I was doing a lot of searching to find
+
+00:02:46.720 --> 00:02:48.239
+out like what could I do
+
+00:02:48.239 --> 00:02:50.560
+you know not knowing my family not
+
+00:02:50.560 --> 00:02:51.920
+knowing my culture
+
+00:02:51.920 --> 00:02:54.080
+what could I do to try to bring that
+
+00:02:54.080 --> 00:02:55.280
+into our life
+
+00:02:55.280 --> 00:02:58.640
+um and so I found out about these
+
+00:02:58.640 --> 00:03:00.720
+lakota classes that were happening I
+
+00:03:00.720 --> 00:03:02.720
+went up to standing rock
+
+00:03:02.720 --> 00:03:04.560
+in north dakota and attended the lakota
+
+00:03:04.560 --> 00:03:06.640
+summer institute for three weeks
+
+00:03:06.640 --> 00:03:08.480
+and began my journey to learn the
+
+00:03:08.480 --> 00:03:09.680
+language so I can
+
+00:03:09.680 --> 00:03:13.120
+try to pass it on so
+
+00:03:13.120 --> 00:03:16.560
+this brings us to Emacs
+
+00:03:16.560 --> 00:03:19.200
+I could talk a lot more about my story
+
+00:03:19.200 --> 00:03:20.959
+I'm sure there's a lot to say
+
+00:03:20.959 --> 00:03:24.640
+but we're here to talk about Emacs um
+
+00:03:24.640 --> 00:03:26.319
+I was already a free software user at
+
+00:03:26.319 --> 00:03:29.040
+the time and at the lakota language
+
+00:03:29.040 --> 00:03:31.440
+uh institute they they were they're
+
+00:03:31.440 --> 00:03:33.280
+giving us software there's a dictionary
+
+00:03:33.280 --> 00:03:34.879
+you could get on android
+
+00:03:34.879 --> 00:03:37.360
+um there was a keyboard for android that
+
+00:03:37.360 --> 00:03:38.560
+you could type with
+
+00:03:38.560 --> 00:03:41.760
+they had keyboard input methods for mac
+
+00:03:41.760 --> 00:03:44.959
+and windows but I'm a linux user free
+
+00:03:44.959 --> 00:03:46.720
+software user
+
+00:03:46.720 --> 00:03:49.280
+so I didn't have access to those things
+
+00:03:49.280 --> 00:03:49.760
+as
+
+00:03:49.760 --> 00:03:53.120
+as easily as I could and I do a lot of
+
+00:03:53.120 --> 00:03:55.280
+my thinking and note taking in Emacs and
+
+00:03:55.280 --> 00:03:57.280
+in org mode
+
+00:03:57.280 --> 00:04:01.200
+and so being able to to write this
+
+00:04:01.200 --> 00:04:04.640
+to to um to write things down to type
+
+00:04:04.640 --> 00:04:07.680
+on my own computer uh was was pretty
+
+00:04:07.680 --> 00:04:08.720
+important to me
+
+00:04:08.720 --> 00:04:11.360
+and I wasn't much of an emax hacker yet
+
+00:04:11.360 --> 00:04:12.799
+at the time I had
+
+00:04:12.799 --> 00:04:15.519
+barely done anything mostly just you
+
+00:04:15.519 --> 00:04:16.720
+know hacked on my
+
+00:04:16.720 --> 00:04:20.479
+config file but this was a real
+
+00:04:20.479 --> 00:04:23.600
+chance for me to experience
+
+00:04:23.600 --> 00:04:27.280
+the the benefits of free software first
+
+00:04:27.280 --> 00:04:30.400
+hand and not just to benefit myself but
+
+00:04:30.400 --> 00:04:34.080
+to potentially benefit
+
+00:04:34.080 --> 00:04:36.080
+everyone anyone interested in learning
+
+00:04:36.080 --> 00:04:39.120
+this language
+
+00:04:39.120 --> 00:04:42.880
+so Emacs and
+
+00:04:42.880 --> 00:04:44.880
+that free software philosophy really
+
+00:04:44.880 --> 00:04:47.520
+empowered me so I began digging in
+
+00:04:47.520 --> 00:04:49.840
+um I looked I began reading the the
+
+00:04:49.840 --> 00:04:51.520
+manual more closely
+
+00:04:51.520 --> 00:04:53.680
+as an american I'm I'm sad to say
+
+00:04:53.680 --> 00:04:55.440
+there's not a lot of
+
+00:04:55.440 --> 00:04:58.479
+other languages spoken or written where
+
+00:04:58.479 --> 00:05:00.160
+I'm from
+
+00:05:00.160 --> 00:05:02.240
+so it's not common that I that I have to
+
+00:05:02.240 --> 00:05:04.720
+think about this with computers
+
+00:05:04.720 --> 00:05:07.600
+I know international people you know
+
+00:05:07.600 --> 00:05:09.120
+have had to come up with
+
+00:05:09.120 --> 00:05:11.280
+with interesting ways to to enter their
+
+00:05:11.280 --> 00:05:12.160
+text
+
+00:05:12.160 --> 00:05:14.800
+and Emacs is probably a pioneer in that
+
+00:05:14.800 --> 00:05:16.320
+I I'd like to know more about the
+
+00:05:16.320 --> 00:05:17.520
+history of this but
+
+00:05:17.520 --> 00:05:19.840
+there's a whole section in the manual on
+
+00:05:19.840 --> 00:05:22.160
+international Emacs
+
+00:05:22.160 --> 00:05:23.840
+and I began reading this and I was
+
+00:05:23.840 --> 00:05:25.440
+talking about
+
+00:05:25.440 --> 00:05:28.000
+different input methods and and how many
+
+00:05:28.000 --> 00:05:29.759
+different languages were supported and
+
+00:05:29.759 --> 00:05:31.680
+how you could enter the text and how it
+
+00:05:31.680 --> 00:05:33.680
+supports the different characters and so
+
+00:05:33.680 --> 00:05:34.560
+on
+
+00:05:34.560 --> 00:05:36.639
+um I even noticed a few languages
+
+00:05:36.639 --> 00:05:38.880
+support several input methods
+
+00:05:38.880 --> 00:05:41.840
+that became important for me later on as
+
+00:05:41.840 --> 00:05:43.440
+I was working on this
+
+00:05:43.440 --> 00:05:45.280
+many many languages are already
+
+00:05:45.280 --> 00:05:46.720
+supported so
+
+00:05:46.720 --> 00:05:48.479
+those of you who haven't looked into
+
+00:05:48.479 --> 00:05:50.080
+this yet if you press
+
+00:05:50.080 --> 00:05:52.639
+control backslash it will open up a
+
+00:05:52.639 --> 00:05:53.680
+selection menu
+
+00:05:53.680 --> 00:05:57.039
+for you to to select um
+
+00:05:57.039 --> 00:05:59.120
+your input method and you can there's
+
+00:05:59.120 --> 00:06:01.440
+207 listed here
+
+00:06:01.440 --> 00:06:03.120
+that's including the two that I've
+
+00:06:03.120 --> 00:06:04.639
+contributed
+
+00:06:04.639 --> 00:06:09.199
+um so 205 on on a vanilla Emacs
+
+00:06:09.199 --> 00:06:11.120
+so that's a lot of languages supported
+
+00:06:11.120 --> 00:06:13.840
+by emac Emacs but there's so many more
+
+00:06:13.840 --> 00:06:17.440
+that could be um and since Emacs is free
+
+00:06:17.440 --> 00:06:19.280
+software and it is what it is I knew
+
+00:06:19.280 --> 00:06:20.000
+that defining
+
+00:06:20.000 --> 00:06:22.639
+a new input method was surely possible
+
+00:06:22.639 --> 00:06:23.039
+um
+
+00:06:23.039 --> 00:06:25.440
+unfortunately the the manual didn't
+
+00:06:25.440 --> 00:06:27.120
+describe it directly or at least I
+
+00:06:27.120 --> 00:06:28.800
+didn't pick it up so
+
+00:06:28.800 --> 00:06:30.960
+um you know the new emax hacker that I
+
+00:06:30.960 --> 00:06:32.319
+was I
+
+00:06:32.319 --> 00:06:34.880
+I timidly dove down into the source code
+
+00:06:34.880 --> 00:06:37.360
+and discovered the quail package
+
+00:06:37.360 --> 00:06:40.479
+um so back in the day apparently there
+
+00:06:40.479 --> 00:06:40.960
+was
+
+00:06:40.960 --> 00:06:44.560
+mule which is like the
+
+00:06:44.560 --> 00:06:47.360
+multi I don't I don't know it stood for
+
+00:06:47.360 --> 00:06:48.000
+something about
+
+00:06:48.000 --> 00:06:50.160
+language environments and and it has
+
+00:06:50.160 --> 00:06:51.759
+evolved
+
+00:06:51.759 --> 00:06:54.960
+and at some point um some japanese
+
+00:06:54.960 --> 00:06:58.000
+uh coders created an input method called
+
+00:06:58.000 --> 00:06:59.039
+tamago
+
+00:06:59.039 --> 00:07:03.599
+which means egg in japanese and uh
+
+00:07:03.599 --> 00:07:06.720
+tamago evolved into quail and they
+
+00:07:06.720 --> 00:07:08.800
+in the comments you can see they talk
+
+00:07:08.800 --> 00:07:10.720
+about how the quail egg is eaten in
+
+00:07:10.720 --> 00:07:12.800
+japan it's a smaller thing and
+
+00:07:12.800 --> 00:07:15.280
+the quail mode is like a nicer version
+
+00:07:15.280 --> 00:07:16.960
+of tamago I guess and
+
+00:07:16.960 --> 00:07:19.039
+there's a pun saying they hoped it would
+
+00:07:19.039 --> 00:07:22.639
+egg people on to create more input modes
+
+00:07:22.639 --> 00:07:26.240
+and quail is quite nice I looked into it
+
+00:07:26.240 --> 00:07:28.479
+and there's basically two things you use
+
+00:07:28.479 --> 00:07:30.720
+quail defined package and quail define
+
+00:07:30.720 --> 00:07:32.240
+rules
+
+00:07:32.240 --> 00:07:36.080
+so quail defined package
+
+00:07:36.080 --> 00:07:38.960
+you can see here is a function it's
+
+00:07:38.960 --> 00:07:41.759
+probably a macro that takes a name
+
+00:07:41.759 --> 00:07:43.599
+a language a title and some optional
+
+00:07:43.599 --> 00:07:44.879
+stuff which
+
+00:07:44.879 --> 00:07:48.319
+I didn't really have to deal with
+
+00:07:48.319 --> 00:07:50.479
+define name is a new quail package for
+
+00:07:50.479 --> 00:07:52.400
+input language title is a string to be
+
+00:07:52.400 --> 00:07:52.879
+split
+
+00:07:52.879 --> 00:07:54.400
+at the mode line to indicate this
+
+00:07:54.400 --> 00:07:57.120
+package
+
+00:07:57.120 --> 00:08:00.879
+so I began trying to do lakota input now
+
+00:08:00.879 --> 00:08:03.039
+this is a whole thing on its own because
+
+00:08:03.039 --> 00:08:04.240
+the lakota language
+
+00:08:04.240 --> 00:08:07.680
+was never written um
+
+00:08:07.680 --> 00:08:10.800
+pre-contact and post contact
+
+00:08:10.800 --> 00:08:12.879
+like there's several attempts at writing
+
+00:08:12.879 --> 00:08:14.800
+it and different orthographies
+
+00:08:14.800 --> 00:08:16.960
+and there's drama around all of this
+
+00:08:16.960 --> 00:08:19.360
+stuff
+
+00:08:19.360 --> 00:08:21.120
+it's pretty common to have drama going
+
+00:08:21.120 --> 00:08:24.160
+on in any american indian stuff
+
+00:08:24.160 --> 00:08:26.560
+going on so as I was doing this I
+
+00:08:26.560 --> 00:08:28.479
+started with the suggested lakota
+
+00:08:28.479 --> 00:08:29.680
+orthography which
+
+00:08:29.680 --> 00:08:32.880
+is actually called by its authors the
+
+00:08:32.880 --> 00:08:35.680
+the standard lakota orthography but its
+
+00:08:35.680 --> 00:08:36.959
+authors are
+
+00:08:36.959 --> 00:08:40.880
+um are european
+
+00:08:40.880 --> 00:08:43.039
+um the main author is a man named jan
+
+00:08:43.039 --> 00:08:45.040
+ulrich and I appreciate all his work and
+
+00:08:45.040 --> 00:08:46.160
+I'm grateful for
+
+00:08:46.160 --> 00:08:49.360
+the materials he's made available but um
+
+00:08:49.360 --> 00:08:51.040
+it's a little bit problematic because
+
+00:08:51.040 --> 00:08:54.160
+it's not an orthography created by
+
+00:08:54.160 --> 00:08:56.720
+our people by lakota people so there's
+
+00:08:56.720 --> 00:08:57.920
+another one called the white hat
+
+00:08:57.920 --> 00:09:00.080
+orthography which is created by albert
+
+00:09:00.080 --> 00:09:01.839
+whitehat who's a teacher
+
+00:09:01.839 --> 00:09:04.480
+um from the chichanguk tribe so I
+
+00:09:04.480 --> 00:09:05.360
+created two
+
+00:09:05.360 --> 00:09:08.640
+and thankfully emax lets me do that so
+
+00:09:08.640 --> 00:09:10.720
+it's pretty simple quail defined package
+
+00:09:10.720 --> 00:09:11.680
+I just
+
+00:09:11.680 --> 00:09:13.279
+say the package I want and then all
+
+00:09:13.279 --> 00:09:15.360
+these nils and t's for options I don't
+
+00:09:15.360 --> 00:09:16.480
+actually know what they mean but it
+
+00:09:16.480 --> 00:09:18.240
+works
+
+00:09:18.240 --> 00:09:20.240
+I could look it up and then quail define
+
+00:09:20.240 --> 00:09:22.640
+rules just defines mappings from ascii
+
+00:09:22.640 --> 00:09:23.600
+keys to
+
+00:09:23.600 --> 00:09:26.640
+the the text you want to put in so
+
+00:09:26.640 --> 00:09:29.680
+for this one there's a nasal n and then
+
+00:09:29.680 --> 00:09:33.600
+a dot and a macron like a wedge shape
+
+00:09:33.600 --> 00:09:36.640
+for marking up the consonants
+
+00:09:36.640 --> 00:09:39.839
+so that one's pretty easy and then the
+
+00:09:39.839 --> 00:09:41.760
+suggested lakota orthography is a little
+
+00:09:41.760 --> 00:09:43.040
+bit more difficult
+
+00:09:43.040 --> 00:09:45.600
+but still pretty easy I just map a
+
+00:09:45.600 --> 00:09:46.800
+sequence of keys
+
+00:09:46.800 --> 00:09:49.760
+a followed by the apostrophe makes the
+
+00:09:49.760 --> 00:09:51.760
+accented vowels so all of those
+
+00:09:51.760 --> 00:09:53.519
+and then again we have the hot checks
+
+00:09:53.519 --> 00:09:55.839
+for the guttural sounds of the language
+
+00:09:55.839 --> 00:09:58.399
+and the nasal end so that's it basically
+
+00:09:58.399 --> 00:09:59.120
+these two
+
+00:09:59.120 --> 00:10:02.480
+definitions allow me to type
+
+00:10:02.480 --> 00:10:06.560
+lakota language in Emacs um
+
+00:10:06.560 --> 00:10:09.279
+and it's great it works great publishing
+
+00:10:09.279 --> 00:10:09.920
+it
+
+00:10:09.920 --> 00:10:11.760
+is another problematic thing I wanted to
+
+00:10:11.760 --> 00:10:13.839
+use free software to do that
+
+00:10:13.839 --> 00:10:16.079
+so the first thing I did was I I posted
+
+00:10:16.079 --> 00:10:17.600
+on sourcehut
+
+00:10:17.600 --> 00:10:19.440
+which is great it's a good alternative
+
+00:10:19.440 --> 00:10:20.959
+for a git forge
+
+00:10:20.959 --> 00:10:22.880
+and I got it published on melba so the
+
+00:10:22.880 --> 00:10:24.000
+lakota input
+
+00:10:24.000 --> 00:10:25.760
+package is available if you'd like to
+
+00:10:25.760 --> 00:10:27.760
+try it out
+
+00:10:27.760 --> 00:10:29.839
+and bandali one of our hosts for the
+
+00:10:29.839 --> 00:10:31.680
+conference is helping me now
+
+00:10:31.680 --> 00:10:33.200
+through the process of committing the
+
+00:10:33.200 --> 00:10:35.279
+code to Emacs
+
+00:10:35.279 --> 00:10:37.120
+because I would like to do that I would
+
+00:10:37.120 --> 00:10:39.279
+like it to be available to everyone
+
+00:10:39.279 --> 00:10:41.680
+through Emacs itself so that anyone who
+
+00:10:41.680 --> 00:10:43.279
+wants to use it just has to download
+
+00:10:43.279 --> 00:10:43.920
+Emacs
+
+00:10:43.920 --> 00:10:46.240
+and there you go you can type lakota
+
+00:10:46.240 --> 00:10:47.120
+language
+
+00:10:47.120 --> 00:10:50.160
+so uh pila maya thank you
+
+00:10:50.160 --> 00:10:53.279
+all for listening and
+
+00:10:53.279 --> 00:10:55.920
+I hope to see you around in our Emacs
+
+00:10:55.920 --> 00:10:58.320
+community
+
+00:10:58.320 --> 00:11:04.720
+uh day
diff --git a/2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--questions--grant-shangreaux-autogen.vtt b/2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--questions--grant-shangreaux-autogen.vtt
new file mode 100644
index 00000000..164d8d8d
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--questions--grant-shangreaux-autogen.vtt
@@ -0,0 +1,412 @@
+WEBVTT
+
+00:00:05.120 --> 00:00:05.680
+hello
+
+00:00:05.680 --> 00:00:10.080
+can you hear me yes I can awesome
+
+00:00:10.080 --> 00:00:12.400
+all right so we have a couple minutes
+
+00:00:12.400 --> 00:00:13.200
+and
+
+00:00:13.200 --> 00:00:15.200
+uh it seems a couple questions as well
+
+00:00:15.200 --> 00:00:17.680
+so take it away
+
+00:00:17.680 --> 00:00:20.000
+okay I won't share my screen unless
+
+00:00:20.000 --> 00:00:22.640
+needed um
+
+00:00:22.640 --> 00:00:25.439
+looks like question one advantages
+
+00:00:25.439 --> 00:00:27.599
+advantages of using Emacs input methods
+
+00:00:27.599 --> 00:00:31.119
+over something like x compose
+
+00:00:31.119 --> 00:00:32.559
+well there's a there's a couple things
+
+00:00:32.559 --> 00:00:34.320
+there one is
+
+00:00:34.320 --> 00:00:37.360
+um Emacs is cross platform so
+
+00:00:37.360 --> 00:00:39.520
+writing this input mode for Emacs means
+
+00:00:39.520 --> 00:00:41.520
+if I do end up using
+
+00:00:41.520 --> 00:00:44.559
+a non-free operating system I can still
+
+00:00:44.559 --> 00:00:46.480
+use Emacs I can still type
+
+00:00:46.480 --> 00:00:49.920
+in the way that I would like to um
+
+00:00:49.920 --> 00:00:52.800
+I did look in I don't I actually don't
+
+00:00:52.800 --> 00:00:54.640
+know what x compose is
+
+00:00:54.640 --> 00:00:56.719
+I tried looking for it on my system I
+
+00:00:56.719 --> 00:00:59.680
+could not find it anywhere
+
+00:00:59.680 --> 00:01:02.399
+I did actually go and figure out how to
+
+00:01:02.399 --> 00:01:02.879
+write a
+
+00:01:02.879 --> 00:01:06.080
+x11 keyboard layout so that's also
+
+00:01:06.080 --> 00:01:07.040
+available
+
+00:01:07.040 --> 00:01:09.840
+in the repository that has the Emacs
+
+00:01:09.840 --> 00:01:11.920
+package as well
+
+00:01:11.920 --> 00:01:14.720
+and it is handy to be able to have that
+
+00:01:14.720 --> 00:01:15.920
+so I can type in
+
+00:01:15.920 --> 00:01:21.200
+other applications besides Emacs
+
+00:01:21.200 --> 00:01:24.479
+but the main advantages for Emacs was it
+
+00:01:24.479 --> 00:01:25.119
+was actually
+
+00:01:25.119 --> 00:01:27.439
+much easier to discover and much easier
+
+00:01:27.439 --> 00:01:28.560
+to
+
+00:01:28.560 --> 00:01:31.439
+manipulate and get feedback you know as
+
+00:01:31.439 --> 00:01:33.040
+I was developing it like I could just
+
+00:01:33.040 --> 00:01:35.360
+evaluate the coil package
+
+00:01:35.360 --> 00:01:37.200
+try it out and see if it works when I
+
+00:01:37.200 --> 00:01:39.680
+was trying to do the x11 inputs I'd have
+
+00:01:39.680 --> 00:01:40.560
+to log out
+
+00:01:40.560 --> 00:01:42.799
+read and and relog in again to get
+
+00:01:42.799 --> 00:01:43.759
+things read and
+
+00:01:43.759 --> 00:01:46.240
+it was you know it doesn't have that
+
+00:01:46.240 --> 00:01:46.799
+beautiful
+
+00:01:46.799 --> 00:01:50.560
+interactivity the way that Emacs does so
+
+00:01:50.560 --> 00:01:53.040
+for me it was a good place to start um
+
+00:01:53.040 --> 00:01:54.960
+especially because
+
+00:01:54.960 --> 00:01:56.640
+I had never done anything like this
+
+00:01:56.640 --> 00:01:58.079
+before like developing
+
+00:01:58.079 --> 00:02:00.079
+something that felt low level you know
+
+00:02:00.079 --> 00:02:04.320
+like a keyboard input
+
+00:02:04.320 --> 00:02:06.399
+I hope that answers your question
+
+00:02:06.399 --> 00:02:08.479
+question two can you give us a demo of
+
+00:02:08.479 --> 00:02:09.280
+you typing in
+
+00:02:09.280 --> 00:02:12.400
+either lakota and input method sure
+
+00:02:12.400 --> 00:02:19.599
+um share my screen now
+
+00:02:19.599 --> 00:02:21.520
+of course I always have to select which
+
+00:02:21.520 --> 00:02:32.239
+one
+
+00:02:32.239 --> 00:02:36.560
+okay so control backslash opens the
+
+00:02:36.560 --> 00:02:37.840
+input modes
+
+00:02:37.840 --> 00:02:40.000
+although when you've selected one you
+
+00:02:40.000 --> 00:02:41.920
+have it already so
+
+00:02:41.920 --> 00:02:45.680
+uh yeah wash day
+
+00:02:45.680 --> 00:02:48.319
+that's it is good washed it so this is
+
+00:02:48.319 --> 00:02:50.000
+the suggested lakota
+
+00:02:50.000 --> 00:02:53.360
+orthography or otherwise known as the
+
+00:02:53.360 --> 00:02:56.560
+standard lakota orthography
+
+00:02:56.560 --> 00:02:58.800
+another benefit of doing it in Emacs is
+
+00:02:58.800 --> 00:03:00.640
+that I now get
+
+00:03:00.640 --> 00:03:06.800
+completion on lakota words so
+
+00:03:06.800 --> 00:03:08.800
+so I'm you know it's a second language
+
+00:03:08.800 --> 00:03:10.560
+for me and as I'm trying to learn it
+
+00:03:10.560 --> 00:03:11.440
+it's actually
+
+00:03:11.440 --> 00:03:13.760
+quite useful to have company mode as a
+
+00:03:13.760 --> 00:03:15.599
+bonus um
+
+00:03:15.599 --> 00:03:19.680
+for typing things
+
+00:03:19.680 --> 00:03:22.239
+I can show the other orthography so to
+
+00:03:22.239 --> 00:03:23.599
+to get another one you do
+
+00:03:23.599 --> 00:03:27.200
+the universal input control u backslash
+
+00:03:27.200 --> 00:03:30.560
+and I can try the white hat orthography
+
+00:03:30.560 --> 00:03:36.239
+oh yeah lost
+
+00:03:36.239 --> 00:03:39.760
+what's the command for that you are now
+
+00:03:39.760 --> 00:03:41.440
+unmuted
+
+00:03:41.440 --> 00:03:44.720
+yeah okay you are now muted
+
+00:03:44.720 --> 00:03:48.000
+thank you
+
+00:03:48.000 --> 00:03:52.080
+you are now unmuted you are now muted
+
+00:03:52.080 --> 00:03:55.680
+oops not quite as slick as that other
+
+00:03:55.680 --> 00:03:58.879
+demo we saw the other day
+
+00:03:58.879 --> 00:04:02.799
+okay so control u control backslash I
+
+00:04:02.799 --> 00:04:04.239
+can select a different
+
+00:04:04.239 --> 00:04:07.200
+input method um from the default so if I
+
+00:04:07.200 --> 00:04:10.560
+select white hat I can type
+
+00:04:10.560 --> 00:04:14.480
+wash day like that
+
+00:04:14.480 --> 00:04:18.000
+so it's a different orthography here um
+
+00:04:18.000 --> 00:04:19.919
+I won't go too deeply into that it's
+
+00:04:19.919 --> 00:04:21.440
+hard to think and talk and type all at
+
+00:04:21.440 --> 00:04:23.120
+the same time
+
+00:04:23.120 --> 00:04:26.320
+um I hope that's good
+
+00:04:26.320 --> 00:04:28.560
+I'm happy to do more maybe I'll put up a
+
+00:04:28.560 --> 00:04:31.840
+video of of demonstrating that sometimes
+
+00:04:31.840 --> 00:04:36.479
+why did I just go ahead
+
+00:04:36.479 --> 00:04:39.520
+um time about for like one more question
+
+00:04:39.520 --> 00:04:42.880
+okay on live yeah thank you
+
+00:04:42.880 --> 00:04:45.280
+um well real quick did I write the
+
+00:04:45.280 --> 00:04:46.240
+company back end
+
+00:04:46.240 --> 00:04:48.880
+no that's just the automatic company
+
+00:04:48.880 --> 00:04:50.639
+completion based on other things I've
+
+00:04:50.639 --> 00:04:51.280
+typed
+
+00:04:51.280 --> 00:04:55.440
+why did I decide on the the input method
+
+00:04:55.440 --> 00:04:58.080
+that's a good question um I just did it
+
+00:04:58.080 --> 00:04:58.880
+based on
+
+00:04:58.880 --> 00:05:03.120
+my experience um in the x input mode you
+
+00:05:03.120 --> 00:05:04.000
+type it first
+
+00:05:04.000 --> 00:05:06.160
+and honestly I would love any input on
+
+00:05:06.160 --> 00:05:07.120
+what's more
+
+00:05:07.120 --> 00:05:09.280
+usual for these type of combining
+
+00:05:09.280 --> 00:05:10.960
+letters
+
+00:05:10.960 --> 00:05:13.919
+and really what I would like to do is
+
+00:05:13.919 --> 00:05:15.360
+kind of confer with other
+
+00:05:15.360 --> 00:05:17.600
+people from the tribe and talk to elders
+
+00:05:17.600 --> 00:05:19.440
+and see
+
+00:05:19.440 --> 00:05:21.440
+what feels right what what is the best
+
+00:05:21.440 --> 00:05:23.600
+way to go about this
+
+00:05:23.600 --> 00:05:24.800
+I don't think that it should be an
+
+00:05:24.800 --> 00:05:26.960
+individual decision and in this case it
+
+00:05:26.960 --> 00:05:27.919
+is because
+
+00:05:27.919 --> 00:05:30.880
+I created it for myself but now that
+
+00:05:30.880 --> 00:05:32.320
+I've released it to the world I think
+
+00:05:32.320 --> 00:05:34.639
+there's more to think about
+
+00:05:34.639 --> 00:05:37.680
+okay I guess I have to go now so we can
+
+00:05:37.680 --> 00:05:38.800
+get to the next talk
+
+00:05:38.800 --> 00:05:42.320
+thank you for listening okay
+
+00:05:42.320 --> 00:05:44.320
+thank you very much grant for your
+
+00:05:44.320 --> 00:05:45.759
+awesome talk and for
+
+00:05:45.759 --> 00:05:50.720
+the questions and answers
diff --git a/2020/subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.vtt b/2020/subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.vtt
new file mode 100644
index 00000000..9f4d0e06
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.vtt
@@ -0,0 +1,2215 @@
+WEBVTT
+
+00:00:01.839 --> 00:00:04.160
+hello EmacsConf
+
+00:00:04.160 --> 00:00:05.759
+thanks very much first of all to the
+
+00:00:05.759 --> 00:00:07.200
+organizers of the conference
+
+00:00:07.200 --> 00:00:09.440
+and to the audience who I hope is out
+
+00:00:09.440 --> 00:00:10.480
+there somewhere
+
+00:00:10.480 --> 00:00:12.080
+uh for giving me this chance to talk
+
+00:00:12.080 --> 00:00:14.240
+about Emacs and some of my uh
+
+00:00:14.240 --> 00:00:16.560
+my poking around with Emacs lisp my name
+
+00:00:16.560 --> 00:00:18.480
+is eric abrahamson I'm not
+
+00:00:18.480 --> 00:00:20.960
+a professional programmer but I use
+
+00:00:20.960 --> 00:00:21.920
+Emacs all day
+
+00:00:21.920 --> 00:00:24.800
+every day for writing for translating
+
+00:00:24.800 --> 00:00:26.160
+for project management
+
+00:00:26.160 --> 00:00:28.160
+and most importantly for email which
+
+00:00:28.160 --> 00:00:29.199
+will be the
+
+00:00:29.199 --> 00:00:32.480
+subject of my talk today so I'm talking
+
+00:00:32.480 --> 00:00:35.440
+about object-oriented code in Emacs
+
+00:00:35.440 --> 00:00:38.320
+uh most famous possibly oldest
+
+00:00:38.320 --> 00:00:40.160
+definitely most notorious news reader
+
+00:00:40.160 --> 00:00:41.760
+slash Emacs client
+
+00:00:41.760 --> 00:00:44.320
+email client so in particular object
+
+00:00:44.320 --> 00:00:45.440
+oriented code
+
+00:00:45.440 --> 00:00:50.239
+in news why object-oriented code
+
+00:00:50.239 --> 00:00:51.920
+the way news works is it started off as
+
+00:00:51.920 --> 00:00:53.600
+a news reader so for access
+
+00:00:53.600 --> 00:00:57.039
+accessing nntp servers and later on grew
+
+00:00:57.039 --> 00:00:59.120
+a whole bunch of new functionality as a
+
+00:00:59.120 --> 00:01:01.039
+mail client so it can talk to imap
+
+00:01:01.039 --> 00:01:02.079
+servers
+
+00:01:02.079 --> 00:01:04.799
+mail dealer directories uh folders on
+
+00:01:04.799 --> 00:01:06.640
+your file system all kinds of stuff
+
+00:01:06.640 --> 00:01:08.400
+but it presents a unified interface to
+
+00:01:08.400 --> 00:01:09.760
+all those things so it's basically
+
+00:01:09.760 --> 00:01:11.040
+polymorphism
+
+00:01:11.040 --> 00:01:14.000
+one of the the basic fundamental
+
+00:01:14.000 --> 00:01:16.400
+principles of object oriented code so
+
+00:01:16.400 --> 00:01:18.720
+it's a good fit second reason is it
+
+00:01:18.720 --> 00:01:19.920
+already is
+
+00:01:19.920 --> 00:01:22.880
+object oriented and I'll get into what
+
+00:01:22.880 --> 00:01:23.759
+that means
+
+00:01:23.759 --> 00:01:27.280
+in a second so
+
+00:01:27.280 --> 00:01:28.640
+the background that you should know is
+
+00:01:28.640 --> 00:01:30.640
+that most of this code was written in
+
+00:01:30.640 --> 00:01:32.560
+the 90s
+
+00:01:32.560 --> 00:01:34.880
+Emacs lisp has only grown sort of
+
+00:01:34.880 --> 00:01:36.159
+official
+
+00:01:36.159 --> 00:01:38.640
+object orientation support libraries
+
+00:01:38.640 --> 00:01:41.200
+over the past 10 years or so
+
+00:01:41.200 --> 00:01:43.840
+from about 2010 to the present so what
+
+00:01:43.840 --> 00:01:44.799
+does
+
+00:01:44.799 --> 00:01:48.640
+news do so the basics of
+
+00:01:48.640 --> 00:01:50.560
+object orientation in most languages are
+
+00:01:50.560 --> 00:01:52.240
+you you define
+
+00:01:52.240 --> 00:01:53.759
+a class of some sort and then you
+
+00:01:53.759 --> 00:01:55.840
+instantiate that class and these
+
+00:01:55.840 --> 00:01:58.079
+class instances have two things they
+
+00:01:58.079 --> 00:02:00.320
+have data attributes or
+
+00:02:00.320 --> 00:02:01.759
+slots or members or whatever you're
+
+00:02:01.759 --> 00:02:04.799
+going to call them and they have
+
+00:02:04.799 --> 00:02:07.280
+methods which operate on individual
+
+00:02:07.280 --> 00:02:08.399
+instances
+
+00:02:08.399 --> 00:02:11.120
+so you could say that you create or
+
+00:02:11.120 --> 00:02:12.879
+instantiate an instance of a class in
+
+00:02:12.879 --> 00:02:13.920
+that instance
+
+00:02:13.920 --> 00:02:16.239
+owns two things that owns its set of
+
+00:02:16.239 --> 00:02:17.120
+attributes
+
+00:02:17.120 --> 00:02:20.239
+and it owns some methods which
+
+00:02:20.239 --> 00:02:23.280
+also work on the on the instance
+
+00:02:23.280 --> 00:02:26.720
+so both in nurse's existing code and in
+
+00:02:26.720 --> 00:02:29.040
+the more standard object oriented Emacs
+
+00:02:29.040 --> 00:02:30.080
+lisp libraries
+
+00:02:30.080 --> 00:02:32.480
+this relationship is turned on its head
+
+00:02:32.480 --> 00:02:34.080
+a little bit
+
+00:02:34.080 --> 00:02:37.599
+in that data slots and
+
+00:02:37.599 --> 00:02:40.239
+uh and instance methods are defined
+
+00:02:40.239 --> 00:02:41.360
+outside of the
+
+00:02:41.360 --> 00:02:42.959
+class or the instances themselves so
+
+00:02:42.959 --> 00:02:45.040
+they are top level definitions
+
+00:02:45.040 --> 00:02:46.879
+so we'll get to what that means in the
+
+00:02:46.879 --> 00:02:48.319
+in the newer libraries um
+
+00:02:48.319 --> 00:02:49.840
+in a bit but uh first I want to talk
+
+00:02:49.840 --> 00:02:51.760
+about how news does this and in order to
+
+00:02:51.760 --> 00:02:54.319
+do that we are going to go deep into
+
+00:02:54.319 --> 00:02:57.440
+the darkest corner of the new co source
+
+00:02:57.440 --> 00:02:59.879
+code tree to a library called
+
+00:02:59.879 --> 00:03:02.879
+nno.l very cryptically
+
+00:03:02.879 --> 00:03:05.040
+titled uh library and when we open it up
+
+00:03:05.040 --> 00:03:06.800
+we find
+
+00:03:06.800 --> 00:03:09.519
+a library with no code comments and
+
+00:03:09.519 --> 00:03:11.040
+almost no doc strings
+
+00:03:11.040 --> 00:03:12.800
+almost as if lars was a little ashamed
+
+00:03:12.800 --> 00:03:14.159
+not ashamed but knew he was doing
+
+00:03:14.159 --> 00:03:16.000
+something a little bit crazy
+
+00:03:16.000 --> 00:03:19.040
+and didn't want anyone to see so
+
+00:03:19.040 --> 00:03:21.040
+this file contains the the object
+
+00:03:21.040 --> 00:03:22.400
+oriented mechanism
+
+00:03:22.400 --> 00:03:24.480
+whereby you can define different kinds
+
+00:03:24.480 --> 00:03:25.760
+of back ends for news
+
+00:03:25.760 --> 00:03:27.280
+and then those back ends can be
+
+00:03:27.280 --> 00:03:29.760
+instantiated as individual
+
+00:03:29.760 --> 00:03:32.480
+servers and as you define these backends
+
+00:03:32.480 --> 00:03:33.360
+you're supposed to use
+
+00:03:33.360 --> 00:03:36.000
+two macros which you can see here one is
+
+00:03:36.000 --> 00:03:36.640
+called def
+
+00:03:36.640 --> 00:03:39.599
+vu and one is called defu and if you
+
+00:03:39.599 --> 00:03:41.280
+look at the definitions the definitions
+
+00:03:41.280 --> 00:03:43.280
+look pretty simple here def vu basically
+
+00:03:43.280 --> 00:03:45.440
+turns into a def var
+
+00:03:45.440 --> 00:03:49.040
+and foo turns into a defund
+
+00:03:49.040 --> 00:03:52.239
+and along with those basic definitions
+
+00:03:52.239 --> 00:03:55.760
+the library also does some registration
+
+00:03:55.760 --> 00:03:58.720
+memoization caching of those variables
+
+00:03:58.720 --> 00:04:00.080
+it saves them in the structure
+
+00:04:00.080 --> 00:04:01.840
+for later use so that we know that those
+
+00:04:01.840 --> 00:04:03.360
+are meant to be
+
+00:04:03.360 --> 00:04:05.280
+uh attributes and methods that are used
+
+00:04:05.280 --> 00:04:06.640
+with instances
+
+00:04:06.640 --> 00:04:08.000
+with server instances but you can see
+
+00:04:08.000 --> 00:04:09.280
+that there's no server instance
+
+00:04:09.280 --> 00:04:10.560
+definition here there's no
+
+00:04:10.560 --> 00:04:13.200
+like no nothing these are top level
+
+00:04:13.200 --> 00:04:14.239
+these are top level
+
+00:04:14.239 --> 00:04:18.160
+definitions so really data attributes
+
+00:04:18.160 --> 00:04:18.639
+for
+
+00:04:18.639 --> 00:04:22.000
+new servers and
+
+00:04:22.000 --> 00:04:23.840
+methods or functions that operate on
+
+00:04:23.840 --> 00:04:25.440
+those instances are completely
+
+00:04:25.440 --> 00:04:28.400
+separate mechanisms they don't really
+
+00:04:28.400 --> 00:04:29.600
+have anything to do with each other they
+
+00:04:29.600 --> 00:04:31.680
+don't belong to the same data structures
+
+00:04:31.680 --> 00:04:37.120
+so how do they work follow me
+
+00:04:37.120 --> 00:04:39.520
+aka methods and attributes these are all
+
+00:04:39.520 --> 00:04:41.360
+the things I just said
+
+00:04:41.360 --> 00:04:44.479
+so when you define a
+
+00:04:44.479 --> 00:04:48.560
+a backend type
+
+00:04:48.560 --> 00:04:51.199
+in noose what you get is this a
+
+00:04:51.199 --> 00:04:52.400
+definition a list
+
+00:04:52.400 --> 00:04:54.080
+and it'll say there is such a back end
+
+00:04:54.080 --> 00:04:55.520
+as nnml
+
+00:04:55.520 --> 00:04:58.880
+and these are its uh data attributes
+
+00:04:58.880 --> 00:04:59.520
+that any
+
+00:04:59.520 --> 00:05:01.840
+given instance can have and then these
+
+00:05:01.840 --> 00:05:02.960
+are
+
+00:05:02.960 --> 00:05:04.960
+the functions or methods that are
+
+00:05:04.960 --> 00:05:06.880
+defined to operate on
+
+00:05:06.880 --> 00:05:08.960
+an instance of this backend so a server
+
+00:05:08.960 --> 00:05:11.440
+that belongs to the nnml
+
+00:05:11.440 --> 00:05:13.360
+backend so at least we have this data
+
+00:05:13.360 --> 00:05:15.120
+here so that's that's handy we don't you
+
+00:05:15.120 --> 00:05:16.880
+don't really touch that that's like very
+
+00:05:16.880 --> 00:05:18.000
+very very deep
+
+00:05:18.000 --> 00:05:20.560
+um use code that doesn't really come up
+
+00:05:20.560 --> 00:05:22.560
+even as a
+
+00:05:22.560 --> 00:05:25.280
+even as a bug squasher or whatever we
+
+00:05:25.280 --> 00:05:26.479
+don't touch that very often but there
+
+00:05:26.479 --> 00:05:27.280
+they are and that's
+
+00:05:27.280 --> 00:05:30.400
+that's how they work now the next thing
+
+00:05:30.400 --> 00:05:32.080
+that obviously you want to know is okay
+
+00:05:32.080 --> 00:05:34.000
+where are if I've started up news where
+
+00:05:34.000 --> 00:05:35.039
+are my servers
+
+00:05:35.039 --> 00:05:37.199
+uh where are these server objects since
+
+00:05:37.199 --> 00:05:39.199
+this is object oriented
+
+00:05:39.199 --> 00:05:41.840
+programming and the weird thing that you
+
+00:05:41.840 --> 00:05:43.199
+will eventually
+
+00:05:43.199 --> 00:05:45.199
+figure out in some cases after years of
+
+00:05:45.199 --> 00:05:46.880
+poking around in the new source code
+
+00:05:46.880 --> 00:05:49.199
+is that servers do not exist in an
+
+00:05:49.199 --> 00:05:50.320
+ontological
+
+00:05:50.320 --> 00:05:53.440
+philosophical sense as objects the
+
+00:05:53.440 --> 00:05:55.440
+primary data structures of noose are
+
+00:05:55.440 --> 00:05:57.039
+groups
+
+00:05:57.039 --> 00:05:58.960
+and in sort of an object-oriented
+
+00:05:58.960 --> 00:06:00.720
+hierarchical you know mindset you'd
+
+00:06:00.720 --> 00:06:01.759
+think well
+
+00:06:01.759 --> 00:06:03.759
+groups belong to servers so servers must
+
+00:06:03.759 --> 00:06:05.759
+exist but they don't
+
+00:06:05.759 --> 00:06:08.000
+each group and here you can see some
+
+00:06:08.000 --> 00:06:09.360
+examples of groups
+
+00:06:09.360 --> 00:06:11.199
+these are basically the data structures
+
+00:06:11.199 --> 00:06:13.039
+that represent a group each group also
+
+00:06:13.039 --> 00:06:14.960
+has a little entry here that
+
+00:06:14.960 --> 00:06:17.039
+that tells you what server it belongs to
+
+00:06:17.039 --> 00:06:18.000
+and each group
+
+00:06:18.000 --> 00:06:20.479
+replicates that data uh saying which
+
+00:06:20.479 --> 00:06:23.120
+server it belongs to and so when
+
+00:06:23.120 --> 00:06:24.479
+nurse is going through doing its
+
+00:06:24.479 --> 00:06:26.160
+business uh trying to figure out what's
+
+00:06:26.160 --> 00:06:27.680
+like updating mail from the groups or
+
+00:06:27.680 --> 00:06:29.840
+whatever almost every time
+
+00:06:29.840 --> 00:06:31.600
+it will cycle through all the list of
+
+00:06:31.600 --> 00:06:32.960
+groups it'll
+
+00:06:32.960 --> 00:06:34.960
+it'll look at all the server definitions
+
+00:06:34.960 --> 00:06:36.720
+and it will categorize the groups by
+
+00:06:36.720 --> 00:06:38.160
+server
+
+00:06:38.160 --> 00:06:41.120
+which which is just weird because you're
+
+00:06:41.120 --> 00:06:42.160
+sort of looking for okay where does the
+
+00:06:42.160 --> 00:06:43.840
+server exist it doesn't exist it's put
+
+00:06:43.840 --> 00:06:44.479
+together
+
+00:06:44.479 --> 00:06:48.319
+every time uh out of out of code
+
+00:06:48.319 --> 00:06:50.400
+elsewhere in the news code base
+
+00:06:50.400 --> 00:06:51.840
+specifically from these group
+
+00:06:51.840 --> 00:06:54.080
+these group definitions and so this is
+
+00:06:54.080 --> 00:06:55.199
+very odd because
+
+00:06:55.199 --> 00:06:58.080
+in in some sense like here this one its
+
+00:06:58.080 --> 00:06:58.720
+server is
+
+00:06:58.720 --> 00:07:02.240
+nnml and an empty string so there's a
+
+00:07:02.240 --> 00:07:03.919
+certain sense here in which this server
+
+00:07:03.919 --> 00:07:04.479
+is not
+
+00:07:04.479 --> 00:07:06.400
+really an object at all what it is is a
+
+00:07:06.400 --> 00:07:07.759
+set of instructions for how to find
+
+00:07:07.759 --> 00:07:08.560
+messages
+
+00:07:08.560 --> 00:07:11.199
+and this set of instructions is go to
+
+00:07:11.199 --> 00:07:12.800
+the default place where the user
+
+00:07:12.800 --> 00:07:15.440
+might have their mail and expect to find
+
+00:07:15.440 --> 00:07:16.000
+messages
+
+00:07:16.000 --> 00:07:18.080
+there in an nml format which is
+
+00:07:18.080 --> 00:07:19.840
+basically just one message per
+
+00:07:19.840 --> 00:07:22.479
+um per file and any number of groups
+
+00:07:22.479 --> 00:07:23.840
+could have those same instructions uh
+
+00:07:23.840 --> 00:07:25.440
+but they're not it's not really a thing
+
+00:07:25.440 --> 00:07:26.720
+it's really just a
+
+00:07:26.720 --> 00:07:28.639
+it's more of a procedural instruction
+
+00:07:28.639 --> 00:07:30.240
+and on the other end of the spectrum you
+
+00:07:30.240 --> 00:07:31.919
+might have an nni map
+
+00:07:31.919 --> 00:07:33.599
+server which very much is a thing it has
+
+00:07:33.599 --> 00:07:35.840
+its own it has its own server its own
+
+00:07:35.840 --> 00:07:37.759
+port its own authentication
+
+00:07:37.759 --> 00:07:40.240
+system so some of the servers are more
+
+00:07:40.240 --> 00:07:41.360
+like things some of the servers are more
+
+00:07:41.360 --> 00:07:42.400
+like instructions
+
+00:07:42.400 --> 00:07:45.520
+as news works right now um these
+
+00:07:45.520 --> 00:07:47.280
+most of the servers are treated like
+
+00:07:47.280 --> 00:07:48.879
+just instruction sets
+
+00:07:48.879 --> 00:07:50.879
+and and there's no place where you can
+
+00:07:50.879 --> 00:07:53.120
+go and find them there's no one central
+
+00:07:53.120 --> 00:07:55.360
+uh variable that defines them all so how
+
+00:07:55.360 --> 00:07:56.160
+do the
+
+00:07:56.160 --> 00:07:57.520
+um so we'll talk about the methods in a
+
+00:07:57.520 --> 00:07:59.520
+second how do the data attributes work
+
+00:07:59.520 --> 00:08:02.639
+uh put very crudely um
+
+00:08:02.639 --> 00:08:04.479
+your servers when they're put together
+
+00:08:04.479 --> 00:08:05.919
+uh they are okay they are
+
+00:08:05.919 --> 00:08:08.080
+kept in a variable and it's called nno
+
+00:08:08.080 --> 00:08:08.960
+nno
+
+00:08:08.960 --> 00:08:11.120
+state a list and there's a concept to
+
+00:08:11.120 --> 00:08:12.960
+this of the current server
+
+00:08:12.960 --> 00:08:16.560
+so when we go here let's go back to
+
+00:08:16.560 --> 00:08:19.039
+our nnno definition a list so when we
+
+00:08:19.039 --> 00:08:20.560
+have an nnml
+
+00:08:20.560 --> 00:08:22.240
+server say we have one here and it's
+
+00:08:22.240 --> 00:08:24.400
+just this blank string
+
+00:08:24.400 --> 00:08:26.639
+these are all when you define that in
+
+00:08:26.639 --> 00:08:28.879
+your own uh server definition code
+
+00:08:28.879 --> 00:08:31.919
+you can put in different values for all
+
+00:08:31.919 --> 00:08:32.399
+of these
+
+00:08:32.399 --> 00:08:35.760
+various attributes and when noose comes
+
+00:08:35.760 --> 00:08:37.039
+when it comes time for news to operate
+
+00:08:37.039 --> 00:08:38.959
+on this server in particular ask it to
+
+00:08:38.959 --> 00:08:40.640
+you know open a group or get new mail
+
+00:08:40.640 --> 00:08:42.080
+what it will do is it will take
+
+00:08:42.080 --> 00:08:45.360
+that particular server's data from these
+
+00:08:45.360 --> 00:08:45.920
+symbols
+
+00:08:45.920 --> 00:08:47.600
+and it will copy all that information
+
+00:08:47.600 --> 00:08:49.600
+into the global devfars
+
+00:08:49.600 --> 00:08:51.760
+so for the time that you are operating
+
+00:08:51.760 --> 00:08:53.120
+on this particular server
+
+00:08:53.120 --> 00:08:55.920
+its individual data becomes the values
+
+00:08:55.920 --> 00:08:56.800
+of these global
+
+00:08:56.800 --> 00:08:59.360
+variables which when you realize what's
+
+00:08:59.360 --> 00:09:00.560
+happening is sort of terrifying you
+
+00:09:00.560 --> 00:09:02.080
+think oh my god
+
+00:09:02.080 --> 00:09:04.480
+but at the same time it's actually kind
+
+00:09:04.480 --> 00:09:05.760
+of impressive and it's amazing that it
+
+00:09:05.760 --> 00:09:07.279
+works as well as it does
+
+00:09:07.279 --> 00:09:09.120
+I'm actually a little bit in awe of the
+
+00:09:09.120 --> 00:09:10.880
+of the code in this in this library I
+
+00:09:10.880 --> 00:09:12.560
+think it's pretty impressive
+
+00:09:12.560 --> 00:09:15.760
+so as you nno change server
+
+00:09:15.760 --> 00:09:18.320
+uh this function here these values get
+
+00:09:18.320 --> 00:09:20.080
+copied into the global value into the
+
+00:09:20.080 --> 00:09:21.440
+global variables and then as you go on
+
+00:09:21.440 --> 00:09:22.399
+the next server
+
+00:09:22.399 --> 00:09:24.000
+that gets you know cleaned out and
+
+00:09:24.000 --> 00:09:26.399
+recopied there are a few
+
+00:09:26.399 --> 00:09:29.680
+um a few other slot types
+
+00:09:29.680 --> 00:09:32.000
+or attribute types which do because all
+
+00:09:32.000 --> 00:09:33.440
+of these attributes see they all start
+
+00:09:33.440 --> 00:09:34.720
+with the nml
+
+00:09:34.720 --> 00:09:37.920
+or in this case and in folder prefix
+
+00:09:37.920 --> 00:09:40.560
+but there are a few slot types that all
+
+00:09:40.560 --> 00:09:41.760
+servers need for
+
+00:09:41.760 --> 00:09:43.279
+for instance their most recent status
+
+00:09:43.279 --> 00:09:45.920
+message a status symbol like open denied
+
+00:09:45.920 --> 00:09:46.640
+whatever
+
+00:09:46.640 --> 00:09:48.080
+and that data is sort of scattered
+
+00:09:48.080 --> 00:09:49.680
+around the rest of the news
+
+00:09:49.680 --> 00:09:51.200
+code base in various variables or
+
+00:09:51.200 --> 00:09:53.440
+various places
+
+00:09:53.440 --> 00:09:55.440
+so that's that sort of just contributes
+
+00:09:55.440 --> 00:09:56.560
+to the confusion when you're trying to
+
+00:09:56.560 --> 00:09:57.360
+figure out why
+
+00:09:57.360 --> 00:10:00.720
+things are going wrong so that is our
+
+00:10:00.720 --> 00:10:03.839
+um nnoo which is and
+
+00:10:03.839 --> 00:10:05.440
+sort of how the attributes and these
+
+00:10:05.440 --> 00:10:07.360
+global variables work
+
+00:10:07.360 --> 00:10:09.120
+if we want to talk about defu and the
+
+00:10:09.120 --> 00:10:10.480
+methods we
+
+00:10:10.480 --> 00:10:20.800
+go to
+
+00:10:20.800 --> 00:10:23.200
+and so this is the place where all the
+
+00:10:23.200 --> 00:10:25.600
+server level methods are defined
+
+00:10:25.600 --> 00:10:27.200
+and what we have here are things like
+
+00:10:27.200 --> 00:10:29.279
+here's an example there's closed server
+
+00:10:29.279 --> 00:10:32.640
+this closed server is given a
+
+00:10:32.640 --> 00:10:36.320
+a server as a an argument
+
+00:10:36.320 --> 00:10:38.079
+it looks at the server and basically it
+
+00:10:38.079 --> 00:10:40.560
+finds the proper function to call on
+
+00:10:40.560 --> 00:10:42.079
+this particular server
+
+00:10:42.079 --> 00:10:45.120
+using the function new skip function by
+
+00:10:45.120 --> 00:10:45.600
+taking
+
+00:10:45.600 --> 00:10:48.959
+the sort of latter half of this function
+
+00:10:48.959 --> 00:10:49.760
+symbol
+
+00:10:49.760 --> 00:10:52.079
+and pasting it together with the symbol
+
+00:10:52.079 --> 00:10:53.440
+that represents the back end so
+
+00:10:53.440 --> 00:10:56.800
+if you were calling this on an nni map
+
+00:10:56.800 --> 00:10:59.600
+server your skip function would look at
+
+00:10:59.600 --> 00:11:01.279
+your imap server look at closed server I
+
+00:11:01.279 --> 00:11:02.240
+knew what
+
+00:11:02.240 --> 00:11:07.839
+it would come up with
+
+00:11:07.839 --> 00:11:10.240
+server sure enough there's an imac close
+
+00:11:10.240 --> 00:11:11.920
+server and it'll call this code and then
+
+00:11:11.920 --> 00:11:12.240
+it'll
+
+00:11:12.240 --> 00:11:14.000
+it'll go and do its other bookkeeping
+
+00:11:14.000 --> 00:11:15.279
+another sort of
+
+00:11:15.279 --> 00:11:18.320
+surrounding code and so that's not that
+
+00:11:18.320 --> 00:11:19.279
+actually works pretty well
+
+00:11:19.279 --> 00:11:22.640
+uh as as things go uh defu
+
+00:11:22.640 --> 00:11:24.959
+makes a record that this this function
+
+00:11:24.959 --> 00:11:26.800
+exists and nus gets function get
+
+00:11:26.800 --> 00:11:28.320
+function looks on that cache finds the
+
+00:11:28.320 --> 00:11:29.600
+function and calls it
+
+00:11:29.600 --> 00:11:30.959
+now what's particularly confusing is
+
+00:11:30.959 --> 00:11:32.560
+that you don't actually even have to use
+
+00:11:32.560 --> 00:11:33.360
+defu
+
+00:11:33.360 --> 00:11:35.519
+so whoever wrote and then mail gear
+
+00:11:35.519 --> 00:11:38.399
+which is a weird library
+
+00:11:38.399 --> 00:11:39.920
+said to heck with you I'm not using any
+
+00:11:39.920 --> 00:11:41.600
+of these
+
+00:11:41.600 --> 00:11:43.120
+any of this machinery I'm going to do it
+
+00:11:43.120 --> 00:11:45.839
+myself so we have
+
+00:11:45.839 --> 00:11:49.680
+def structs to hold uh the instance
+
+00:11:49.680 --> 00:11:52.320
+data and then we have just plain old
+
+00:11:52.320 --> 00:11:53.040
+defense
+
+00:11:53.040 --> 00:11:55.680
+for things like animal your close server
+
+00:11:55.680 --> 00:11:57.279
+request close all of these
+
+00:11:57.279 --> 00:11:59.279
+these server level uh variables and it
+
+00:11:59.279 --> 00:12:00.320
+just turns out that
+
+00:12:00.320 --> 00:12:03.360
+news in its belt and suspenders
+
+00:12:03.360 --> 00:12:05.839
+approach to uh to coding it'll actually
+
+00:12:05.839 --> 00:12:07.279
+just go out if it can't find
+
+00:12:07.279 --> 00:12:10.320
+the memoized function it'll just go out
+
+00:12:10.320 --> 00:12:12.160
+and say has anybody defined a function
+
+00:12:12.160 --> 00:12:14.240
+that looks like this pattern and then
+
+00:12:14.240 --> 00:12:16.000
+and then melder says yes I did and then
+
+00:12:16.000 --> 00:12:17.920
+we call it and then we go so it's just
+
+00:12:17.920 --> 00:12:19.920
+it's fine it works it just adds to the
+
+00:12:19.920 --> 00:12:21.440
+confusion why
+
+00:12:21.440 --> 00:12:24.240
+why does it work we don't know sometimes
+
+00:12:24.240 --> 00:12:25.440
+the only thing worse than not knowing
+
+00:12:25.440 --> 00:12:26.880
+why something doesn't work is
+
+00:12:26.880 --> 00:12:30.000
+not knowing why something does work um
+
+00:12:30.000 --> 00:12:30.560
+and then
+
+00:12:30.560 --> 00:12:31.920
+a last little bit I want to touch on
+
+00:12:31.920 --> 00:12:33.680
+here is inheritance which is another
+
+00:12:33.680 --> 00:12:35.440
+sort of cornerstone of object-oriented
+
+00:12:35.440 --> 00:12:38.480
+coding as far as I can tell only uh
+
+00:12:38.480 --> 00:12:40.160
+the only inheritance that goes on is in
+
+00:12:40.160 --> 00:12:41.920
+something called nn male
+
+00:12:41.920 --> 00:12:45.519
+which provides sort of common functions
+
+00:12:45.519 --> 00:12:48.399
+for back ends that keep their mail on
+
+00:12:48.399 --> 00:12:49.360
+your
+
+00:12:49.360 --> 00:12:52.000
+local machine and you can spool it you
+
+00:12:52.000 --> 00:12:53.680
+can delete it you can you know you own
+
+00:12:53.680 --> 00:12:55.440
+the messages it's not like an nntp
+
+00:12:55.440 --> 00:12:56.160
+server
+
+00:12:56.160 --> 00:12:59.040
+and so a lot of those male deer nnml
+
+00:12:59.040 --> 00:13:00.160
+whatever
+
+00:13:00.160 --> 00:13:02.959
+a lot of those have sort of similar code
+
+00:13:02.959 --> 00:13:04.079
+which they
+
+00:13:04.079 --> 00:13:07.600
+which they share via this nn mail
+
+00:13:07.600 --> 00:13:09.600
+you call it an abstract parent class I
+
+00:13:09.600 --> 00:13:12.959
+guess so if you have something like nnml
+
+00:13:12.959 --> 00:13:15.440
+it has a request scan uh when it goes
+
+00:13:15.440 --> 00:13:16.720
+into request scan
+
+00:13:16.720 --> 00:13:18.800
+it ends up calling nnmail.newmail and it
+
+00:13:18.800 --> 00:13:21.760
+says I am calling this as an nml server
+
+00:13:21.760 --> 00:13:23.279
+and here are some of my callback
+
+00:13:23.279 --> 00:13:24.959
+functions and my variables that I would
+
+00:13:24.959 --> 00:13:26.000
+like you to use
+
+00:13:26.000 --> 00:13:28.000
+when you are getting your email so in
+
+00:13:28.000 --> 00:13:30.120
+this way the code is sort of you know
+
+00:13:30.120 --> 00:13:33.120
+inter-interleaved between the the child
+
+00:13:33.120 --> 00:13:35.680
+class and the parent class even though
+
+00:13:35.680 --> 00:13:37.120
+we're not talking in terms of classes
+
+00:13:37.120 --> 00:13:39.440
+here at all really
+
+00:13:39.440 --> 00:13:42.160
+so that's how noose works right now I
+
+00:13:42.160 --> 00:13:42.959
+hope that's clear
+
+00:13:42.959 --> 00:13:45.519
+it certainly wasn't to me and I still
+
+00:13:45.519 --> 00:13:46.560
+have to go refresh my
+
+00:13:46.560 --> 00:13:48.079
+memory I'd like to talk a little bit
+
+00:13:48.079 --> 00:13:50.079
+about sort of the newer
+
+00:13:50.079 --> 00:13:51.600
+libraries that are available now for
+
+00:13:51.600 --> 00:13:54.240
+doing object-oriented code
+
+00:13:54.240 --> 00:13:56.959
+uh as I mentioned I think earlier nno
+
+00:13:56.959 --> 00:13:59.279
+the copyright headers for 1996 so that's
+
+00:13:59.279 --> 00:14:00.320
+pretty venerable
+
+00:14:00.320 --> 00:14:02.639
+coincidentally around the same time eric
+
+00:14:02.639 --> 00:14:05.519
+ludlum started developing e-I-e-I-o
+
+00:14:05.519 --> 00:14:08.320
+which is a which is sort of inspired by
+
+00:14:08.320 --> 00:14:09.360
+a common lisp's
+
+00:14:09.360 --> 00:14:12.720
+common lisp object system um I got a
+
+00:14:12.720 --> 00:14:14.240
+very good introduction to that from this
+
+00:14:14.240 --> 00:14:14.959
+book
+
+00:14:14.959 --> 00:14:16.399
+practical common lisp which I would
+
+00:14:16.399 --> 00:14:18.000
+encourage you to look at if you haven't
+
+00:14:18.000 --> 00:14:20.079
+which you probably have anyway
+
+00:14:20.079 --> 00:14:22.320
+e-I-e-I-o was incorporated into Emacs in
+
+00:14:22.320 --> 00:14:23.920
+2010
+
+00:14:23.920 --> 00:14:27.839
+so that yeah e-I-e-I-o provides um
+
+00:14:27.839 --> 00:14:30.240
+the deaf class statements it provides
+
+00:14:30.240 --> 00:14:32.079
+deaf generics deaf methods all that sort
+
+00:14:32.079 --> 00:14:32.639
+of stuff
+
+00:14:32.639 --> 00:14:34.800
+sort of a common lisp object-oriented
+
+00:14:34.800 --> 00:14:36.320
+code
+
+00:14:36.320 --> 00:14:38.399
+at some point stephan monier's money
+
+00:14:38.399 --> 00:14:39.760
+money another name I haven't pronounced
+
+00:14:39.760 --> 00:14:41.199
+it all out
+
+00:14:41.199 --> 00:14:43.839
+started either cleaning up that code or
+
+00:14:43.839 --> 00:14:45.120
+for one reason or another writing a
+
+00:14:45.120 --> 00:14:46.959
+re-implementation of generic functions
+
+00:14:46.959 --> 00:14:48.000
+which was added
+
+00:14:48.000 --> 00:14:51.440
+uh in 2015 and then throughout this time
+
+00:14:51.440 --> 00:14:51.920
+another
+
+00:14:51.920 --> 00:14:54.639
+sort of object-oriented style
+
+00:14:54.639 --> 00:14:55.760
+declaration is
+
+00:14:55.760 --> 00:14:58.160
+defstruct which started off in the cl
+
+00:14:58.160 --> 00:15:00.000
+libraries
+
+00:15:00.000 --> 00:15:01.600
+implemented with vectors later was
+
+00:15:01.600 --> 00:15:02.959
+implemented with records so they're
+
+00:15:02.959 --> 00:15:04.639
+easier to target
+
+00:15:04.639 --> 00:15:06.720
+anyway that's another option so how
+
+00:15:06.720 --> 00:15:08.399
+would we this is I'm probably out of
+
+00:15:08.399 --> 00:15:09.279
+time already but
+
+00:15:09.279 --> 00:15:13.839
+we're only getting to the part
+
+00:15:13.839 --> 00:15:15.760
+the whole point of this is how would we
+
+00:15:15.760 --> 00:15:17.920
+rewrite someone news's code to use these
+
+00:15:17.920 --> 00:15:19.920
+newer libraries
+
+00:15:19.920 --> 00:15:21.760
+if we didn't have to support third party
+
+00:15:21.760 --> 00:15:23.839
+libraries this wouldn't be that hard
+
+00:15:23.839 --> 00:15:26.639
+but out there noose is really up on uh
+
+00:15:26.639 --> 00:15:28.160
+you know backwards compatibility and not
+
+00:15:28.160 --> 00:15:30.240
+breaking people's stuff and you know
+
+00:15:30.240 --> 00:15:33.040
+multi-decade support for things so there
+
+00:15:33.040 --> 00:15:34.240
+are people out there who have written
+
+00:15:34.240 --> 00:15:35.759
+third-party libraries
+
+00:15:35.759 --> 00:15:38.480
+um defining new backends for you can use
+
+00:15:38.480 --> 00:15:40.000
+like hacker news or whatever as
+
+00:15:40.000 --> 00:15:41.759
+a as a server so we want to be able to
+
+00:15:41.759 --> 00:15:43.199
+support those if you didn't have to
+
+00:15:43.199 --> 00:15:44.240
+support those it'd be fine you'd
+
+00:15:44.240 --> 00:15:46.079
+re-implement you'd use generic functions
+
+00:15:46.079 --> 00:15:47.440
+you'd use either structure classes
+
+00:15:47.440 --> 00:15:48.560
+whatever but we got a
+
+00:15:48.560 --> 00:15:51.040
+it's a little bit tricky to support
+
+00:15:51.040 --> 00:15:52.000
+these other people's
+
+00:15:52.000 --> 00:15:54.320
+libraries so one of the things we can do
+
+00:15:54.320 --> 00:15:56.079
+is rewrite the defu
+
+00:15:56.079 --> 00:15:59.279
+so if you remember defu is the thing
+
+00:15:59.279 --> 00:16:00.079
+that uh
+
+00:16:00.079 --> 00:16:03.120
+or sorry uh defu
+
+00:16:03.120 --> 00:16:04.800
+is the thing that defines methods that
+
+00:16:04.800 --> 00:16:07.040
+operate on object answers
+
+00:16:07.040 --> 00:16:10.160
+instances and we can uh rewrite that to
+
+00:16:10.160 --> 00:16:10.639
+use
+
+00:16:10.639 --> 00:16:13.440
+cldef generic and that's this is fairly
+
+00:16:13.440 --> 00:16:14.240
+fairly simple
+
+00:16:14.240 --> 00:16:15.440
+it looks like a lot of code it's not a
+
+00:16:15.440 --> 00:16:17.759
+lot of good for instance we have the
+
+00:16:17.759 --> 00:16:20.320
+new closed server code that we looked at
+
+00:16:20.320 --> 00:16:21.199
+earlier
+
+00:16:21.199 --> 00:16:22.720
+and we have this phone call and the new
+
+00:16:22.720 --> 00:16:24.560
+skip function so this would look
+
+00:16:24.560 --> 00:16:28.720
+like using generic functions and methods
+
+00:16:28.720 --> 00:16:30.240
+it would look like this we'd have
+
+00:16:30.240 --> 00:16:32.959
+a generic def generic which is just a
+
+00:16:32.959 --> 00:16:34.560
+sort of a declaration
+
+00:16:34.560 --> 00:16:36.320
+and a doc string and then we have those
+
+00:16:36.320 --> 00:16:37.680
+implementations
+
+00:16:37.680 --> 00:16:40.320
+so we can see what the original code
+
+00:16:40.320 --> 00:16:42.399
+does here is it first says okay what
+
+00:16:42.399 --> 00:16:44.720
+type is our our is our argument here and
+
+00:16:44.720 --> 00:16:45.839
+if it's a string
+
+00:16:45.839 --> 00:16:48.560
+then go and get the proper s the proper
+
+00:16:48.560 --> 00:16:50.160
+method definition
+
+00:16:50.160 --> 00:16:52.480
+from that string so the way we do that
+
+00:16:52.480 --> 00:16:53.920
+with methods is we
+
+00:16:53.920 --> 00:16:56.000
+we say if the server is a string so if
+
+00:16:56.000 --> 00:16:57.440
+it matches this type
+
+00:16:57.440 --> 00:16:58.720
+then what we're going to do is just
+
+00:16:58.720 --> 00:17:00.320
+recall we're going to call this function
+
+00:17:00.320 --> 00:17:02.160
+all over again
+
+00:17:02.160 --> 00:17:05.199
+using uh basically the same code here
+
+00:17:05.199 --> 00:17:06.400
+the same code that takes a string and
+
+00:17:06.400 --> 00:17:07.600
+gets the object so
+
+00:17:07.600 --> 00:17:10.640
+this does this can add extra function
+
+00:17:10.640 --> 00:17:11.600
+calls
+
+00:17:11.600 --> 00:17:12.880
+depending on how you've written the rest
+
+00:17:12.880 --> 00:17:14.880
+of your code um but this is sort of the
+
+00:17:14.880 --> 00:17:16.640
+canonical way of doing this
+
+00:17:16.640 --> 00:17:19.679
+uh using methods then our next part here
+
+00:17:19.679 --> 00:17:20.559
+is
+
+00:17:20.559 --> 00:17:22.000
+nishkit function we're going to get a
+
+00:17:22.000 --> 00:17:24.559
+function called closed server
+
+00:17:24.559 --> 00:17:26.079
+the difference here is that all these
+
+00:17:26.079 --> 00:17:27.360
+functions are all going to be called
+
+00:17:27.360 --> 00:17:28.000
+close
+
+00:17:28.000 --> 00:17:29.360
+news close server they're not going to
+
+00:17:29.360 --> 00:17:31.120
+be called news like nni my
+
+00:17:31.120 --> 00:17:32.799
+closed server and ntp close server
+
+00:17:32.799 --> 00:17:34.400
+they're all going to have the same name
+
+00:17:34.400 --> 00:17:36.160
+and what we do is uh we have an around
+
+00:17:36.160 --> 00:17:37.440
+method
+
+00:17:37.440 --> 00:17:40.640
+for any server that is a const which is
+
+00:17:40.640 --> 00:17:43.679
+which is as close as we care to get uh
+
+00:17:43.679 --> 00:17:45.520
+for you know zeroing in on the type that
+
+00:17:45.520 --> 00:17:46.799
+we're looking for
+
+00:17:46.799 --> 00:17:48.559
+we put in a round method on that so that
+
+00:17:48.559 --> 00:17:50.480
+we can call the next method which we'll
+
+00:17:50.480 --> 00:17:51.679
+call the more specific
+
+00:17:51.679 --> 00:17:53.440
+method and then we have our other
+
+00:17:53.440 --> 00:17:55.600
+bookkeeping code to clean up you know
+
+00:17:55.600 --> 00:17:57.280
+set up tear down code we'll go around
+
+00:17:57.280 --> 00:17:58.640
+that
+
+00:17:58.640 --> 00:18:00.080
+and then in one of the back-end
+
+00:18:00.080 --> 00:18:02.080
+definitions for instance in an imap
+
+00:18:02.080 --> 00:18:04.320
+we have another news closed server thing
+
+00:18:04.320 --> 00:18:05.760
+this looks at the server
+
+00:18:05.760 --> 00:18:08.880
+and it says is this server a list that
+
+00:18:08.880 --> 00:18:10.799
+starts with a symbol and an imap and if
+
+00:18:10.799 --> 00:18:12.480
+it is then we're almost guaranteed that
+
+00:18:12.480 --> 00:18:13.679
+this is what we wanted
+
+00:18:13.679 --> 00:18:15.840
+and then this is where we would insert
+
+00:18:15.840 --> 00:18:17.600
+all the rest of the code from anonymous
+
+00:18:17.600 --> 00:18:18.960
+closed server
+
+00:18:18.960 --> 00:18:20.799
+where we'd re-redefine that to look like
+
+00:18:20.799 --> 00:18:22.880
+this so it's not that hard
+
+00:18:22.880 --> 00:18:26.080
+theoretically so what we would do
+
+00:18:26.080 --> 00:18:28.720
+is take the defu macro macro and then
+
+00:18:28.720 --> 00:18:29.679
+rewrite that
+
+00:18:29.679 --> 00:18:32.240
+so that it actually defines a cl def
+
+00:18:32.240 --> 00:18:33.039
+method like
+
+00:18:33.039 --> 00:18:35.520
+one of these now there's a couple of
+
+00:18:35.520 --> 00:18:36.320
+these things
+
+00:18:36.320 --> 00:18:38.960
+unfortunately it's not that easy get rid
+
+00:18:38.960 --> 00:18:41.200
+of you
+
+00:18:41.200 --> 00:18:43.490
+a couple of these things
+
+00:18:43.490 --> 00:18:46.400
+[Music]
+
+00:18:46.400 --> 00:18:49.039
+that don't use their server as the first
+
+00:18:49.039 --> 00:18:49.919
+argument
+
+00:18:49.919 --> 00:18:52.400
+or any of the arguments or it's an
+
+00:18:52.400 --> 00:18:53.280
+optional argument
+
+00:18:53.280 --> 00:18:54.720
+and we need the server to be in there to
+
+00:18:54.720 --> 00:18:56.640
+dispatch on its type
+
+00:18:56.640 --> 00:18:58.799
+if the server doesn't show up as a as a
+
+00:18:58.799 --> 00:19:00.080
+required
+
+00:19:00.080 --> 00:19:01.760
+argument we're not going to be able to
+
+00:19:01.760 --> 00:19:03.600
+locate the the proper
+
+00:19:03.600 --> 00:19:07.440
+function call so in the case of
+
+00:19:07.440 --> 00:19:10.640
+noose request group here we start with
+
+00:19:10.640 --> 00:19:12.080
+the group it's the group that matters
+
+00:19:12.080 --> 00:19:12.720
+and we get
+
+00:19:12.720 --> 00:19:14.960
+the newscommand method as an optional
+
+00:19:14.960 --> 00:19:16.240
+argument
+
+00:19:16.240 --> 00:19:18.559
+so that's not cool we don't want that so
+
+00:19:18.559 --> 00:19:20.480
+what we need instead is something that
+
+00:19:20.480 --> 00:19:21.360
+looks like this
+
+00:19:21.360 --> 00:19:23.840
+what we're going to do with uh this is
+
+00:19:23.840 --> 00:19:25.360
+gonna be just terrible terrible code but
+
+00:19:25.360 --> 00:19:26.640
+hopefully it won't get used very often
+
+00:19:26.640 --> 00:19:28.160
+it's gonna be really embarrassing
+
+00:19:28.160 --> 00:19:30.559
+um defu what's what definitely was gonna
+
+00:19:30.559 --> 00:19:31.520
+have to do is
+
+00:19:31.520 --> 00:19:33.200
+say okay is this a function that doesn't
+
+00:19:33.200 --> 00:19:34.559
+have the server as the first argument
+
+00:19:34.559 --> 00:19:35.360
+and if it does
+
+00:19:35.360 --> 00:19:36.960
+it's gonna say oh it's news request
+
+00:19:36.960 --> 00:19:38.400
+group what happens has to happen with
+
+00:19:38.400 --> 00:19:39.280
+news request group
+
+00:19:39.280 --> 00:19:40.799
+is we take the news command method and
+
+00:19:40.799 --> 00:19:43.200
+we're going to move it up to the front
+
+00:19:43.200 --> 00:19:46.240
+to the first argument here and it's
+
+00:19:46.240 --> 00:19:47.520
+either going to be
+
+00:19:47.520 --> 00:19:48.720
+it's either going to be given or it's
+
+00:19:48.720 --> 00:19:50.840
+going to be nil because it's it is
+
+00:19:50.840 --> 00:19:52.080
+optional
+
+00:19:52.080 --> 00:19:54.320
+okay I briefly edited the space time
+
+00:19:54.320 --> 00:19:55.760
+continuum there to conceal the fact that
+
+00:19:55.760 --> 00:19:56.400
+I had
+
+00:19:56.400 --> 00:19:57.679
+actually not finished writing the code
+
+00:19:57.679 --> 00:19:59.440
+that I was supposed to write anyway
+
+00:19:59.440 --> 00:20:02.159
+um so now we have once we've reordered
+
+00:20:02.159 --> 00:20:02.960
+the
+
+00:20:02.960 --> 00:20:04.320
+the arguments to the function then we
+
+00:20:04.320 --> 00:20:05.760
+have to check our various possible
+
+00:20:05.760 --> 00:20:06.880
+values one is
+
+00:20:06.880 --> 00:20:08.640
+uh that the server was not passed in in
+
+00:20:08.640 --> 00:20:10.080
+which case we recall
+
+00:20:10.080 --> 00:20:12.400
+request group with the server um the
+
+00:20:12.400 --> 00:20:13.840
+other is that it's just a string in
+
+00:20:13.840 --> 00:20:15.360
+which case we do that and then this is
+
+00:20:15.360 --> 00:20:16.559
+sort of the the normal
+
+00:20:16.559 --> 00:20:18.559
+the normal case that we would expect to
+
+00:20:18.559 --> 00:20:20.720
+cons so that's not that bad it's not you
+
+00:20:20.720 --> 00:20:21.039
+know
+
+00:20:21.039 --> 00:20:23.760
+it's not beautiful um I would be sort of
+
+00:20:23.760 --> 00:20:24.480
+ashamed to
+
+00:20:24.480 --> 00:20:26.159
+let anybody see that particular macro
+
+00:20:26.159 --> 00:20:28.000
+but I think that it would work okay
+
+00:20:28.000 --> 00:20:30.640
+now the more difficult thing is going to
+
+00:20:30.640 --> 00:20:31.440
+be
+
+00:20:31.440 --> 00:20:34.640
+the data variables so
+
+00:20:34.640 --> 00:20:37.600
+the equivalent of def vu because our two
+
+00:20:37.600 --> 00:20:39.360
+options for defining classes here are
+
+00:20:39.360 --> 00:20:41.039
+def struct and def class both of which
+
+00:20:41.039 --> 00:20:41.919
+required you
+
+00:20:41.919 --> 00:20:45.280
+to define the slots inside this macro
+
+00:20:45.280 --> 00:20:46.960
+itself
+
+00:20:46.960 --> 00:20:49.039
+so defu is top level um how do we get
+
+00:20:49.039 --> 00:20:51.280
+the top level this top level macro
+
+00:20:51.280 --> 00:20:55.039
+uh to insert slot names into these
+
+00:20:55.039 --> 00:20:56.240
+definitions it's
+
+00:20:56.240 --> 00:20:58.960
+it's possible that it'll be um that I
+
+00:20:58.960 --> 00:21:00.240
+could monkey patch
+
+00:21:00.240 --> 00:21:03.039
+uh an existing struct or an existing
+
+00:21:03.039 --> 00:21:04.799
+class to add a new slot into it that
+
+00:21:04.799 --> 00:21:05.280
+sounds
+
+00:21:05.280 --> 00:21:07.760
+ugly the other option would be to give
+
+00:21:07.760 --> 00:21:09.600
+it a server variable slot which is just
+
+00:21:09.600 --> 00:21:11.520
+a generalized bucket
+
+00:21:11.520 --> 00:21:13.760
+that holds anything that gets defined
+
+00:21:13.760 --> 00:21:15.520
+via def loop
+
+00:21:15.520 --> 00:21:16.720
+I don't like either of those solutions
+
+00:21:16.720 --> 00:21:18.799
+but I'm I don't see any other
+
+00:21:18.799 --> 00:21:22.480
+any other way of doing that so we re
+
+00:21:22.480 --> 00:21:25.520
+rewrite the nno declare macro to either
+
+00:21:25.520 --> 00:21:27.440
+be a destructor or a def class
+
+00:21:27.440 --> 00:21:29.840
+and we rewrite the def boom macro to
+
+00:21:29.840 --> 00:21:31.039
+somehow
+
+00:21:31.039 --> 00:21:33.039
+associate that variable name the symbol
+
+00:21:33.039 --> 00:21:34.480
+with the with the resulting class
+
+00:21:34.480 --> 00:21:36.159
+definition
+
+00:21:36.159 --> 00:21:37.760
+then the last question is do we use
+
+00:21:37.760 --> 00:21:39.600
+structure classes
+
+00:21:39.600 --> 00:21:41.600
+they both got their their strengths and
+
+00:21:41.600 --> 00:21:43.200
+their weaknesses
+
+00:21:43.200 --> 00:21:46.480
+the nice thing is that I mean I've got
+
+00:21:46.480 --> 00:21:47.520
+how many servers you're going to have
+
+00:21:47.520 --> 00:21:49.600
+really I've got I think less than 10
+
+00:21:49.600 --> 00:21:51.919
+uh truly deranged mine might have as as
+
+00:21:51.919 --> 00:21:52.960
+many as
+
+00:21:52.960 --> 00:21:55.440
+50 let's double that to 100 100 of
+
+00:21:55.440 --> 00:21:56.480
+anything is not going to matter it
+
+00:21:56.480 --> 00:21:58.400
+doesn't matter what we use
+
+00:21:58.400 --> 00:22:00.159
+death structures are simpler they're
+
+00:22:00.159 --> 00:22:02.720
+lighter weight they're defined on top of
+
+00:22:02.720 --> 00:22:05.600
+the direct the c records so you know
+
+00:22:05.600 --> 00:22:06.960
+that's nice
+
+00:22:06.960 --> 00:22:08.559
+the slots don't carry very much
+
+00:22:08.559 --> 00:22:10.320
+information with them there's no type
+
+00:22:10.320 --> 00:22:11.760
+information there's no doc string for
+
+00:22:11.760 --> 00:22:14.480
+the slots themselves
+
+00:22:14.480 --> 00:22:16.559
+they can also only do single inheritance
+
+00:22:16.559 --> 00:22:17.919
+which some might say
+
+00:22:17.919 --> 00:22:21.120
+was an advantage def class each slot
+
+00:22:21.120 --> 00:22:22.640
+gets a lot more information associated
+
+00:22:22.640 --> 00:22:24.000
+with it with it which I think can be
+
+00:22:24.000 --> 00:22:24.480
+nice
+
+00:22:24.480 --> 00:22:27.120
+it can do multiple inheritance if you're
+
+00:22:27.120 --> 00:22:28.799
+going to go there
+
+00:22:28.799 --> 00:22:30.720
+they are heavier weight in particular
+
+00:22:30.720 --> 00:22:32.640
+their printed representation is gross
+
+00:22:32.640 --> 00:22:34.080
+it's enormous
+
+00:22:34.080 --> 00:22:35.840
+so if you see one show up in a back
+
+00:22:35.840 --> 00:22:37.520
+trace or in your messages buffer can
+
+00:22:37.520 --> 00:22:38.240
+really
+
+00:22:38.240 --> 00:22:39.520
+it can really blow that up and make it
+
+00:22:39.520 --> 00:22:41.360
+hard to read this of course won't be an
+
+00:22:41.360 --> 00:22:43.200
+issue because our code won't have any
+
+00:22:43.200 --> 00:22:46.240
+errors in it um my argument for multiple
+
+00:22:46.240 --> 00:22:48.320
+inheritance here is that I can imagine
+
+00:22:48.320 --> 00:22:51.280
+new servers falling into sort of like a
+
+00:22:51.280 --> 00:22:52.720
+little two by two matrix of
+
+00:22:52.720 --> 00:22:56.240
+of parent classes one being news versus
+
+00:22:56.240 --> 00:22:56.799
+mail
+
+00:22:56.799 --> 00:23:00.320
+so news the messages belong to somebody
+
+00:23:00.320 --> 00:23:00.720
+else
+
+00:23:00.720 --> 00:23:02.080
+you can't touch them you can't delete
+
+00:23:02.080 --> 00:23:03.840
+them mail meaning
+
+00:23:03.840 --> 00:23:06.000
+the messages are under your command
+
+00:23:06.000 --> 00:23:08.960
+either a local mail dealer a remote imap
+
+00:23:08.960 --> 00:23:11.039
+you're allowed to spool them copy them
+
+00:23:11.039 --> 00:23:12.640
+delete them at will
+
+00:23:12.640 --> 00:23:13.919
+and then the other sort of line of the
+
+00:23:13.919 --> 00:23:16.400
+matrix would be a local file system
+
+00:23:16.400 --> 00:23:19.760
+versus some kind of a you know server
+
+00:23:19.760 --> 00:23:20.559
+port
+
+00:23:20.559 --> 00:23:23.280
+remote access and that second the server
+
+00:23:23.280 --> 00:23:24.960
+port remote access thing might require
+
+00:23:24.960 --> 00:23:26.880
+authentication it might require a keep
+
+00:23:26.880 --> 00:23:28.559
+alive for a connection
+
+00:23:28.559 --> 00:23:30.159
+um it's there's going to be a process
+
+00:23:30.159 --> 00:23:31.600
+there rather than just file system
+
+00:23:31.600 --> 00:23:32.400
+commands
+
+00:23:32.400 --> 00:23:33.840
+so I could see if I was going to do
+
+00:23:33.840 --> 00:23:35.360
+multiple inheritance that's what I would
+
+00:23:35.360 --> 00:23:36.240
+do those two
+
+00:23:36.240 --> 00:23:39.039
+those two possible parent classes anyway
+
+00:23:39.039 --> 00:23:40.400
+that's as far as I've gotten
+
+00:23:40.400 --> 00:23:41.520
+I thought that I would be able to write
+
+00:23:41.520 --> 00:23:43.279
+more of this code before I did this talk
+
+00:23:43.279 --> 00:23:44.720
+but instead I spent the whole time
+
+00:23:44.720 --> 00:23:46.720
+messing with video codecs but that's
+
+00:23:46.720 --> 00:23:48.320
+where we're at and I'm going to cut
+
+00:23:48.320 --> 00:23:49.440
+myself off now
+
+00:23:49.440 --> 00:23:50.960
+I hope there are questions I hope I'm
+
+00:23:50.960 --> 00:23:53.440
+there to to answer your questions
+
+00:23:53.440 --> 00:23:55.919
+and thanks very much again to everyone
+
+00:23:55.919 --> 00:23:57.120
+involved
+
+00:23:57.120 --> 00:23:59.279
+bye
diff --git a/2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt b/2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt
new file mode 100644
index 00000000..6810a359
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt
@@ -0,0 +1,1708 @@
+WEBVTT
+
+00:00:01.680 --> 00:00:04.480
+you are now unmuted
+
+00:00:04.480 --> 00:00:08.000
+okay can you guys hear me yeah
+
+00:00:08.000 --> 00:00:11.280
+can you guys hear me sir yep I can and
+
+00:00:11.280 --> 00:00:14.480
+we're live so take it away okay
+
+00:00:14.480 --> 00:00:17.199
+so um hello everyone my name is ferming
+
+00:00:17.199 --> 00:00:18.400
+I'm a programmer
+
+00:00:18.400 --> 00:00:20.960
+a math student from spain I've been
+
+00:00:20.960 --> 00:00:22.400
+using me e-max for
+
+00:00:22.400 --> 00:00:24.960
+two years now more or less and today I'm
+
+00:00:24.960 --> 00:00:26.000
+going to talk about
+
+00:00:26.000 --> 00:00:28.320
+a maxima computer algebra system in 2
+
+00:00:28.320 --> 00:00:29.199
+max
+
+00:00:29.199 --> 00:00:32.239
+so let's talk about what is maxima
+
+00:00:32.239 --> 00:00:34.239
+well maxim is a system for manipulation
+
+00:00:34.239 --> 00:00:36.079
+of symbolic and numerical expression
+
+00:00:36.079 --> 00:00:37.920
+and it's similar in some regard to
+
+00:00:37.920 --> 00:00:39.440
+octave
+
+00:00:39.440 --> 00:00:42.160
+and it's also free software is derived
+
+00:00:42.160 --> 00:00:45.039
+from the maxima from the 60 from the m80
+
+00:00:45.039 --> 00:00:47.120
+and it's written in common lisp which is
+
+00:00:47.120 --> 00:00:48.320
+a language that I really
+
+00:00:48.320 --> 00:00:50.719
+like I enjoy writing it so for me it's a
+
+00:00:50.719 --> 00:00:51.600
+plus
+
+00:00:51.600 --> 00:00:55.039
+okay so let's talk about the initial
+
+00:00:55.039 --> 00:00:57.039
+support for maxima when I first started
+
+00:00:57.039 --> 00:00:59.280
+using it I looked for support into Emacs
+
+00:00:59.280 --> 00:01:00.320
+and I found that
+
+00:01:00.320 --> 00:01:03.120
+there's two major modes in the main
+
+00:01:03.120 --> 00:01:04.640
+repository of maxima
+
+00:01:04.640 --> 00:01:07.200
+for remax the first one is imaxima which
+
+00:01:07.200 --> 00:01:09.280
+I don't know too much about it
+
+00:01:09.280 --> 00:01:12.000
+and the second one is maxima dot l which
+
+00:01:12.000 --> 00:01:13.439
+is the one I took first
+
+00:01:13.439 --> 00:01:16.640
+and it was pretty nice has like a major
+
+00:01:16.640 --> 00:01:18.080
+mode a minor mode
+
+00:01:18.080 --> 00:01:21.280
+a nice ripple but it also has some
+
+00:01:21.280 --> 00:01:23.040
+disadvantage
+
+00:01:23.040 --> 00:01:25.040
+and the first one is that is quite
+
+00:01:25.040 --> 00:01:26.479
+outdated I think
+
+00:01:26.479 --> 00:01:29.600
+it was from the 2007
+
+00:01:29.600 --> 00:01:30.960
+so it's not tested with the current
+
+00:01:30.960 --> 00:01:33.280
+email version and the second one
+
+00:01:33.280 --> 00:01:35.520
+is that it doesn't use modern e-max
+
+00:01:35.520 --> 00:01:36.320
+capability
+
+00:01:36.320 --> 00:01:38.640
+I'm talking for example about the last
+
+00:01:38.640 --> 00:01:40.479
+or more latex preview
+
+00:01:40.479 --> 00:01:44.720
+from the last a max 27.1 I think
+
+00:01:44.720 --> 00:01:46.079
+and that's why is that they know
+
+00:01:46.079 --> 00:01:47.920
+integrated with common third party
+
+00:01:47.920 --> 00:01:49.600
+extension I'm talking about company for
+
+00:01:49.600 --> 00:01:51.520
+example third party
+
+00:01:51.520 --> 00:01:55.360
+yeah you know the alpa melba packages
+
+00:01:55.360 --> 00:01:57.280
+so uh this stock is going to be divided
+
+00:01:57.280 --> 00:01:58.719
+in two parts the first one is going to
+
+00:01:58.719 --> 00:02:00.799
+be how I maximize my date today
+
+00:02:00.799 --> 00:02:03.040
+in max exercise don't worry it's going
+
+00:02:03.040 --> 00:02:03.840
+to be
+
+00:02:03.840 --> 00:02:06.000
+quite easy and the second one is going
+
+00:02:06.000 --> 00:02:07.680
+to be why for the package
+
+00:02:07.680 --> 00:02:10.560
+and the list improvement that I did and
+
+00:02:10.560 --> 00:02:13.200
+a couple of things more maybe the future
+
+00:02:13.200 --> 00:02:14.480
+and where's the package right now if you
+
+00:02:14.480 --> 00:02:16.720
+can use it so
+
+00:02:16.720 --> 00:02:19.440
+let's talk about the workflow so right
+
+00:02:19.440 --> 00:02:21.360
+out of the box it has like an
+
+00:02:21.360 --> 00:02:23.040
+orimal support I didn't write this it
+
+00:02:23.040 --> 00:02:24.400
+was already
+
+00:02:24.400 --> 00:02:27.680
+in Emacs
+
+00:02:27.680 --> 00:02:30.319
+so that's pretty nice let's go with a
+
+00:02:30.319 --> 00:02:32.720
+simple example
+
+00:02:32.720 --> 00:02:34.480
+okay so this is an array of three
+
+00:02:34.480 --> 00:02:36.000
+equations and three variables
+
+00:02:36.000 --> 00:02:37.920
+so it's a system that can be solved and
+
+00:02:37.920 --> 00:02:39.840
+the solution is unique
+
+00:02:39.840 --> 00:02:42.560
+um so we're going to solve it right
+
+00:02:42.560 --> 00:02:44.120
+let's go
+
+00:02:44.120 --> 00:02:47.519
+solutions okay here's how you define a
+
+00:02:47.519 --> 00:02:48.080
+variable
+
+00:02:48.080 --> 00:02:52.640
+in it's called solve okay
+
+00:02:52.640 --> 00:02:56.480
+it's called implicit explicit
+
+00:02:56.480 --> 00:03:00.400
+sorry okay and now an array of
+
+00:03:00.400 --> 00:03:03.680
+our variables actually okay
+
+00:03:03.680 --> 00:03:05.760
+so first of all we have to send this
+
+00:03:05.760 --> 00:03:07.599
+variable to the maxima
+
+00:03:07.599 --> 00:03:10.400
+repo with we can do that with ctrl c
+
+00:03:10.400 --> 00:03:11.200
+control c
+
+00:03:11.200 --> 00:03:14.480
+or with the maxima send line
+
+00:03:14.480 --> 00:03:19.200
+okay so let's um let's put the maxima
+
+00:03:19.200 --> 00:03:20.560
+buffer right here
+
+00:03:20.560 --> 00:03:23.680
+okay let's so um
+
+00:03:23.680 --> 00:03:25.360
+right now we can get the solution like
+
+00:03:25.360 --> 00:03:27.040
+this so we call already
+
+00:03:27.040 --> 00:03:29.360
+uh we call this line right now control
+
+00:03:29.360 --> 00:03:30.239
+sequence to c
+
+00:03:30.239 --> 00:03:31.920
+as you can see we get like an array
+
+00:03:31.920 --> 00:03:33.440
+inside an array because
+
+00:03:33.440 --> 00:03:36.080
+uh let's see why we get this so we can
+
+00:03:36.080 --> 00:03:38.799
+call maxima
+
+00:03:38.799 --> 00:03:42.239
+help a point this will open a
+
+00:03:42.239 --> 00:03:44.879
+dock um buffer with all information
+
+00:03:44.879 --> 00:03:46.000
+about the
+
+00:03:46.000 --> 00:03:48.799
+solve function so we can see that this
+
+00:03:48.799 --> 00:03:51.360
+list of solution equations
+
+00:03:51.360 --> 00:03:54.560
+you can see it okay so but we no we know
+
+00:03:54.560 --> 00:03:56.640
+that this system only have one solution
+
+00:03:56.640 --> 00:03:58.239
+so we're only interested in the first
+
+00:03:58.239 --> 00:04:00.400
+one we can do this like pretty easily
+
+00:04:00.400 --> 00:04:02.080
+just to take the first one
+
+00:04:02.080 --> 00:04:05.120
+we can send it to the buffer so this is
+
+00:04:05.120 --> 00:04:06.640
+quite easy example as you can see
+
+00:04:06.640 --> 00:04:09.280
+they have to completion much of the help
+
+00:04:09.280 --> 00:04:10.400
+facilities that we have
+
+00:04:10.400 --> 00:04:12.319
+we can also get information about the
+
+00:04:12.319 --> 00:04:14.720
+symbol for example maxima
+
+00:04:14.720 --> 00:04:17.440
+symbol doc and we get in the and now you
+
+00:04:17.440 --> 00:04:17.840
+can see
+
+00:04:17.840 --> 00:04:19.840
+correctly in the mini buffer all the
+
+00:04:19.840 --> 00:04:20.959
+possible
+
+00:04:20.959 --> 00:04:24.080
+um parameter of the function
+
+00:04:24.080 --> 00:04:28.000
+right so let's continue
+
+00:04:28.000 --> 00:04:31.440
+okay so let's go to a more well
+
+00:04:31.440 --> 00:04:34.880
+complicated example to say oops
+
+00:04:34.880 --> 00:04:38.560
+okay so we have this
+
+00:04:38.560 --> 00:04:42.400
+equation and we want to go from -1 to 5
+
+00:04:42.400 --> 00:04:43.919
+I want to show in a nice
+
+00:04:43.919 --> 00:04:46.400
+graph right first of all we begin
+
+00:04:46.400 --> 00:04:47.759
+sending this line to the
+
+00:04:47.759 --> 00:04:51.759
+maxima ripple hold it button again
+
+00:04:51.759 --> 00:04:54.880
+okay um so this is not ideal if you want
+
+00:04:54.880 --> 00:04:56.960
+to write down this equation because
+
+00:04:56.960 --> 00:05:00.160
+it's quite messy what is when so
+
+00:05:00.160 --> 00:05:03.039
+uh what's thing are where so we can call
+
+00:05:03.039 --> 00:05:04.479
+the function maxima
+
+00:05:04.479 --> 00:05:07.520
+let's say insert form okay
+
+00:05:07.520 --> 00:05:10.240
+and this is more easy this basically put
+
+00:05:10.240 --> 00:05:11.280
+text behind
+
+00:05:11.280 --> 00:05:14.240
+and led or mode to render it and this is
+
+00:05:14.240 --> 00:05:15.120
+quite easy to
+
+00:05:15.120 --> 00:05:19.039
+write down you can use it like in every
+
+00:05:19.039 --> 00:05:22.560
+expression so um first we have to call a
+
+00:05:22.560 --> 00:05:23.199
+library
+
+00:05:23.199 --> 00:05:27.280
+let's load the library library draw
+
+00:05:27.280 --> 00:05:29.199
+we have also completion for local
+
+00:05:29.199 --> 00:05:31.520
+variable and local
+
+00:05:31.520 --> 00:05:35.039
+libraries sorry let me try to finish
+
+00:05:35.039 --> 00:05:38.240
+draw okay and we send the line
+
+00:05:38.240 --> 00:05:40.320
+so right now we have a leverage and we
+
+00:05:40.320 --> 00:05:42.240
+should even have auto completion for the
+
+00:05:42.240 --> 00:05:43.600
+library function
+
+00:05:43.600 --> 00:05:47.039
+okay we have let's call draw2d
+
+00:05:47.039 --> 00:05:50.400
+and now we can call implicit we should
+
+00:05:50.400 --> 00:05:51.199
+have
+
+00:05:51.199 --> 00:05:54.400
+okay and we can I mean put the variable
+
+00:05:54.400 --> 00:05:57.520
+of equations we put the first variable d
+
+00:05:57.520 --> 00:05:58.639
+minus
+
+00:05:58.639 --> 00:06:02.319
+five d five five
+
+00:06:02.319 --> 00:06:05.280
+the v variable the minus five and the
+
+00:06:05.280 --> 00:06:06.639
+five
+
+00:06:06.639 --> 00:06:09.680
+okay it should be all all good so let me
+
+00:06:09.680 --> 00:06:11.759
+try to send it
+
+00:06:11.759 --> 00:06:14.639
+okay you cannot see it right now because
+
+00:06:14.639 --> 00:06:16.639
+I'm just sharing the maxima screen let
+
+00:06:16.639 --> 00:06:19.360
+me try to change that
+
+00:06:19.360 --> 00:06:23.520
+okay um
+
+00:06:23.520 --> 00:06:31.520
+okay can you plot hello
+
+00:06:31.520 --> 00:06:33.919
+okay so this is basically the graph that
+
+00:06:33.919 --> 00:06:35.440
+I can upload generates
+
+00:06:35.440 --> 00:06:38.800
+uh right now it's not integrated into
+
+00:06:38.800 --> 00:06:41.039
+into the maximum package but it's a work
+
+00:06:41.039 --> 00:06:42.240
+in progress
+
+00:06:42.240 --> 00:06:46.000
+so let's go back to Emacs
+
+00:06:46.000 --> 00:06:50.160
+uh where are you okay there you are okay
+
+00:06:50.160 --> 00:06:53.520
+okay so um
+
+00:06:53.520 --> 00:06:56.639
+let's continue so uh this is some of the
+
+00:06:56.639 --> 00:06:57.759
+things that you can use
+
+00:06:57.759 --> 00:07:00.000
+for your day-to-day programming in
+
+00:07:00.000 --> 00:07:01.919
+maxima
+
+00:07:01.919 --> 00:07:05.759
+let's go now with the
+
+00:07:05.759 --> 00:07:07.360
+okay as you can see this is just text
+
+00:07:07.360 --> 00:07:08.880
+that is render
+
+00:07:08.880 --> 00:07:11.199
+okay let's go within a slide this is how
+
+00:07:11.199 --> 00:07:13.440
+I use maxima a simple example you don't
+
+00:07:13.440 --> 00:07:14.400
+want to
+
+00:07:14.400 --> 00:07:16.240
+talk too much about it because everyone
+
+00:07:16.240 --> 00:07:17.919
+use the package in a different way
+
+00:07:17.919 --> 00:07:19.680
+so right now I'm going to talk about the
+
+00:07:19.680 --> 00:07:21.039
+original package and
+
+00:07:21.039 --> 00:07:23.520
+the way I change it right so the
+
+00:07:23.520 --> 00:07:25.120
+documentation
+
+00:07:25.120 --> 00:07:27.840
+of the original was great but for me it
+
+00:07:27.840 --> 00:07:29.680
+wasn't embedded in the code
+
+00:07:29.680 --> 00:07:31.840
+it was something sometimes hard to read
+
+00:07:31.840 --> 00:07:33.599
+like it was like a big
+
+00:07:33.599 --> 00:07:36.319
+chunk of comment it gave me all the
+
+00:07:36.319 --> 00:07:37.039
+information
+
+00:07:37.039 --> 00:07:40.400
+like um for me that's too much I prefer
+
+00:07:40.400 --> 00:07:44.240
+a cohesive small comment and then a big
+
+00:07:44.240 --> 00:07:45.360
+redmi will order
+
+00:07:45.360 --> 00:07:47.759
+all the links and information so that's
+
+00:07:47.759 --> 00:07:48.960
+one of the first thing I
+
+00:07:48.960 --> 00:07:52.080
+change um then also completion I'm a big
+
+00:07:52.080 --> 00:07:52.560
+fan
+
+00:07:52.560 --> 00:07:55.759
+I'm used to slime so I'm I love
+
+00:07:55.759 --> 00:07:58.639
+great auto completion so um the first
+
+00:07:58.639 --> 00:08:00.160
+thing that I noticed that well
+
+00:08:00.160 --> 00:08:01.840
+it uses an absolute function I don't
+
+00:08:01.840 --> 00:08:04.479
+know if you can see correctly okay
+
+00:08:04.479 --> 00:08:07.039
+comment dynamic is deprecated and it
+
+00:08:07.039 --> 00:08:08.800
+also have like this
+
+00:08:08.800 --> 00:08:10.720
+variable which is maximus symbol which
+
+00:08:10.720 --> 00:08:12.720
+is basically a big
+
+00:08:12.720 --> 00:08:16.160
+list of all the possible completions so
+
+00:08:16.160 --> 00:08:19.280
+if I load the library it's not aware of
+
+00:08:19.280 --> 00:08:20.960
+the new symbols or even if I
+
+00:08:20.960 --> 00:08:23.039
+create a variable it's not loaded so
+
+00:08:23.039 --> 00:08:24.240
+it's not dynamic
+
+00:08:24.240 --> 00:08:26.160
+so I want the first thing I want is
+
+00:08:26.160 --> 00:08:28.319
+dynamic completion right
+
+00:08:28.319 --> 00:08:31.680
+so I improve it which wasn't that hard
+
+00:08:31.680 --> 00:08:34.159
+I first of all create maximum completion
+
+00:08:34.159 --> 00:08:36.080
+which we're going to see in a moment
+
+00:08:36.080 --> 00:08:38.479
+and then it changes completion region so
+
+00:08:38.479 --> 00:08:39.200
+this is the
+
+00:08:39.200 --> 00:08:41.039
+improved version but the good thing is
+
+00:08:41.039 --> 00:08:43.760
+like I decoupled the completion function
+
+00:08:43.760 --> 00:08:45.839
+so I make that you can use it on your
+
+00:08:45.839 --> 00:08:47.600
+own so you get a prefix
+
+00:08:47.600 --> 00:08:50.800
+which is um like
+
+00:08:50.800 --> 00:08:52.560
+the thing that you're going to also
+
+00:08:52.560 --> 00:08:55.040
+complete you get the inferior process
+
+00:08:55.040 --> 00:08:56.959
+which I'm going to talk about later but
+
+00:08:56.959 --> 00:08:58.959
+basically it's a maxima process you can
+
+00:08:58.959 --> 00:08:59.760
+work with
+
+00:08:59.760 --> 00:09:01.760
+and you get an optional argument which
+
+00:09:01.760 --> 00:09:03.040
+is fuzzy finding
+
+00:09:03.040 --> 00:09:06.399
+okay so you can easily send a block here
+
+00:09:06.399 --> 00:09:07.200
+what
+
+00:09:07.200 --> 00:09:10.399
+uh with the propos which is a maxima
+
+00:09:10.399 --> 00:09:11.440
+command that gets you
+
+00:09:11.440 --> 00:09:13.839
+all the auto completion and then you
+
+00:09:13.839 --> 00:09:14.959
+process the
+
+00:09:14.959 --> 00:09:18.240
+the output and you return a list
+
+00:09:18.240 --> 00:09:20.480
+of possible completion this function can
+
+00:09:20.480 --> 00:09:21.600
+be easily put into
+
+00:09:21.600 --> 00:09:24.800
+company as you can see you just
+
+00:09:24.800 --> 00:09:26.640
+get maximum auxiliary inferior process
+
+00:09:26.640 --> 00:09:28.560
+is a process that just
+
+00:09:28.560 --> 00:09:32.080
+uses sorry I have of
+
+00:09:32.080 --> 00:09:35.360
+all the apropos and the get that symbol
+
+00:09:35.360 --> 00:09:36.480
+it's like uh
+
+00:09:36.480 --> 00:09:39.440
+like you say auxiliary let's help me uh
+
+00:09:39.440 --> 00:09:41.360
+for that dirty stuff
+
+00:09:41.360 --> 00:09:43.680
+so and process manipulation let's talk
+
+00:09:43.680 --> 00:09:44.640
+about
+
+00:09:44.640 --> 00:09:46.959
+how the maxima process was in the
+
+00:09:46.959 --> 00:09:47.920
+beginning
+
+00:09:47.920 --> 00:09:50.720
+so at first it was just one process and
+
+00:09:50.720 --> 00:09:52.560
+you send all of the things there
+
+00:09:52.560 --> 00:09:54.560
+and you move the processor here and
+
+00:09:54.560 --> 00:09:56.320
+there and
+
+00:09:56.320 --> 00:09:58.160
+there was a global state right so all
+
+00:09:58.160 --> 00:09:59.600
+the function depends on
+
+00:09:59.600 --> 00:10:02.000
+variable global variables and I don't
+
+00:10:02.000 --> 00:10:05.120
+like that approach I prefer more like a
+
+00:10:05.120 --> 00:10:07.680
+shirt to say functional like you sense
+
+00:10:07.680 --> 00:10:09.519
+one of things and you return
+
+00:10:09.519 --> 00:10:12.000
+something so it's not like a void
+
+00:10:12.000 --> 00:10:13.440
+function so to say
+
+00:10:13.440 --> 00:10:16.399
+so I change it recipe uh well this is
+
+00:10:16.399 --> 00:10:18.079
+the maxima start function now
+
+00:10:18.079 --> 00:10:20.959
+let's just create a startup process with
+
+00:10:20.959 --> 00:10:22.560
+this function which is maxima make
+
+00:10:22.560 --> 00:10:23.680
+inferior
+
+00:10:23.680 --> 00:10:26.880
+so this function just gets a name
+
+00:10:26.880 --> 00:10:30.000
+and it return a process of maxima and
+
+00:10:30.000 --> 00:10:31.519
+you can then manipulate it the way you
+
+00:10:31.519 --> 00:10:32.240
+want
+
+00:10:32.240 --> 00:10:35.600
+let's see a better version so this is
+
+00:10:35.600 --> 00:10:36.800
+the opposite right this
+
+00:10:36.800 --> 00:10:39.200
+remove an inferior process and delete
+
+00:10:39.200 --> 00:10:41.760
+the process and kill the buffer
+
+00:10:41.760 --> 00:10:43.440
+right so let's give an example because
+
+00:10:43.440 --> 00:10:45.519
+this you can see pretty easily in this
+
+00:10:45.519 --> 00:10:46.399
+example
+
+00:10:46.399 --> 00:10:50.079
+so I want to go to the scratch buffer
+
+00:10:50.079 --> 00:10:51.519
+which I think you can see it better
+
+00:10:51.519 --> 00:10:54.399
+okay so this is the way you can get a
+
+00:10:54.399 --> 00:10:55.760
+process with your name
+
+00:10:55.760 --> 00:10:58.320
+and save it into a variable right let's
+
+00:10:58.320 --> 00:11:00.880
+execute this so as you can see well
+
+00:11:00.880 --> 00:11:02.880
+I don't know if you can see big you get
+
+00:11:02.880 --> 00:11:03.920
+a process
+
+00:11:03.920 --> 00:11:05.839
+let's go to it the process called my
+
+00:11:05.839 --> 00:11:07.040
+maxima
+
+00:11:07.040 --> 00:11:09.519
+as the buffer right and if we can you
+
+00:11:09.519 --> 00:11:10.079
+can send
+
+00:11:10.079 --> 00:11:12.240
+stuff to the process right we can call
+
+00:11:12.240 --> 00:11:14.959
+maximus in block get a block of valid
+
+00:11:14.959 --> 00:11:16.880
+maxima code and just pass the variable
+
+00:11:16.880 --> 00:11:17.760
+the process
+
+00:11:17.760 --> 00:11:20.800
+and we send code to the process right we
+
+00:11:20.800 --> 00:11:21.519
+can
+
+00:11:21.519 --> 00:11:23.440
+this is useful if you have some
+
+00:11:23.440 --> 00:11:25.760
+expensive computation that you want
+
+00:11:25.760 --> 00:11:28.480
+to process laser to say so the process
+
+00:11:28.480 --> 00:11:29.680
+can manage it
+
+00:11:29.680 --> 00:11:32.640
+and when you get the results correctly
+
+00:11:32.640 --> 00:11:33.920
+you can also get the result from the
+
+00:11:33.920 --> 00:11:34.399
+process
+
+00:11:34.399 --> 00:11:35.920
+I mean I don't put it here but quite
+
+00:11:35.920 --> 00:11:38.000
+easy and then you
+
+00:11:38.000 --> 00:11:41.200
+removed in favor which is the way to get
+
+00:11:41.200 --> 00:11:42.079
+rid of the process
+
+00:11:42.079 --> 00:11:43.600
+and the buffer so if we call this
+
+00:11:43.600 --> 00:11:45.279
+function we should get rid of the
+
+00:11:45.279 --> 00:11:48.399
+this process and it works the processing
+
+00:11:48.399 --> 00:11:49.920
+is no longer
+
+00:11:49.920 --> 00:11:54.160
+I'm happy to continue so um
+
+00:11:54.160 --> 00:11:56.160
+other things that improve the package on
+
+00:11:56.160 --> 00:11:57.680
+my commitment during time
+
+00:11:57.680 --> 00:11:59.760
+I'm going good okay another thing that I
+
+00:11:59.760 --> 00:12:01.360
+did to the package was to add
+
+00:12:01.360 --> 00:12:02.560
+continue integration and continue
+
+00:12:02.560 --> 00:12:04.959
+delivery right so the package didn't
+
+00:12:04.959 --> 00:12:06.320
+have any tests
+
+00:12:06.320 --> 00:12:09.440
+and the code was a little bit messy so
+
+00:12:09.440 --> 00:12:12.959
+I add integration a test
+
+00:12:12.959 --> 00:12:16.560
+and test with the test simple framework
+
+00:12:16.560 --> 00:12:19.519
+from rocky bursting the maintainer of
+
+00:12:19.519 --> 00:12:20.560
+real
+
+00:12:20.560 --> 00:12:23.279
+good which is a great package by the way
+
+00:12:23.279 --> 00:12:24.079
+um
+
+00:12:24.079 --> 00:12:25.920
+yeah this is one example of the process
+
+00:12:25.920 --> 00:12:28.079
+so right now because um
+
+00:12:28.079 --> 00:12:29.760
+the infrastructure of the process
+
+00:12:29.760 --> 00:12:31.680
+management is decoupled
+
+00:12:31.680 --> 00:12:33.680
+so I can test it pretty easily this is
+
+00:12:33.680 --> 00:12:35.200
+the test function of the
+
+00:12:35.200 --> 00:12:37.519
+inferior running so I can check if an
+
+00:12:37.519 --> 00:12:39.519
+inferior is running right now
+
+00:12:39.519 --> 00:12:41.440
+and I can just delete it after and get
+
+00:12:41.440 --> 00:12:43.200
+the results
+
+00:12:43.200 --> 00:12:45.279
+and I also did some integration with the
+
+00:12:45.279 --> 00:12:46.959
+party packages the first one company of
+
+00:12:46.959 --> 00:12:48.639
+course I love auto completion
+
+00:12:48.639 --> 00:12:50.880
+the second one was hormone that was
+
+00:12:50.880 --> 00:12:53.839
+already there and latex with the
+
+00:12:53.839 --> 00:12:56.880
+um or logic insert form
+
+00:12:56.880 --> 00:13:00.079
+and with poly mode because um let me
+
+00:13:00.079 --> 00:13:02.959
+evaluate this maxima can understand lisp
+
+00:13:02.959 --> 00:13:03.680
+code
+
+00:13:03.680 --> 00:13:06.959
+well more or less it has like a
+
+00:13:06.959 --> 00:13:10.000
+function so to say that you can send a
+
+00:13:10.000 --> 00:13:11.279
+list command to the
+
+00:13:11.279 --> 00:13:13.600
+maxima rebel and you can understand it
+
+00:13:13.600 --> 00:13:14.480
+in some way so
+
+00:13:14.480 --> 00:13:17.839
+we can go to the maxima poly
+
+00:13:17.839 --> 00:13:20.959
+only maxima right you enable polymaxima
+
+00:13:20.959 --> 00:13:22.800
+and it creates a polymode
+
+00:13:22.800 --> 00:13:25.519
+which this is lisp code and this is
+
+00:13:25.519 --> 00:13:26.399
+maxima code
+
+00:13:26.399 --> 00:13:28.639
+so we can send this to the maxima ripple
+
+00:13:28.639 --> 00:13:30.560
+we come to c control r which
+
+00:13:30.560 --> 00:13:34.240
+it sends the um the current
+
+00:13:34.240 --> 00:13:37.760
+um area region sorry
+
+00:13:37.760 --> 00:13:40.160
+and we define a variable which is called
+
+00:13:40.160 --> 00:13:41.839
+test and as we can see we have the
+
+00:13:41.839 --> 00:13:44.000
+variable test right here so you can
+
+00:13:44.000 --> 00:13:47.360
+program in lisp and you can send it to
+
+00:13:47.360 --> 00:13:48.079
+maxima
+
+00:13:48.079 --> 00:13:50.399
+so this is pretty good pretty nice um
+
+00:13:50.399 --> 00:13:51.920
+working integration with
+
+00:13:51.920 --> 00:13:55.040
+the slime mode and with swank so you can
+
+00:13:55.040 --> 00:13:57.120
+actually have a completion of
+
+00:13:57.120 --> 00:13:59.120
+a function inside the maximal list
+
+00:13:59.120 --> 00:14:00.959
+package but
+
+00:14:00.959 --> 00:14:02.800
+this is going to take quite a while
+
+00:14:02.800 --> 00:14:04.399
+because it's not trivial
+
+00:14:04.399 --> 00:14:07.360
+so um we're the feature of maxima right
+
+00:14:07.360 --> 00:14:09.440
+now well we have fonts highlighting
+
+00:14:09.440 --> 00:14:11.519
+smart indentation uh it was already in
+
+00:14:11.519 --> 00:14:14.480
+the package but now it's quite better
+
+00:14:14.480 --> 00:14:16.880
+great help functions right now I can
+
+00:14:16.880 --> 00:14:18.160
+find the recommendation quite
+
+00:14:18.160 --> 00:14:20.800
+fast and currently the menu integration
+
+00:14:20.800 --> 00:14:22.160
+this is quite basic it needs to be a
+
+00:14:22.160 --> 00:14:23.120
+little bit improved
+
+00:14:23.120 --> 00:14:25.199
+uh latex support also completion the
+
+00:14:25.199 --> 00:14:26.720
+company and maximizer process
+
+00:14:26.720 --> 00:14:28.480
+integration and mini buffer I didn't
+
+00:14:28.480 --> 00:14:29.120
+show you
+
+00:14:29.120 --> 00:14:32.880
+but basically if you call global maxima
+
+00:14:32.880 --> 00:14:34.639
+minor mode you have the minor mode you
+
+00:14:34.639 --> 00:14:36.720
+call maxima mini buffer
+
+00:14:36.720 --> 00:14:38.399
+how are you okay mini buffer you can
+
+00:14:38.399 --> 00:14:40.720
+basically just write simple maxima
+
+00:14:40.720 --> 00:14:42.720
+command and it will give you the result
+
+00:14:42.720 --> 00:14:45.920
+this is like a permanent version of um
+
+00:14:45.920 --> 00:14:48.959
+calc so you can do it you write the
+
+00:14:48.959 --> 00:14:50.560
+command and you get the output uh way
+
+00:14:50.560 --> 00:14:52.320
+more to come I have like a list
+
+00:14:52.320 --> 00:14:56.079
+of issues that I put enhancement a new
+
+00:14:56.079 --> 00:14:58.880
+feature that I'm going to develop
+
+00:14:58.880 --> 00:15:01.199
+so uh the future under presence of the
+
+00:15:01.199 --> 00:15:03.120
+package well the package is right now
+
+00:15:03.120 --> 00:15:06.880
+melpa a melba stable um
+
+00:15:06.880 --> 00:15:10.720
+in this 0.7.6 version
+
+00:15:10.720 --> 00:15:13.360
+and I'm planning to include into the
+
+00:15:13.360 --> 00:15:15.279
+known canoe alpha
+
+00:15:15.279 --> 00:15:16.720
+this is the url of the package by the
+
+00:15:16.720 --> 00:15:18.959
+way so you can if you go to metapod you
+
+00:15:18.959 --> 00:15:20.079
+put maxima and
+
+00:15:20.079 --> 00:15:22.160
+you can download it it doesn't have too
+
+00:15:22.160 --> 00:15:23.199
+much dependencies
+
+00:15:23.199 --> 00:15:26.639
+you aware of that um and thank you very
+
+00:15:26.639 --> 00:15:27.120
+much
+
+00:15:27.120 --> 00:15:28.720
+uh this is going to be my talk these are
+
+00:15:28.720 --> 00:15:30.959
+my uh information
+
+00:15:30.959 --> 00:15:33.519
+this is my gitlab this is my page which
+
+00:15:33.519 --> 00:15:34.000
+I don't
+
+00:15:34.000 --> 00:15:37.120
+love too much and this is my email
+
+00:15:37.120 --> 00:15:40.240
+so um thank you very much and I will be
+
+00:15:40.240 --> 00:15:41.839
+answering some questions right now
+
+00:15:41.839 --> 00:15:45.600
+and happy hacking
+
+00:15:45.600 --> 00:15:49.600
+you are now unmuted thank you very much
+
+00:15:49.600 --> 00:15:52.720
+vermin for the great talk um okay yeah
+
+00:15:52.720 --> 00:15:55.759
+let's see if you have any questions
+
+00:15:55.759 --> 00:15:58.800
+uh yeah I'm reading like this um
+
+00:15:58.800 --> 00:16:01.759
+so I'm a buddy october usually right now
+
+00:16:01.759 --> 00:16:04.560
+okay
+
+00:16:04.560 --> 00:16:06.880
+maxima over october yep there are a
+
+00:16:06.880 --> 00:16:08.639
+couple questions
+
+00:16:08.639 --> 00:16:11.519
+wow maxima we're okay I don't want to I
+
+00:16:11.519 --> 00:16:12.160
+don't know
+
+00:16:12.160 --> 00:16:13.940
+october that much um
+
+00:16:13.940 --> 00:16:15.680
+[Music]
+
+00:16:15.680 --> 00:16:17.839
+like I use it like a couple of times but
+
+00:16:17.839 --> 00:16:18.880
+I'm not happy
+
+00:16:18.880 --> 00:16:24.000
+and I found the octave packets to be
+
+00:16:24.000 --> 00:16:27.120
+quite a little bit harder to understand
+
+00:16:27.120 --> 00:16:31.519
+and also that
+
+00:16:31.519 --> 00:16:33.839
+it didn't have too much features like I
+
+00:16:33.839 --> 00:16:35.680
+prefer the maximum used to
+
+00:16:35.680 --> 00:16:37.839
+maybe octave is better I don't I'm not
+
+00:16:37.839 --> 00:16:38.880
+100 sure
+
+00:16:38.880 --> 00:16:40.800
+I know that you can use it for similar
+
+00:16:40.800 --> 00:16:42.079
+stuff but
+
+00:16:42.079 --> 00:16:47.120
+that's it so sorry
+
+00:16:47.120 --> 00:16:50.959
+okay I'm in a little bit of a rush sorry
+
+00:16:50.959 --> 00:16:54.079
+let me drink a little blue okay
+
+00:16:54.079 --> 00:17:00.639
+okay
+
+00:17:00.639 --> 00:17:05.280
+okay how does maxima compare to sagemath
+
+00:17:05.280 --> 00:17:08.959
+in imax
+
+00:17:08.959 --> 00:17:13.360
+I mean I don't know what is sage
+
+00:17:13.360 --> 00:17:17.439
+math I'm sorry um so I cannot answer
+
+00:17:17.439 --> 00:17:18.079
+your question
+
+00:17:18.079 --> 00:17:21.839
+with your question I think um
+
+00:17:21.839 --> 00:17:25.039
+sorry but I mean maxima is ready in
+
+00:17:25.039 --> 00:17:26.720
+combo list that's just a preference for
+
+00:17:26.720 --> 00:17:28.000
+me because I like
+
+00:17:28.000 --> 00:17:31.120
+lisp dialect and common lisp is
+
+00:17:31.120 --> 00:17:36.400
+interesting um
+
+00:17:36.400 --> 00:17:40.480
+yeah do you plan to
+
+00:17:40.480 --> 00:17:42.720
+I mean a maximum organization for maxima
+
+00:17:42.720 --> 00:17:43.840
+code block
+
+00:17:43.840 --> 00:17:47.360
+yes I want to improve the um
+
+00:17:47.360 --> 00:17:50.720
+of maxima package but I didn't have
+
+00:17:50.720 --> 00:17:52.000
+enough time and I want to
+
+00:17:52.000 --> 00:17:54.400
+clear a little bit of the code because
+
+00:17:54.400 --> 00:17:58.000
+still right now
+
+00:17:58.000 --> 00:18:00.080
+the code is quite messy in some areas
+
+00:18:00.080 --> 00:18:02.080
+because I pretty much implement first
+
+00:18:02.080 --> 00:18:03.520
+the base function I want to
+
+00:18:03.520 --> 00:18:05.600
+build on top of so right now it's quite
+
+00:18:05.600 --> 00:18:07.120
+usable but I still have something that I
+
+00:18:07.120 --> 00:18:07.919
+want to improve
+
+00:18:07.919 --> 00:18:11.120
+so when I finish that I will
+
+00:18:11.120 --> 00:18:14.799
+improve the normal version I think
+
+00:18:14.799 --> 00:18:16.640
+it's maximizing to get into into your
+
+00:18:16.640 --> 00:18:18.640
+opinion yes I
+
+00:18:18.640 --> 00:18:21.200
+I think that the creator of maxima like
+
+00:18:21.200 --> 00:18:21.919
+have this
+
+00:18:21.919 --> 00:18:26.640
+lisp mine and probably
+
+00:18:26.640 --> 00:18:29.520
+that they if you go to a symbol you get
+
+00:18:29.520 --> 00:18:30.559
+all the information
+
+00:18:30.559 --> 00:18:33.520
+and that reflects that you can actually
+
+00:18:33.520 --> 00:18:36.480
+write your program of maxima into
+
+00:18:36.480 --> 00:18:40.000
+um into lisp literally because they have
+
+00:18:40.000 --> 00:18:40.799
+a command
+
+00:18:40.799 --> 00:18:42.480
+so I think that is quite easy to get
+
+00:18:42.480 --> 00:18:44.880
+into some university use it for
+
+00:18:44.880 --> 00:18:48.240
+um first um
+
+00:18:48.240 --> 00:18:51.200
+years so it's quite easy and I think
+
+00:18:51.200 --> 00:18:53.039
+with my package you can use it
+
+00:18:53.039 --> 00:18:56.640
+like pretty pretty easily just create a
+
+00:18:56.640 --> 00:18:58.960
+file and you can start typing and
+
+00:18:58.960 --> 00:19:00.880
+maximize quite easy to install also
+
+00:19:00.880 --> 00:19:04.400
+so I think yeah it's crazy and
+
+00:19:04.400 --> 00:19:07.600
+the page should restart I don't know why
+
+00:19:07.600 --> 00:19:18.320
+sorry
+
+00:19:18.320 --> 00:19:22.559
+strict in fixed lisp syntax
+
+00:19:22.559 --> 00:19:25.440
+you're talking about the maxima itself
+
+00:19:25.440 --> 00:19:26.240
+syntax
+
+00:19:26.240 --> 00:19:27.760
+or I don't understand the question
+
+00:19:27.760 --> 00:19:32.240
+correctly
+
+00:19:32.240 --> 00:19:33.679
+well I'm going to go to the next
+
+00:19:33.679 --> 00:19:35.440
+question is there
+
+00:19:35.440 --> 00:19:37.360
+support for images in maximum mode not
+
+00:19:37.360 --> 00:19:38.880
+right now
+
+00:19:38.880 --> 00:19:45.280
+the way I want to implement some imax
+
+00:19:45.280 --> 00:19:49.120
+things uh is there support for
+
+00:19:49.120 --> 00:19:51.280
+but right now it doesn't have like a if
+
+00:19:51.280 --> 00:19:53.360
+you could want to have a new plot
+
+00:19:53.360 --> 00:19:55.600
+um inside you buffer right now it's not
+
+00:19:55.600 --> 00:19:56.720
+possible so
+
+00:19:56.720 --> 00:19:59.360
+that's the thing that I maximized that
+
+00:19:59.360 --> 00:20:01.200
+maxima.l still doesn't
+
+00:20:01.200 --> 00:20:03.520
+do which university you start to use
+
+00:20:03.520 --> 00:20:04.720
+maxima um
+
+00:20:04.720 --> 00:20:08.799
+in this aragosa university from spain
+
+00:20:08.799 --> 00:20:11.840
+they used to maximize the um thing in
+
+00:20:11.840 --> 00:20:12.640
+the engineer
+
+00:20:12.640 --> 00:20:16.400
+and in the math also so I'm 100 sure
+
+00:20:16.400 --> 00:20:18.320
+right now but when I started
+
+00:20:18.320 --> 00:20:19.679
+are you planning to option your package
+
+00:20:19.679 --> 00:20:22.559
+into maxima um I don't know about that
+
+00:20:22.559 --> 00:20:25.440
+because uh maybe can be a little bit
+
+00:20:25.440 --> 00:20:26.320
+messy
+
+00:20:26.320 --> 00:20:30.720
+um because the maxima ripple is more
+
+00:20:30.720 --> 00:20:32.960
+built around like maxima itself and they
+
+00:20:32.960 --> 00:20:33.360
+don't
+
+00:20:33.360 --> 00:20:37.600
+update the interfaces that much
+
+00:20:37.600 --> 00:20:42.240
+I have no problem like it's okay it just
+
+00:20:42.240 --> 00:20:45.360
+you have to um if you want to push you
+
+00:20:45.360 --> 00:20:46.320
+can push in other
+
+00:20:46.320 --> 00:20:48.480
+repository I mean it's just changed the
+
+00:20:48.480 --> 00:20:49.520
+file another way
+
+00:20:49.520 --> 00:20:52.880
+but also the test um is going to be a
+
+00:20:52.880 --> 00:20:54.080
+little bit harder because I think
+
+00:20:54.080 --> 00:20:55.200
+they're using
+
+00:20:55.200 --> 00:20:59.120
+search for and I'm using
+
+00:20:59.120 --> 00:21:01.200
+git lab continue integration within the
+
+00:21:01.200 --> 00:21:02.159
+jury
+
+00:21:02.159 --> 00:21:06.799
+so yeah I don't think that now unmuted
+
+00:21:06.799 --> 00:21:10.799
+yeah it will be nice
+
+00:21:10.799 --> 00:21:12.799
+okay um it's possible to include
+
+00:21:12.799 --> 00:21:14.840
+maximizing or false similar to jupiter
+
+00:21:14.840 --> 00:21:16.480
+notebooks
+
+00:21:16.480 --> 00:21:19.919
+um I mean you can uh use maximize your
+
+00:21:19.919 --> 00:21:23.280
+or files and you have maximum l mod
+
+00:21:23.280 --> 00:21:26.320
+integrated and you can like create put
+
+00:21:26.320 --> 00:21:31.520
+that code into a buffer and then
+
+00:21:31.520 --> 00:21:34.400
+uh edited correctly but it is now not it
+
+00:21:34.400 --> 00:21:36.159
+doesn't have like all the features like
+
+00:21:36.159 --> 00:21:37.679
+other languages because
+
+00:21:37.679 --> 00:21:40.480
+right now uh as my understanding is
+
+00:21:40.480 --> 00:21:42.320
+quite basic so I still have some
+
+00:21:42.320 --> 00:21:45.440
+still needs some some stuff some work
+
+00:21:45.440 --> 00:21:47.919
+around
+
+00:21:47.919 --> 00:21:52.320
+okay I think that's it
+
+00:21:52.320 --> 00:21:56.320
+you are now unmuted
+
+00:21:56.320 --> 00:21:59.600
+yep so that's it uh thank you very much
+
+00:21:59.600 --> 00:22:01.919
+fermin for your live talk and for you
+
+00:22:01.919 --> 00:22:04.640
+know the live q a
+
+00:22:04.640 --> 00:22:07.679
+thank you all amazing uh max conf
+
+00:22:07.679 --> 00:22:09.840
+cheers thank you it's thanks to you all
+
+00:22:09.840 --> 00:22:10.720
+you guys
+
+00:22:10.720 --> 00:22:16.840
+it's awesome okay thank you cheers bye
+
+00:22:16.840 --> 00:22:19.840
+bye
diff --git a/2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt b/2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt
new file mode 100644
index 00000000..d9a406f9
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt
@@ -0,0 +1,1714 @@
+WEBVTT
+
+00:00:03.600 --> 00:00:04.560
+hello
+
+00:00:04.560 --> 00:00:06.720
+hopefully everyone is staying safe and
+
+00:00:06.720 --> 00:00:08.000
+staying home
+
+00:00:08.000 --> 00:00:10.000
+I feel very grateful to live in a world
+
+00:00:10.000 --> 00:00:12.000
+today that technology and free software
+
+00:00:12.000 --> 00:00:13.759
+can be leveraged to connect people in
+
+00:00:13.759 --> 00:00:16.080
+such disconnected and difficult times
+
+00:00:16.080 --> 00:00:17.840
+and to have an online conference like
+
+00:00:17.840 --> 00:00:19.920
+this hopefully you've all
+
+00:00:19.920 --> 00:00:22.960
+enjoyed this year's Emacs con so far
+
+00:00:22.960 --> 00:00:24.720
+many thanks to all the people that made
+
+00:00:24.720 --> 00:00:26.880
+this possible
+
+00:00:26.880 --> 00:00:30.000
+anyways welcome to my talk extend Emacs
+
+00:00:30.000 --> 00:00:30.960
+to modern gui
+
+00:00:30.960 --> 00:00:34.079
+applications with eaf the imax
+
+00:00:34.079 --> 00:00:35.920
+application framework
+
+00:00:35.920 --> 00:00:38.320
+this will be my first ever talk so
+
+00:00:38.320 --> 00:00:39.840
+apologies for my
+
+00:00:39.840 --> 00:00:43.280
+inexperience let us begin
+
+00:00:43.280 --> 00:00:46.559
+about me my name is matthew zing you can
+
+00:00:46.559 --> 00:00:47.840
+also call me mt
+
+00:00:47.840 --> 00:00:50.640
+or mindu I'm a chinese canadian living
+
+00:00:50.640 --> 00:00:51.440
+in toronto
+
+00:00:51.440 --> 00:00:54.239
+ontario offline I'm an undergrad
+
+00:00:54.239 --> 00:00:56.079
+studying mathematics at the university
+
+00:00:56.079 --> 00:00:57.760
+of urudu
+
+00:00:57.760 --> 00:01:00.480
+online I mean one of the admins of the
+
+00:01:00.480 --> 00:01:03.039
+Emacs china
+
+00:01:03.039 --> 00:01:06.320
+the largest Emacs forum in china so
+
+00:01:06.320 --> 00:01:08.080
+to all chinese listen to my talk right
+
+00:01:08.080 --> 00:01:10.960
+now feel free to check it out
+
+00:01:10.960 --> 00:01:14.320
+and this is a link to my github profile
+
+00:01:14.320 --> 00:01:17.280
+to my projects I'm involving one's me
+
+00:01:17.280 --> 00:01:18.240
+max which is
+
+00:01:18.240 --> 00:01:20.159
+I'm the author of a user-friendly
+
+00:01:20.159 --> 00:01:21.840
+full-featured image configuration
+
+00:01:21.840 --> 00:01:22.799
+distribution
+
+00:01:22.799 --> 00:01:25.040
+it is what I'm using right now as well
+
+00:01:25.040 --> 00:01:26.880
+as the imax application filter
+
+00:01:26.880 --> 00:01:29.119
+which I help to maintain along with the
+
+00:01:29.119 --> 00:01:30.400
+other other
+
+00:01:30.400 --> 00:01:33.040
+lazy cat which of course is today's
+
+00:01:33.040 --> 00:01:35.759
+topic
+
+00:01:35.759 --> 00:01:38.720
+so as you might all might have already
+
+00:01:38.720 --> 00:01:40.960
+noticed I'm currently using Emacs
+
+00:01:40.960 --> 00:01:43.600
+and oh and opening navigating closing
+
+00:01:43.600 --> 00:01:45.360
+all these websites that are rendered
+
+00:01:45.360 --> 00:01:46.159
+properly
+
+00:01:46.159 --> 00:01:49.200
+or within Emacs it's all thanks to the
+
+00:01:49.200 --> 00:01:51.840
+ef project
+
+00:01:51.840 --> 00:01:54.000
+so we're living in a society that's
+
+00:01:54.000 --> 00:01:55.920
+heavily dependent on the internet
+
+00:01:55.920 --> 00:01:59.520
+and multimedia it is unavoidable to run
+
+00:01:59.520 --> 00:02:01.200
+to some occasion that you need to
+
+00:02:01.200 --> 00:02:02.880
+open a fancy website that uses
+
+00:02:02.880 --> 00:02:04.799
+javascript and css
+
+00:02:04.799 --> 00:02:08.239
+or you need to watch some videos however
+
+00:02:08.239 --> 00:02:11.120
+due to the nature and history of Emacs
+
+00:02:11.120 --> 00:02:11.840
+it cannot
+
+00:02:11.840 --> 00:02:13.840
+render all these modern graphics
+
+00:02:13.840 --> 00:02:16.400
+effectively and efficiently
+
+00:02:16.400 --> 00:02:19.360
+Emacs is solely a text-based editing
+
+00:02:19.360 --> 00:02:20.400
+environment
+
+00:02:20.400 --> 00:02:23.520
+and I argue that this is not a bad thing
+
+00:02:23.520 --> 00:02:25.680
+in fact it is one of the reasons that me
+
+00:02:25.680 --> 00:02:27.760
+and I believe many of you as well
+
+00:02:27.760 --> 00:02:29.760
+are attracted to Emacs in the first
+
+00:02:29.760 --> 00:02:30.879
+place
+
+00:02:30.879 --> 00:02:33.760
+unfortunately this results in us having
+
+00:02:33.760 --> 00:02:35.680
+to open a dedicated web browser to
+
+00:02:35.680 --> 00:02:37.040
+browse the internet
+
+00:02:37.040 --> 00:02:38.879
+open a dedicated video player to watch
+
+00:02:38.879 --> 00:02:41.440
+some videos or a pdf render to read some
+
+00:02:41.440 --> 00:02:42.640
+documents
+
+00:02:42.640 --> 00:02:45.200
+so far ems cannot do all these tasks on
+
+00:02:45.200 --> 00:02:46.000
+its own
+
+00:02:46.000 --> 00:02:48.080
+but can only be achieved using other
+
+00:02:48.080 --> 00:02:51.519
+external applications
+
+00:02:51.519 --> 00:02:55.840
+so the other the author manatee lazy cat
+
+00:02:55.840 --> 00:02:58.640
+or lazy cat in short didn't want to use
+
+00:02:58.640 --> 00:03:00.560
+all these external applications
+
+00:03:00.560 --> 00:03:03.120
+he wanted to have an uninterrupted e-max
+
+00:03:03.120 --> 00:03:04.159
+experience
+
+00:03:04.159 --> 00:03:07.280
+he wanted to truly live in e-max
+
+00:03:07.280 --> 00:03:10.080
+however it would be a lot of work to
+
+00:03:10.080 --> 00:03:11.040
+build this
+
+00:03:11.040 --> 00:03:13.519
+modern application from scratch there's
+
+00:03:13.519 --> 00:03:16.239
+simply no time or research to do that
+
+00:03:16.239 --> 00:03:18.800
+so lazy car without utilizing existing
+
+00:03:18.800 --> 00:03:20.400
+applications
+
+00:03:20.400 --> 00:03:22.319
+and to try to make it collaborate with
+
+00:03:22.319 --> 00:03:24.959
+Emacs there are many solutions available
+
+00:03:24.959 --> 00:03:26.000
+one of it
+
+00:03:26.000 --> 00:03:28.560
+is the e-max x windows manager and I'm
+
+00:03:28.560 --> 00:03:30.159
+sure a lot of you already know that
+
+00:03:30.159 --> 00:03:33.360
+the exwm however it didn't work for him
+
+00:03:33.360 --> 00:03:35.200
+because although ux doubling opens the
+
+00:03:35.200 --> 00:03:37.440
+door to use other applications within
+
+00:03:37.440 --> 00:03:38.239
+Emacs
+
+00:03:38.239 --> 00:03:40.879
+it as a fine window manager cannot
+
+00:03:40.879 --> 00:03:41.519
+modify
+
+00:03:41.519 --> 00:03:43.920
+customize or extend other software from
+
+00:03:43.920 --> 00:03:45.040
+Emacs
+
+00:03:45.040 --> 00:03:46.799
+for example it cannot modify the
+
+00:03:46.799 --> 00:03:48.480
+behavior when you press a key in
+
+00:03:48.480 --> 00:03:49.599
+chromium or
+
+00:03:49.599 --> 00:03:52.159
+pdf viewer therefore it cannot utilize
+
+00:03:52.159 --> 00:03:54.000
+the rich emax ecosystem that's been
+
+00:03:54.000 --> 00:03:57.360
+growing for almost 40 years
+
+00:03:57.360 --> 00:04:00.720
+on the other hand in the ef browser so
+
+00:04:00.720 --> 00:04:03.760
+if you mx ef open
+
+00:04:03.760 --> 00:04:07.200
+browser with history you can see
+
+00:04:07.200 --> 00:04:09.840
+on the lower half of my screen a list of
+
+00:04:09.840 --> 00:04:11.920
+histories sorted by my personal
+
+00:04:11.920 --> 00:04:14.560
+most visited sites and you can search
+
+00:04:14.560 --> 00:04:16.560
+for a site that you've been
+
+00:04:16.560 --> 00:04:19.440
+into or search for some keyword and in a
+
+00:04:19.440 --> 00:04:21.840
+search engine
+
+00:04:21.840 --> 00:04:24.240
+so this is all achieved by utilizing the
+
+00:04:24.240 --> 00:04:25.919
+popular completion framework in the
+
+00:04:25.919 --> 00:04:29.280
+Emacs ecosystem
+
+00:04:29.280 --> 00:04:31.120
+so this car decided to develop a
+
+00:04:31.120 --> 00:04:33.680
+solution of its own in 2018
+
+00:04:33.680 --> 00:04:36.960
+namely the eaf project so I joined the
+
+00:04:36.960 --> 00:04:40.840
+development last year
+
+00:04:40.840 --> 00:04:44.000
+2019 ef is
+
+00:04:44.000 --> 00:04:47.880
+a highly customizable and extensible
+
+00:04:47.880 --> 00:04:49.759
+reapplication framework that extends
+
+00:04:49.759 --> 00:04:52.160
+imax to graphical capabilities using pi
+
+00:04:52.160 --> 00:04:57.840
+qd5 and it is not a window manager
+
+00:04:57.840 --> 00:05:02.479
+alright so in the readme you can see a
+
+00:05:02.479 --> 00:05:03.440
+list of gifs
+
+00:05:03.440 --> 00:05:05.600
+showcasing all the available ef
+
+00:05:05.600 --> 00:05:06.720
+applications
+
+00:05:06.720 --> 00:05:09.520
+a browser a markdown premier a video
+
+00:05:09.520 --> 00:05:10.960
+player
+
+00:05:10.960 --> 00:05:14.240
+a pdf viewer and more today I don't have
+
+00:05:14.240 --> 00:05:16.160
+enough time to demonstrate each one of
+
+00:05:16.160 --> 00:05:16.560
+them
+
+00:05:16.560 --> 00:05:18.720
+but I will select a couple applications
+
+00:05:18.720 --> 00:05:21.120
+to show you
+
+00:05:21.120 --> 00:05:24.240
+so since we are already using ef browser
+
+00:05:24.240 --> 00:05:27.840
+we'll start with this besides using the
+
+00:05:27.840 --> 00:05:29.600
+classic control n control p
+
+00:05:29.600 --> 00:05:32.000
+you can also use the vim style xjkl to
+
+00:05:32.000 --> 00:05:33.840
+move up or down
+
+00:05:33.840 --> 00:05:36.320
+also meta shift comma or g to the
+
+00:05:36.320 --> 00:05:37.280
+beginning of page
+
+00:05:37.280 --> 00:05:39.120
+when that shift period or capital g to
+
+00:05:39.120 --> 00:05:41.199
+the end of page
+
+00:05:41.199 --> 00:05:44.320
+limiting and surfing keys linear and
+
+00:05:44.320 --> 00:05:46.479
+surfing keys are popular keyboard-based
+
+00:05:46.479 --> 00:05:48.400
+browsing techniques in chrome
+
+00:05:48.400 --> 00:05:50.479
+and they've imported here as well you
+
+00:05:50.479 --> 00:05:52.720
+can press f to toggle markers pointing
+
+00:05:52.720 --> 00:05:53.039
+to
+
+00:05:53.039 --> 00:05:55.280
+all the links in the current page say I
+
+00:05:55.280 --> 00:05:56.960
+want to visit the wiki
+
+00:05:56.960 --> 00:05:59.680
+which comes very very handy when you
+
+00:05:59.680 --> 00:06:02.400
+want to configure ef to your liking
+
+00:06:02.400 --> 00:06:04.720
+so you see the marker on top of wiki is
+
+00:06:04.720 --> 00:06:05.440
+dd
+
+00:06:05.440 --> 00:06:08.479
+press dd and you enter and now
+
+00:06:08.479 --> 00:06:10.240
+you will navigate it to this link so you
+
+00:06:10.240 --> 00:06:13.840
+don't need to use your mouse at all
+
+00:06:13.840 --> 00:06:16.560
+so a full list of key bindings can be
+
+00:06:16.560 --> 00:06:17.680
+found when you
+
+00:06:17.680 --> 00:06:20.560
+control hm just as any other max major
+
+00:06:20.560 --> 00:06:21.199
+mode
+
+00:06:21.199 --> 00:06:22.960
+so you don't have to remember everything
+
+00:06:22.960 --> 00:06:25.600
+all the key bindings I said to you
+
+00:06:25.600 --> 00:06:28.560
+so this is a global binding application
+
+00:06:28.560 --> 00:06:30.960
+to every other ef application as well
+
+00:06:30.960 --> 00:06:34.319
+so you can find it under the week or or
+
+00:06:34.319 --> 00:06:36.720
+you can find it under the wiki in the
+
+00:06:36.720 --> 00:06:37.600
+key binding
+
+00:06:37.600 --> 00:06:40.639
+section so press f again and use
+
+00:06:40.639 --> 00:06:44.240
+ns press enter now you're in the key
+
+00:06:44.240 --> 00:06:45.600
+binding web page
+
+00:06:45.600 --> 00:06:47.520
+you can see all of the key buttons
+
+00:06:47.520 --> 00:06:49.280
+available in every
+
+00:06:49.280 --> 00:06:53.919
+es application and you can try them out
+
+00:06:53.919 --> 00:06:56.479
+and you can customize your key bindings
+
+00:06:56.479 --> 00:06:57.360
+using ef
+
+00:06:57.360 --> 00:07:00.240
+bank key you can customize control n as
+
+00:07:00.240 --> 00:07:02.960
+in the web page to
+
+00:07:02.960 --> 00:07:05.759
+to scroll up in the ef pdf viewer or you
+
+00:07:05.759 --> 00:07:06.639
+can unbind
+
+00:07:06.639 --> 00:07:09.599
+an existing binding using using yet bank
+
+00:07:09.599 --> 00:07:10.000
+key
+
+00:07:10.000 --> 00:07:14.840
+binder to new so it doesn't bind to
+
+00:07:14.840 --> 00:07:16.160
+anything
+
+00:07:16.160 --> 00:07:20.319
+okay so here comes the important part
+
+00:07:20.319 --> 00:07:22.479
+if you want to customize ef you should
+
+00:07:22.479 --> 00:07:25.440
+visit the customization page in the wiki
+
+00:07:25.440 --> 00:07:28.840
+so now I press meta b to go back in
+
+00:07:28.840 --> 00:07:30.240
+history and
+
+00:07:30.240 --> 00:07:32.960
+go to the customization package press f
+
+00:07:32.960 --> 00:07:34.080
+press a d
+
+00:07:34.080 --> 00:07:36.639
+enter and now we're in the customization
+
+00:07:36.639 --> 00:07:37.360
+page
+
+00:07:37.360 --> 00:07:39.280
+so the first customization option you
+
+00:07:39.280 --> 00:07:42.639
+see is dark mode
+
+00:07:42.639 --> 00:07:44.479
+let's say if you want to turn on the doc
+
+00:07:44.479 --> 00:07:46.720
+mode for ef browser
+
+00:07:46.720 --> 00:07:48.479
+and you don't want to use your mouse to
+
+00:07:48.479 --> 00:07:49.919
+do all this stuff
+
+00:07:49.919 --> 00:07:53.360
+you press c and you can select
+
+00:07:53.360 --> 00:07:55.840
+c to toggle the correct browsing you can
+
+00:07:55.840 --> 00:07:58.240
+see a lot of markers available
+
+00:07:58.240 --> 00:08:01.280
+pop um again but they're not they're not
+
+00:08:01.280 --> 00:08:02.720
+on top of links but instead of
+
+00:08:02.720 --> 00:08:03.599
+paragraphs
+
+00:08:03.599 --> 00:08:05.360
+you select the paragraph or your choice
+
+00:08:05.360 --> 00:08:06.639
+in this case you want
+
+00:08:06.639 --> 00:08:10.240
+ls which comes here
+
+00:08:10.240 --> 00:08:12.720
+and then you just you just move the
+
+00:08:12.720 --> 00:08:15.120
+cursor like what you always do
+
+00:08:15.120 --> 00:08:18.800
+in Emacs and now you select everything
+
+00:08:18.800 --> 00:08:23.280
+and use meta w to
+
+00:08:23.280 --> 00:08:25.680
+excuse me metadata to copy the taste the
+
+00:08:25.680 --> 00:08:26.479
+text
+
+00:08:26.479 --> 00:08:29.199
+now we made a shift column to evaluate
+
+00:08:29.199 --> 00:08:30.960
+what we just copied
+
+00:08:30.960 --> 00:08:35.120
+and set that to true and
+
+00:08:35.120 --> 00:08:38.320
+press r or f5 to refresh the page
+
+00:08:38.320 --> 00:08:42.159
+voila we have the dark mode enabled
+
+00:08:42.159 --> 00:08:44.880
+so there are well let's take a toggle
+
+00:08:44.880 --> 00:08:46.160
+back off for now
+
+00:08:46.160 --> 00:08:49.360
+now we made our shift column again
+
+00:08:49.360 --> 00:08:51.600
+and we find the the one we just used and
+
+00:08:51.600 --> 00:08:53.519
+change it back to false
+
+00:08:53.519 --> 00:08:56.880
+and refresh the page back in the light
+
+00:08:56.880 --> 00:08:59.360
+mode
+
+00:08:59.360 --> 00:09:02.160
+so there are many other customization
+
+00:09:02.160 --> 00:09:03.680
+options available you can either
+
+00:09:03.680 --> 00:09:05.920
+evaluate like what we just did or add it
+
+00:09:05.920 --> 00:09:08.000
+to your Emacs configuration file
+
+00:09:08.000 --> 00:09:11.680
+so in this wiki you can have you can
+
+00:09:11.680 --> 00:09:14.399
+you can make the ef browser to to
+
+00:09:14.399 --> 00:09:16.320
+continue where you left off
+
+00:09:16.320 --> 00:09:20.160
+similar to the chromium setting
+
+00:09:20.160 --> 00:09:22.800
+and you can make yes the default browser
+
+00:09:22.800 --> 00:09:23.839
+Emacs by
+
+00:09:23.839 --> 00:09:26.720
+aliasing aliasing browse web to your
+
+00:09:26.720 --> 00:09:27.680
+open browser
+
+00:09:27.680 --> 00:09:30.399
+or or set the browse url browser
+
+00:09:30.399 --> 00:09:31.200
+function to
+
+00:09:31.200 --> 00:09:33.519
+open browser there's just some tricks
+
+00:09:33.519 --> 00:09:34.480
+and there are also
+
+00:09:34.480 --> 00:09:37.920
+uh an experimental app blocker currently
+
+00:09:37.920 --> 00:09:41.680
+take in place and so therefore it can
+
+00:09:41.680 --> 00:09:44.720
+block some elements but not all so
+
+00:09:44.720 --> 00:09:47.279
+we we really encourage people to help us
+
+00:09:47.279 --> 00:09:48.240
+test out and
+
+00:09:48.240 --> 00:09:51.440
+add more conditions in
+
+00:09:51.440 --> 00:09:54.560
+so you can so the ef browser is able to
+
+00:09:54.560 --> 00:09:55.760
+download
+
+00:09:55.760 --> 00:09:57.680
+any files from the internet and it will
+
+00:09:57.680 --> 00:09:59.920
+be downloaded using
+
+00:09:59.920 --> 00:10:04.000
+a area too and
+
+00:10:04.000 --> 00:10:06.079
+you can also customize the ef browser
+
+00:10:06.079 --> 00:10:07.200
+download path
+
+00:10:07.200 --> 00:10:11.120
+using ef set so it's a function that we
+
+00:10:11.120 --> 00:10:14.399
+defined similar to set the normal set we
+
+00:10:14.399 --> 00:10:15.040
+know
+
+00:10:15.040 --> 00:10:16.480
+so by default the download file is
+
+00:10:16.480 --> 00:10:18.160
+stored in your home directory slash
+
+00:10:18.160 --> 00:10:19.600
+downloads
+
+00:10:19.600 --> 00:10:20.800
+and you can change that whenever you
+
+00:10:20.800 --> 00:10:22.720
+want you can also disable
+
+00:10:22.720 --> 00:10:26.079
+saving browsing history so remember
+
+00:10:26.079 --> 00:10:28.959
+when I press when I use mx you have open
+
+00:10:28.959 --> 00:10:30.480
+browser's history I see all the
+
+00:10:30.480 --> 00:10:32.079
+histories here but if you want more
+
+00:10:32.079 --> 00:10:33.680
+privacy you don't want that to be
+
+00:10:33.680 --> 00:10:35.360
+available at all you can turn it off
+
+00:10:35.360 --> 00:10:36.560
+easily with ef
+
+00:10:36.560 --> 00:10:38.720
+set queue and set that remember history
+
+00:10:38.720 --> 00:10:40.640
+to false
+
+00:10:40.640 --> 00:10:42.399
+you can also say your default search
+
+00:10:42.399 --> 00:10:43.839
+engine so
+
+00:10:43.839 --> 00:10:47.200
+so right now we have google although
+
+00:10:47.200 --> 00:10:50.480
+not not really good but google and also
+
+00:10:50.480 --> 00:10:53.600
+go which is a better search engine
+
+00:10:53.600 --> 00:10:57.360
+well uh yeah ethically better search
+
+00:10:57.360 --> 00:10:59.360
+engine
+
+00:10:59.360 --> 00:11:02.560
+so you can also configure
+
+00:11:02.560 --> 00:11:05.040
+the zoom so the default zoom of your
+
+00:11:05.040 --> 00:11:07.600
+browser is 1.0 so you can convert
+
+00:11:07.600 --> 00:11:10.000
+convert 3000 to 1.25 so you can so when
+
+00:11:10.000 --> 00:11:11.920
+you open any web page about it will be
+
+00:11:11.920 --> 00:11:14.079
+zoomed
+
+00:11:14.079 --> 00:11:17.360
+by default uh you can
+
+00:11:17.360 --> 00:11:20.399
+also disable javascript although I
+
+00:11:20.399 --> 00:11:22.240
+personally don't really suggest you to
+
+00:11:22.240 --> 00:11:23.440
+do because it will
+
+00:11:23.440 --> 00:11:26.240
+basically break a lot of our features
+
+00:11:26.240 --> 00:11:28.480
+because a lot of the browser browser
+
+00:11:28.480 --> 00:11:29.519
+related features
+
+00:11:29.519 --> 00:11:33.760
+must be implemented using javascript
+
+00:11:33.760 --> 00:11:35.440
+but yeah you can do it if you really
+
+00:11:35.440 --> 00:11:37.920
+want to and there also some
+
+00:11:37.920 --> 00:11:41.519
+customization on ef camera
+
+00:11:41.519 --> 00:11:47.760
+you can do as well yeah
+
+00:11:47.760 --> 00:11:52.399
+so uh let's move on to efpd viewer
+
+00:11:52.399 --> 00:11:56.079
+so now now let's open
+
+00:11:56.079 --> 00:11:59.440
+the pdf file using af
+
+00:11:59.440 --> 00:12:01.519
+so that's one something already here but
+
+00:12:01.519 --> 00:12:02.720
+let's open it here
+
+00:12:02.720 --> 00:12:06.079
+so yes open and
+
+00:12:06.079 --> 00:12:08.160
+select introduction to programming in
+
+00:12:08.160 --> 00:12:11.440
+e-max list
+
+00:12:11.440 --> 00:12:13.760
+uh I have it already open but it's okay
+
+00:12:13.760 --> 00:12:17.040
+so you have the file
+
+00:12:17.040 --> 00:12:20.160
+you have other files displayed
+
+00:12:20.160 --> 00:12:22.800
+you have all the pages display story yes
+
+00:12:22.800 --> 00:12:23.200
+and
+
+00:12:23.200 --> 00:12:27.040
+there are 273 pages in total but notice
+
+00:12:27.040 --> 00:12:29.279
+like how fast it is to browse
+
+00:12:29.279 --> 00:12:31.440
+all the pages it is blazingly fast
+
+00:12:31.440 --> 00:12:33.519
+that's all thanks to python and
+
+00:12:33.519 --> 00:12:37.040
+mupdf which you don't really get from
+
+00:12:37.040 --> 00:12:40.880
+Emacs list
+
+00:12:40.880 --> 00:12:43.600
+so let's say if I want to jump to page
+
+00:12:43.600 --> 00:12:44.079
+50
+
+00:12:44.079 --> 00:12:48.639
+we press p and enter 50.
+
+00:12:48.639 --> 00:12:53.279
+50 and here we are we are at page 50.
+
+00:12:53.279 --> 00:12:55.440
+you can look at the lower right to
+
+00:12:55.440 --> 00:12:58.880
+verify the page you're on
+
+00:12:58.880 --> 00:13:02.079
+and you can you can
+
+00:13:02.079 --> 00:13:05.120
+use I to toggle dark mode
+
+00:13:05.120 --> 00:13:07.839
+as expected and let's say you want to
+
+00:13:07.839 --> 00:13:08.240
+find
+
+00:13:08.240 --> 00:13:11.519
+table of contents so use ctrl s
+
+00:13:11.519 --> 00:13:15.680
+the image default binding for I search
+
+00:13:15.680 --> 00:13:19.360
+and search for a table of contents
+
+00:13:19.360 --> 00:13:21.680
+here we are it is highlighted for you
+
+00:13:21.680 --> 00:13:23.120
+and you can control s for more but
+
+00:13:23.120 --> 00:13:24.240
+there's only one or
+
+00:13:24.240 --> 00:13:27.200
+one match one other one you ctrl g to
+
+00:13:27.200 --> 00:13:28.800
+disable the highlight
+
+00:13:28.800 --> 00:13:30.880
+and you see a lot of options for you to
+
+00:13:30.880 --> 00:13:32.320
+go
+
+00:13:32.320 --> 00:13:35.040
+okay let's say if you want to go to the
+
+00:13:35.040 --> 00:13:36.240
+preface
+
+00:13:36.240 --> 00:13:39.519
+so that is you press f which which is
+
+00:13:39.519 --> 00:13:40.639
+also similar to
+
+00:13:40.639 --> 00:13:44.240
+eef browser you press f for vimeo
+
+00:13:44.240 --> 00:13:47.760
+and you see the marker now change to w
+
+00:13:47.760 --> 00:13:50.160
+press wn and then you can go to the
+
+00:13:50.160 --> 00:13:51.279
+prefix
+
+00:13:51.279 --> 00:13:54.320
+now we'll add a prefix
+
+00:13:54.320 --> 00:13:56.480
+so now you finish reading you want to
+
+00:13:56.480 --> 00:13:57.600
+save your progress
+
+00:13:57.600 --> 00:13:59.440
+no worries it is already saved for you
+
+00:13:59.440 --> 00:14:01.199
+by ef you can safely
+
+00:14:01.199 --> 00:14:04.240
+close the document using x
+
+00:14:04.240 --> 00:14:07.519
+and opening again af
+
+00:14:07.519 --> 00:14:10.560
+open and the file see your I
+
+00:14:10.560 --> 00:14:14.000
+preface again so you're right at where
+
+00:14:14.000 --> 00:14:16.560
+you let up left up
+
+00:14:16.560 --> 00:14:19.440
+you can also use mx org store link or
+
+00:14:19.440 --> 00:14:20.480
+ctrl cl
+
+00:14:20.480 --> 00:14:23.279
+which I prefer to if you want to save a
+
+00:14:23.279 --> 00:14:24.480
+particular page in
+
+00:14:24.480 --> 00:14:28.240
+a orgmo file so now
+
+00:14:28.240 --> 00:14:30.320
+I go back to my presentation now I don't
+
+00:14:30.320 --> 00:14:31.760
+need this anymore
+
+00:14:31.760 --> 00:14:35.600
+uh so you just control c control l
+
+00:14:35.600 --> 00:14:39.120
+or I think mx or insert link
+
+00:14:39.120 --> 00:14:41.040
+so you can find the file right here and
+
+00:14:41.040 --> 00:14:42.399
+you press enter
+
+00:14:42.399 --> 00:14:44.320
+and you press enter for the description
+
+00:14:44.320 --> 00:14:46.480
+again and now it's right here
+
+00:14:46.480 --> 00:14:50.720
+and ctrl c ctrl o to open it voila
+
+00:14:50.720 --> 00:14:54.000
+you're back right so
+
+00:14:54.000 --> 00:14:57.120
+let's now demonstrate the ef video
+
+00:14:57.120 --> 00:14:58.880
+player
+
+00:14:58.880 --> 00:15:02.639
+so mxef open if you use ef open whenever
+
+00:15:02.639 --> 00:15:03.279
+you want to
+
+00:15:03.279 --> 00:15:06.079
+open some file you use yet open browser
+
+00:15:06.079 --> 00:15:07.279
+if you want to use some
+
+00:15:07.279 --> 00:15:09.920
+actual application that's not really
+
+00:15:09.920 --> 00:15:11.199
+related to a file
+
+00:15:11.199 --> 00:15:14.800
+so you have open and select the video
+
+00:15:14.800 --> 00:15:15.600
+you want so
+
+00:15:15.600 --> 00:15:18.320
+video demo so I already have a video
+
+00:15:18.320 --> 00:15:19.040
+demo
+
+00:15:19.040 --> 00:15:21.839
+ready so because I recorded a video of
+
+00:15:21.839 --> 00:15:22.720
+the demo
+
+00:15:22.720 --> 00:15:26.000
+of the ef camera have a look so
+
+00:15:26.000 --> 00:15:28.079
+let's move to the beginning hello people
+
+00:15:28.079 --> 00:15:29.279
+from the future
+
+00:15:29.279 --> 00:15:32.399
+this is a demo of the ef video player
+
+00:15:32.399 --> 00:15:35.199
+that demos the ef camera feature
+
+00:15:35.199 --> 00:15:37.440
+so as you can see on the screen of me
+
+00:15:37.440 --> 00:15:38.639
+inside my camera
+
+00:15:38.639 --> 00:15:40.959
+and the screen is actually with all
+
+00:15:40.959 --> 00:15:42.880
+within Emacs
+
+00:15:42.880 --> 00:15:46.079
+right so and you can open this
+
+00:15:46.079 --> 00:15:49.839
+using here open camera
+
+00:15:49.839 --> 00:15:53.040
+and which I'm already into and you can
+
+00:15:53.040 --> 00:15:53.600
+press
+
+00:15:53.600 --> 00:15:56.720
+p to capture a photo
+
+00:15:56.720 --> 00:15:59.680
+so the photo is by default stored at
+
+00:15:59.680 --> 00:16:00.880
+your home slash
+
+00:16:00.880 --> 00:16:03.920
+downloads directory and you can modify
+
+00:16:03.920 --> 00:16:04.320
+it
+
+00:16:04.320 --> 00:16:07.839
+freely so if you go here and you can see
+
+00:16:07.839 --> 00:16:09.519
+the camera stored
+
+00:16:09.519 --> 00:16:13.759
+right here so why what I used here
+
+00:16:13.759 --> 00:16:16.240
+so you press space to pause what I used
+
+00:16:16.240 --> 00:16:17.120
+here is
+
+00:16:17.120 --> 00:16:20.320
+the year so ef open this entire so
+
+00:16:20.320 --> 00:16:22.959
+basically so in direct you you go to you
+
+00:16:22.959 --> 00:16:23.839
+you select
+
+00:16:23.839 --> 00:16:26.959
+the file that should be opened by
+
+00:16:26.959 --> 00:16:30.320
+eaf and I use that so it it detects that
+
+00:16:30.320 --> 00:16:32.720
+it wants to use the ef image viewer so
+
+00:16:32.720 --> 00:16:35.839
+I accidentally tested if image viewer
+
+00:16:35.839 --> 00:16:39.759
+before I noticed so that that that gives
+
+00:16:39.759 --> 00:16:40.240
+the
+
+00:16:40.240 --> 00:16:43.680
+image of the photo I just took
+
+00:16:43.680 --> 00:16:47.040
+using ef camera and as you can see you
+
+00:16:47.040 --> 00:16:47.360
+can
+
+00:16:47.360 --> 00:16:50.720
+I can use hl the bim button to navigate
+
+00:16:50.720 --> 00:16:51.600
+in the time
+
+00:16:51.600 --> 00:16:55.920
+timestamp in the video and I can use
+
+00:16:55.920 --> 00:17:02.320
+jk to to change the volumes of the video
+
+00:17:02.320 --> 00:17:05.520
+alright so now you've seen all the basic
+
+00:17:05.520 --> 00:17:06.160
+usages
+
+00:17:06.160 --> 00:17:08.720
+of the ef project it comes the question
+
+00:17:08.720 --> 00:17:11.600
+of what is the magic behind it
+
+00:17:11.600 --> 00:17:14.559
+all right let's open the hacking page in
+
+00:17:14.559 --> 00:17:15.919
+the wiki
+
+00:17:15.919 --> 00:17:20.400
+the design is laid out in a diagram here
+
+00:17:20.400 --> 00:17:25.120
+so and let's put it
+
+00:17:25.120 --> 00:17:27.839
+side by side along with my text so you
+
+00:17:27.839 --> 00:17:28.160
+can
+
+00:17:28.160 --> 00:17:32.320
+go we can follow through
+
+00:17:32.320 --> 00:17:36.080
+right okay let me
+
+00:17:36.080 --> 00:17:42.320
+sorry let me drink some water
+
+00:17:42.320 --> 00:17:46.000
+so this page in the wiki went into a lot
+
+00:17:46.000 --> 00:17:48.160
+of detail
+
+00:17:48.160 --> 00:17:49.520
+due to the time constraint I will just
+
+00:17:49.520 --> 00:17:51.679
+rephrase some of the ideas here so for
+
+00:17:51.679 --> 00:17:53.520
+anyone interested please have a look at
+
+00:17:53.520 --> 00:17:55.600
+the wiki yourself
+
+00:17:55.600 --> 00:17:58.160
+the easiest way to think about eaf is
+
+00:17:58.160 --> 00:17:58.720
+that
+
+00:17:58.720 --> 00:18:01.679
+the actual gui application is started in
+
+00:18:01.679 --> 00:18:02.960
+the background
+
+00:18:02.960 --> 00:18:04.960
+then the frame of the application is
+
+00:18:04.960 --> 00:18:07.120
+attached to the appropriate location on
+
+00:18:07.120 --> 00:18:07.679
+the
+
+00:18:07.679 --> 00:18:10.720
+Emacs window so
+
+00:18:10.720 --> 00:18:13.440
+you have linked qt5 with Emacs using
+
+00:18:13.440 --> 00:18:14.960
+list and python
+
+00:18:14.960 --> 00:18:17.120
+of the python site which is colored
+
+00:18:17.120 --> 00:18:18.640
+yellow in the image
+
+00:18:18.640 --> 00:18:20.559
+you have two graphics view and queue
+
+00:18:20.559 --> 00:18:22.960
+graphics scene objects
+
+00:18:22.960 --> 00:18:25.039
+these are used to simulate the e-max
+
+00:18:25.039 --> 00:18:26.640
+window buffer design
+
+00:18:26.640 --> 00:18:28.640
+where q graphics scene is similar to
+
+00:18:28.640 --> 00:18:29.840
+buffers in Emacs
+
+00:18:29.840 --> 00:18:31.840
+it controls the state and the content
+
+00:18:31.840 --> 00:18:34.240
+details of the application
+
+00:18:34.240 --> 00:18:39.039
+well q graphics view is similar to
+
+00:18:39.039 --> 00:18:41.200
+geographic view is similar to imax
+
+00:18:41.200 --> 00:18:43.200
+window it populates the buffer
+
+00:18:43.200 --> 00:18:45.919
+to graphics scene to the full program at
+
+00:18:45.919 --> 00:18:46.960
+the appropriate
+
+00:18:46.960 --> 00:18:50.320
+position whenever an ef mode buffer
+
+00:18:50.320 --> 00:18:57.679
+brings to a background
+
+00:18:57.679 --> 00:18:59.679
+whenever an ef mode buffer brings to the
+
+00:18:59.679 --> 00:19:00.880
+foreground sorry
+
+00:19:00.880 --> 00:19:02.559
+a queue graphics view instance is
+
+00:19:02.559 --> 00:19:05.120
+created and whenever the buffer goes to
+
+00:19:05.120 --> 00:19:06.080
+the background
+
+00:19:06.080 --> 00:19:08.000
+the q graphics view instance is then
+
+00:19:08.000 --> 00:19:09.120
+deleted
+
+00:19:09.120 --> 00:19:10.960
+while q graphics scene the actual
+
+00:19:10.960 --> 00:19:12.480
+process remains running in the
+
+00:19:12.480 --> 00:19:14.480
+background until the ef mode buffer is
+
+00:19:14.480 --> 00:19:16.000
+killed
+
+00:19:16.000 --> 00:19:18.320
+gpa compositing is used to ensure that q
+
+00:19:18.320 --> 00:19:19.440
+graphics view and
+
+00:19:19.440 --> 00:19:21.840
+graphics sync is synchronized real time
+
+00:19:21.840 --> 00:19:24.000
+using q windows set parent function
+
+00:19:24.000 --> 00:19:25.679
+the queue graphics view is attached to
+
+00:19:25.679 --> 00:19:27.840
+appropriate location on the e-max frame
+
+00:19:27.840 --> 00:19:30.640
+so that although great applications are
+
+00:19:30.640 --> 00:19:32.400
+not running within e-max
+
+00:19:32.400 --> 00:19:36.160
+they look as if they were
+
+00:19:36.160 --> 00:19:39.039
+so when user types on the keyboard it is
+
+00:19:39.039 --> 00:19:41.039
+first received by the Emacs ef
+
+00:19:41.039 --> 00:19:43.520
+ef mode buffer and then it lifts sends
+
+00:19:43.520 --> 00:19:45.360
+the event to google graphics sync using
+
+00:19:45.360 --> 00:19:46.240
+dbus
+
+00:19:46.240 --> 00:19:48.720
+when user clicks on the gui application
+
+00:19:48.720 --> 00:19:50.400
+it is received by the queue graphics
+
+00:19:50.400 --> 00:19:50.799
+view
+
+00:19:50.799 --> 00:19:53.280
+and process in python ellipse can
+
+00:19:53.280 --> 00:19:55.200
+communicate with python through dbus
+
+00:19:55.200 --> 00:19:59.200
+in other words in other words you can
+
+00:19:59.200 --> 00:20:01.360
+customize and extend Emacs not just
+
+00:20:01.360 --> 00:20:01.760
+using
+
+00:20:01.760 --> 00:20:04.480
+lisp and now you can use python this way
+
+00:20:04.480 --> 00:20:05.360
+one can leverage
+
+00:20:05.360 --> 00:20:07.039
+all the python properties like
+
+00:20:07.039 --> 00:20:09.600
+multi-threading or some other stuff
+
+00:20:09.600 --> 00:20:11.679
+the entire python ecosystem can be
+
+00:20:11.679 --> 00:20:13.520
+utilized as well
+
+00:20:13.520 --> 00:20:16.159
+such as the qt web engine that is the
+
+00:20:16.159 --> 00:20:16.960
+basis for
+
+00:20:16.960 --> 00:20:20.640
+our eef browser and pi mu pdf is the
+
+00:20:20.640 --> 00:20:23.360
+basis for the ef pdf viewer
+
+00:20:23.360 --> 00:20:25.840
+so this really opens the window to many
+
+00:20:25.840 --> 00:20:28.240
+many new possibilities to extend Emacs
+
+00:20:28.240 --> 00:20:32.720
+using eaf
+
+00:20:32.720 --> 00:20:36.080
+all right back here we are always
+
+00:20:36.080 --> 00:20:37.760
+looking for people to join the
+
+00:20:37.760 --> 00:20:39.679
+development there are many many
+
+00:20:39.679 --> 00:20:42.720
+more work that needs to be done like
+
+00:20:42.720 --> 00:20:44.640
+such as testing and debug if there are
+
+00:20:44.640 --> 00:20:46.640
+more linux distros and window managers
+
+00:20:46.640 --> 00:20:47.760
+such as i3
+
+00:20:47.760 --> 00:20:51.200
+and stuff I mean you can also add new ef
+
+00:20:51.200 --> 00:20:52.080
+applications
+
+00:20:52.080 --> 00:20:54.240
+or debug and enhance existing af
+
+00:20:54.240 --> 00:20:55.440
+applications
+
+00:20:55.440 --> 00:20:58.000
+or you can port ef to native wayland
+
+00:20:58.000 --> 00:21:00.240
+which I just discussed with the
+
+00:21:00.240 --> 00:21:03.840
+the ems whip kit author uh a kill
+
+00:21:03.840 --> 00:21:07.919
+akira tile and she he told me that like
+
+00:21:07.919 --> 00:21:10.159
+really like it must really yeah it
+
+00:21:10.159 --> 00:21:11.200
+doesn't really work
+
+00:21:11.200 --> 00:21:14.320
+um native villain because it uses
+
+00:21:14.320 --> 00:21:16.799
+x valence so it doesn't work on the pgdk
+
+00:21:16.799 --> 00:21:18.159
+port of Emacs
+
+00:21:18.159 --> 00:21:20.559
+so and we also need people to pour ef to
+
+00:21:20.559 --> 00:21:22.080
+non-free operating systems
+
+00:21:22.080 --> 00:21:25.600
+including windows and mac os
+
+00:21:25.600 --> 00:21:28.480
+and that's because like debug is a linux
+
+00:21:28.480 --> 00:21:30.080
+specific feature so it doesn't really
+
+00:21:30.080 --> 00:21:31.360
+work on other platform
+
+00:21:31.360 --> 00:21:33.039
+we need to change replace it with some
+
+00:21:33.039 --> 00:21:34.640
+alternative and
+
+00:21:34.640 --> 00:21:36.720
+geographic scene somehow doesn't really
+
+00:21:36.720 --> 00:21:38.640
+work on mac os
+
+00:21:38.640 --> 00:21:40.320
+and there are many other to-do lists
+
+00:21:40.320 --> 00:21:42.880
+available so please have a look
+
+00:21:42.880 --> 00:21:45.039
+if and see it's anything you want to
+
+00:21:45.039 --> 00:21:46.640
+work on
+
+00:21:46.640 --> 00:21:49.039
+all right so since this is a
+
+00:21:49.039 --> 00:21:51.120
+pre-recorded talk I won't be able to do
+
+00:21:51.120 --> 00:21:53.520
+the q a real time in the video
+
+00:21:53.520 --> 00:21:56.080
+however I will be around on the
+
+00:21:56.080 --> 00:21:57.200
+collaborate pad
+
+00:21:57.200 --> 00:22:00.559
+and the irc imax con you must come
+
+00:22:00.559 --> 00:22:01.360
+questions
+
+00:22:01.360 --> 00:22:04.240
+to answer any questions it pops up and
+
+00:22:04.240 --> 00:22:05.760
+you can also submit an issue
+
+00:22:05.760 --> 00:22:09.120
+on the repo and you can check the wiki
+
+00:22:09.120 --> 00:22:12.640
+for some other guides and tricks
+
+00:22:12.640 --> 00:22:15.039
+all right thank you guys and hopefully
+
+00:22:15.039 --> 00:22:16.000
+you find the
+
+00:22:16.000 --> 00:22:18.320
+this year project very interesting and
+
+00:22:18.320 --> 00:22:24.320
+enjoy the rest of Emacs com 2020
diff --git a/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.vtt b/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.vtt
new file mode 100644
index 00000000..3c8dd20c
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.vtt
@@ -0,0 +1,508 @@
+WEBVTT
+
+00:00:02.800 --> 00:00:09.200
+I can yes
+
+00:00:09.200 --> 00:00:13.120
+okay um yeah so I'm uh zachary canfer
+
+00:00:13.120 --> 00:00:14.920
+let's go to the
+
+00:00:14.920 --> 00:00:17.520
+questions uh the first question uh why
+
+00:00:17.520 --> 00:00:19.119
+do we go top to bottom for time
+
+00:00:19.119 --> 00:00:19.840
+progression
+
+00:00:19.840 --> 00:00:23.920
+uh and left to right uh for low to high
+
+00:00:23.920 --> 00:00:27.279
+interesting I think uh so the initial
+
+00:00:27.279 --> 00:00:30.000
+uh thing I was copying that initial app
+
+00:00:30.000 --> 00:00:31.599
+work this way
+
+00:00:31.599 --> 00:00:35.280
+um and
+
+00:00:35.280 --> 00:00:36.960
+yeah I mean certainly traditional music
+
+00:00:36.960 --> 00:00:38.960
+you know on a staff uh
+
+00:00:38.960 --> 00:00:43.040
+does go left to right uh like this
+
+00:00:43.040 --> 00:00:46.000
+um I mean going top to bottom does make
+
+00:00:46.000 --> 00:00:47.440
+it easier to add more beats without
+
+00:00:47.440 --> 00:00:48.960
+having to wrap but certainly that could
+
+00:00:48.960 --> 00:00:49.920
+be managed
+
+00:00:49.920 --> 00:00:52.239
+um yeah I I had not really thought about
+
+00:00:52.239 --> 00:00:53.760
+it but it is definitely something worth
+
+00:00:53.760 --> 00:00:55.199
+looking into
+
+00:00:55.199 --> 00:01:02.480
+uh yeah you are now unmuted
+
+00:01:02.480 --> 00:01:05.680
+ah good point thank you let me go ahead
+
+00:01:05.680 --> 00:01:06.960
+and do that
+
+00:01:06.960 --> 00:01:14.240
+uh the entire screen
+
+00:01:14.240 --> 00:01:16.880
+okay so the screen share should be
+
+00:01:16.880 --> 00:01:18.320
+starting
+
+00:01:18.320 --> 00:01:21.439
+there we go cool all right uh
+
+00:01:21.439 --> 00:01:24.880
+two will be placed on the song um not
+
+00:01:24.880 --> 00:01:26.640
+now I can I can make some recordings of
+
+00:01:26.640 --> 00:01:28.080
+it or certainly you can try it
+
+00:01:28.080 --> 00:01:30.720
+um I couldn't quite get the the
+
+00:01:30.720 --> 00:01:33.119
+microphone and the webcam and everything
+
+00:01:33.119 --> 00:01:37.040
+to work with the sound playing now um so
+
+00:01:37.040 --> 00:01:40.079
+uh I can record some also please uh
+
+00:01:40.079 --> 00:01:43.520
+I put a link at the uh here in the uh
+
+00:01:43.520 --> 00:01:46.640
+etherpad https://zck.me/emacsconf2020
+
+00:01:46.640 --> 00:01:48.479
+where you can go and get the source
+
+00:01:48.479 --> 00:01:49.920
+and you can try it yourself uh there's
+
+00:01:49.920 --> 00:01:51.920
+no dependencies needed so it's just all
+
+00:01:51.920 --> 00:01:54.560
+in Emacs um so please you know try it
+
+00:01:54.560 --> 00:01:57.040
+yourself
+
+00:01:57.040 --> 00:02:00.079
+any chance for an Emacs tracker or mod
+
+00:02:00.079 --> 00:02:01.040
+player
+
+00:02:01.040 --> 00:02:03.680
+um I don't really know what a mod player
+
+00:02:03.680 --> 00:02:04.479
+or tracker
+
+00:02:04.479 --> 00:02:08.000
+are but I mean I'm sure
+
+00:02:08.000 --> 00:02:09.679
+that would be cool uh maybe there's one
+
+00:02:09.679 --> 00:02:11.599
+on now but I don't know uh
+
+00:02:11.599 --> 00:02:13.920
+my musical background so I've played
+
+00:02:13.920 --> 00:02:15.200
+various instruments since about the
+
+00:02:15.200 --> 00:02:15.840
+third grade
+
+00:02:15.840 --> 00:02:18.160
+uh started recorder uh play cello I play
+
+00:02:18.160 --> 00:02:19.520
+guitar now
+
+00:02:19.520 --> 00:02:22.560
+um but yeah so just kind of random
+
+00:02:22.560 --> 00:02:23.680
+instruments and
+
+00:02:23.680 --> 00:02:26.959
+uh yeah I guess kind of some of those
+
+00:02:26.959 --> 00:02:27.280
+things
+
+00:02:27.280 --> 00:02:30.480
+influence how I think about music um
+
+00:02:30.480 --> 00:02:33.519
+uh yeah um
+
+00:02:33.519 --> 00:02:35.360
+are there any open source musical
+
+00:02:35.360 --> 00:02:36.640
+management sample libraries that could
+
+00:02:36.640 --> 00:02:37.840
+be used
+
+00:02:37.840 --> 00:02:41.200
+um good question I'm sure there are um I
+
+00:02:41.200 --> 00:02:42.400
+don't know any that integrate really
+
+00:02:42.400 --> 00:02:43.360
+well with Emacs
+
+00:02:43.360 --> 00:02:44.560
+one of the cool things that I liked
+
+00:02:44.560 --> 00:02:45.680
+about this is that there are no
+
+00:02:45.680 --> 00:02:47.440
+dependencies
+
+00:02:47.440 --> 00:02:49.360
+you know you don't need any external
+
+00:02:49.360 --> 00:02:50.800
+program to
+
+00:02:50.800 --> 00:02:53.040
+uh generate the music I mean it it does
+
+00:02:53.040 --> 00:02:54.160
+shell out to
+
+00:02:54.160 --> 00:02:57.280
+to play um but that
+
+00:02:57.280 --> 00:02:58.640
+should be able to be done on any
+
+00:02:58.640 --> 00:02:59.840
+operating system as always you have
+
+00:02:59.840 --> 00:03:03.519
+something that can play wav files
+
+00:03:03.519 --> 00:03:05.599
+um but yeah it is interesting to kind of
+
+00:03:05.599 --> 00:03:06.879
+try the different
+
+00:03:06.879 --> 00:03:10.000
+uh different sounds and different
+
+00:03:10.000 --> 00:03:12.239
+tones uh that you could get with
+
+00:03:12.239 --> 00:03:14.400
+different instruments
+
+00:03:14.400 --> 00:03:16.959
+have I written any actual songs um
+
+00:03:16.959 --> 00:03:17.599
+nothing
+
+00:03:17.599 --> 00:03:21.040
+super uh
+
+00:03:21.040 --> 00:03:23.680
+uh well put together just I kind of just
+
+00:03:23.680 --> 00:03:25.519
+been playing around with this
+
+00:03:25.519 --> 00:03:27.440
+it's kind of I making this was one of
+
+00:03:27.440 --> 00:03:29.040
+those things where like once I made it I
+
+00:03:29.040 --> 00:03:30.080
+was like okay
+
+00:03:30.080 --> 00:03:31.280
+now I can play with it and I did a
+
+00:03:31.280 --> 00:03:32.720
+little bit and was like I don't know if
+
+00:03:32.720 --> 00:03:33.920
+I feel like it right now
+
+00:03:33.920 --> 00:03:37.280
+you know which I've I've found that to
+
+00:03:37.280 --> 00:03:38.720
+be the case with some things that I've
+
+00:03:38.720 --> 00:03:39.599
+implemented
+
+00:03:39.599 --> 00:03:41.360
+in Emacs where it's I make it and then
+
+00:03:41.360 --> 00:03:43.519
+it's the kind of some of the desire to
+
+00:03:43.519 --> 00:03:44.480
+use it all the time
+
+00:03:44.480 --> 00:03:46.879
+goes away but I'm sure I'll circle back
+
+00:03:46.879 --> 00:03:47.760
+around
+
+00:03:47.760 --> 00:03:51.040
+at some point especially kind of maybe
+
+00:03:51.040 --> 00:03:52.400
+once I add in different tones or
+
+00:03:52.400 --> 00:03:54.640
+something
+
+00:03:54.640 --> 00:03:56.400
+I guess a similar question for
+
+00:03:56.400 --> 00:03:57.840
+pre-recorded sounds yeah I mean
+
+00:03:57.840 --> 00:04:01.120
+if it's part of what I did what I wrote
+
+00:04:01.120 --> 00:04:02.080
+was a
+
+00:04:02.080 --> 00:04:04.720
+wave generation library so if you kind
+
+00:04:04.720 --> 00:04:06.720
+of have the data
+
+00:04:06.720 --> 00:04:08.400
+you could use those and like chop them
+
+00:04:08.400 --> 00:04:10.159
+up and take certain lengths of them
+
+00:04:10.159 --> 00:04:13.360
+and make a wav file so it's not plug and
+
+00:04:13.360 --> 00:04:14.959
+play right now but you could certainly
+
+00:04:14.959 --> 00:04:19.120
+add those notes uh to do it
+
+00:04:19.120 --> 00:04:21.040
+um any knitting midi mapping
+
+00:04:21.040 --> 00:04:22.720
+possibilities um
+
+00:04:22.720 --> 00:04:24.560
+I haven't looked into it but I'm sure
+
+00:04:24.560 --> 00:04:26.160
+you definitely could output to midi
+
+00:04:26.160 --> 00:04:28.800
+um which is another benefit of having
+
+00:04:28.800 --> 00:04:30.400
+that multiple layers with the top layer
+
+00:04:30.400 --> 00:04:31.520
+is just like
+
+00:04:31.520 --> 00:04:33.360
+um you know if the root note is this
+
+00:04:33.360 --> 00:04:35.120
+we're just two semitones up or seven
+
+00:04:35.120 --> 00:04:36.560
+semitones up or whatever it is
+
+00:04:36.560 --> 00:04:38.160
+uh it should be relatively simple to
+
+00:04:38.160 --> 00:04:40.720
+kind of switch out that layer underneath
+
+00:04:40.720 --> 00:04:44.479
+uh from wave to midi or other things
+
+00:04:44.479 --> 00:04:45.759
+what were some of the challenges with
+
+00:04:45.759 --> 00:04:47.520
+writing a special mode for Emacs
+
+00:04:47.520 --> 00:04:49.759
+uh interested in getting into this not
+
+00:04:49.759 --> 00:04:51.040
+sure where to start
+
+00:04:51.040 --> 00:04:54.960
+um there uh yeah it so
+
+00:04:54.960 --> 00:04:57.120
+this isn't the first mode I've written
+
+00:04:57.120 --> 00:04:58.320
+um so that's right
+
+00:04:58.320 --> 00:05:01.759
+certainly that helps um I actually
+
+00:05:01.759 --> 00:05:05.600
+um I have a video that we recorded it
+
+00:05:05.600 --> 00:05:08.240
+as part of Emacs nyc on making a major
+
+00:05:08.240 --> 00:05:09.039
+mode
+
+00:05:09.039 --> 00:05:10.720
+that's basically like starts from
+
+00:05:10.720 --> 00:05:12.639
+nothing and kind of builds up to
+
+00:05:12.639 --> 00:05:15.680
+an implementation of tic-tac-toe um
+
+00:05:15.680 --> 00:05:17.039
+but so it kind of goes into printing
+
+00:05:17.039 --> 00:05:19.600
+things out and buttons and making the
+
+00:05:19.600 --> 00:05:21.280
+mode
+
+00:05:21.280 --> 00:05:22.800
+I mean one of the best parts about Emacs
+
+00:05:22.800 --> 00:05:24.560
+is because it's so
+
+00:05:24.560 --> 00:05:26.479
+uh configurable and so introspectible
+
+00:05:26.479 --> 00:05:28.479
+you can start pretty simply
+
+00:05:28.479 --> 00:05:30.320
+and just kind of asking max about things
+
+00:05:30.320 --> 00:05:32.320
+and then make one little
+
+00:05:32.320 --> 00:05:34.960
+change um it's really it's not that bad
+
+00:05:34.960 --> 00:05:36.479
+so uh
+
+00:05:36.479 --> 00:05:39.039
+I'll try to throw a link up on that uh
+
+00:05:39.039 --> 00:05:40.560
+on on that page I put up or
+
+00:05:40.560 --> 00:05:42.000
+please email me for whoever asked this
+
+00:05:42.000 --> 00:05:44.479
+question uh to get a link to that video
+
+00:05:44.479 --> 00:05:46.240
+um or just look at look at the source
+
+00:05:46.240 --> 00:05:47.919
+code of this or any other major mode
+
+00:05:47.919 --> 00:05:50.479
+um it it's pretty ems breaks it makes it
+
+00:05:50.479 --> 00:05:52.880
+pretty easy to extend uh
+
+00:05:52.880 --> 00:05:56.479
+major modes and I think that's that's
+
+00:05:56.479 --> 00:05:57.600
+the last question
+
+00:05:57.600 --> 00:06:00.240
+in the ether pad so uh thanks so much
+
+00:06:00.240 --> 00:06:02.479
+everybody for coming
+
+00:06:02.479 --> 00:06:06.720
+you are now unmuted uh thank you so much
+
+00:06:06.720 --> 00:06:09.039
+to curry for your awesome talk
+
+00:06:09.039 --> 00:06:12.960
+and for doing live questions
+
+00:06:12.960 --> 00:06:19.840
+thank you thank you cheers
diff --git a/2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley-autogen.vtt b/2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley-autogen.vtt
new file mode 100644
index 00000000..7c0d9ed5
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley-autogen.vtt
@@ -0,0 +1,460 @@
+WEBVTT
+
+00:00:00.080 --> 00:00:03.040
+hello EmacsConf this is john wigley I'm
+
+00:00:03.040 --> 00:00:04.960
+one of the co-maintainers of Emacs along
+
+00:00:04.960 --> 00:00:06.319
+with ellie zoretsky
+
+00:00:06.319 --> 00:00:09.280
+and lars ingebrigston and I wanted to
+
+00:00:09.280 --> 00:00:09.840
+give you
+
+00:00:09.840 --> 00:00:12.639
+a technical update on what has been
+
+00:00:12.639 --> 00:00:14.960
+happening
+
+00:00:14.960 --> 00:00:18.400
+with the Emacs in the last year so
+
+00:00:18.400 --> 00:00:20.640
+specifically uh we have a few notes that
+
+00:00:20.640 --> 00:00:21.600
+I've gotten from
+
+00:00:21.600 --> 00:00:24.480
+a call with ellie he's been in charge of
+
+00:00:24.480 --> 00:00:25.840
+directing most of the
+
+00:00:25.840 --> 00:00:28.000
+technical contributions on the mailing
+
+00:00:28.000 --> 00:00:30.160
+list and monitoring all the patches
+
+00:00:30.160 --> 00:00:33.200
+so I'm more here just as a messenger
+
+00:00:33.200 --> 00:00:35.840
+he says that we have good progress and
+
+00:00:35.840 --> 00:00:37.120
+support for cairo
+
+00:00:37.120 --> 00:00:39.040
+this is going to be enabled by default
+
+00:00:39.040 --> 00:00:40.320
+and emax 28
+
+00:00:40.320 --> 00:00:42.480
+and cairo plus half buzz is going to be
+
+00:00:42.480 --> 00:00:44.800
+the preferred rendering combination
+
+00:00:44.800 --> 00:00:46.879
+so cairo support is not new but in the
+
+00:00:46.879 --> 00:00:48.719
+past there were a lot of bugs in the
+
+00:00:48.719 --> 00:00:51.440
+code and so it was made experimental
+
+00:00:51.440 --> 00:00:52.960
+so most of those bugs have been fixed
+
+00:00:52.960 --> 00:00:54.960
+recently and now it becomes the default
+
+00:00:54.960 --> 00:00:56.320
+and the next major version
+
+00:00:56.320 --> 00:00:58.320
+which will enable several good features
+
+00:00:58.320 --> 00:01:00.320
+such as color emojis if you're looking
+
+00:01:00.320 --> 00:01:01.680
+forward to those
+
+00:01:01.680 --> 00:01:04.720
+xft as a result is deprecated there are
+
+00:01:04.720 --> 00:01:06.560
+bugs not getting fixed in that code it
+
+00:01:06.560 --> 00:01:07.760
+doesn't appear to be very well
+
+00:01:07.760 --> 00:01:08.720
+maintained
+
+00:01:08.720 --> 00:01:10.960
+it was the most advanced font mac end
+
+00:01:10.960 --> 00:01:13.760
+and emax before cairo became dependable
+
+00:01:13.760 --> 00:01:15.920
+so now that we have a more a better
+
+00:01:15.920 --> 00:01:17.840
+maintained and available solution in
+
+00:01:17.840 --> 00:01:19.360
+cairo we're going to go from that
+
+00:01:19.360 --> 00:01:23.200
+go from xft to that native compilation
+
+00:01:23.200 --> 00:01:23.840
+in lisp
+
+00:01:23.840 --> 00:01:26.400
+will also be landing soon it's currently
+
+00:01:26.400 --> 00:01:28.080
+on a branch but there are several people
+
+00:01:28.080 --> 00:01:28.799
+using it
+
+00:01:28.799 --> 00:01:31.040
+they say they're very impressed it does
+
+00:01:31.040 --> 00:01:32.479
+require live gcc
+
+00:01:32.479 --> 00:01:35.600
+jit to be installed for it to work and
+
+00:01:35.600 --> 00:01:37.439
+this means you have to have gcc 10
+
+00:01:37.439 --> 00:01:38.960
+installed
+
+00:01:38.960 --> 00:01:41.040
+execution of Emacs lisp with native
+
+00:01:41.040 --> 00:01:42.240
+compilation on
+
+00:01:42.240 --> 00:01:45.280
+is about 2.5 times faster than the
+
+00:01:45.280 --> 00:01:46.159
+bytecode
+
+00:01:46.159 --> 00:01:48.399
+interpreter we don't yet have any
+
+00:01:48.399 --> 00:01:49.439
+measurements on
+
+00:01:49.439 --> 00:01:51.600
+memory or how it affects resources
+
+00:01:51.600 --> 00:01:52.960
+besides cpu so
+
+00:01:52.960 --> 00:01:54.720
+we do look forward to having more
+
+00:01:54.720 --> 00:01:56.399
+numbers and analysis to see what the
+
+00:01:56.399 --> 00:01:58.320
+real impact of that is going to be
+
+00:01:58.320 --> 00:02:01.360
+also it may vary in compute advantage
+
+00:02:01.360 --> 00:02:02.799
+based on the type of workload that
+
+00:02:02.799 --> 00:02:04.320
+you're performing
+
+00:02:04.320 --> 00:02:06.240
+a downside to the native compilation at
+
+00:02:06.240 --> 00:02:08.080
+the moment is that it takes a long
+
+00:02:08.080 --> 00:02:10.720
+time to compile even when you're doing a
+
+00:02:10.720 --> 00:02:12.720
+16 core build of Emacs
+
+00:02:12.720 --> 00:02:14.959
+it can still take 15 minutes to compile
+
+00:02:14.959 --> 00:02:15.760
+Emacs
+
+00:02:15.760 --> 00:02:17.840
+and all of its in all of its lisp code
+
+00:02:17.840 --> 00:02:19.520
+with this enabled
+
+00:02:19.520 --> 00:02:21.840
+also this is going to have to happen on
+
+00:02:21.840 --> 00:02:23.120
+every user's machine
+
+00:02:23.120 --> 00:02:25.360
+because we cannot distribute the native
+
+00:02:25.360 --> 00:02:27.520
+compilation products they are specific
+
+00:02:27.520 --> 00:02:28.319
+to the compo
+
+00:02:28.319 --> 00:02:29.760
+to the processor that you might be
+
+00:02:29.760 --> 00:02:31.440
+running on so
+
+00:02:31.440 --> 00:02:33.920
+the emax distribution will remain much
+
+00:02:33.920 --> 00:02:35.680
+as it is now but if you want to have the
+
+00:02:35.680 --> 00:02:37.760
+benefits of natively compiled
+
+00:02:37.760 --> 00:02:39.599
+core lisp files you're going to have to
+
+00:02:39.599 --> 00:02:41.519
+spend that time and have gcc 10
+
+00:02:41.519 --> 00:02:42.400
+available
+
+00:02:42.400 --> 00:02:45.840
+to get that compilation support um
+
+00:02:45.840 --> 00:02:48.959
+the gtk only build is being prepared
+
+00:02:48.959 --> 00:02:52.160
+for merging so what this does is it
+
+00:02:52.160 --> 00:02:52.959
+throws away
+
+00:02:52.959 --> 00:02:55.120
+most of the other tool kits that Emacs
+
+00:02:55.120 --> 00:02:56.000
+was using
+
+00:02:56.000 --> 00:02:59.280
+and relies only on gtk making Emacs
+
+00:02:59.280 --> 00:03:01.760
+much more of a gtk application than it
+
+00:03:01.760 --> 00:03:03.920
+has been
+
+00:03:03.920 --> 00:03:06.480
+the main issue here is that we were
+
+00:03:06.480 --> 00:03:08.480
+abusing gtk in some ways that weren't
+
+00:03:08.480 --> 00:03:09.360
+really meant
+
+00:03:09.360 --> 00:03:10.879
+and now we're going to be more of a
+
+00:03:10.879 --> 00:03:12.879
+first club gtk will be more of a first
+
+00:03:12.879 --> 00:03:14.080
+class citizen in the
+
+00:03:14.080 --> 00:03:17.040
+approach and the ways that we use it and
+
+00:03:17.040 --> 00:03:17.440
+and
+
+00:03:17.440 --> 00:03:19.280
+be using it in the ways that the gtk
+
+00:03:19.280 --> 00:03:21.200
+developers intended
+
+00:03:21.200 --> 00:03:23.360
+there is going to be much more support
+
+00:03:23.360 --> 00:03:24.640
+for xt mouse
+
+00:03:24.640 --> 00:03:27.280
+so xt mouse allows you to use your mouse
+
+00:03:27.280 --> 00:03:29.120
+inside of a terminal window
+
+00:03:29.120 --> 00:03:30.799
+which you could do before but there were
+
+00:03:30.799 --> 00:03:33.120
+certain aspects such as menus
+
+00:03:33.120 --> 00:03:36.159
+that weren't supported so instead of
+
+00:03:36.159 --> 00:03:38.239
+having kind of partial support for mouse
+
+00:03:38.239 --> 00:03:39.840
+inside of an x term with xt
+
+00:03:39.840 --> 00:03:42.879
+mouse you get full support this is going
+
+00:03:42.879 --> 00:03:44.959
+to allow
+
+00:03:44.959 --> 00:03:46.720
+changes in the way that things can be
+
+00:03:46.720 --> 00:03:48.159
+bound the ways that
+
+00:03:48.159 --> 00:03:51.200
+uh key bindings can the mouse events can
+
+00:03:51.200 --> 00:03:53.200
+be mapped to key bindings while in
+
+00:03:53.200 --> 00:03:56.879
+x terms and um yeah little by little
+
+00:03:56.879 --> 00:03:58.480
+this support is being extended even
+
+00:03:58.480 --> 00:03:59.040
+further
+
+00:03:59.040 --> 00:04:01.599
+so we look forward to seeing that
+
+00:04:01.599 --> 00:04:04.080
+develop in the near term
+
+00:04:04.080 --> 00:04:06.239
+once this is merged by the way also then
+
+00:04:06.239 --> 00:04:08.080
+Emacs will have mouse support in every
+
+00:04:08.080 --> 00:04:09.840
+one of its available configurations
+
+00:04:09.840 --> 00:04:12.720
+which has not been true until now Emacs
+
+00:04:12.720 --> 00:04:14.680
+27 will be soon releasing
+
+00:04:14.680 --> 00:04:17.519
+27.2 and the pretest for that should
+
+00:04:17.519 --> 00:04:19.919
+begin sometime soon after Emacs comp is
+
+00:04:19.919 --> 00:04:20.880
+done
+
+00:04:20.880 --> 00:04:23.360
+and finally Emacs 28 is going to get
+
+00:04:23.360 --> 00:04:24.800
+better emoji support
+
+00:04:24.800 --> 00:04:26.479
+right now emojis are registered
+
+00:04:26.479 --> 00:04:29.120
+internally within Emacs as symbols
+
+00:04:29.120 --> 00:04:31.759
+which works in some ways but does not
+
+00:04:31.759 --> 00:04:33.759
+support some of the special features
+
+00:04:33.759 --> 00:04:37.360
+of of emojis such as different
+
+00:04:37.360 --> 00:04:40.000
+skin tones for the hand emoji or face
+
+00:04:40.000 --> 00:04:41.120
+emojis
+
+00:04:41.120 --> 00:04:43.280
+in Emacs 28 emojis are going to have
+
+00:04:43.280 --> 00:04:45.199
+their own support within the sequel
+
+00:04:45.199 --> 00:04:47.199
+c code and then this is going to allow
+
+00:04:47.199 --> 00:04:49.360
+those types of variations and other
+
+00:04:49.360 --> 00:04:52.720
+emoji specific font setups so that is
+
+00:04:52.720 --> 00:04:54.639
+everything for Emacs
+
+00:04:54.639 --> 00:04:56.720
+in the future I don't have a timeline
+
+00:04:56.720 --> 00:04:59.120
+for you on when 28 will be available
+
+00:04:59.120 --> 00:05:01.520
+but 27 is going to keep improving until
+
+00:05:01.520 --> 00:05:02.720
+we're ready to get there
+
+00:05:02.720 --> 00:05:04.479
+so have fun with the rest of you max
+
+00:05:04.479 --> 00:05:06.479
+conf and I hope to see you there
+
+00:05:06.479 --> 00:05:09.199
+bye
diff --git a/2020/subtitles/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman-autogen.vtt b/2020/subtitles/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman-autogen.vtt
new file mode 100644
index 00000000..82fc005a
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman-autogen.vtt
@@ -0,0 +1,2833 @@
+WEBVTT
+
+00:00:00.640 --> 00:00:04.160
+okay so the first question is what is an
+
+00:00:04.160 --> 00:00:05.680
+example of a car
+
+00:00:05.680 --> 00:00:08.800
+a package currently in
+
+00:00:08.800 --> 00:00:12.160
+a non-elpa repo that does not work well
+
+00:00:12.160 --> 00:00:13.759
+with Emacs
+
+00:00:13.759 --> 00:00:18.000
+well one of them is s dot el
+
+00:00:18.000 --> 00:00:19.760
+and this is what made me aware that
+
+00:00:19.760 --> 00:00:21.920
+there was an issue here that caused
+
+00:00:21.920 --> 00:00:25.760
+problems well s.e.l
+
+00:00:25.760 --> 00:00:29.439
+is a beautifully written package
+
+00:00:29.439 --> 00:00:31.279
+that appears to be very useful for
+
+00:00:31.279 --> 00:00:32.800
+people
+
+00:00:32.800 --> 00:00:36.320
+and there's just one thing wrong with it
+
+00:00:36.320 --> 00:00:39.520
+it gobbled up the name space
+
+00:00:39.520 --> 00:00:43.680
+of symbols starting with s dash
+
+00:00:43.680 --> 00:00:47.039
+and I was shocked to discover that
+
+00:00:47.039 --> 00:00:49.440
+somebody who had not coordinated with
+
+00:00:49.440 --> 00:00:51.760
+the Emacs developers at all
+
+00:00:51.760 --> 00:00:55.360
+had implemented a package using such a
+
+00:00:55.360 --> 00:00:56.800
+short prefix which
+
+00:00:56.800 --> 00:00:59.760
+isn't the right way to do things oh by
+
+00:00:59.760 --> 00:01:01.520
+the way the questions have moved off the
+
+00:01:01.520 --> 00:01:04.000
+screen this is no good I can continue
+
+00:01:04.000 --> 00:01:05.360
+answering this one
+
+00:01:05.360 --> 00:01:08.880
+but I'll be stuck when this one is over
+
+00:01:08.880 --> 00:01:12.159
+anyway so uh
+
+00:01:12.159 --> 00:01:15.040
+and I was told that there was nothing I
+
+00:01:15.040 --> 00:01:16.560
+could do about it
+
+00:01:16.560 --> 00:01:19.920
+that so many users packages were using
+
+00:01:19.920 --> 00:01:22.960
+swl and thus essentially using that
+
+00:01:22.960 --> 00:01:24.240
+definition
+
+00:01:24.240 --> 00:01:28.080
+of the s dash star symbols
+
+00:01:28.080 --> 00:01:31.360
+that any attempt to use them
+
+00:01:31.360 --> 00:01:34.720
+publicly or privately for anything else
+
+00:01:34.720 --> 00:01:38.079
+would lead to horrible problems
+
+00:01:38.079 --> 00:01:41.680
+and I don't like that
+
+00:01:41.680 --> 00:01:45.520
+I decided I wanted to do something
+
+00:01:45.520 --> 00:01:49.040
+a so that that wouldn't happen again
+
+00:01:49.040 --> 00:01:52.320
+and b to make it unhappen
+
+00:01:52.320 --> 00:01:55.119
+in that case well the way to make it
+
+00:01:55.119 --> 00:01:57.840
+unhappen in that case is with a new
+
+00:01:57.840 --> 00:02:02.240
+symbol renaming feature the idea is
+
+00:02:02.240 --> 00:02:05.360
+you rename that file to something else
+
+00:02:05.360 --> 00:02:09.119
+and then you define an s.e.l that
+
+00:02:09.119 --> 00:02:11.520
+sets up symbol renaming and then loads
+
+00:02:11.520 --> 00:02:13.040
+the something else
+
+00:02:13.040 --> 00:02:16.080
+so it actually runs the same code it
+
+00:02:16.080 --> 00:02:16.400
+just
+
+00:02:16.400 --> 00:02:20.879
+doesn't globally define the symbols
+
+00:02:20.879 --> 00:02:23.920
+s dash whatever but they
+
+00:02:23.920 --> 00:02:26.160
+appear to work for the programs that
+
+00:02:26.160 --> 00:02:28.319
+explicitly
+
+00:02:28.319 --> 00:02:32.640
+require that require sdl
+
+00:02:32.640 --> 00:02:36.000
+or the s package so this gets the same
+
+00:02:36.000 --> 00:02:38.080
+behavior for all the programs that are
+
+00:02:38.080 --> 00:02:40.239
+using that library
+
+00:02:40.239 --> 00:02:43.360
+and uh doesn't interfere
+
+00:02:43.360 --> 00:02:47.840
+with the global name space at all
+
+00:02:47.840 --> 00:02:50.319
+however to do that we need to have a
+
+00:02:50.319 --> 00:02:52.080
+package
+
+00:02:52.080 --> 00:02:55.360
+s.e.l that isn't the same
+
+00:02:55.360 --> 00:02:57.760
+totally a short file that's totally
+
+00:02:57.760 --> 00:02:58.640
+different
+
+00:02:58.640 --> 00:03:01.440
+plus we've got to have the file that
+
+00:03:01.440 --> 00:03:02.840
+normally is called
+
+00:03:02.840 --> 00:03:06.239
+s.e.l available but
+
+00:03:06.239 --> 00:03:10.319
+uh under another name well
+
+00:03:10.319 --> 00:03:13.040
+how are we going to do that we can't put
+
+00:03:13.040 --> 00:03:14.800
+this into
+
+00:03:14.800 --> 00:03:18.879
+into Emacs in a nice way that
+
+00:03:18.879 --> 00:03:21.920
+won't make the uh won't make the
+
+00:03:21.920 --> 00:03:24.560
+maintainer angry
+
+00:03:24.560 --> 00:03:26.480
+of the mate to the developer of that
+
+00:03:26.480 --> 00:03:28.159
+package
+
+00:03:28.159 --> 00:03:32.080
+but we can do it with non-gnu
+
+00:03:32.080 --> 00:03:34.640
+elpa we can put those two things into
+
+00:03:34.640 --> 00:03:36.239
+non-gnu elpa
+
+00:03:36.239 --> 00:03:38.720
+without any difficulty and this shows
+
+00:03:38.720 --> 00:03:40.720
+one of the advantages
+
+00:03:40.720 --> 00:03:43.280
+we can put files we can put packages
+
+00:03:43.280 --> 00:03:45.440
+into non-gdu elpa
+
+00:03:45.440 --> 00:03:48.400
+and make changes in them now in general
+
+00:03:48.400 --> 00:03:49.599
+we wouldn't
+
+00:03:49.599 --> 00:03:51.760
+go to the effort of making big changes
+
+00:03:51.760 --> 00:03:54.319
+that's just too much to do
+
+00:03:54.319 --> 00:03:56.400
+unless something's really important but
+
+00:03:56.400 --> 00:03:58.000
+small changes
+
+00:03:58.000 --> 00:04:01.120
+that help things fit in are
+
+00:04:01.120 --> 00:04:04.319
+easy to do and
+
+00:04:04.319 --> 00:04:07.120
+uh okay oh so basically the recording
+
+00:04:07.120 --> 00:04:10.319
+didn't get anything until now I just saw
+
+00:04:10.319 --> 00:04:13.439
+a note pop up this session is now being
+
+00:04:13.439 --> 00:04:14.319
+recorded
+
+00:04:14.319 --> 00:04:16.320
+I hope it's been recorded all along it
+
+00:04:16.320 --> 00:04:18.160
+would be a shame to
+
+00:04:18.160 --> 00:04:21.280
+spoil oh good okay
+
+00:04:21.280 --> 00:04:27.120
+okay good so uh that's one of the issues
+
+00:04:27.120 --> 00:04:30.479
+uh does non-gnu eopa already exist
+
+00:04:30.479 --> 00:04:33.840
+or is this a sort of quote plan I don't
+
+00:04:33.840 --> 00:04:35.360
+know why you have to
+
+00:04:35.360 --> 00:04:37.919
+put scare quotes around the word plan
+
+00:04:37.919 --> 00:04:40.400
+it's sort of in between
+
+00:04:40.400 --> 00:04:44.160
+it's the creation of it is started you
+
+00:04:44.160 --> 00:04:45.440
+will find
+
+00:04:45.440 --> 00:04:48.160
+that there is an archive that it's
+
+00:04:48.160 --> 00:04:51.520
+possible to download packages from
+
+00:04:51.520 --> 00:04:54.880
+and there is a repository to put them in
+
+00:04:54.880 --> 00:04:57.120
+but that's not the way it's really
+
+00:04:57.120 --> 00:04:58.560
+supposed to work
+
+00:04:58.560 --> 00:05:02.800
+uh this is not supposed to be like the
+
+00:05:02.800 --> 00:05:04.320
+new elpa where there's
+
+00:05:04.320 --> 00:05:07.280
+one repo for all the packages and thus
+
+00:05:07.280 --> 00:05:09.039
+anyone who wants to edit any of them
+
+00:05:09.039 --> 00:05:11.199
+anyone that we want to have edit any of
+
+00:05:11.199 --> 00:05:11.680
+them
+
+00:05:11.680 --> 00:05:13.280
+has got to have access to the whole
+
+00:05:13.280 --> 00:05:15.440
+thing for one thing
+
+00:05:15.440 --> 00:05:18.560
+some packages will make
+
+00:05:18.560 --> 00:05:21.840
+an arrangement with the developers
+
+00:05:21.840 --> 00:05:25.120
+and they'll assure us that they will
+
+00:05:25.120 --> 00:05:27.039
+do things as things should be done and
+
+00:05:27.039 --> 00:05:28.400
+then we'll
+
+00:05:28.400 --> 00:05:32.080
+have their repo copied automatically
+
+00:05:32.080 --> 00:05:35.919
+or in other cases say
+
+00:05:35.919 --> 00:05:38.160
+copied manually with a little checking
+
+00:05:38.160 --> 00:05:40.160
+every so often
+
+00:05:40.160 --> 00:05:43.199
+uh and then uh in
+
+00:05:43.199 --> 00:05:46.400
+other cases we'll need to have our own
+
+00:05:46.400 --> 00:05:49.440
+repo for a particular package
+
+00:05:49.440 --> 00:05:52.479
+but we shouldn't have a single repo for
+
+00:05:52.479 --> 00:05:54.400
+all the packages we should have a repo
+
+00:05:54.400 --> 00:05:55.919
+for each package
+
+00:05:55.919 --> 00:05:57.840
+so that the people working on that can
+
+00:05:57.840 --> 00:06:01.120
+get access to modify it
+
+00:06:01.120 --> 00:06:04.319
+this has to be finished setting up
+
+00:06:04.319 --> 00:06:06.080
+and we're still working out the
+
+00:06:06.080 --> 00:06:07.680
+procedures
+
+00:06:07.680 --> 00:06:11.039
+for instance for making the arrangements
+
+00:06:11.039 --> 00:06:14.400
+with the developers of a package so that
+
+00:06:14.400 --> 00:06:15.440
+we can
+
+00:06:15.440 --> 00:06:18.840
+we hope uh entrust its development to
+
+00:06:18.840 --> 00:06:20.400
+them and
+
+00:06:20.400 --> 00:06:24.800
+rely on them directly
+
+00:06:24.800 --> 00:06:26.560
+and there may be more that needs to be
+
+00:06:26.560 --> 00:06:29.840
+worked on
+
+00:06:29.840 --> 00:06:36.639
+oh there's so many questions
+
+00:06:36.639 --> 00:06:39.280
+well I hope you the third question is
+
+00:06:39.280 --> 00:06:40.880
+what are the benefits
+
+00:06:40.880 --> 00:06:43.680
+I hope that people now see the benefits
+
+00:06:43.680 --> 00:06:46.240
+I've described them
+
+00:06:46.240 --> 00:06:49.599
+uh next question is it possible to work
+
+00:06:49.599 --> 00:06:51.440
+with the melba team
+
+00:06:51.440 --> 00:06:54.720
+to integrate that into Emacs
+
+00:06:54.720 --> 00:06:59.440
+no because the goal doesn't make sense
+
+00:06:59.440 --> 00:07:03.759
+melba the way it's done does not belong
+
+00:07:03.759 --> 00:07:07.199
+inside Emacs in any sense well first of
+
+00:07:07.199 --> 00:07:08.560
+all it can't literally be
+
+00:07:08.560 --> 00:07:11.280
+inside Emacs we don't have copyright
+
+00:07:11.280 --> 00:07:13.280
+assignments for that code
+
+00:07:13.280 --> 00:07:18.160
+and to get it would be unfeasible
+
+00:07:18.160 --> 00:07:20.560
+but we're not asking for copyright
+
+00:07:20.560 --> 00:07:21.520
+assignments for
+
+00:07:21.520 --> 00:07:25.280
+non-gnu elpa so that's
+
+00:07:25.280 --> 00:07:27.599
+you might wonder could melpa be merged
+
+00:07:27.599 --> 00:07:31.440
+with non-venue elpa the problem is
+
+00:07:31.440 --> 00:07:35.039
+melpa doesn't modify the packages
+
+00:07:35.039 --> 00:07:38.240
+it's just a place to find releases of
+
+00:07:38.240 --> 00:07:41.360
+packages wherever they happen to be
+
+00:07:41.360 --> 00:07:44.800
+and they put packages in with
+
+00:07:44.800 --> 00:07:48.319
+only a little bit of checking
+
+00:07:48.319 --> 00:07:51.520
+so no we there are a lot of packages
+
+00:07:51.520 --> 00:07:51.919
+that are
+
+00:07:51.919 --> 00:07:55.280
+in melpa that we'd like to get into
+
+00:07:55.280 --> 00:07:58.479
+non-canoe elpa I don't know the names of
+
+00:07:58.479 --> 00:08:00.800
+most of them but I expect most of them
+
+00:08:00.800 --> 00:08:04.160
+would be fine to have but they've got to
+
+00:08:04.160 --> 00:08:08.560
+be looked at one by one
+
+00:08:08.560 --> 00:08:12.000
+there are some rules for non-glpa
+
+00:08:12.000 --> 00:08:14.479
+and the only way to check them is to
+
+00:08:14.479 --> 00:08:18.000
+check them on one package at a time
+
+00:08:18.000 --> 00:08:22.160
+and that's going to take effort
+
+00:08:22.160 --> 00:08:25.039
+now with the people who work on melba
+
+00:08:25.039 --> 00:08:26.080
+want to get involved
+
+00:08:26.080 --> 00:08:29.440
+of this that would be great
+
+00:08:29.440 --> 00:08:32.800
+I haven't tried asking them first we've
+
+00:08:32.800 --> 00:08:33.919
+got to get this thing
+
+00:08:33.919 --> 00:08:37.599
+set up I doubt they would want to
+
+00:08:37.599 --> 00:08:40.479
+but if they said yes that would be
+
+00:08:40.479 --> 00:08:44.159
+wonderful
+
+00:08:44.159 --> 00:08:48.399
+uh any thoughts of packages being
+
+00:08:48.399 --> 00:09:00.959
+added I'm afraid
+
+00:09:00.959 --> 00:09:05.440
+um
+
+00:09:05.440 --> 00:09:07.200
+I'm afraid any thoughts of packages
+
+00:09:07.200 --> 00:09:08.959
+being added as
+
+00:09:08.959 --> 00:09:11.040
+some url I don't know anything about but
+
+00:09:11.040 --> 00:09:13.120
+it talks about open source
+
+00:09:13.120 --> 00:09:16.800
+which means I'm very unlikely to have
+
+00:09:16.800 --> 00:09:17.680
+much
+
+00:09:17.680 --> 00:09:20.959
+in common with whatever they say about
+
+00:09:20.959 --> 00:09:24.080
+either licensing or
+
+00:09:24.080 --> 00:09:27.760
+what's right and wrong uh
+
+00:09:27.760 --> 00:09:29.959
+but this seems to be something about
+
+00:09:29.959 --> 00:09:31.920
+disregarding licenses
+
+00:09:31.920 --> 00:09:35.680
+altogether well that is basically
+
+00:09:35.680 --> 00:09:39.360
+asking to lose there are reasons
+
+00:09:39.360 --> 00:09:43.360
+why we developed gnu licenses to release
+
+00:09:43.360 --> 00:09:45.600
+software why we have criteria
+
+00:09:45.600 --> 00:09:48.320
+for which licenses make a program free
+
+00:09:48.320 --> 00:09:49.519
+software
+
+00:09:49.519 --> 00:09:52.640
+if the program doesn't carry a license
+
+00:09:52.640 --> 00:09:55.519
+or if it carries a non-free license that
+
+00:09:55.519 --> 00:09:56.080
+program
+
+00:09:56.080 --> 00:09:59.760
+is not free software now you can
+
+00:09:59.760 --> 00:10:02.839
+maybe get away with disregarding that
+
+00:10:02.839 --> 00:10:04.800
+fact uh unless
+
+00:10:04.800 --> 00:10:07.600
+somebody an author or publisher stops
+
+00:10:07.600 --> 00:10:08.959
+you
+
+00:10:08.959 --> 00:10:11.360
+but we're not going to take we're not
+
+00:10:11.360 --> 00:10:12.399
+basically going to
+
+00:10:12.399 --> 00:10:15.200
+disregard the question of whether the
+
+00:10:15.200 --> 00:10:16.399
+software we
+
+00:10:16.399 --> 00:10:19.040
+recommend to people really is free
+
+00:10:19.040 --> 00:10:21.360
+software or not
+
+00:10:21.360 --> 00:10:24.560
+that's basically uh
+
+00:10:24.560 --> 00:10:27.519
+blindfolding yourself to the legal
+
+00:10:27.519 --> 00:10:29.120
+situation of the software you're
+
+00:10:29.120 --> 00:10:30.480
+distributing
+
+00:10:30.480 --> 00:10:33.519
+it's a terrible idea uh if they
+
+00:10:33.519 --> 00:10:35.920
+disregard our licenses they will hear
+
+00:10:35.920 --> 00:10:38.640
+from us about it
+
+00:10:38.640 --> 00:10:40.959
+and if you want to contribute to the
+
+00:10:40.959 --> 00:10:42.720
+free world
+
+00:10:42.720 --> 00:10:46.320
+put free licenses on your code
+
+00:10:46.320 --> 00:10:48.640
+and choose good ones to get this
+
+00:10:48.640 --> 00:10:50.000
+information
+
+00:10:50.000 --> 00:10:53.440
+look at gnu.org slash licensing
+
+00:10:53.440 --> 00:10:57.120
+in particular slash licenses
+
+00:10:57.120 --> 00:10:59.839
+and one page that input that's important
+
+00:10:59.839 --> 00:11:01.120
+is license
+
+00:11:01.120 --> 00:11:05.040
+dash recommendations.html
+
+00:11:05.040 --> 00:11:07.360
+that's where we advise you on what
+
+00:11:07.360 --> 00:11:09.279
+license we would recommend you use
+
+00:11:09.279 --> 00:11:11.360
+depending on the circumstances
+
+00:11:11.360 --> 00:11:15.600
+there's also license dash list dot html
+
+00:11:15.600 --> 00:11:20.160
+which describes a lot of licenses and
+
+00:11:20.160 --> 00:11:22.160
+says which ones are free
+
+00:11:22.160 --> 00:11:25.040
+which ones are compatible with the new
+
+00:11:25.040 --> 00:11:26.160
+gpl
+
+00:11:26.160 --> 00:11:28.640
+it's really important to use only gpl
+
+00:11:28.640 --> 00:11:31.519
+compatible licenses
+
+00:11:31.519 --> 00:11:34.320
+so that the various programs can be
+
+00:11:34.320 --> 00:11:35.519
+combined together
+
+00:11:35.519 --> 00:11:40.720
+or linked and
+
+00:11:40.720 --> 00:11:43.120
+you can also get other information about
+
+00:11:43.120 --> 00:11:44.240
+gnu licenses
+
+00:11:44.240 --> 00:11:47.040
+and the reasons why they are written the
+
+00:11:47.040 --> 00:11:55.279
+way they are
+
+00:11:55.279 --> 00:12:03.200
+oh sorry I don't see the next question
+
+00:12:03.200 --> 00:12:05.600
+oh why do I insist on using per and
+
+00:12:05.600 --> 00:12:07.519
+purrs
+
+00:12:07.519 --> 00:12:11.680
+uh I'm not happy with using
+
+00:12:11.680 --> 00:12:14.959
+they which is a plural pronoun with a
+
+00:12:14.959 --> 00:12:17.440
+singular antecedent
+
+00:12:17.440 --> 00:12:20.480
+it's bad because it causes
+
+00:12:20.480 --> 00:12:24.800
+confusion that is completely gratuitous
+
+00:12:24.800 --> 00:12:28.639
+many sentences become a lot of work
+
+00:12:28.639 --> 00:12:33.200
+to parse and understand if you
+
+00:12:33.200 --> 00:12:36.480
+add that ambiguity that source of him of
+
+00:12:36.480 --> 00:12:39.839
+regular ambiguity now
+
+00:12:39.839 --> 00:12:42.720
+I do not accept the demands of other
+
+00:12:42.720 --> 00:12:43.680
+people
+
+00:12:43.680 --> 00:12:47.519
+in regard to changing my grammar
+
+00:12:47.519 --> 00:12:50.800
+you can try to convince me but
+
+00:12:50.800 --> 00:12:54.240
+no one is entitled to give me orders
+
+00:12:54.240 --> 00:12:55.440
+about that
+
+00:12:55.440 --> 00:12:58.880
+or state their desires and expect
+
+00:12:58.880 --> 00:13:03.200
+obedience not for me and not from you
+
+00:13:03.200 --> 00:13:06.560
+or anyone we are all
+
+00:13:06.560 --> 00:13:09.839
+equally entitled to decide
+
+00:13:09.839 --> 00:13:13.200
+how we will speak and how we won't speak
+
+00:13:13.200 --> 00:13:18.000
+now I've spelled out all of these points
+
+00:13:18.000 --> 00:13:22.880
+in a file called stolman.org
+
+00:13:22.880 --> 00:13:30.120
+articles slash
+
+00:13:30.120 --> 00:13:31.600
+genderneutrality.html
+
+00:13:31.600 --> 00:13:33.760
+of course this is not a gnu project
+
+00:13:33.760 --> 00:13:36.000
+policy
+
+00:13:36.000 --> 00:13:46.839
+it's my own personal ideas on the
+
+00:13:46.839 --> 00:13:53.920
+subject
+
+00:13:53.920 --> 00:13:57.120
+if any of you feels offended
+
+00:13:57.120 --> 00:14:01.040
+by my referring to you with a singular
+
+00:14:01.040 --> 00:14:04.320
+gender neutral pronoun feel free
+
+00:14:04.320 --> 00:14:07.680
+to ex contact me privately
+
+00:14:07.680 --> 00:14:10.720
+and explain to me your reasons
+
+00:14:10.720 --> 00:14:14.000
+I will pay attention to them I'll
+
+00:14:14.000 --> 00:14:16.639
+think about them assuming that they're
+
+00:14:16.639 --> 00:14:18.399
+not something I've already
+
+00:14:18.399 --> 00:14:24.079
+considered and decided to dismiss before
+
+00:14:24.079 --> 00:14:27.760
+but you must not speak to me as if I had
+
+00:14:27.760 --> 00:14:30.240
+no business not obeying you because
+
+00:14:30.240 --> 00:14:30.800
+that's
+
+00:14:30.800 --> 00:14:34.320
+rude and it is not likely to convince me
+
+00:14:34.320 --> 00:14:40.720
+to change my mind
+
+00:14:40.720 --> 00:14:44.240
+I believe it is not actually
+
+00:14:44.240 --> 00:14:48.320
+of stating offense to anyone
+
+00:14:48.320 --> 00:14:50.560
+and the fact that somebody disagrees
+
+00:14:50.560 --> 00:14:52.880
+with me does not mean I'm wrong
+
+00:14:52.880 --> 00:15:00.720
+but I always can be wrong
+
+00:15:00.720 --> 00:15:02.560
+when you wrote that you could add a
+
+00:15:02.560 --> 00:15:05.680
+package to non your new elpa
+
+00:15:05.680 --> 00:15:07.120
+are you implying that you would add
+
+00:15:07.120 --> 00:15:09.199
+packages with or without package
+
+00:15:09.199 --> 00:15:11.120
+maintainers knowledge
+
+00:15:11.120 --> 00:15:15.279
+of course the packages we would
+
+00:15:15.279 --> 00:15:18.000
+we would distribute in this way are free
+
+00:15:18.000 --> 00:15:19.519
+software
+
+00:15:19.519 --> 00:15:21.920
+everyone is entitled to redistribute
+
+00:15:21.920 --> 00:15:22.720
+them
+
+00:15:22.720 --> 00:15:26.560
+and everyone is also entitled to modify
+
+00:15:26.560 --> 00:15:26.959
+them
+
+00:15:26.959 --> 00:15:29.199
+and redistribute them that's part of the
+
+00:15:29.199 --> 00:15:31.680
+meaning of free software
+
+00:15:31.680 --> 00:15:35.040
+I have been unable to understand
+
+00:15:35.040 --> 00:15:38.320
+how there came to be an idea
+
+00:15:38.320 --> 00:15:42.560
+that those who redistribute packages
+
+00:15:42.560 --> 00:15:45.600
+have some idea to be mere
+
+00:15:45.600 --> 00:15:49.360
+some obligation to be near mirrors
+
+00:15:49.360 --> 00:15:54.480
+and not modify things themselves
+
+00:15:54.480 --> 00:15:58.560
+well if a package is
+
+00:15:58.560 --> 00:16:01.440
+being maintained by developers who are
+
+00:16:01.440 --> 00:16:03.440
+cooperating with us
+
+00:16:03.440 --> 00:16:06.240
+we'll normally just leave it to them
+
+00:16:06.240 --> 00:16:07.360
+after all
+
+00:16:07.360 --> 00:16:10.079
+we have lots of other work to do they
+
+00:16:10.079 --> 00:16:10.399
+are
+
+00:16:10.399 --> 00:16:14.000
+clearly experts on the packages they've
+
+00:16:14.000 --> 00:16:15.600
+developed
+
+00:16:15.600 --> 00:16:18.399
+let's leave it to them if they make that
+
+00:16:18.399 --> 00:16:22.800
+sort of arrangement with us but
+
+00:16:22.800 --> 00:16:26.480
+that's up to them we can't insist that
+
+00:16:26.480 --> 00:16:29.120
+anyone make an arrangement with us
+
+00:16:29.120 --> 00:16:30.720
+but since those programs are free
+
+00:16:30.720 --> 00:16:33.279
+software anyone c is
+
+00:16:33.279 --> 00:16:36.639
+free to redistribute them and we will do
+
+00:16:36.639 --> 00:16:41.839
+that
+
+00:16:41.839 --> 00:16:45.519
+have you ever used vi or vim or
+
+00:16:45.519 --> 00:16:52.079
+evil mode no
+
+00:16:52.079 --> 00:16:53.920
+are there any plans to implement
+
+00:16:53.920 --> 00:16:56.800
+security considerations in non-gnu
+
+00:16:56.800 --> 00:17:00.720
+elpa uh we probably
+
+00:17:00.720 --> 00:17:02.959
+should and this will have to be
+
+00:17:02.959 --> 00:17:04.959
+implemented
+
+00:17:04.959 --> 00:17:08.559
+but at the moment
+
+00:17:08.559 --> 00:17:12.000
+developer Emacs maintainers will copy
+
+00:17:12.000 --> 00:17:13.280
+packages
+
+00:17:13.280 --> 00:17:18.160
+into it and so as long as they are
+
+00:17:18.160 --> 00:17:20.160
+verifying the packages and getting the
+
+00:17:20.160 --> 00:17:22.480
+packages from the right place
+
+00:17:22.480 --> 00:17:25.199
+that will take care of the security once
+
+00:17:25.199 --> 00:17:25.919
+there is
+
+00:17:25.919 --> 00:17:30.160
+when with automatic copying in
+
+00:17:30.160 --> 00:17:33.200
+will have to do something to
+
+00:17:33.200 --> 00:17:35.200
+make sure that we're fetching the
+
+00:17:35.200 --> 00:17:40.320
+packages securely
+
+00:17:40.320 --> 00:17:43.360
+and uh some of you might be interested
+
+00:17:43.360 --> 00:17:44.000
+in
+
+00:17:44.000 --> 00:17:46.080
+helping to design and implement this
+
+00:17:46.080 --> 00:17:48.000
+system
+
+00:17:48.000 --> 00:17:52.559
+uh what distro do I use
+
+00:17:52.559 --> 00:17:56.720
+uh well which distro of gnu slash linux
+
+00:17:56.720 --> 00:17:58.000
+do I use
+
+00:17:58.000 --> 00:18:03.520
+I use tree scale
+
+00:18:03.520 --> 00:18:07.200
+I haven't tried most of the free distros
+
+00:18:07.200 --> 00:18:10.080
+and the reason is it's not crucial that
+
+00:18:10.080 --> 00:18:11.120
+I do so
+
+00:18:11.120 --> 00:18:13.520
+we don't need me to rate the various
+
+00:18:13.520 --> 00:18:14.799
+free distros on
+
+00:18:14.799 --> 00:18:17.520
+practical questions because anyone can
+
+00:18:17.520 --> 00:18:20.000
+do that as well as I can
+
+00:18:20.000 --> 00:18:24.400
+and so you can tell people what
+
+00:18:24.400 --> 00:18:27.760
+you think of using them for me what's
+
+00:18:27.760 --> 00:18:29.360
+important to me
+
+00:18:29.360 --> 00:18:32.400
+is to inform people of the difference
+
+00:18:32.400 --> 00:18:34.160
+between the free distros
+
+00:18:34.160 --> 00:18:36.799
+and the non-free distros making sure
+
+00:18:36.799 --> 00:18:38.799
+people are aware that if you
+
+00:18:38.799 --> 00:18:42.000
+install a non-free gnu slash linux
+
+00:18:42.000 --> 00:18:45.600
+distro you'll get a free operating
+
+00:18:45.600 --> 00:18:46.720
+system with
+
+00:18:46.720 --> 00:18:49.919
+non-free stuff in various quantities
+
+00:18:49.919 --> 00:18:54.160
+added thus you will not reach freedom
+
+00:18:54.160 --> 00:18:56.240
+although you you'll make a lot of
+
+00:18:56.240 --> 00:18:57.520
+progress compared
+
+00:18:57.520 --> 00:19:01.039
+with using for instance windows or
+
+00:19:01.039 --> 00:19:03.919
+mac os or whatever vicious thing it
+
+00:19:03.919 --> 00:19:06.160
+might be
+
+00:19:06.160 --> 00:19:08.559
+I'd like to I'd like to people to be
+
+00:19:08.559 --> 00:19:09.760
+aware
+
+00:19:09.760 --> 00:19:12.799
+of this next step towards
+
+00:19:12.799 --> 00:19:14.720
+getting freedom for yourself and your
+
+00:19:14.720 --> 00:19:16.160
+own computing
+
+00:19:16.160 --> 00:19:24.480
+so that you can do that if you want to
+
+00:19:24.480 --> 00:19:29.039
+uh
+
+00:19:29.039 --> 00:19:31.360
+so who gets to make the final decision
+
+00:19:31.360 --> 00:19:32.799
+regarding
+
+00:19:32.799 --> 00:19:36.640
+non-gnu elpa the
+
+00:19:36.640 --> 00:19:39.200
+emax maintainers are going to be in
+
+00:19:39.200 --> 00:19:40.960
+charge of this
+
+00:19:40.960 --> 00:19:44.480
+but because it's not
+
+00:19:44.480 --> 00:19:47.760
+just a technical decision it has with
+
+00:19:47.760 --> 00:19:51.360
+only technical consequences
+
+00:19:51.360 --> 00:19:54.960
+but in general unless there's some
+
+00:19:54.960 --> 00:19:57.760
+severe problem with the package we will
+
+00:19:57.760 --> 00:20:03.600
+want to put it in
+
+00:20:03.600 --> 00:20:06.400
+and I expect most packages won't have a
+
+00:20:06.400 --> 00:20:07.440
+problem
+
+00:20:07.440 --> 00:20:09.919
+and we can just put them in when we get
+
+00:20:09.919 --> 00:20:11.679
+to them
+
+00:20:11.679 --> 00:20:15.919
+won't the elpa link to non-free sites
+
+00:20:15.919 --> 00:20:17.600
+like github
+
+00:20:17.600 --> 00:20:20.799
+uh it's a mistake to talk about a
+
+00:20:20.799 --> 00:20:25.760
+non-free site
+
+00:20:25.760 --> 00:20:29.120
+because a site is not a program
+
+00:20:29.120 --> 00:20:32.159
+a program is either free or non-free and
+
+00:20:32.159 --> 00:20:32.960
+we have
+
+00:20:32.960 --> 00:20:36.480
+clearly stated criteria for that in
+
+00:20:36.480 --> 00:20:39.679
+gnu.org philosophy slash
+
+00:20:39.679 --> 00:20:43.039
+free dash sw.html we have the free
+
+00:20:43.039 --> 00:20:45.360
+software definition
+
+00:20:45.360 --> 00:20:51.919
+but a site well their programs on it
+
+00:20:51.919 --> 00:20:54.000
+but it doesn't make sense to ask whether
+
+00:20:54.000 --> 00:20:55.120
+the site is
+
+00:20:55.120 --> 00:20:58.000
+free or not it's too simplistic a
+
+00:20:58.000 --> 00:20:58.880
+question
+
+00:20:58.880 --> 00:21:02.000
+to have a meaningful answer now one
+
+00:21:02.000 --> 00:21:05.679
+thing you can ask about is does the site
+
+00:21:05.679 --> 00:21:08.799
+send javascript to the user's machine
+
+00:21:08.799 --> 00:21:11.760
+to the user's browser and if so is that
+
+00:21:11.760 --> 00:21:12.960
+javascript
+
+00:21:12.960 --> 00:21:17.120
+non-free well github
+
+00:21:17.120 --> 00:21:19.919
+does send non-free javascript for some
+
+00:21:19.919 --> 00:21:21.200
+operations
+
+00:21:21.200 --> 00:21:24.240
+so we consider it unsatisfactory as a
+
+00:21:24.240 --> 00:21:26.159
+repository
+
+00:21:26.159 --> 00:21:29.600
+but uh that doesn't mean linking to it
+
+00:21:29.600 --> 00:21:33.360
+for is a bad thing to do regardless of
+
+00:21:33.360 --> 00:21:34.720
+what the purpose is
+
+00:21:34.720 --> 00:21:36.640
+for instance if the purpose is to refer
+
+00:21:36.640 --> 00:21:38.240
+to some things
+
+00:21:38.240 --> 00:21:40.799
+that you can access without running the
+
+00:21:40.799 --> 00:21:42.880
+non-free javascript
+
+00:21:42.880 --> 00:21:47.200
+then it's okay for that purpose
+
+00:21:47.200 --> 00:21:50.480
+so if now that you understand the
+
+00:21:50.480 --> 00:21:52.559
+details of this issue
+
+00:21:52.559 --> 00:21:54.880
+you think that there is a problem with
+
+00:21:54.880 --> 00:21:55.919
+the
+
+00:21:55.919 --> 00:22:00.080
+link to camel there's
+
+00:22:00.080 --> 00:22:03.679
+sorry a link in camel dot html
+
+00:22:03.679 --> 00:22:06.799
+well report it to
+
+00:22:06.799 --> 00:22:10.880
+uh bug gnu emax reported as an Emacs bug
+
+00:22:10.880 --> 00:22:14.159
+but do think about the criteria I've
+
+00:22:14.159 --> 00:22:15.840
+just said because maybe it's not a
+
+00:22:15.840 --> 00:22:18.000
+problem
+
+00:22:18.000 --> 00:22:21.840
+is it okay to use the gnu of pharaoh gpl
+
+00:22:21.840 --> 00:22:24.559
+for emax packages
+
+00:22:24.559 --> 00:22:28.880
+yes it is
+
+00:22:28.880 --> 00:22:31.120
+uh which is your favorite programming
+
+00:22:31.120 --> 00:22:32.080
+language
+
+00:22:32.080 --> 00:22:35.200
+if lisp which variant
+
+00:22:35.200 --> 00:22:38.400
+well I don't exactly have a
+
+00:22:38.400 --> 00:22:41.760
+favorite variant but
+
+00:22:41.760 --> 00:22:45.120
+when I designed Emacs lisp I
+
+00:22:45.120 --> 00:22:47.520
+did the best thing I could think of at
+
+00:22:47.520 --> 00:22:48.799
+the time
+
+00:22:48.799 --> 00:22:52.559
+subject to the need to keep it small
+
+00:22:52.559 --> 00:22:55.520
+for the first few years it was important
+
+00:22:55.520 --> 00:22:56.960
+for gdu Emacs
+
+00:22:56.960 --> 00:22:59.840
+to run in a machine which could only
+
+00:22:59.840 --> 00:23:00.799
+give it half
+
+00:23:00.799 --> 00:23:04.480
+a meg of user space
+
+00:23:04.480 --> 00:23:06.559
+so there are a lot of constructs that
+
+00:23:06.559 --> 00:23:09.200
+clearly were desirable to include
+
+00:23:09.200 --> 00:23:12.320
+that I left out because we could
+
+00:23:12.320 --> 00:23:16.880
+make it work without them
+
+00:23:16.880 --> 00:23:18.960
+and then a lot of those have been added
+
+00:23:18.960 --> 00:23:20.640
+since because
+
+00:23:20.640 --> 00:23:23.200
+it's been a long time since we needed to
+
+00:23:23.200 --> 00:23:40.960
+keep Emacs so rigorously small
+
+00:23:40.960 --> 00:23:44.240
+um someone is
+
+00:23:44.240 --> 00:23:47.679
+asking about the
+
+00:23:47.679 --> 00:23:51.360
+fsf's repository project well
+
+00:23:51.360 --> 00:23:54.400
+we agreed that there would be another
+
+00:23:54.400 --> 00:23:55.440
+virtual machine
+
+00:23:55.440 --> 00:23:59.919
+running one of those for the gnu project
+
+00:23:59.919 --> 00:24:15.840
+but that's as far as the discussion went
+
+00:24:15.840 --> 00:24:20.480
+question 17 is extremely insulting
+
+00:24:20.480 --> 00:24:25.600
+I have not engaged in sexual harassment
+
+00:24:25.600 --> 00:24:28.720
+don't expect me to plead guilty to such
+
+00:24:28.720 --> 00:24:28.960
+a
+
+00:24:28.960 --> 00:24:32.640
+nasty claim
+
+00:24:32.640 --> 00:24:35.600
+people have been accusing me of many
+
+00:24:35.600 --> 00:24:36.799
+things
+
+00:24:36.799 --> 00:24:39.919
+some of which are
+
+00:24:39.919 --> 00:24:43.120
+basically mole hills and some of which
+
+00:24:43.120 --> 00:24:46.559
+are false so
+
+00:24:46.559 --> 00:24:50.640
+uh I'm not going to give them
+
+00:24:50.640 --> 00:24:53.840
+anything I have been bullied in a
+
+00:24:53.840 --> 00:24:56.400
+horrible way
+
+00:24:56.400 --> 00:24:59.679
+that was wrong
+
+00:24:59.679 --> 00:25:02.720
+I would like the bullies to apologize to
+
+00:25:02.720 --> 00:25:03.520
+me
+
+00:25:03.520 --> 00:25:06.320
+and when I see that they're not bullying
+
+00:25:06.320 --> 00:25:08.960
+I will forgive them
+
+00:25:08.960 --> 00:25:11.279
+I would like to have conversations with
+
+00:25:11.279 --> 00:25:14.799
+them if any of the mole hills
+
+00:25:14.799 --> 00:25:17.840
+annoyed someone I'm happy to talk
+
+00:25:17.840 --> 00:25:20.880
+with her and thus
+
+00:25:20.880 --> 00:25:31.120
+uh help help resolve things with peace
+
+00:25:31.120 --> 00:25:35.120
+and my opinion on
+
+00:25:35.120 --> 00:25:39.200
+quote diversity within
+
+00:25:39.200 --> 00:25:42.720
+Emacs well Emacs is
+
+00:25:42.720 --> 00:25:45.679
+never going to be diverse it is extended
+
+00:25:45.679 --> 00:25:46.480
+in
+
+00:25:46.480 --> 00:25:49.760
+one language Emacs lisp
+
+00:25:49.760 --> 00:25:53.279
+well I don't know uh we did have an idea
+
+00:25:53.279 --> 00:25:55.840
+of implementing extensibility using
+
+00:25:55.840 --> 00:25:58.400
+scheme and the hope was that guile
+
+00:25:58.400 --> 00:26:01.120
+could be integrated with Emacs that
+
+00:26:01.120 --> 00:26:02.960
+turned out to be difficult it may be
+
+00:26:02.960 --> 00:26:05.279
+impossible but in principle
+
+00:26:05.279 --> 00:26:07.520
+it might be a good thing that would be a
+
+00:26:07.520 --> 00:26:11.039
+small amount of diversity
+
+00:26:11.039 --> 00:26:14.960
+but it's not that important
+
+00:26:14.960 --> 00:26:16.960
+what I think is really important for
+
+00:26:16.960 --> 00:26:18.880
+developing Emacs
+
+00:26:18.880 --> 00:26:22.799
+is to make it do word processing
+
+00:26:22.799 --> 00:26:27.039
+I sometimes use libra office
+
+00:26:27.039 --> 00:26:30.080
+and yeah I can make it do things
+
+00:26:30.080 --> 00:26:32.799
+it has features for wysiwyg which are
+
+00:26:32.799 --> 00:26:34.880
+very nice
+
+00:26:34.880 --> 00:26:38.000
+but it's in other regards
+
+00:26:38.000 --> 00:26:40.400
+it's not Emacs and it doesn't have the
+
+00:26:40.400 --> 00:26:42.400
+abilities of Emacs
+
+00:26:42.400 --> 00:26:45.600
+and it should
+
+00:26:45.600 --> 00:26:48.400
+so I urge people to work on extending
+
+00:26:48.400 --> 00:26:49.039
+Emacs
+
+00:26:49.039 --> 00:26:51.600
+in that direction adding the features
+
+00:26:51.600 --> 00:27:13.600
+that a word processor has to have
+
+00:27:13.600 --> 00:27:16.640
+the last question I can answer is
+
+00:27:16.640 --> 00:27:21.679
+18 but yes it's a very sad thing
+
+00:27:21.679 --> 00:27:24.960
+how many companies
+
+00:27:24.960 --> 00:27:28.399
+insist on using non-free software
+
+00:27:28.399 --> 00:27:33.200
+well I would get a different kind of job
+
+00:27:33.200 --> 00:27:36.799
+that's a decision I made many years ago
+
+00:27:36.799 --> 00:27:40.320
+early in the gnu project
+
+00:27:40.320 --> 00:27:42.799
+I decided I would not first I would not
+
+00:27:42.799 --> 00:27:47.679
+get a job developing non-free software
+
+00:27:47.679 --> 00:27:50.960
+and later on I decided
+
+00:27:50.960 --> 00:27:54.880
+once I could stop using non-free
+
+00:27:54.880 --> 00:27:57.120
+software that is once we had
+
+00:27:57.120 --> 00:28:00.799
+a gnu slash linux system that we could
+
+00:28:00.799 --> 00:28:08.320
+switch over to and uh
+
+00:28:08.320 --> 00:28:11.679
+oh wait I thought I thought magic wand
+
+00:28:11.679 --> 00:28:16.240
+time meant it was time to stop
+
+00:28:16.240 --> 00:28:21.039
+but now I rather ask the question
+
+00:28:21.039 --> 00:28:27.760
+uh
+
+00:28:27.760 --> 00:28:32.480
+so what do you do well if I were you
+
+00:28:32.480 --> 00:28:35.679
+I'd probably not work for any of those
+
+00:28:35.679 --> 00:28:37.440
+companies
+
+00:28:37.440 --> 00:28:39.679
+if I needed to make money I'd get a job
+
+00:28:39.679 --> 00:28:40.799
+but I get some
+
+00:28:40.799 --> 00:28:43.840
+other kind of job
+
+00:28:43.840 --> 00:28:48.080
+that didn't involve using software
+
+00:28:48.080 --> 00:28:51.039
+I would or that let me choose the
+
+00:28:51.039 --> 00:28:53.600
+software I would use
+
+00:28:53.600 --> 00:28:56.880
+but I would live cheaply you know the
+
+00:28:56.880 --> 00:28:58.000
+less you spend
+
+00:28:58.000 --> 00:29:00.640
+the less you need to make and the more
+
+00:29:00.640 --> 00:29:01.120
+time
+
+00:29:01.120 --> 00:29:04.720
+you can take away from your paid work
+
+00:29:04.720 --> 00:29:07.200
+and the more flexibility you have in
+
+00:29:07.200 --> 00:29:08.640
+which paid work
+
+00:29:08.640 --> 00:29:13.039
+you can do being in a position
+
+00:29:13.039 --> 00:29:16.399
+to say no to avoid being
+
+00:29:16.399 --> 00:29:23.679
+desperate to say yes
+
+00:29:23.679 --> 00:29:27.440
+uh strengthens your position
+
+00:29:27.440 --> 00:29:31.200
+and you need that one way you can help
+
+00:29:31.200 --> 00:29:33.279
+do that is by
+
+00:29:33.279 --> 00:29:36.559
+not having children now that is a
+
+00:29:36.559 --> 00:29:38.960
+tangent but it can't be denied that
+
+00:29:38.960 --> 00:29:41.760
+raising children is very expensive I
+
+00:29:41.760 --> 00:29:42.399
+have heard
+
+00:29:42.399 --> 00:29:45.559
+many people say that they are
+
+00:29:45.559 --> 00:29:48.080
+uncomfortable with their jobs
+
+00:29:48.080 --> 00:29:50.880
+but they have to do those jobs to make
+
+00:29:50.880 --> 00:29:52.240
+enough money
+
+00:29:52.240 --> 00:29:55.440
+to support their children
+
+00:29:55.440 --> 00:29:59.120
+well think about that be aware
+
+00:29:59.120 --> 00:30:01.520
+that's likely to happen to you before
+
+00:30:01.520 --> 00:30:06.159
+you make that decision
+
+00:30:06.159 --> 00:30:10.000
+what would I
+
+00:30:10.000 --> 00:30:13.279
+what would I change about free software
+
+00:30:13.279 --> 00:30:16.960
+well since this is
+
+00:30:16.960 --> 00:30:20.880
+magic I would magically find
+
+00:30:20.880 --> 00:30:25.600
+a way of showing everyone why
+
+00:30:25.600 --> 00:30:28.000
+most free software needs to be copy
+
+00:30:28.000 --> 00:30:29.679
+lifted
+
+00:30:29.679 --> 00:30:32.480
+so that our community would not
+
+00:30:32.480 --> 00:30:34.880
+basically
+
+00:30:34.880 --> 00:30:38.640
+submit to abuse by proprietary software
+
+00:30:38.640 --> 00:30:45.919
+developers
+
+00:30:45.919 --> 00:30:49.760
+of course I could go further if I could
+
+00:30:49.760 --> 00:30:53.279
+magically recruit a hundred thousand
+
+00:30:53.279 --> 00:30:55.760
+good programmers to do lots of work
+
+00:30:55.760 --> 00:30:57.919
+improving free software
+
+00:30:57.919 --> 00:31:01.039
+we might well if we could do this 20
+
+00:31:01.039 --> 00:31:03.279
+years ago we might have wiped out
+
+00:31:03.279 --> 00:31:06.559
+non-free systems and then we wouldn't
+
+00:31:06.559 --> 00:31:07.200
+have had
+
+00:31:07.200 --> 00:31:10.320
+horrible things like
+
+00:31:10.320 --> 00:31:14.480
+world wide web drm that
+
+00:31:14.480 --> 00:31:18.000
+no one has the courage to resist
+
+00:31:18.000 --> 00:31:20.480
+if they're desperately trying to get
+
+00:31:20.480 --> 00:31:22.640
+money for anything
+
+00:31:22.640 --> 00:31:26.240
+and if they need approval of companies
+
+00:31:26.240 --> 00:31:29.519
+of the big companies that push for drm
+
+00:31:29.519 --> 00:31:32.960
+uh then they don't dare even resist as
+
+00:31:32.960 --> 00:31:38.240
+much as they can resist
+
+00:31:38.240 --> 00:31:40.880
+and look what happened to the world wide
+
+00:31:40.880 --> 00:31:43.200
+web consortium
+
+00:31:43.200 --> 00:31:47.279
+uh they surrendered blatantly
+
+00:31:47.279 --> 00:31:50.399
+and ignominiously by
+
+00:31:50.399 --> 00:31:55.760
+endorsing the drm system
+
+00:31:55.760 --> 00:31:59.600
+so what can you do I don't have a magic
+
+00:31:59.600 --> 00:32:00.880
+wand
+
+00:32:00.880 --> 00:32:04.720
+I'm a human being with the capabilities
+
+00:32:04.720 --> 00:32:06.559
+I have
+
+00:32:06.559 --> 00:32:09.919
+but the advantage of
+
+00:32:09.919 --> 00:32:12.840
+great firmness in campaigning for free
+
+00:32:12.840 --> 00:32:14.000
+software
+
+00:32:14.000 --> 00:32:18.240
+and this enables me to do things
+
+00:32:18.240 --> 00:32:27.679
+that no one else will do
+
+00:32:27.679 --> 00:32:30.480
+what tools from pre unix days do you
+
+00:32:30.480 --> 00:32:31.519
+miss
+
+00:32:31.519 --> 00:32:34.240
+well I don't I don't think about them
+
+00:32:34.240 --> 00:32:34.880
+with
+
+00:32:34.880 --> 00:32:38.640
+missing them actually but
+
+00:32:38.640 --> 00:32:42.080
+it was sort of nice to have
+
+00:32:42.080 --> 00:32:46.240
+ddt as your login shell
+
+00:32:46.240 --> 00:32:49.600
+so in using modern terminology
+
+00:32:49.600 --> 00:32:52.640
+because that meant at any time you could
+
+00:32:52.640 --> 00:32:55.519
+stop a program lotus debugging symbols
+
+00:32:55.519 --> 00:32:57.519
+and start examining the data in the
+
+00:32:57.519 --> 00:32:58.799
+instructions
+
+00:32:58.799 --> 00:33:01.519
+you could debug it that way and then you
+
+00:33:01.519 --> 00:33:03.039
+could even
+
+00:33:03.039 --> 00:33:06.720
+patch in instructions to continue
+
+00:33:06.720 --> 00:33:09.760
+running that job with the bug fixed
+
+00:33:09.760 --> 00:33:11.600
+in fact you could even do this with the
+
+00:33:11.600 --> 00:33:13.919
+system kernel
+
+00:33:13.919 --> 00:33:16.640
+so that your jobs wouldn't get lost I
+
+00:33:16.640 --> 00:33:17.840
+did that
+
+00:33:17.840 --> 00:33:20.559
+quite a few times of course sometimes I
+
+00:33:20.559 --> 00:33:22.720
+saw what was wrong and I just had to
+
+00:33:22.720 --> 00:33:25.919
+fix a piece of data but sometimes
+
+00:33:25.919 --> 00:33:28.240
+it took me a long time to figure out how
+
+00:33:28.240 --> 00:33:29.679
+to get the system to
+
+00:33:29.679 --> 00:33:32.480
+keep on going but with the work I had
+
+00:33:32.480 --> 00:33:34.240
+done
+
+00:33:34.240 --> 00:33:39.279
+I didn't want to lose that work
+
+00:33:39.279 --> 00:33:41.600
+and so one of the first features I put
+
+00:33:41.600 --> 00:33:43.039
+into gdu Emacs was
+
+00:33:43.039 --> 00:33:47.760
+auto save
+
+00:33:47.760 --> 00:33:50.640
+uh I'm not going to try to figure out
+
+00:33:50.640 --> 00:33:54.320
+which packages I re I actually used
+
+00:33:54.320 --> 00:33:56.480
+uh if I knew I would get hit by a bus
+
+00:33:56.480 --> 00:33:59.039
+tomorrow
+
+00:33:59.039 --> 00:34:02.320
+uh say because of a fortune teller
+
+00:34:02.320 --> 00:34:05.039
+no a fortune teller doesn't give you any
+
+00:34:05.039 --> 00:34:06.240
+knowledge it's just
+
+00:34:06.240 --> 00:34:10.159
+superstitious uh hand waving
+
+00:34:10.159 --> 00:34:13.760
+so assuming that I
+
+00:34:13.760 --> 00:34:16.480
+talked that I got a reading from a
+
+00:34:16.480 --> 00:34:18.879
+fortune teller which is
+
+00:34:18.879 --> 00:34:23.119
+implausible enough to begin with uh
+
+00:34:23.119 --> 00:34:25.040
+that wouldn't give me any knowledge
+
+00:34:25.040 --> 00:34:28.320
+about what was going to happen to me
+
+00:34:28.320 --> 00:34:32.879
+oh by the way fortune tellers generally
+
+00:34:32.879 --> 00:34:34.960
+play back to you facts that they've
+
+00:34:34.960 --> 00:34:36.879
+discovered about you
+
+00:34:36.879 --> 00:34:40.480
+together with cold reading which means
+
+00:34:40.480 --> 00:34:43.440
+they say things calculated to make it
+
+00:34:43.440 --> 00:34:44.639
+appear that they know
+
+00:34:44.639 --> 00:34:49.119
+more than they do or things that are
+
+00:34:49.119 --> 00:34:52.399
+uh that sound wise to anyone
+
+00:34:52.399 --> 00:34:55.679
+so you can say the same thing to
+
+00:34:55.679 --> 00:34:58.800
+uh say 100 people
+
+00:34:58.800 --> 00:35:02.000
+and 80 or 90 of them will say boy that
+
+00:35:02.000 --> 00:35:06.480
+was really accurate
+
+00:35:06.480 --> 00:35:10.400
+but what if for some reason
+
+00:35:10.400 --> 00:35:15.119
+uh about
+
+00:35:15.119 --> 00:35:17.440
+what what advice would I give for
+
+00:35:17.440 --> 00:35:18.560
+stewardship of
+
+00:35:18.560 --> 00:35:22.079
+Emacs well basically
+
+00:35:22.079 --> 00:35:25.359
+focus on
+
+00:35:25.359 --> 00:35:28.480
+keeping the community strong in
+
+00:35:28.480 --> 00:35:29.280
+defending
+
+00:35:29.280 --> 00:35:32.640
+freedom if you have a choice between
+
+00:35:32.640 --> 00:35:34.400
+keeping the community strong in
+
+00:35:34.400 --> 00:35:36.079
+defending freedom
+
+00:35:36.079 --> 00:35:38.800
+and getting more people to participate
+
+00:35:38.800 --> 00:35:40.720
+in the development
+
+00:35:40.720 --> 00:35:43.839
+you've got to choose the freedom it is
+
+00:35:43.839 --> 00:35:44.400
+very
+
+00:35:44.400 --> 00:35:48.400
+easy for free software projects to
+
+00:35:48.400 --> 00:35:52.320
+subordinate freedom to other criteria
+
+00:35:52.320 --> 00:35:55.359
+and once that happens it's
+
+00:35:55.359 --> 00:35:58.079
+easy for those who don't care much about
+
+00:35:58.079 --> 00:35:58.720
+freedom
+
+00:35:58.720 --> 00:36:00.800
+such as sometimes companies that might
+
+00:36:00.800 --> 00:36:02.640
+offer you some money
+
+00:36:02.640 --> 00:36:08.160
+to purchase your soul
+
+00:36:08.160 --> 00:36:10.560
+not that there are really things that
+
+00:36:10.560 --> 00:36:14.240
+exist called souls it's a metaphor but
+
+00:36:14.240 --> 00:36:16.560
+it's an important metaphor for something
+
+00:36:16.560 --> 00:36:18.800
+important
+
+00:36:18.800 --> 00:36:20.880
+people in the community have to be
+
+00:36:20.880 --> 00:36:24.320
+thinking about freedom
+
+00:36:24.320 --> 00:36:27.280
+when they make decisions about what is
+
+00:36:27.280 --> 00:36:31.839
+wise to do
+
+00:36:31.839 --> 00:36:36.480
+the decision to devel to set up non-glpa
+
+00:36:36.480 --> 00:36:39.839
+has a drawback it was a compromise now a
+
+00:36:39.839 --> 00:36:41.520
+lot of people will
+
+00:36:41.520 --> 00:36:44.560
+tell you that I am uncompromising and
+
+00:36:44.560 --> 00:36:46.240
+say that that's a flaw
+
+00:36:46.240 --> 00:36:48.720
+well they're wrong I make little
+
+00:36:48.720 --> 00:36:50.320
+compromises
+
+00:36:50.320 --> 00:36:53.040
+very often and occasionally I make a
+
+00:36:53.040 --> 00:36:55.359
+medium-sized compromise
+
+00:36:55.359 --> 00:36:58.880
+the compromise is in the past we wanted
+
+00:36:58.880 --> 00:36:59.359
+to get
+
+00:36:59.359 --> 00:37:01.599
+copyright assignments for the packages
+
+00:37:01.599 --> 00:37:02.400
+in gnu
+
+00:37:02.400 --> 00:37:06.240
+elpa so that we could move them into
+
+00:37:06.240 --> 00:37:09.119
+core Emacs and of course sometimes we
+
+00:37:09.119 --> 00:37:11.200
+move packages in the other direction
+
+00:37:11.200 --> 00:37:14.480
+that way we are where we distribute a
+
+00:37:14.480 --> 00:37:16.160
+given package
+
+00:37:16.160 --> 00:37:18.160
+is something we can decide purely
+
+00:37:18.160 --> 00:37:20.880
+technically
+
+00:37:20.880 --> 00:37:25.200
+and however make insisting on getting
+
+00:37:25.200 --> 00:37:26.800
+copyright assignments for all the
+
+00:37:26.800 --> 00:37:28.640
+packages in gnu elpa
+
+00:37:28.640 --> 00:37:32.079
+meant that we had to say sorry no
+
+00:37:32.079 --> 00:37:35.119
+we will not install that packages in
+
+00:37:35.119 --> 00:37:38.560
+packaging dewey lpa unless the
+
+00:37:38.560 --> 00:37:41.520
+authors sign copyright assignments and
+
+00:37:41.520 --> 00:37:44.079
+sometimes that's a lot of trouble
+
+00:37:44.079 --> 00:37:47.520
+well non-glpa
+
+00:37:47.520 --> 00:37:50.160
+won't require copyright assignments if
+
+00:37:50.160 --> 00:37:51.520
+there's a free package
+
+00:37:51.520 --> 00:37:54.560
+we can make whatever changes presumably
+
+00:37:54.560 --> 00:37:57.200
+small otherwise we would probably say
+
+00:37:57.200 --> 00:38:00.560
+we don't have time but and then
+
+00:38:00.560 --> 00:38:04.560
+put it in but it does have the drawback
+
+00:38:04.560 --> 00:38:05.599
+that
+
+00:38:05.599 --> 00:38:07.680
+we in general we won't be able to move
+
+00:38:07.680 --> 00:38:09.119
+those packages
+
+00:38:09.119 --> 00:38:12.960
+into core Emacs without
+
+00:38:12.960 --> 00:38:14.960
+getting the legal papers then that we
+
+00:38:14.960 --> 00:38:20.160
+didn't get before
+
+00:38:20.160 --> 00:38:24.320
+how do you see the future of gdu Emacs
+
+00:38:24.320 --> 00:38:27.599
+uh I don't see the future
+
+00:38:27.599 --> 00:38:29.839
+I used to say that my crystal ball is
+
+00:38:29.839 --> 00:38:31.680
+cloudy today
+
+00:38:31.680 --> 00:38:35.680
+unfortunately that has another
+
+00:38:35.680 --> 00:38:39.040
+meaning which is quite ironic uh we
+
+00:38:39.040 --> 00:38:41.200
+certainly don't want
+
+00:38:41.200 --> 00:38:44.800
+our lives to be
+
+00:38:44.800 --> 00:38:48.480
+somewhere in a cloud because
+
+00:38:48.480 --> 00:38:51.119
+that clouds your mind and then people
+
+00:38:51.119 --> 00:38:51.599
+start
+
+00:38:51.599 --> 00:38:54.240
+cheating you and taking advantage of you
+
+00:38:54.240 --> 00:38:56.880
+and it's horrible
+
+00:38:56.880 --> 00:39:00.160
+but uh I don't see the future I just
+
+00:39:00.160 --> 00:39:02.720
+can be sure from the past that there
+
+00:39:02.720 --> 00:39:03.839
+will be
+
+00:39:03.839 --> 00:39:07.599
+challenges where some of the people
+
+00:39:07.599 --> 00:39:10.720
+involved want to make a big compromise
+
+00:39:10.720 --> 00:39:12.960
+that isn't worth it
+
+00:39:12.960 --> 00:39:16.880
+and they some they may even get the
+
+00:39:16.880 --> 00:39:18.079
+impression that it's
+
+00:39:18.079 --> 00:39:21.200
+up to them well actually
+
+00:39:21.200 --> 00:39:24.480
+Emacs has appointed maintainers just as
+
+00:39:24.480 --> 00:39:27.440
+every gdu package does and they are the
+
+00:39:27.440 --> 00:39:29.280
+ones in charge of developing that
+
+00:39:29.280 --> 00:39:30.480
+package
+
+00:39:30.480 --> 00:39:34.400
+and this is for a good reason
+
+00:39:34.400 --> 00:39:38.200
+because the appointed maintainers take
+
+00:39:38.200 --> 00:39:39.760
+responsibility
+
+00:39:39.760 --> 00:39:42.240
+to carry out the gnu project policies
+
+00:39:42.240 --> 00:39:44.079
+and most important of all
+
+00:39:44.079 --> 00:39:46.160
+are the ones that make the whole system
+
+00:39:46.160 --> 00:39:47.520
+work together
+
+00:39:47.520 --> 00:39:52.640
+and the ethical standards
+
+00:39:52.640 --> 00:39:59.920
+to respect freedom and defend freedom
+
+00:39:59.920 --> 00:40:02.240
+is there any plan to move more packages
+
+00:40:02.240 --> 00:40:04.960
+from core Emacs into elpa
+
+00:40:04.960 --> 00:40:08.480
+uh I don't know uh
+
+00:40:08.480 --> 00:40:11.440
+whether there is a plan I suppose if
+
+00:40:11.440 --> 00:40:12.720
+there's a plan
+
+00:40:12.720 --> 00:40:15.680
+we probably would have done it if there
+
+00:40:15.680 --> 00:40:16.960
+had been a plan
+
+00:40:16.960 --> 00:40:19.839
+some have been moved I don't see this as
+
+00:40:19.839 --> 00:40:20.319
+a
+
+00:40:20.319 --> 00:40:22.400
+fundamentally important issue it's a
+
+00:40:22.400 --> 00:40:24.160
+matter of what's convenient for
+
+00:40:24.160 --> 00:40:26.640
+the users and their advantages and
+
+00:40:26.640 --> 00:40:29.599
+disadvantages to each choice
+
+00:40:29.599 --> 00:40:32.800
+what is your opinion on higher education
+
+00:40:32.800 --> 00:40:35.760
+uh requiring non-free software for
+
+00:40:35.760 --> 00:40:36.720
+instance
+
+00:40:36.720 --> 00:40:40.400
+well I wouldn't I wouldn't
+
+00:40:40.400 --> 00:40:43.440
+matriculate in a school which did that
+
+00:40:43.440 --> 00:40:50.960
+unless I saw a way I could refuse
+
+00:40:50.960 --> 00:40:54.960
+now of course I do this
+
+00:40:54.960 --> 00:40:57.760
+because I can get away with it and
+
+00:40:57.760 --> 00:41:00.240
+therefore my doing it is extremely
+
+00:41:00.240 --> 00:41:04.960
+important to show somebody does resist
+
+00:41:04.960 --> 00:41:08.400
+I don't expect most people who support
+
+00:41:08.400 --> 00:41:09.359
+free school
+
+00:41:09.359 --> 00:41:12.319
+who advocate free software to go that
+
+00:41:12.319 --> 00:41:13.599
+far
+
+00:41:13.599 --> 00:41:17.760
+uh I published an article in the spring
+
+00:41:17.760 --> 00:41:21.040
+entitled saying no even once
+
+00:41:21.040 --> 00:41:24.640
+is helping saying no to non-free
+
+00:41:24.640 --> 00:41:25.359
+software
+
+00:41:25.359 --> 00:41:29.040
+even once because
+
+00:41:29.040 --> 00:41:32.240
+the more you do it the more you help but
+
+00:41:32.240 --> 00:41:34.640
+even doing it a little in a way that
+
+00:41:34.640 --> 00:41:36.640
+other people notice
+
+00:41:36.640 --> 00:41:39.920
+is starting to help so
+
+00:41:39.920 --> 00:41:43.440
+uh please don't think that your choices
+
+00:41:43.440 --> 00:41:45.119
+are either
+
+00:41:45.119 --> 00:41:48.480
+be as firm and stubborn as I am
+
+00:41:48.480 --> 00:41:52.240
+or just give up and let yourself drift
+
+00:41:52.240 --> 00:41:56.240
+helplessly as if you had no volition
+
+00:41:56.240 --> 00:41:58.079
+there are a lot of points in between
+
+00:41:58.079 --> 00:42:00.720
+there and you can surely
+
+00:42:00.720 --> 00:42:04.079
+manage to say no some of the time
+
+00:42:04.079 --> 00:42:07.839
+and show people an example of saying no
+
+00:42:07.839 --> 00:42:11.040
+some of the time for instance you could
+
+00:42:11.040 --> 00:42:12.720
+say to people
+
+00:42:12.720 --> 00:42:15.520
+you know I hate the fact that my school
+
+00:42:15.520 --> 00:42:16.000
+makes me
+
+00:42:16.000 --> 00:42:20.400
+use zoom uh so whenever
+
+00:42:20.400 --> 00:42:22.240
+I'm not being forced I'm not going to
+
+00:42:22.240 --> 00:42:25.760
+use it
+
+00:42:25.760 --> 00:42:29.200
+or I hate the fact that the only way I
+
+00:42:29.200 --> 00:42:31.200
+can talk to that group of people
+
+00:42:31.200 --> 00:42:35.200
+is resume but when
+
+00:42:35.200 --> 00:42:38.400
+but for anything else I will feel better
+
+00:42:38.400 --> 00:42:40.079
+about myself if I don't
+
+00:42:40.079 --> 00:42:42.880
+see lots of ways to say no some of the
+
+00:42:42.880 --> 00:42:44.000
+time
+
+00:42:44.000 --> 00:42:47.040
+and yield some of the time
+
+00:42:47.040 --> 00:42:50.960
+and when you try saying no occasionally
+
+00:42:50.960 --> 00:42:53.920
+you may just develop the ability to say
+
+00:42:53.920 --> 00:42:56.400
+no more often
+
+00:42:56.400 --> 00:42:58.800
+now whether you would ever get to be as
+
+00:42:58.800 --> 00:43:00.640
+stubborn as I am
+
+00:43:00.640 --> 00:43:04.480
+I don't know but what I find is that
+
+00:43:04.480 --> 00:43:08.480
+I like the fact that I've never made
+
+00:43:08.480 --> 00:43:12.480
+this kind of compromise
+
+00:43:12.480 --> 00:43:15.839
+I feel I have a reputation to maintain
+
+00:43:15.839 --> 00:43:19.319
+nobody's forcing me but I get
+
+00:43:19.319 --> 00:43:21.119
+satisfaction
+
+00:43:21.119 --> 00:43:24.319
+out of maintaining out of being able to
+
+00:43:24.319 --> 00:43:26.400
+continue to say
+
+00:43:26.400 --> 00:43:30.880
+I will not
+
+00:43:30.880 --> 00:43:34.480
+you are now unmuted and that also
+
+00:43:34.480 --> 00:43:40.480
+can happen at various different levels
+
+00:43:40.480 --> 00:43:43.520
+so you can get that satisfaction
+
+00:43:43.520 --> 00:43:46.640
+of fully maintaining a refusal
+
+00:43:46.640 --> 00:43:54.400
+that applies only to certain areas
+
+00:43:54.400 --> 00:43:57.040
+citizens uh noon already let's maybe
+
+00:43:57.040 --> 00:43:58.880
+take one or two more questions and then
+
+00:43:58.880 --> 00:43:59.599
+break for
+
+00:43:59.599 --> 00:44:03.200
+the lunch break okay thank you
+
+00:44:03.200 --> 00:44:06.000
+how often do you personally use Emacs as
+
+00:44:06.000 --> 00:44:07.440
+the
+
+00:44:07.440 --> 00:44:10.640
+lowest question now uh
+
+00:44:10.640 --> 00:44:16.640
+well I use it most of the day
+
+00:44:16.640 --> 00:44:18.880
+I occasionally do use other things in
+
+00:44:18.880 --> 00:44:20.160
+fact I occasionally edit with
+
+00:44:20.160 --> 00:44:21.599
+libreoffice
+
+00:44:21.599 --> 00:44:24.240
+I occasionally use media players I
+
+00:44:24.240 --> 00:44:25.280
+occasionally
+
+00:44:25.280 --> 00:44:29.040
+uh
+
+00:44:29.040 --> 00:44:32.480
+I occasionally ssh to a machine and type
+
+00:44:32.480 --> 00:44:34.000
+some commands on it
+
+00:44:34.000 --> 00:44:35.440
+which occasionally includes running
+
+00:44:35.440 --> 00:44:42.319
+Emacs on it
+
+00:44:42.319 --> 00:44:45.760
+I read pdf files a lot
+
+00:44:45.760 --> 00:44:47.520
+would be nice if you could get those
+
+00:44:47.520 --> 00:44:49.599
+into Emacs so that I could read them
+
+00:44:49.599 --> 00:44:52.240
+with Emacs commands
+
+00:44:52.240 --> 00:44:55.040
+and I maybe even edit them with the max
+
+00:44:55.040 --> 00:44:56.160
+commands
+
+00:44:56.160 --> 00:44:59.440
+when they can be edited I use
+
+00:44:59.440 --> 00:45:02.960
+uh journal sometimes
+
+00:45:02.960 --> 00:45:10.079
+to write on a pdf file
+
+00:45:10.079 --> 00:45:12.160
+are there any more interesting projects
+
+00:45:12.160 --> 00:45:13.760
+you have in mind over and above
+
+00:45:13.760 --> 00:45:18.400
+non-gnu elpa uh
+
+00:45:18.400 --> 00:45:22.079
+I can't think of one right now well
+
+00:45:22.079 --> 00:45:25.520
+there are things there are things that
+
+00:45:25.520 --> 00:45:27.119
+the gnu project needs
+
+00:45:27.119 --> 00:45:30.560
+doing there are packages that don't have
+
+00:45:30.560 --> 00:45:32.319
+maintainers or could use
+
+00:45:32.319 --> 00:45:35.839
+more maintainers uh
+
+00:45:35.839 --> 00:45:38.880
+talk with maintainers at canoe.org
+
+00:45:38.880 --> 00:45:42.000
+and the assistant candusences will
+
+00:45:42.000 --> 00:45:44.960
+help you find a package where you can do
+
+00:45:44.960 --> 00:45:48.400
+good
+
+00:45:48.400 --> 00:45:50.560
+not for beginners though you got to get
+
+00:45:50.560 --> 00:45:52.079
+you got to learn
+
+00:45:52.079 --> 00:45:55.599
+uh a substantive substantial level of
+
+00:45:55.599 --> 00:45:58.160
+capacity to develop and debug programs
+
+00:45:58.160 --> 00:45:59.440
+before you can
+
+00:45:59.440 --> 00:46:02.800
+be a maintainer uh have I ever looked at
+
+00:46:02.800 --> 00:46:04.480
+maggot
+
+00:46:04.480 --> 00:46:08.400
+uh no I haven't
+
+00:46:08.400 --> 00:46:11.920
+but I believe
+
+00:46:11.920 --> 00:46:14.880
+work is being done to get it put into
+
+00:46:14.880 --> 00:46:16.560
+Emacs
+
+00:46:16.560 --> 00:46:22.240
+and at that point I'll give it a try
+
+00:46:22.240 --> 00:46:25.200
+I do not want to share my configuration
+
+00:46:25.200 --> 00:46:25.760
+files
+
+00:46:25.760 --> 00:46:29.520
+they're personal but
+
+00:46:29.520 --> 00:46:33.599
+how about if we end this now
+
+00:46:33.599 --> 00:46:36.880
+you are now unmuted sounds good to me
+
+00:46:36.880 --> 00:46:38.880
+thank you very much richard for joining
+
+00:46:38.880 --> 00:46:41.520
+in for live questions
+
+00:46:41.520 --> 00:46:43.839
+okay
diff --git a/2020/subtitles/emacsconf-2020--40-closing-remarks-part-1-autogen.vtt b/2020/subtitles/emacsconf-2020--40-closing-remarks-part-1-autogen.vtt
new file mode 100644
index 00000000..fd49bf4e
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--40-closing-remarks-part-1-autogen.vtt
@@ -0,0 +1,205 @@
+WEBVTT
+
+00:00:07.359 --> 00:00:09.519
+alrighty
+
+00:00:09.519 --> 00:00:19.840
+we're all set up waiting for corbin
+
+00:00:19.840 --> 00:00:22.960
+you are now muted
+
+00:00:22.960 --> 00:00:26.240
+oh it might be having a kid emergency so
+
+00:00:26.240 --> 00:00:28.080
+if you want we can get started with our
+
+00:00:28.080 --> 00:00:30.080
+closing remarks you are now unmuted and
+
+00:00:30.080 --> 00:00:31.199
+then we will
+
+00:00:31.199 --> 00:00:35.120
+um you know bring corwin in when when um
+
+00:00:35.120 --> 00:00:38.879
+things permit
+
+00:00:38.879 --> 00:00:42.840
+let me just share the closing remarks
+
+00:00:42.840 --> 00:00:44.160
+notes
+
+00:00:44.160 --> 00:00:46.879
+so that we can see what that's like
+
+00:00:46.879 --> 00:00:48.879
+actually
+
+00:00:48.879 --> 00:00:55.440
+um
+
+00:00:55.440 --> 00:00:58.399
+yeah sure I guess we can do the closing
+
+00:00:58.399 --> 00:01:00.719
+remarks
+
+00:01:00.719 --> 00:01:03.680
+okay not actually closing yet there
+
+00:01:03.680 --> 00:01:06.400
+might be another talk after this but
+
+00:01:06.400 --> 00:01:08.479
+since we have a little time before uh
+
+00:01:08.479 --> 00:01:09.680
+before
+
+00:01:09.680 --> 00:01:12.320
+uh cornbread comes well you know share
+
+00:01:12.320 --> 00:01:13.439
+some of the interesting things we've
+
+00:01:13.439 --> 00:01:14.799
+seen today
+
+00:01:14.799 --> 00:01:18.479
+so uh there have been about 12 20 talks
+
+00:01:18.479 --> 00:01:21.840
+21 out once once ong macros
+
+00:01:21.840 --> 00:01:25.360
+happens that's all today there's 16 more
+
+00:01:25.360 --> 00:01:26.159
+talks tomorrow
+
+00:01:26.159 --> 00:01:28.560
+so if you thought today was lots of fun
+
+00:01:28.560 --> 00:01:30.880
+be sure to tune in tomorrow as well
+
+00:01:30.880 --> 00:01:33.920
+uh for reference last year's EmacsConf
+
+00:01:33.920 --> 00:01:36.240
+had 30 talks many of which were lighting
+
+00:01:36.240 --> 00:01:37.600
+talks this year
+
+00:01:37.600 --> 00:01:39.680
+we had slightly longer talks and a lot
+
+00:01:39.680 --> 00:01:41.360
+more interactivities or a lot more
+
+00:01:41.360 --> 00:01:43.119
+question and answer sections
+
+00:01:43.119 --> 00:01:45.360
+they're worth more than there were about
+
+00:01:45.360 --> 00:01:47.040
+391 viewers
+
+00:01:47.040 --> 00:01:50.079
+on the main main stream
+
+00:01:50.079 --> 00:01:52.320
+and about 26 in the lower resolution
+
+00:01:52.320 --> 00:01:53.680
+stream
+
+00:01:53.680 --> 00:01:55.680
+last year's viewers were last year had
+
+00:01:55.680 --> 00:01:58.960
+about 270 viewers at the same time so
+
+00:01:58.960 --> 00:02:01.280
+the max clock is getting bigger and
+
+00:02:01.280 --> 00:02:02.719
+etherpad has been working out
+
+00:02:02.719 --> 00:02:05.360
+really really well uh people have been
+
+00:02:05.360 --> 00:02:07.280
+using that to pose their questions
+
+00:02:07.280 --> 00:02:08.800
+so I think at some point I saw there
+
+00:02:08.800 --> 00:02:11.120
+were 124 people working on it and we
+
+00:02:11.120 --> 00:02:12.640
+only managed to
+
+00:02:12.640 --> 00:02:17.440
+accidentally erase it once so yay us
+
+00:02:17.440 --> 00:02:19.599
+and yay everybody for helping thank you
+
+00:02:19.599 --> 00:02:24.319
+so much
+
+00:02:24.319 --> 00:02:27.920
+so yeah so the videos and other
+
+00:02:27.920 --> 00:02:29.200
+resources
+
+00:02:29.200 --> 00:02:31.840
+um we're planning to post uh sometime
+
+00:02:31.840 --> 00:02:33.680
+over the next few weeks
+
+00:02:33.680 --> 00:02:36.000
+um it actually took a couple weeks last
+
+00:02:36.000 --> 00:02:37.519
+year but this year
+
+00:02:37.519 --> 00:02:39.519
+I'm hoping that we can at least
+
+00:02:39.519 --> 00:02:41.040
+partially partially
+
+00:02:41.040 --> 00:02:44.160
+um release them much sooner um
+
+00:02:44.160 --> 00:02:45.440
+you know I might be able to get around
+
+00:02:45.440 --> 00:02:47.280
+to uploading some of the pre-recorded
+
+00:02:47.280 --> 00:02:48.160
+talks
+
+00:02:48.160 --> 00:02:53.360
+um later tonight after the conference
+
+00:02:53.360 --> 00:02:57.760
+so keep an eye on emacsconf.org/2020 for that
+
+00:02:57.760 --> 00:03:01.120
+Join our mailing lists which is
+
+00:03:01.120 --> 00:03:07.840
+a list that you know. https://lists.gnu.org/mailman/listinfo/emacsconf-discuss
diff --git a/2020/subtitles/emacsconf-2020--40-closing-remarks-part-2-autogen.vtt b/2020/subtitles/emacsconf-2020--40-closing-remarks-part-2-autogen.vtt
new file mode 100644
index 00000000..b7b770ac
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--40-closing-remarks-part-2-autogen.vtt
@@ -0,0 +1,1000 @@
+WEBVTT
+
+00:00:03.760 --> 00:00:04.480
+this is the
+
+00:00:04.480 --> 00:00:06.640
+closing remarks section where we get to
+
+00:00:06.640 --> 00:00:07.680
+again thank people
+
+00:00:07.680 --> 00:00:09.440
+and get people to share their lessons
+
+00:00:09.440 --> 00:00:10.800
+learned and whatnot
+
+00:00:10.800 --> 00:00:13.599
+but uh leo since you've stayed up to uh
+
+00:00:13.599 --> 00:00:14.080
+to
+
+00:00:14.080 --> 00:00:16.000
+say something let's let's let's turn it
+
+00:00:16.000 --> 00:00:17.520
+over to you
+
+00:00:17.520 --> 00:00:20.240
+oh what should I be saying I mean let me
+
+00:00:20.240 --> 00:00:22.640
+just turn on the webcam first
+
+00:00:22.640 --> 00:00:25.279
+and uh as you can see the day has
+
+00:00:25.279 --> 00:00:26.480
+progressed I'm not
+
+00:00:26.480 --> 00:00:28.640
+blasting light into my face I'm now
+
+00:00:28.640 --> 00:00:30.080
+sitting instead of
+
+00:00:30.080 --> 00:00:32.160
+you know standing so you can tell that
+
+00:00:32.160 --> 00:00:33.760
+it's getting quite late for europe right
+
+00:00:33.760 --> 00:00:38.239
+now
+
+00:00:38.239 --> 00:00:40.320
+but uh yeah I'm not sure if you want me
+
+00:00:40.320 --> 00:00:42.559
+to to go we've already done a little bit
+
+00:00:42.559 --> 00:00:44.800
+of our closing remarks anyway before uh
+
+00:00:44.800 --> 00:00:45.920
+colleen's talk
+
+00:00:45.920 --> 00:00:48.719
+so yeah what do you want me to add I
+
+00:00:48.719 --> 00:00:49.120
+mean we've
+
+00:00:49.120 --> 00:00:50.800
+all we've all been thanking one another
+
+00:00:50.800 --> 00:00:52.719
+we've been spanking the speakers
+
+00:00:52.719 --> 00:00:55.440
+uh you know nothing would have been
+
+00:00:55.440 --> 00:00:56.800
+possible without the efforts
+
+00:00:56.800 --> 00:00:59.359
+of you know all the other organizers in
+
+00:00:59.359 --> 00:01:01.280
+the team but also the speakers so
+
+00:01:01.280 --> 00:01:03.039
+I'll just reiterate what corwin has been
+
+00:01:03.039 --> 00:01:05.040
+telling you thank you so much for being
+
+00:01:05.040 --> 00:01:05.680
+so
+
+00:01:05.680 --> 00:01:07.920
+so many today I believe we've tripled
+
+00:01:07.920 --> 00:01:09.520
+the amount of viewers that we had for
+
+00:01:09.520 --> 00:01:11.360
+the previous imax conf
+
+00:01:11.360 --> 00:01:14.960
+and that's mind-boggling to have
+
+00:01:14.960 --> 00:01:17.600
+so many people have seen me to think
+
+00:01:17.600 --> 00:01:19.119
+that so many people have seen me spill
+
+00:01:19.119 --> 00:01:20.479
+water on myself
+
+00:01:20.479 --> 00:01:22.560
+and do a fool of myself for the entire
+
+00:01:22.560 --> 00:01:24.040
+day it is
+
+00:01:24.040 --> 00:01:26.320
+outstandingly stupid but still thank you
+
+00:01:26.320 --> 00:01:27.119
+so much
+
+00:01:27.119 --> 00:01:30.880
+it's fine yeah it's this one
+
+00:01:30.880 --> 00:01:32.640
+yeah this is this is going going really
+
+00:01:32.640 --> 00:01:34.240
+really well um
+
+00:01:34.240 --> 00:01:36.079
+but of course there's always ideas we
+
+00:01:36.079 --> 00:01:37.360
+can you can try to
+
+00:01:37.360 --> 00:01:39.439
+make it even even better so if you have
+
+00:01:39.439 --> 00:01:41.840
+any ideas or if you have any
+
+00:01:41.840 --> 00:01:43.280
+uh comments on the things that work
+
+00:01:43.280 --> 00:01:44.479
+really well that you'd like us to keep
+
+00:01:44.479 --> 00:01:45.600
+doing tomorrow
+
+00:01:45.600 --> 00:01:47.040
+please make sure to leave them in the
+
+00:01:47.040 --> 00:01:49.920
+other pad uh so the url is somewhere in
+
+00:01:49.920 --> 00:01:51.600
+all the different places we put it
+
+00:01:51.600 --> 00:01:53.200
+and there's a section all the way at the
+
+00:01:53.200 --> 00:01:55.439
+end where you people can drop in their
+
+00:01:55.439 --> 00:01:56.640
+general feedback
+
+00:01:56.640 --> 00:01:59.200
+and what went well what can be improved
+
+00:01:59.200 --> 00:02:01.040
+if you want to volunteer to help out
+
+00:02:01.040 --> 00:02:01.439
+with
+
+00:02:01.439 --> 00:02:04.240
+copying questions for example that might
+
+00:02:04.240 --> 00:02:05.439
+be great
+
+00:02:05.439 --> 00:02:08.879
+anyways it's all there uh and um
+
+00:02:08.879 --> 00:02:12.879
+that's that's my part
+
+00:02:12.879 --> 00:02:16.000
+um sorry
+
+00:02:16.000 --> 00:02:18.400
+so say that again uh it's been lots of
+
+00:02:18.400 --> 00:02:20.480
+fun and there's tomorrow oh my goodness
+
+00:02:20.480 --> 00:02:23.280
+you're still tomorrow that's tomorrow
+
+00:02:23.280 --> 00:02:26.720
+damn it
+
+00:02:26.720 --> 00:02:30.239
+yeah it's so it's been a lot of fun
+
+00:02:30.239 --> 00:02:31.680
+today
+
+00:02:31.680 --> 00:02:35.280
+um let's see so yeah I'm
+
+00:02:35.280 --> 00:02:38.080
+I guess we did go through the stats
+
+00:02:38.080 --> 00:02:39.280
+before but I'll
+
+00:02:39.280 --> 00:02:42.319
+also quickly add that um
+
+00:02:42.319 --> 00:02:44.879
+you know I've been looking a bit of an
+
+00:02:44.879 --> 00:02:45.680
+eye on the
+
+00:02:45.680 --> 00:02:47.920
+server's network bandwidth usage and you
+
+00:02:47.920 --> 00:02:49.280
+know today we've
+
+00:02:49.280 --> 00:02:51.920
+had about 1.3 terabytes of outbound
+
+00:02:51.920 --> 00:02:53.200
+traffic
+
+00:02:53.200 --> 00:02:56.319
+um which is definitely something
+
+00:02:56.319 --> 00:02:59.280
+and it's a record it's by by far you
+
+00:02:59.280 --> 00:03:00.800
+know shattered last year's numbers we
+
+00:03:00.800 --> 00:03:01.680
+had I think
+
+00:03:01.680 --> 00:03:04.959
+about like 400 viewers live um peaking
+
+00:03:04.959 --> 00:03:06.159
+at one point
+
+00:03:06.159 --> 00:03:09.280
+um and it's very humble
+
+00:03:09.280 --> 00:03:13.040
+humbling to see um like so many people
+
+00:03:13.040 --> 00:03:16.480
+um you know tune in to watch talks
+
+00:03:16.480 --> 00:03:18.080
+um about their favorite piece of
+
+00:03:18.080 --> 00:03:20.319
+software um about Emacs
+
+00:03:20.319 --> 00:03:23.760
+and um you know be part of the community
+
+00:03:23.760 --> 00:03:27.280
+and you know have us be be part of the
+
+00:03:27.280 --> 00:03:28.239
+community or
+
+00:03:28.239 --> 00:03:30.799
+I guess um you know run this sort of an
+
+00:03:30.799 --> 00:03:32.080
+event so it's been absolutely
+
+00:03:32.080 --> 00:03:35.680
+awesome um I guess I can quickly get to
+
+00:03:35.680 --> 00:03:36.319
+the
+
+00:03:36.319 --> 00:03:38.879
+thanks if you leo or sasha don't have
+
+00:03:38.879 --> 00:03:40.799
+anything else to add
+
+00:03:40.799 --> 00:03:44.000
+nope all good alrighty um
+
+00:03:44.000 --> 00:03:47.040
+yeah so let's see I'd like to thank the
+
+00:03:47.040 --> 00:03:48.400
+free software foundation
+
+00:03:48.400 --> 00:03:51.840
+especially the tech team um for
+
+00:03:51.840 --> 00:03:53.680
+for their general support for letting us
+
+00:03:53.680 --> 00:03:55.599
+use their big blue button
+
+00:03:55.599 --> 00:03:58.640
+um yeah thank you so much it's
+
+00:03:58.640 --> 00:04:00.640
+it's made a lot of difference this year
+
+00:04:00.640 --> 00:04:02.720
+um you know last year for EmacsConf
+
+00:04:02.720 --> 00:04:04.000
+2019 we used
+
+00:04:04.000 --> 00:04:07.040
+um jitsi meat um
+
+00:04:07.040 --> 00:04:10.799
+which was awesome but um
+
+00:04:10.799 --> 00:04:13.280
+you know we did run into some technical
+
+00:04:13.280 --> 00:04:15.599
+difficulties with it but this time
+
+00:04:15.599 --> 00:04:17.840
+um you know big blue button was for the
+
+00:04:17.840 --> 00:04:19.519
+most part smooth sailing
+
+00:04:19.519 --> 00:04:22.639
+um so yeah thank you very much to the
+
+00:04:22.639 --> 00:04:23.919
+free software foundation
+
+00:04:23.919 --> 00:04:25.520
+foundation for letting us use their
+
+00:04:25.520 --> 00:04:27.360
+weekly watson instance
+
+00:04:27.360 --> 00:04:29.199
+allow me to just interject for a second
+
+00:04:29.199 --> 00:04:31.280
+it was smooth sailing for absolutely
+
+00:04:31.280 --> 00:04:33.360
+every single speaker but myself
+
+00:04:33.360 --> 00:04:35.520
+well I managed to have three different
+
+00:04:35.520 --> 00:04:37.600
+problems with big blue buttons so
+
+00:04:37.600 --> 00:04:39.440
+I'll be fighting buggy pulse all night
+
+00:04:39.440 --> 00:04:42.000
+you can be sure of that
+
+00:04:42.000 --> 00:04:44.560
+please do um yeah that's that's the
+
+00:04:44.560 --> 00:04:46.000
+beauty of free software I guess
+
+00:04:46.000 --> 00:04:48.240
+is you know it it can be frustrating but
+
+00:04:48.240 --> 00:04:49.360
+at least you know there's
+
+00:04:49.360 --> 00:04:51.040
+multiple ways forward with you know
+
+00:04:51.040 --> 00:04:52.880
+reporting bugs and sending patches
+
+00:04:52.880 --> 00:04:55.840
+um and you know that's part of I guess
+
+00:04:55.840 --> 00:04:56.960
+the message that
+
+00:04:56.960 --> 00:04:59.360
+I'm I'm hoping that like you know people
+
+00:04:59.360 --> 00:05:01.680
+who take away from an event like this
+
+00:05:01.680 --> 00:05:04.560
+um around a community like this um you
+
+00:05:04.560 --> 00:05:05.440
+know Emacs
+
+00:05:05.440 --> 00:05:08.320
+you know being such an um long-standing
+
+00:05:08.320 --> 00:05:10.960
+piece of free software um
+
+00:05:10.960 --> 00:05:13.840
+and having this large of a community
+
+00:05:13.840 --> 00:05:15.840
+around it who who's been continuing to
+
+00:05:15.840 --> 00:05:17.520
+grow
+
+00:05:17.520 --> 00:05:20.160
+and mature with Emacs and you know every
+
+00:05:20.160 --> 00:05:23.199
+year we get new people in
+
+00:05:23.199 --> 00:05:26.240
+more and more people discover Emacs um
+
+00:05:26.240 --> 00:05:27.840
+you know join the community
+
+00:05:27.840 --> 00:05:31.520
+or communities I should say um
+
+00:05:31.520 --> 00:05:34.720
+it's just wonderful and
+
+00:05:34.720 --> 00:05:36.560
+a large part of it is possible because
+
+00:05:36.560 --> 00:05:38.800
+Emacs is free software um
+
+00:05:38.800 --> 00:05:42.560
+so I mean at the risk of spoiling my own
+
+00:05:42.560 --> 00:05:43.280
+talk
+
+00:05:43.280 --> 00:05:46.400
+uh-huh I I I
+
+00:05:46.400 --> 00:05:48.000
+I want to say that's that's what we're
+
+00:05:48.000 --> 00:05:50.000
+going to pivot to tomorrow that's that's
+
+00:05:50.000 --> 00:05:50.400
+what
+
+00:05:50.400 --> 00:05:52.800
+uh welcome to the dungeon talk is really
+
+00:05:52.800 --> 00:05:55.199
+about why it has to be free software
+
+00:05:55.199 --> 00:05:58.080
+and as you peel the project apart I
+
+00:05:58.080 --> 00:05:58.960
+think you'll see
+
+00:05:58.960 --> 00:06:02.000
+eric and I have for a long time that it
+
+00:06:02.000 --> 00:06:05.440
+is shameful to even think about trying
+
+00:06:05.440 --> 00:06:06.560
+to put
+
+00:06:06.560 --> 00:06:10.240
+some things outside of the public domain
+
+00:06:10.240 --> 00:06:14.639
+right yeah exactly and I think that's a
+
+00:06:14.639 --> 00:06:17.120
+good point to bring this up um this is a
+
+00:06:17.120 --> 00:06:18.240
+closing remark
+
+00:06:18.240 --> 00:06:19.919
+but it's only for today you know we've
+
+00:06:19.919 --> 00:06:22.319
+got tomorrow a long day of events
+
+00:06:22.319 --> 00:06:25.919
+um much like today um you know I say it
+
+00:06:25.919 --> 00:06:26.639
+long but
+
+00:06:26.639 --> 00:06:28.720
+in a way like thinking back it kind of
+
+00:06:28.720 --> 00:06:29.840
+like went by like this
+
+00:06:29.840 --> 00:06:34.160
+so um yeah it's gonna be a lot of fun
+
+00:06:34.160 --> 00:06:37.120
+much like today was so yeah definitely
+
+00:06:37.120 --> 00:06:38.800
+tune in tomorrow
+
+00:06:38.800 --> 00:06:41.039
+um we're going to be starting at the
+
+00:06:41.039 --> 00:06:43.240
+same time same place you know
+
+00:06:43.240 --> 00:06:45.919
+live.emacsconf.org
+
+00:06:45.919 --> 00:06:47.360
+for the specific mount points for
+
+00:06:47.360 --> 00:06:48.960
+example you know we'll be using
+
+00:06:48.960 --> 00:06:50.000
+main.webm
+
+00:06:50.000 --> 00:06:53.599
+and main dash 480p dot webm
+
+00:06:53.599 --> 00:06:57.680
+um I want to say thank you to sasha for
+
+00:06:57.680 --> 00:07:00.000
+setting that up and getting it running
+
+00:07:00.000 --> 00:07:00.800
+because
+
+00:07:00.800 --> 00:07:04.240
+I remember last year um
+
+00:07:04.240 --> 00:07:06.960
+you know we had a couple of people um
+
+00:07:06.960 --> 00:07:08.080
+requesting
+
+00:07:08.080 --> 00:07:11.280
+that you know a a lower resolution
+
+00:07:11.280 --> 00:07:14.000
+stream or mount point be made available
+
+00:07:14.000 --> 00:07:14.560
+um
+
+00:07:14.560 --> 00:07:18.000
+because of their limited bandwidth and
+
+00:07:18.000 --> 00:07:19.840
+it like when you have like free software
+
+00:07:19.840 --> 00:07:21.759
+tools it's not too hard
+
+00:07:21.759 --> 00:07:25.919
+um to get something like that going um
+
+00:07:25.919 --> 00:07:27.919
+I mean not impossible I should say it
+
+00:07:27.919 --> 00:07:29.199
+wasn't too easy
+
+00:07:29.199 --> 00:07:32.000
+we did have some difficulties with it
+
+00:07:32.000 --> 00:07:33.120
+today
+
+00:07:33.120 --> 00:07:34.800
+I'm learning more about ffmpeg and I
+
+00:07:34.800 --> 00:07:36.160
+expected to know at this point but it's
+
+00:07:36.160 --> 00:07:37.840
+great
+
+00:07:37.840 --> 00:07:41.599
+maybe it'll work tomorrow too yeah
+
+00:07:41.599 --> 00:07:44.720
+um yeah sasha can attest to it um
+
+00:07:44.720 --> 00:07:46.160
+you know there were still some king
+
+00:07:46.160 --> 00:07:47.759
+spitting iron out
+
+00:07:47.759 --> 00:07:51.039
+um and it's a process but you know we're
+
+00:07:51.039 --> 00:07:51.840
+all learning
+
+00:07:51.840 --> 00:07:54.879
+um each each of us in our own ways
+
+00:07:54.879 --> 00:07:58.000
+um yeah so there's that
+
+00:07:58.000 --> 00:08:00.400
+I'm very happy to have had that mount
+
+00:08:00.400 --> 00:08:02.800
+points to making banks conf accessible
+
+00:08:02.800 --> 00:08:03.599
+to people
+
+00:08:03.599 --> 00:08:06.560
+in um you know areas of the world where
+
+00:08:06.560 --> 00:08:08.160
+bandwidth may not be
+
+00:08:08.160 --> 00:08:10.160
+um you know as cheap or as readily
+
+00:08:10.160 --> 00:08:12.240
+available
+
+00:08:12.240 --> 00:08:13.680
+or just you know someone wanting to
+
+00:08:13.680 --> 00:08:15.280
+watch on their phone um
+
+00:08:15.280 --> 00:08:17.520
+even here um you know in the us and
+
+00:08:17.520 --> 00:08:18.560
+canada
+
+00:08:18.560 --> 00:08:20.160
+data plans are not exactly cheap or
+
+00:08:20.160 --> 00:08:21.919
+unlimited so
+
+00:08:21.919 --> 00:08:24.960
+um yeah that's great
+
+00:08:24.960 --> 00:08:29.520
+let's see yeah so
+
+00:08:29.520 --> 00:08:31.199
+we are already halfway through this
+
+00:08:31.199 --> 00:08:33.599
+one's uh network bandwidth usage for our
+
+00:08:33.599 --> 00:08:34.560
+server
+
+00:08:34.560 --> 00:08:38.839
+um for tomorrow we should save some for
+
+00:08:38.839 --> 00:08:41.360
+tomorrow
+
+00:08:41.360 --> 00:08:44.240
+all right yeah but for for tomorrow I'll
+
+00:08:44.240 --> 00:08:45.680
+probably try bumping up the server a
+
+00:08:45.680 --> 00:08:47.600
+little bit more to get us some bandwidth
+
+00:08:47.600 --> 00:08:50.959
+some more bandwidth um
+
+00:08:50.959 --> 00:08:54.399
+yeah um in terms of thank yous
+
+00:08:54.399 --> 00:08:56.320
+um can you scroll down a little bit
+
+00:08:56.320 --> 00:08:58.880
+please of course
+
+00:08:58.880 --> 00:09:02.000
+uh thank you
+
+00:09:02.000 --> 00:09:05.440
+right um yeah so the fsf and fsf tech
+
+00:09:05.440 --> 00:09:06.800
+team again for letting us use their
+
+00:09:06.800 --> 00:09:08.320
+picture button instance
+
+00:09:08.320 --> 00:09:11.839
+um volunteers and organizers
+
+00:09:11.839 --> 00:09:15.120
+um so there's there's me
+
+00:09:15.120 --> 00:09:17.519
+um there's valvin 192 there's david
+
+00:09:17.519 --> 00:09:19.279
+bremner david o'toole
+
+00:09:19.279 --> 00:09:22.399
+um corwin who
+
+00:09:22.399 --> 00:09:24.399
+both presented and also has been helping
+
+00:09:24.399 --> 00:09:26.399
+out um
+
+00:09:26.399 --> 00:09:30.240
+and especially um oops can you scroll
+
+00:09:30.240 --> 00:09:33.600
+up again in the past
+
+00:09:33.600 --> 00:09:36.959
+leo leo
+
+00:09:36.959 --> 00:09:40.240
+um right so sorry I got distracted by
+
+00:09:40.240 --> 00:09:45.680
+cool stuff
+
+00:09:45.680 --> 00:09:48.160
+sorry go ahead okay go no no go ahead I
+
+00:09:48.160 --> 00:09:48.880
+was just
+
+00:09:48.880 --> 00:09:52.480
+being distracted um yeah we'll have some
+
+00:09:52.480 --> 00:09:53.680
+time to check it out later
+
+00:09:53.680 --> 00:09:57.360
+after the event today um but yeah
+
+00:09:57.360 --> 00:10:00.399
+a special thank you um to to to you
+
+00:10:00.399 --> 00:10:02.160
+sasha and to you leo
+
+00:10:02.160 --> 00:10:05.839
+um you know for hanging out all day um
+
+00:10:05.839 --> 00:10:08.240
+and helping with like you know juggling
+
+00:10:08.240 --> 00:10:09.120
+everything
+
+00:10:09.120 --> 00:10:11.360
+me for the most part I was just you know
+
+00:10:11.360 --> 00:10:12.959
+running the stream and making sure that
+
+00:10:12.959 --> 00:10:13.920
+I joined the
+
+00:10:13.920 --> 00:10:17.360
+the right room um but you know a lot of
+
+00:10:17.360 --> 00:10:18.640
+it was um
+
+00:10:18.640 --> 00:10:21.680
+sasha um and leo doing a lot of stuff
+
+00:10:21.680 --> 00:10:23.120
+behind the scenes you know doing quick
+
+00:10:23.120 --> 00:10:24.240
+tech checks with
+
+00:10:24.240 --> 00:10:27.360
+with the speakers to to make sure um you
+
+00:10:27.360 --> 00:10:27.680
+know
+
+00:10:27.680 --> 00:10:29.120
+things are generally working pretty
+
+00:10:29.120 --> 00:10:31.120
+smoothly and
+
+00:10:31.120 --> 00:10:34.160
+you know I'm happy to say that of course
+
+00:10:34.160 --> 00:10:37.279
+except for um leo's bad luck a little
+
+00:10:37.279 --> 00:10:37.839
+bit with
+
+00:10:37.839 --> 00:10:41.040
+with big blue button um we didn't really
+
+00:10:41.040 --> 00:10:42.399
+have any technical issue
+
+00:10:42.399 --> 00:10:44.160
+other technical issues this year um
+
+00:10:44.160 --> 00:10:46.480
+which is awesome compared to last year
+
+00:10:46.480 --> 00:10:49.360
+um yeah and leo I do look forward to
+
+00:10:49.360 --> 00:10:50.640
+those bug reports too
+
+00:10:50.640 --> 00:10:53.760
+people watching you can make sure I'll
+
+00:10:53.760 --> 00:10:56.480
+cc you into them so don't worry about it
+
+00:10:56.480 --> 00:11:00.560
+please do um yes so
+
+00:11:00.560 --> 00:11:03.040
+I'll say briefly I very much like to
+
+00:11:03.040 --> 00:11:04.480
+thank our speakers
+
+00:11:04.480 --> 00:11:08.720
+and um our participants um the audience
+
+00:11:08.720 --> 00:11:12.560
+for hanging out with us watching and
+
+00:11:12.560 --> 00:11:14.160
+you know just being a part of this
+
+00:11:14.160 --> 00:11:16.480
+making Emacs conf20
+
+00:11:16.480 --> 00:11:18.160
+as awesome as it turned out as it's
+
+00:11:18.160 --> 00:11:19.920
+turned out to be and
+
+00:11:19.920 --> 00:11:22.160
+um I'm personally very much looking
+
+00:11:22.160 --> 00:11:24.160
+forward to an awesome tomorrow as well
+
+00:11:24.160 --> 00:11:27.360
+um and with that I'll basically speak
+
+00:11:27.360 --> 00:11:29.600
+less and pass it on to sasha and leo to
+
+00:11:29.600 --> 00:11:31.440
+conclude
+
+00:11:31.440 --> 00:11:33.040
+well you're just expecting us to have
+
+00:11:33.040 --> 00:11:34.770
+anything left to say after you
+
+00:11:34.770 --> 00:11:38.880
+[Laughter]
+
+00:11:38.880 --> 00:11:41.200
+but the fighter deals you're the lead
+
+00:11:41.200 --> 00:11:44.640
+organizer you get to have the last word
+
+00:11:44.640 --> 00:11:48.320
+most definitely yes
+
+00:11:48.320 --> 00:11:51.680
+come on um okay I mean
+
+00:11:51.680 --> 00:11:54.000
+if I start talking again if I start
+
+00:11:54.000 --> 00:11:55.200
+talking again
+
+00:11:55.200 --> 00:11:58.320
+also just ramp us right back up I have
+
+00:11:58.320 --> 00:12:00.079
+so much positive to say about this
+
+00:12:00.079 --> 00:12:02.160
+community um
+
+00:12:02.160 --> 00:12:04.000
+if I'm jumping back in again it's only
+
+00:12:04.000 --> 00:12:05.279
+to say thank you for
+
+00:12:05.279 --> 00:12:08.000
+uh running the show for closing the show
+
+00:12:08.000 --> 00:12:10.560
+for being in the show cheers
+
+00:12:10.560 --> 00:12:12.160
+absolutely I mean I couldn't say it
+
+00:12:12.160 --> 00:12:14.160
+better myself um
+
+00:12:14.160 --> 00:12:17.519
+yeah so on that great positive note we
+
+00:12:17.519 --> 00:12:19.839
+I guess we will conclude today and we'll
+
+00:12:19.839 --> 00:12:21.440
+catch you all at uh
+
+00:12:21.440 --> 00:12:24.880
+9am tomorrow by the way you can start
+
+00:12:24.880 --> 00:12:26.160
+placing beds to know which
+
+00:12:26.160 --> 00:12:30.560
+color my suit is going to be tomorrow
+
+00:12:30.560 --> 00:12:33.600
+sounds good bye alrighty
+
+00:12:33.600 --> 00:12:39.839
+bye guys bye
diff --git a/2020/subtitles/emacsconf-2020--41-opening-remarks-autogen.vtt b/2020/subtitles/emacsconf-2020--41-opening-remarks-autogen.vtt
new file mode 100644
index 00000000..8bbb4f17
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--41-opening-remarks-autogen.vtt
@@ -0,0 +1,1036 @@
+WEBVTT
+
+00:00:09.360 --> 00:00:10.719
+so we can't hear you right now just to
+
+00:00:10.719 --> 00:00:11.280
+make sure
+
+00:00:11.280 --> 00:00:15.120
+no now we can hello
+
+00:00:15.120 --> 00:00:18.560
+hello morning good morning
+
+00:00:18.560 --> 00:00:21.680
+good morning all right so looks like
+
+00:00:21.680 --> 00:00:25.039
+um you can hear me let's see if the um
+
+00:00:25.039 --> 00:00:28.240
+stream can hear me can someone in Emacs
+
+00:00:28.240 --> 00:00:28.880
+con
+
+00:00:28.880 --> 00:00:32.000
+confirm that they can hear me as well
+
+00:00:32.000 --> 00:00:35.920
+yes awesome yep apparently they can
+
+00:00:35.920 --> 00:00:39.520
+awesome okay great um
+
+00:00:39.520 --> 00:00:42.399
+alrighty let's get started do you guys
+
+00:00:42.399 --> 00:00:42.719
+wanna
+
+00:00:42.719 --> 00:00:45.840
+go ahead with the opening sure
+
+00:00:45.840 --> 00:00:48.160
+sasha do you want to start okay hello
+
+00:00:48.160 --> 00:00:50.160
+and welcome to the second day of Emacs
+
+00:00:50.160 --> 00:00:51.920
+con 2020
+
+00:00:51.920 --> 00:00:54.719
+and you could we've got a whole lot of
+
+00:00:54.719 --> 00:00:55.520
+uh
+
+00:00:55.520 --> 00:00:57.600
+of development talks and coding related
+
+00:00:57.600 --> 00:00:59.840
+talks scheduled for today so you can
+
+00:00:59.840 --> 00:01:02.160
+do a quick scan of the schedule again
+
+00:01:02.160 --> 00:01:04.559
+all the times are very approximate
+
+00:01:04.559 --> 00:01:07.200
+so if you happen to be earlier late for
+
+00:01:07.200 --> 00:01:08.320
+something that you wanted to
+
+00:01:08.320 --> 00:01:11.600
+see we'll figure it out uh we've got um
+
+00:01:11.600 --> 00:01:12.240
+we've got
+
+00:01:12.240 --> 00:01:14.560
+talks about the Emacs development itself
+
+00:01:14.560 --> 00:01:15.439
+as well as
+
+00:01:15.439 --> 00:01:18.799
+developing with Emacs uh and a couple of
+
+00:01:18.799 --> 00:01:19.439
+things that
+
+00:01:19.439 --> 00:01:21.200
+were more user talks but got moved to
+
+00:01:21.200 --> 00:01:22.960
+the second day for timing reasons
+
+00:01:22.960 --> 00:01:24.080
+because there's so much stuff on the
+
+00:01:24.080 --> 00:01:25.759
+first day
+
+00:01:25.759 --> 00:01:27.280
+that's uh that's our quick schedule
+
+00:01:27.280 --> 00:01:29.119
+overview the schedule page has more
+
+00:01:29.119 --> 00:01:31.680
+of course now how do you actually do all
+
+00:01:31.680 --> 00:01:32.479
+that uh
+
+00:01:32.479 --> 00:01:35.680
+leo you want to tell them yep so as
+
+00:01:35.680 --> 00:01:37.119
+yesterday if you want to participate
+
+00:01:37.119 --> 00:01:38.320
+well I suppose you're
+
+00:01:38.320 --> 00:01:40.159
+watching the stream right now so I won't
+
+00:01:40.159 --> 00:01:41.600
+go into detail as far as this is
+
+00:01:41.600 --> 00:01:42.399
+concerned
+
+00:01:42.399 --> 00:01:44.079
+but for the questions and for taking
+
+00:01:44.079 --> 00:01:46.000
+notes we are using an after pad
+
+00:01:46.000 --> 00:01:47.840
+where basically you just go onto the
+
+00:01:47.840 --> 00:01:49.360
+page and you add your questions
+
+00:01:49.360 --> 00:01:51.439
+under the topic which is being discussed
+
+00:01:51.439 --> 00:01:53.040
+at the moment so I'm sure the people
+
+00:01:53.040 --> 00:01:54.560
+will be putting the legs back in the
+
+00:01:54.560 --> 00:01:55.840
+chat I'm just going to do this real
+
+00:01:55.840 --> 00:01:57.280
+quick
+
+00:01:57.280 --> 00:02:00.880
+there we go so now it's in the chat sir
+
+00:02:00.880 --> 00:02:04.000
+we have on isc three rooms that you can
+
+00:02:04.000 --> 00:02:04.399
+use
+
+00:02:04.399 --> 00:02:05.840
+if you want to get in touch with us
+
+00:02:05.840 --> 00:02:07.439
+first if you want to discuss whatever is
+
+00:02:07.439 --> 00:02:08.959
+going on during this stream you can go
+
+00:02:08.959 --> 00:02:09.679
+on
+
+00:02:09.679 --> 00:02:12.560
+imax cont okay and that's where most of
+
+00:02:12.560 --> 00:02:13.760
+the discussion happens
+
+00:02:13.760 --> 00:02:16.319
+we also have #emacsconf-accessible
+
+00:02:16.319 --> 00:02:18.239
+for the people who either can't see or
+
+00:02:18.239 --> 00:02:19.920
+can't hear and you know they
+
+00:02:19.920 --> 00:02:21.520
+we have lovely volunteers who have been
+
+00:02:21.520 --> 00:02:22.720
+describing what has been going on
+
+00:02:22.720 --> 00:02:23.680
+yesterday
+
+00:02:23.680 --> 00:02:25.599
+uh and we really thank you for this
+
+00:02:25.599 --> 00:02:27.760
+because it's really great for getting
+
+00:02:27.760 --> 00:02:29.760
+you know more people giving the chance
+
+00:02:29.760 --> 00:02:31.120
+to more people to follow the conference
+
+00:02:31.120 --> 00:02:32.800
+so thank you so much for this
+
+00:02:32.800 --> 00:02:34.080
+and also if you want to get in touch
+
+00:02:34.080 --> 00:02:36.640
+with us the organizers either if you are
+
+00:02:36.640 --> 00:02:38.640
+a speaker or if you have anything that
+
+00:02:38.640 --> 00:02:40.319
+you'd like us to know about
+
+00:02:40.319 --> 00:02:42.400
+something like a streaming problem or
+
+00:02:42.400 --> 00:02:43.840
+audio problem or anything along those
+
+00:02:43.840 --> 00:02:45.599
+lines you know
+
+00:02:45.599 --> 00:02:46.959
+maybe other programs actually keep them
+
+00:02:46.959 --> 00:02:48.480
+in imax conf we are looking at both
+
+00:02:48.480 --> 00:02:49.280
+charts anyway
+
+00:02:49.280 --> 00:02:52.160
+but to get in touch Emacsconf that oh
+
+00:02:52.160 --> 00:02:52.560
+sorry
+
+00:02:52.560 --> 00:02:56.480
+dash.org and also we had I don't believe
+
+00:02:56.480 --> 00:02:57.120
+we have
+
+00:02:57.120 --> 00:02:58.720
+we had all that much of this yesterday
+
+00:02:58.720 --> 00:03:00.560
+but if you would like to continue the
+
+00:03:00.560 --> 00:03:01.680
+discussion
+
+00:03:01.680 --> 00:03:03.920
+with some of the speakers like you had a
+
+00:03:03.920 --> 00:03:05.360
+topic that you really liked and you'd
+
+00:03:05.360 --> 00:03:07.120
+like to continue talking with them
+
+00:03:07.120 --> 00:03:10.159
+well we invite you to go on jitsi and to
+
+00:03:10.159 --> 00:03:11.120
+create a room
+
+00:03:11.120 --> 00:03:13.040
+uh all together and to have a direct
+
+00:03:13.040 --> 00:03:15.280
+direct chat with the speaker
+
+00:03:15.280 --> 00:03:17.280
+or whichever people might be interested
+
+00:03:17.280 --> 00:03:18.560
+in the topic as well
+
+00:03:18.560 --> 00:03:20.640
+okay I believe that's me I'm not sure to
+
+00:03:20.640 --> 00:03:21.760
+whom I'm handing
+
+00:03:21.760 --> 00:03:23.360
+the rest of the presentation is it to
+
+00:03:23.360 --> 00:03:26.080
+you I mean um yeah sure I can take it
+
+00:03:26.080 --> 00:03:29.760
+um all right so hello everyone welcome
+
+00:03:29.760 --> 00:03:32.480
+to the second day of ux comp 2020 um
+
+00:03:32.480 --> 00:03:33.840
+thank you for being here
+
+00:03:33.840 --> 00:03:35.360
+today and for those of you who were
+
+00:03:35.360 --> 00:03:36.799
+around yesterday thank you for being
+
+00:03:36.799 --> 00:03:38.239
+around yesterday as well
+
+00:03:38.239 --> 00:03:40.959
+um it was an awesome day and you know
+
+00:03:40.959 --> 00:03:42.400
+like leo and sasha said
+
+00:03:42.400 --> 00:03:44.400
+today I think is also very much gonna be
+
+00:03:44.400 --> 00:03:46.560
+another awesome day of great talks
+
+00:03:46.560 --> 00:03:49.040
+um yeah so I'm very much looking forward
+
+00:03:49.040 --> 00:03:49.760
+to it
+
+00:03:49.760 --> 00:03:53.040
+um so yeah the schedule is up um
+
+00:03:53.040 --> 00:03:56.560
+at emacsconf.org/2020/schedule you
+
+00:03:56.560 --> 00:03:57.760
+gotta scroll down
+
+00:03:57.760 --> 00:04:00.959
+to the second day uh let's see people
+
+00:04:00.959 --> 00:04:02.640
+tell me that my mic is quiet
+
+00:04:02.640 --> 00:04:05.840
+um I guess I can on the stream
+
+00:04:05.840 --> 00:04:09.120
+um I think so yeah let me double check
+
+00:04:09.120 --> 00:04:09.599
+this
+
+00:04:09.599 --> 00:04:12.720
+real quick okay I can also try
+
+00:04:12.720 --> 00:04:14.959
+um like increasing the volume here a
+
+00:04:14.959 --> 00:04:17.919
+little bit
+
+00:04:17.919 --> 00:04:20.000
+okay it doesn't sound all that quiet to
+
+00:04:20.000 --> 00:04:21.440
+me just because we are
+
+00:04:21.440 --> 00:04:23.840
+I'm being very familiar right now so the
+
+00:04:23.840 --> 00:04:24.479
+volume
+
+00:04:24.479 --> 00:04:27.360
+must be quite high compared to you no
+
+00:04:27.360 --> 00:04:28.479
+yeah it's it's fine um
+
+00:04:28.479 --> 00:04:32.240
+okay I think it's better now um anyways
+
+00:04:32.240 --> 00:04:35.919
+let's see awesome yeah so yesterday
+
+00:04:35.919 --> 00:04:38.479
+um you know so the setup that I'm using
+
+00:04:38.479 --> 00:04:40.800
+this year for streaming the desktop
+
+00:04:40.800 --> 00:04:44.400
+and the talks is that I use the um
+
+00:04:44.400 --> 00:04:47.919
+script a a script by the fsf forks which
+
+00:04:47.919 --> 00:04:52.000
+they also used for liquor planet
+
+00:04:52.000 --> 00:04:54.400
+and so the thing with this script is
+
+00:04:54.400 --> 00:04:56.240
+that it only takes one audio source by
+
+00:04:56.240 --> 00:04:57.040
+default
+
+00:04:57.040 --> 00:04:59.120
+and so I have that set to the desktop
+
+00:04:59.120 --> 00:05:01.520
+audio so yesterday on the spot I had to
+
+00:05:01.520 --> 00:05:03.440
+improvise to how to get my own audio on
+
+00:05:03.440 --> 00:05:05.199
+the stream and I used mumbo
+
+00:05:05.199 --> 00:05:06.880
+but then that added a delay which was
+
+00:05:06.880 --> 00:05:08.720
+pretty annoying um
+
+00:05:08.720 --> 00:05:10.720
+but today this morning I figured I could
+
+00:05:10.720 --> 00:05:13.120
+use pulse audio's um monitor system to
+
+00:05:13.120 --> 00:05:14.240
+add myself
+
+00:05:14.240 --> 00:05:17.039
+um right on this machine um so that the
+
+00:05:17.039 --> 00:05:18.479
+delay is shorter and
+
+00:05:18.479 --> 00:05:19.840
+seems to be working well so I'm very
+
+00:05:19.840 --> 00:05:21.759
+happy about that um
+
+00:05:21.759 --> 00:05:24.080
+but anyways yeah so let's get on we have
+
+00:05:24.080 --> 00:05:24.960
+the schedule
+
+00:05:24.960 --> 00:05:26.880
+um I'm thanking again the free software
+
+00:05:26.880 --> 00:05:28.479
+foundation tech team
+
+00:05:28.479 --> 00:05:31.680
+um for um you know
+
+00:05:31.680 --> 00:05:33.600
+uh allowing us to use this very big
+
+00:05:33.600 --> 00:05:35.280
+button uh instance
+
+00:05:35.280 --> 00:05:38.720
+um that uh you know for live talks um
+
+00:05:38.720 --> 00:05:41.039
+let's see um I'd like to thank all the
+
+00:05:41.039 --> 00:05:42.240
+volunteers once again
+
+00:05:42.240 --> 00:05:45.680
+um you know uh bavin david bremner
+
+00:05:45.680 --> 00:05:48.240
+david dave o'toole who's been specially
+
+00:05:48.240 --> 00:05:49.280
+helping out a lot
+
+00:05:49.280 --> 00:05:51.360
+in the e-max imax conf dash accessible
+
+00:05:51.360 --> 00:05:53.120
+channel with describing what's going on
+
+00:05:53.120 --> 00:05:54.800
+at any given moment
+
+00:05:54.800 --> 00:05:58.000
+um of course corwin
+
+00:05:58.000 --> 00:06:01.039
+carl boyd and um the two folks that
+
+00:06:01.039 --> 00:06:02.639
+you're seeing right beside me right now
+
+00:06:02.639 --> 00:06:04.080
+uh leon sasha
+
+00:06:04.080 --> 00:06:06.479
+who's been doing so much this year um
+
+00:06:06.479 --> 00:06:08.240
+thank you all very much
+
+00:06:08.240 --> 00:06:12.479
+um yeah let's see oh and also of course
+
+00:06:12.479 --> 00:06:15.440
+our wonderful speakers and audience um
+
+00:06:15.440 --> 00:06:15.840
+which
+
+00:06:15.840 --> 00:06:18.000
+are basically the main thing that this
+
+00:06:18.000 --> 00:06:18.880
+conference
+
+00:06:18.880 --> 00:06:21.199
+is about and is centered about us people
+
+00:06:21.199 --> 00:06:23.280
+talking about their experiences
+
+00:06:23.280 --> 00:06:25.360
+um sharing the things they've learned or
+
+00:06:25.360 --> 00:06:26.880
+they find interesting and
+
+00:06:26.880 --> 00:06:29.840
+for everyone to discussing in chat um
+
+00:06:29.840 --> 00:06:31.440
+yeah so it's awesome
+
+00:06:31.440 --> 00:06:33.759
+uh if you scroll down a little bit on
+
+00:06:33.759 --> 00:06:34.880
+the page
+
+00:06:34.880 --> 00:06:37.600
+um I just want to plug the mailing list
+
+00:06:37.600 --> 00:06:38.319
+right
+
+00:06:38.319 --> 00:06:40.639
+yeah so we have the emacsconf-discuss
+
+00:06:40.639 --> 00:06:41.919
+mailing list
+
+00:06:41.919 --> 00:06:45.039
+once again um which you know is
+
+00:06:45.039 --> 00:06:47.600
+we use for discussions around the
+
+00:06:47.600 --> 00:06:48.240
+conference
+
+00:06:48.240 --> 00:06:51.039
+including announcements before and after
+
+00:06:51.039 --> 00:06:52.479
+it's a fairly quiet list
+
+00:06:52.479 --> 00:06:55.520
+um so if you do like to subscribe um you
+
+00:06:55.520 --> 00:06:55.840
+know
+
+00:06:55.840 --> 00:06:57.199
+you won't get bombarded with emails
+
+00:06:57.199 --> 00:06:59.440
+really um
+
+00:06:59.440 --> 00:07:01.759
+uh yeah so that's something to consider
+
+00:07:01.759 --> 00:07:02.880
+um for example you know
+
+00:07:02.880 --> 00:07:04.639
+after the conference we're gonna be
+
+00:07:04.639 --> 00:07:06.240
+posting all the videos
+
+00:07:06.240 --> 00:07:07.759
+and um that's where I'm gonna be
+
+00:07:07.759 --> 00:07:09.440
+announcing it um at least
+
+00:07:09.440 --> 00:07:12.880
+in in one place one of the places um
+
+00:07:12.880 --> 00:07:15.680
+yeah and I'd also like to draw attention
+
+00:07:15.680 --> 00:07:16.720
+to our
+
+00:07:16.720 --> 00:07:19.360
+conduct guidelines at emacsconf.org
+
+00:07:19.360 --> 00:07:21.199
+conduct
+
+00:07:21.199 --> 00:07:23.120
+which is a series of guidelines and
+
+00:07:23.120 --> 00:07:25.599
+suggestions to to help make the event
+
+00:07:25.599 --> 00:07:28.800
+you know enjoyable and um you know an
+
+00:07:28.800 --> 00:07:30.000
+awesome experience for everyone
+
+00:07:30.000 --> 00:07:33.280
+involved um I think um so I wasn't
+
+00:07:33.280 --> 00:07:34.639
+keeping a close eye on the chat
+
+00:07:34.639 --> 00:07:36.160
+yesterday because it was super busy but
+
+00:07:36.160 --> 00:07:36.880
+I think
+
+00:07:36.880 --> 00:07:38.479
+uh in general you know everything was
+
+00:07:38.479 --> 00:07:40.240
+going pretty well pretty smoothly
+
+00:07:40.240 --> 00:07:42.319
+um so thank you so much everyone for
+
+00:07:42.319 --> 00:07:44.319
+keeping these in mind
+
+00:07:44.319 --> 00:07:46.879
+and um yeah that's it for me let's see
+
+00:07:46.879 --> 00:07:48.479
+if lee or sasha would like to add
+
+00:07:48.479 --> 00:07:51.520
+anything
+
+00:07:51.520 --> 00:07:52.879
+no but if you're all good to go you've
+
+00:07:52.879 --> 00:07:54.319
+said everything and we've said
+
+00:07:54.319 --> 00:07:55.680
+everything
+
+00:07:55.680 --> 00:07:59.120
+have a great day awesome yeah um
+
+00:07:59.120 --> 00:08:02.000
+uh okay someone okay so dave is asking
+
+00:08:02.000 --> 00:08:03.280
+what is the hallway track
+
+00:08:03.280 --> 00:08:06.319
+uh slash on conference um do either of
+
+00:08:06.319 --> 00:08:07.520
+you want to explain that or should I
+
+00:08:07.520 --> 00:08:08.160
+take it
+
+00:08:08.160 --> 00:08:10.080
+uh basically we're gonna have our hands
+
+00:08:10.080 --> 00:08:12.400
+full keeping the keeping the main track
+
+00:08:12.400 --> 00:08:14.080
+running but of course
+
+00:08:14.080 --> 00:08:15.360
+people have all sorts of interesting
+
+00:08:15.360 --> 00:08:17.280
+conversation ideas and sometimes it's
+
+00:08:17.280 --> 00:08:18.879
+nice to do it in real time or with
+
+00:08:18.879 --> 00:08:20.960
+shared screens or things like that
+
+00:08:20.960 --> 00:08:23.360
+so if you're having a conversation and
+
+00:08:23.360 --> 00:08:24.639
+you want to have
+
+00:08:24.639 --> 00:08:28.000
+more of a webcam or screen sharing thing
+
+00:08:28.000 --> 00:08:31.039
+to enrich that discussion feel free to
+
+00:08:31.039 --> 00:08:32.800
+set up a web conference using any of
+
+00:08:32.800 --> 00:08:35.360
+your okay
+
+00:08:35.360 --> 00:08:36.880
+can you do time in practice later all
+
+00:08:36.880 --> 00:08:38.880
+right feel free to
+
+00:08:38.880 --> 00:08:41.760
+set up your own conference c type web
+
+00:08:41.760 --> 00:08:43.120
+conference thingy
+
+00:08:43.120 --> 00:08:46.080
+and um and go find the people who are
+
+00:08:46.080 --> 00:08:47.279
+interested in the same thing
+
+00:08:47.279 --> 00:08:49.839
+and I'll do all that stuff right
+
+00:08:49.839 --> 00:08:50.480
+absolutely
+
+00:08:50.480 --> 00:08:53.120
+thanks sasha yeah so basically the idea
+
+00:08:53.120 --> 00:08:53.760
+is that
+
+00:08:53.760 --> 00:08:55.360
+so you know because of the limited time
+
+00:08:55.360 --> 00:08:58.080
+we kind of have to um keep moving along
+
+00:08:58.080 --> 00:09:00.720
+uh from one talk to the next and you
+
+00:09:00.720 --> 00:09:02.240
+know sometimes there's a lot of awesome
+
+00:09:02.240 --> 00:09:04.080
+questions or discussions going on
+
+00:09:04.080 --> 00:09:05.760
+from for example you know in Emacs con
+
+00:09:05.760 --> 00:09:08.240
+for like for the questions on the pad
+
+00:09:08.240 --> 00:09:11.440
+um yeah so the I guess hallway track or
+
+00:09:11.440 --> 00:09:12.160
+unconference
+
+00:09:12.160 --> 00:09:15.360
+is basically a suggestion for those who
+
+00:09:15.360 --> 00:09:16.160
+are interested
+
+00:09:16.160 --> 00:09:19.120
+to for example set up a jutsu meet room
+
+00:09:19.120 --> 00:09:21.120
+and then you know I'll go join there
+
+00:09:21.120 --> 00:09:23.519
+and discuss the talk if you know if the
+
+00:09:23.519 --> 00:09:25.279
+speaker can join after their talk
+
+00:09:25.279 --> 00:09:26.240
+wonderful
+
+00:09:26.240 --> 00:09:29.519
+um but if not even um you know if if
+
+00:09:29.519 --> 00:09:31.519
+only like you know the audience and
+
+00:09:31.519 --> 00:09:34.000
+folks you know from the emax campfire c
+
+00:09:34.000 --> 00:09:35.760
+would like to join and discuss that
+
+00:09:35.760 --> 00:09:37.279
+definitely works too
+
+00:09:37.279 --> 00:09:40.320
+um yeah that's it um
+
+00:09:40.320 --> 00:09:42.000
+I think oh one other thing that we I
+
+00:09:42.000 --> 00:09:44.560
+guess wanted to mention possibly is that
+
+00:09:44.560 --> 00:09:46.560
+um yesterday I think I noticed that a
+
+00:09:46.560 --> 00:09:48.640
+lot of the questions were getting added
+
+00:09:48.640 --> 00:09:52.240
+um like top to bottom on the pad but um
+
+00:09:52.240 --> 00:09:54.560
+I think the suggestion is to put them
+
+00:09:54.560 --> 00:09:56.000
+like stack them up so like
+
+00:09:56.000 --> 00:09:58.000
+um add new at the new questions on the
+
+00:09:58.000 --> 00:09:59.360
+top um
+
+00:09:59.360 --> 00:10:01.600
+that might make it easier both for you
+
+00:10:01.600 --> 00:10:03.120
+know the people
+
+00:10:03.120 --> 00:10:05.760
+to who are typing the questions um but
+
+00:10:05.760 --> 00:10:07.120
+also for the speaker to
+
+00:10:07.120 --> 00:10:09.519
+sort of have a fixed I guess um point
+
+00:10:09.519 --> 00:10:10.720
+where they're looking at for new
+
+00:10:10.720 --> 00:10:11.760
+questions
+
+00:10:11.760 --> 00:10:13.839
+um so don't put your questions under
+
+00:10:13.839 --> 00:10:15.200
+somebody else's question
+
+00:10:15.200 --> 00:10:17.760
+put it at that top level sort of you
+
+00:10:17.760 --> 00:10:18.640
+know thing
+
+00:10:18.640 --> 00:10:21.519
+right get your own bullet points yeah
+
+00:10:21.519 --> 00:10:23.040
+and on the same topic yesterday some
+
+00:10:23.040 --> 00:10:24.480
+people were a little scared
+
+00:10:24.480 --> 00:10:26.959
+when all the colors were removed it was
+
+00:10:26.959 --> 00:10:27.839
+me basically
+
+00:10:27.839 --> 00:10:29.839
+in order to help the speakers know which
+
+00:10:29.839 --> 00:10:31.680
+is the section that should be looking at
+
+00:10:31.680 --> 00:10:33.680
+at the start of every presentation what
+
+00:10:33.680 --> 00:10:35.200
+I will do is that I will wipe all the
+
+00:10:35.200 --> 00:10:35.760
+colors
+
+00:10:35.760 --> 00:10:38.480
+so all the attributions of modifications
+
+00:10:38.480 --> 00:10:39.360
+to authors
+
+00:10:39.360 --> 00:10:41.600
+so that the streamer sorry the speaker
+
+00:10:41.600 --> 00:10:43.200
+has a little easier time finding their
+
+00:10:43.200 --> 00:10:44.480
+talk in the list
+
+00:10:44.480 --> 00:10:47.200
+right yeah so yeah for for speakers just
+
+00:10:47.200 --> 00:10:48.560
+keep scrolling down until you hit a
+
+00:10:48.560 --> 00:10:49.360
+colorful
+
+00:10:49.360 --> 00:10:52.079
+colorful section um with the author
+
+00:10:52.079 --> 00:10:52.640
+colors
+
+00:10:52.640 --> 00:10:55.600
+and um yeah double check that um that's
+
+00:10:55.600 --> 00:10:57.200
+you know it is your talk
+
+00:10:57.200 --> 00:11:00.560
+um yeah with that said I think that's
+
+00:11:00.560 --> 00:11:04.240
+all of it for our opening remarks right
+
+00:11:04.240 --> 00:11:07.760
+um okay awesome so in that case
+
+00:11:07.760 --> 00:11:12.320
+um we will start queuing up the talks
+
+00:11:12.320 --> 00:11:14.560
+next up right after this opening remark
+
+00:11:14.560 --> 00:11:16.959
+we have Emacs development updates by
+
+00:11:16.959 --> 00:11:18.880
+um one of the co-maintainers of Emacs
+
+00:11:18.880 --> 00:11:20.240
+john weekley
+
+00:11:20.240 --> 00:11:24.320
+um it is a pre-recording and um
+
+00:11:24.320 --> 00:11:27.519
+I don't think john is awake yet because
+
+00:11:27.519 --> 00:11:28.399
+of right he's
+
+00:11:28.399 --> 00:11:31.279
+probably uh still asleep but um he will
+
+00:11:31.279 --> 00:11:31.839
+be
+
+00:11:31.839 --> 00:11:33.920
+um looking taking a look at the
+
+00:11:33.920 --> 00:11:35.120
+questions on the pad
+
+00:11:35.120 --> 00:11:38.160
+later on um so yeah please keep posting
+
+00:11:38.160 --> 00:11:40.160
+your questions on the path for him to
+
+00:11:40.160 --> 00:11:43.279
+later look and try to answer awesome
+
+00:11:43.279 --> 00:11:48.800
+so see you guys in a bit
diff --git a/2020/subtitles/emacsconf-2020--42-closing-remarks-autogen.vtt b/2020/subtitles/emacsconf-2020--42-closing-remarks-autogen.vtt
new file mode 100644
index 00000000..db71c0cc
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--42-closing-remarks-autogen.vtt
@@ -0,0 +1,2905 @@
+WEBVTT
+
+00:00:02.240 --> 00:00:03.120
+all right
+
+00:00:03.120 --> 00:00:05.359
+in the meantime while waiting for corwin
+
+00:00:05.359 --> 00:00:06.399
+wow we did it
+
+00:00:06.399 --> 00:00:09.599
+look at that
+
+00:00:09.599 --> 00:00:12.799
+yeah it's I mean who would have thought
+
+00:00:12.799 --> 00:00:14.960
+right
+
+00:00:14.960 --> 00:00:17.279
+I mean I I surely didn't when we started
+
+00:00:17.279 --> 00:00:18.640
+no knowing how
+
+00:00:18.640 --> 00:00:20.560
+exhausted I was at the end of the first
+
+00:00:20.560 --> 00:00:22.000
+day I would have imagined
+
+00:00:22.000 --> 00:00:24.480
+to survive the second day of more of
+
+00:00:24.480 --> 00:00:29.279
+this same nonsense
+
+00:00:29.279 --> 00:00:32.320
+um yeah it's it's been fun
+
+00:00:32.320 --> 00:00:35.200
+it's been a lot of work um especially
+
+00:00:35.200 --> 00:00:36.880
+for you and sasha
+
+00:00:36.880 --> 00:00:39.680
+but um you know it's it's incredible I'm
+
+00:00:39.680 --> 00:00:41.040
+I'm very happy
+
+00:00:41.040 --> 00:00:43.520
+that um you know we managed to pull
+
+00:00:43.520 --> 00:00:44.399
+through
+
+00:00:44.399 --> 00:00:46.960
+um you know for two days straight not
+
+00:00:46.960 --> 00:00:48.800
+one day
+
+00:00:48.800 --> 00:00:52.320
+yeah well hey we did try
+
+00:00:52.320 --> 00:00:54.000
+well we actually did manage to accept
+
+00:00:54.000 --> 00:00:55.360
+all the top proposals
+
+00:00:55.360 --> 00:00:57.360
+so if you're thinking oh I could I could
+
+00:00:57.360 --> 00:00:59.039
+give an even better talk than the ones I
+
+00:00:59.039 --> 00:00:59.840
+heard today
+
+00:00:59.840 --> 00:01:01.680
+or yesterday please send us a talk
+
+00:01:01.680 --> 00:01:03.440
+proposal for next year
+
+00:01:03.440 --> 00:01:04.960
+we might be able to fit it's all in but
+
+00:01:04.960 --> 00:01:06.720
+we might have to declare an Emacs week I
+
+00:01:06.720 --> 00:01:09.840
+don't know
+
+00:01:09.840 --> 00:01:12.799
+yeah absolutely yeah it's it's funny
+
+00:01:12.799 --> 00:01:13.200
+like
+
+00:01:13.200 --> 00:01:15.360
+um I remember a little bit last year but
+
+00:01:15.360 --> 00:01:16.880
+also this year we kind of
+
+00:01:16.880 --> 00:01:19.439
+we're trying to set up um I guess sort
+
+00:01:19.439 --> 00:01:20.960
+of a procedure for
+
+00:01:20.960 --> 00:01:23.200
+accepting and rejecting talks but then
+
+00:01:23.200 --> 00:01:24.720
+you know we have got the actual
+
+00:01:24.720 --> 00:01:27.680
+submissions and oh my god so much
+
+00:01:27.680 --> 00:01:28.880
+awesome stuff
+
+00:01:28.880 --> 00:01:30.799
+um I mean I definitely wouldn't have
+
+00:01:30.799 --> 00:01:33.360
+been a movie
+
+00:01:33.360 --> 00:01:35.360
+how can you say not anything it's emad
+
+00:01:35.360 --> 00:01:36.720
+so you just throw it all in
+
+00:01:36.720 --> 00:01:38.159
+including the kitchen sink and then
+
+00:01:38.159 --> 00:01:40.640
+we'll sort it all out later
+
+00:01:40.640 --> 00:01:42.720
+so if you went through all this the
+
+00:01:42.720 --> 00:01:44.240
+entire conference and you missed some
+
+00:01:44.240 --> 00:01:46.079
+interesting talks because a we started
+
+00:01:46.079 --> 00:01:46.640
+early
+
+00:01:46.640 --> 00:01:48.240
+because you're very excited and didn't
+
+00:01:48.240 --> 00:01:50.399
+need the technical you know buffer time
+
+00:01:50.399 --> 00:01:53.119
+uh or b you really had to step away at
+
+00:01:53.119 --> 00:01:54.159
+some point so you must
+
+00:01:54.159 --> 00:01:55.840
+talk you really wanted to recordings
+
+00:01:55.840 --> 00:01:58.960
+will eventually be available
+
+00:01:58.960 --> 00:02:02.320
+yes absolutely um yeah I know
+
+00:02:02.320 --> 00:02:05.360
+so many people asked in the chat um you
+
+00:02:05.360 --> 00:02:06.000
+know
+
+00:02:06.000 --> 00:02:08.000
+is did I already miss the stock or are
+
+00:02:08.000 --> 00:02:09.200
+the pre-recordings up
+
+00:02:09.200 --> 00:02:12.319
+um yeah so they're not up yet but
+
+00:02:12.319 --> 00:02:15.280
+um you know especially with the
+
+00:02:15.280 --> 00:02:16.400
+pre-recordings that
+
+00:02:16.400 --> 00:02:18.560
+those are basically um ready to be
+
+00:02:18.560 --> 00:02:19.920
+uploaded so
+
+00:02:19.920 --> 00:02:22.879
+you know right after we finish this talk
+
+00:02:22.879 --> 00:02:23.760
+um
+
+00:02:23.760 --> 00:02:26.879
+I'm going to um start uploading them
+
+00:02:26.879 --> 00:02:29.599
+um because you know those are just ready
+
+00:02:29.599 --> 00:02:30.480
+we have them
+
+00:02:30.480 --> 00:02:32.720
+and then for the ones that were only
+
+00:02:32.720 --> 00:02:33.519
+live
+
+00:02:33.519 --> 00:02:36.879
+also as well as the live q a sessions um
+
+00:02:36.879 --> 00:02:40.080
+we will try to process them
+
+00:02:40.080 --> 00:02:43.440
+and get those up as well yes after
+
+00:02:43.440 --> 00:02:45.680
+you've had some sleep
+
+00:02:45.680 --> 00:02:49.040
+yeah after after some rest um
+
+00:02:49.040 --> 00:02:51.920
+yeah and I'm I'm just with us oh there
+
+00:02:51.920 --> 00:02:55.040
+you go hey corbin
+
+00:02:55.040 --> 00:02:57.280
+um yeah I don't think we have your sound
+
+00:02:57.280 --> 00:02:58.959
+yet so double check that
+
+00:02:58.959 --> 00:03:03.440
+but um hi how about now yes
+
+00:03:03.440 --> 00:03:05.920
+um yeah I'm just seeing the chatbot go
+
+00:03:05.920 --> 00:03:07.360
+by an EmacsConf and
+
+00:03:07.360 --> 00:03:09.360
+everyone is being so nice um it's just
+
+00:03:09.360 --> 00:03:12.239
+making me smile
+
+00:03:12.239 --> 00:03:14.159
+okay people want a question section so
+
+00:03:14.159 --> 00:03:15.360
+I'm gonna add a question
+
+00:03:15.360 --> 00:03:17.599
+thing and people can throw in their
+
+00:03:17.599 --> 00:03:18.720
+questions
+
+00:03:18.720 --> 00:03:22.159
+somewhere just telling you if you want
+
+00:03:22.159 --> 00:03:23.840
+three Emacs conference per year the
+
+00:03:23.840 --> 00:03:26.159
+answer is no judging by the amount of
+
+00:03:26.159 --> 00:03:28.159
+stress that we've accrued all together
+
+00:03:28.159 --> 00:03:28.959
+today
+
+00:03:28.959 --> 00:03:30.799
+we are not ready to do this three times
+
+00:03:30.799 --> 00:03:32.640
+every year the answer is
+
+00:03:32.640 --> 00:03:34.480
+you're welcome to organize it and we'll
+
+00:03:34.480 --> 00:03:36.000
+happily share our notes
+
+00:03:36.000 --> 00:03:38.159
+um and I will take a mention of it in my
+
+00:03:38.159 --> 00:03:39.040
+Emacs news
+
+00:03:39.040 --> 00:03:41.200
+so please feel free to go ahead and put
+
+00:03:41.200 --> 00:03:43.920
+things together yourselves
+
+00:03:43.920 --> 00:03:46.959
+yeah absolutely um you know for me I
+
+00:03:46.959 --> 00:03:48.400
+think once a year is
+
+00:03:48.400 --> 00:03:51.680
+quite enough but um if
+
+00:03:51.680 --> 00:03:55.040
+go ahead oh however if I if today leaves
+
+00:03:55.040 --> 00:03:56.080
+you wanting more
+
+00:03:56.080 --> 00:03:58.720
+there are emax meetups and I think there
+
+00:03:58.720 --> 00:04:00.000
+are a couple of a
+
+00:04:00.000 --> 00:04:02.239
+couple of them coming up in december so
+
+00:04:02.239 --> 00:04:04.319
+if you check back in my talk
+
+00:04:04.319 --> 00:04:06.560
+for Emacs news highlights I've linked to
+
+00:04:06.560 --> 00:04:08.080
+a couple that are coming up in the next
+
+00:04:08.080 --> 00:04:09.760
+couple of weeks
+
+00:04:09.760 --> 00:04:12.000
+nice yeah and I think zakariya mentioned
+
+00:04:12.000 --> 00:04:12.959
+that um
+
+00:04:12.959 --> 00:04:15.920
+he's either participating or he runs or
+
+00:04:15.920 --> 00:04:17.840
+is one of the people that runs the Emacs
+
+00:04:17.840 --> 00:04:19.120
+nyc meetup
+
+00:04:19.120 --> 00:04:22.079
+um yeah so definitely check that out and
+
+00:04:22.079 --> 00:04:23.759
+you know all the other ones that may be
+
+00:04:23.759 --> 00:04:24.639
+out there
+
+00:04:24.639 --> 00:04:29.120
+um yeah for sure uh
+
+00:04:29.120 --> 00:04:32.160
+yeah so so I'll jump in on there
+
+00:04:32.160 --> 00:04:34.720
+on that point too I I have a lot of
+
+00:04:34.720 --> 00:04:36.000
+energy for
+
+00:04:36.000 --> 00:04:39.840
+um for helping people get together um
+
+00:04:39.840 --> 00:04:43.440
+adam uh uh from melpa
+
+00:04:43.440 --> 00:04:46.880
+suggested uh I should do some twitch
+
+00:04:46.880 --> 00:04:48.880
+stuff I'll probably try that I have put
+
+00:04:48.880 --> 00:04:50.320
+a couple things out there and even a few
+
+00:04:50.320 --> 00:04:51.360
+people came by
+
+00:04:51.360 --> 00:04:53.919
+so I I think I would agree the interest
+
+00:04:53.919 --> 00:04:54.840
+is there
+
+00:04:54.840 --> 00:04:57.600
+and I definitely would love to spend
+
+00:04:57.600 --> 00:04:59.120
+that time talking to people that want to
+
+00:04:59.120 --> 00:05:00.000
+organize
+
+00:05:00.000 --> 00:05:01.759
+as well as people that are interested in
+
+00:05:01.759 --> 00:05:04.160
+just learning to use Emacs as an editor
+
+00:05:04.160 --> 00:05:07.120
+I think it's um I think it's a fantastic
+
+00:05:07.120 --> 00:05:08.880
+journey speaking for myself as somebody
+
+00:05:08.880 --> 00:05:10.560
+that um I don't
+
+00:05:10.560 --> 00:05:12.080
+always have the right keystrokes right
+
+00:05:12.080 --> 00:05:13.759
+at hand sometimes yeah
+
+00:05:13.759 --> 00:05:16.160
+my mentor in in computer programming is
+
+00:05:16.160 --> 00:05:17.840
+david dyer bennett and
+
+00:05:17.840 --> 00:05:21.440
+um I started uh apprenticing with him
+
+00:05:21.440 --> 00:05:24.800
+as when he was a freelancer um
+
+00:05:24.800 --> 00:05:28.160
+many decades ago now and
+
+00:05:28.160 --> 00:05:31.919
+you know he has a mantra that is uh
+
+00:05:31.919 --> 00:05:33.440
+you know I can do that in about five
+
+00:05:33.440 --> 00:05:35.280
+minutes if it's
+
+00:05:35.280 --> 00:05:37.840
+the right five minutes and and that's
+
+00:05:37.840 --> 00:05:39.919
+kind of the story of my life
+
+00:05:39.919 --> 00:05:43.360
+um and Emacs is just a tool to
+
+00:05:43.360 --> 00:05:45.759
+get the right five minutes more often no
+
+00:05:45.759 --> 00:05:46.560
+matter
+
+00:05:46.560 --> 00:05:48.720
+you know how can how cooperative the
+
+00:05:48.720 --> 00:05:49.600
+fingers are
+
+00:05:49.600 --> 00:05:52.400
+or or whether the ideas are free-flowing
+
+00:05:52.400 --> 00:05:52.800
+you know
+
+00:05:52.800 --> 00:05:55.680
+and getting that right environment is a
+
+00:05:55.680 --> 00:05:56.800
+lot of things for a lot of different
+
+00:05:56.800 --> 00:05:58.720
+people a lot of things to us on a
+
+00:05:58.720 --> 00:06:00.639
+different day
+
+00:06:00.639 --> 00:06:04.080
+um so yeah I have a ton of energy
+
+00:06:04.080 --> 00:06:08.400
+around you know hey let's talk more
+
+00:06:08.400 --> 00:06:11.919
+absolutely um yes so
+
+00:06:11.919 --> 00:06:14.560
+you know I think we are everyone's
+
+00:06:14.560 --> 00:06:15.600
+pretty energetic
+
+00:06:15.600 --> 00:06:18.080
+oh before I forget I know I will forget
+
+00:06:18.080 --> 00:06:18.639
+um
+
+00:06:18.639 --> 00:06:20.800
+to speakers uh those of you who are
+
+00:06:20.800 --> 00:06:22.400
+still watching right now
+
+00:06:22.400 --> 00:06:24.720
+um I would very much appreciate it if
+
+00:06:24.720 --> 00:06:26.240
+you could send us you know
+
+00:06:26.240 --> 00:06:27.520
+any of the materials you know for
+
+00:06:27.520 --> 00:06:29.919
+example the slides or any links and
+
+00:06:29.919 --> 00:06:31.600
+resources to us
+
+00:06:31.600 --> 00:06:34.880
+so we could add them to to the
+
+00:06:34.880 --> 00:06:38.880
+EmacsConf wiki
+
+00:06:38.880 --> 00:06:41.840
+or you can add them directly yourself if
+
+00:06:41.840 --> 00:06:43.759
+you go to Emacsconf.org
+
+00:06:43.759 --> 00:06:46.400
+edit there's instructions for basically
+
+00:06:46.400 --> 00:06:47.120
+anyone
+
+00:06:47.120 --> 00:06:50.800
+to edit the wiki if they like to um
+
+00:06:50.800 --> 00:06:54.000
+yes so now uh back to getting
+
+00:06:54.000 --> 00:06:57.039
+uh getting back to corwin's point um and
+
+00:06:57.039 --> 00:06:58.800
+also what sasha mentioned
+
+00:06:58.800 --> 00:07:01.520
+so um you know maybe one EmacsConf
+
+00:07:01.520 --> 00:07:02.800
+might be enough
+
+00:07:02.800 --> 00:07:06.319
+um for us for one year or for me but
+
+00:07:06.319 --> 00:07:09.840
+um in terms of Emacs related events
+
+00:07:09.840 --> 00:07:14.160
+um so this this conference was
+
+00:07:14.160 --> 00:07:17.360
+uh is like you know mainly about Emacs
+
+00:07:17.360 --> 00:07:20.960
+um but it's also in my opinion a
+
+00:07:20.960 --> 00:07:22.319
+showcase of
+
+00:07:22.319 --> 00:07:24.160
+um just how much you can do with free
+
+00:07:24.160 --> 00:07:27.440
+software Emacs itself is free software
+
+00:07:27.440 --> 00:07:30.800
+but um also all the tools that we used
+
+00:07:30.800 --> 00:07:34.400
+um these two days for like uh streaming
+
+00:07:34.400 --> 00:07:37.759
+for you know playing back to videos um
+
+00:07:37.759 --> 00:07:39.840
+yeah it's all free software and anyone
+
+00:07:39.840 --> 00:07:41.440
+can use and improve them
+
+00:07:41.440 --> 00:07:43.840
+so um one thing that I wanted to put out
+
+00:07:43.840 --> 00:07:45.440
+there before I forget
+
+00:07:45.440 --> 00:07:48.960
+is that um so we have these couple of
+
+00:07:48.960 --> 00:07:50.000
+servers set up
+
+00:07:50.000 --> 00:07:52.960
+for streaming for imax conf and I would
+
+00:07:52.960 --> 00:07:54.639
+be very much happy to
+
+00:07:54.639 --> 00:07:59.039
+um help any other group basically
+
+00:07:59.039 --> 00:08:00.319
+you know look into using our
+
+00:08:00.319 --> 00:08:03.199
+infrastructure for
+
+00:08:03.199 --> 00:08:06.720
+doing their own live event using only
+
+00:08:06.720 --> 00:08:09.360
+free software so if you are interested
+
+00:08:09.360 --> 00:08:10.080
+in that
+
+00:08:10.080 --> 00:08:12.639
+please feel free to ping me either in
+
+00:08:12.639 --> 00:08:14.879
+the max conf channel on freenode
+
+00:08:14.879 --> 00:08:17.840
+um where my nick is bandali or just
+
+00:08:17.840 --> 00:08:18.720
+email me at
+
+00:08:18.720 --> 00:08:21.440
+bandeli gnu.org um I would be happy to
+
+00:08:21.440 --> 00:08:22.800
+help you with that
+
+00:08:22.800 --> 00:08:29.199
+um yeah I'll defer to others
+
+00:08:29.199 --> 00:08:31.440
+we'll jump in and jump in there george I
+
+00:08:31.440 --> 00:08:34.080
+mean
+
+00:08:34.080 --> 00:08:35.760
+it's okay you've been you've been quiet
+
+00:08:35.760 --> 00:08:37.839
+for too long now I I have this I have to
+
+00:08:37.839 --> 00:08:39.279
+pick on people when there's more than
+
+00:08:39.279 --> 00:08:40.640
+three people in a group
+
+00:08:40.640 --> 00:08:42.000
+you know somehow that's the point of
+
+00:08:42.000 --> 00:08:44.000
+wait I'm afraid somebody gets shy
+
+00:08:44.000 --> 00:08:47.920
+and when it's not me I I you know
+
+00:08:47.920 --> 00:08:51.440
+um so you know I I
+
+00:08:51.440 --> 00:08:54.080
+uh yeah I can't thank you enough for the
+
+00:08:54.080 --> 00:08:55.360
+for all you've done I mean I have a
+
+00:08:55.360 --> 00:08:57.040
+whole list of thank yous here that I
+
+00:08:57.040 --> 00:08:58.320
+could just start reading
+
+00:08:58.320 --> 00:09:01.360
+uh but but they you know they start with
+
+00:09:01.360 --> 00:09:02.880
+you and that was the abbreviated list I
+
+00:09:02.880 --> 00:09:04.480
+gave at the beginning of the first talk
+
+00:09:04.480 --> 00:09:05.200
+right
+
+00:09:05.200 --> 00:09:06.800
+I just appreciate the sense of
+
+00:09:06.800 --> 00:09:08.399
+encouragement and
+
+00:09:08.399 --> 00:09:12.320
+openness that you bring to it I think
+
+00:09:12.320 --> 00:09:15.519
+you know we share uh
+
+00:09:15.519 --> 00:09:17.120
+taking inspiration from a lot of people
+
+00:09:17.120 --> 00:09:19.279
+in the community and want to give that
+
+00:09:19.279 --> 00:09:20.800
+back and that's a great thing to have in
+
+00:09:20.800 --> 00:09:21.440
+common
+
+00:09:21.440 --> 00:09:24.880
+around any any volunteer
+
+00:09:24.880 --> 00:09:27.920
+thank you it's a it's a pleasure um to
+
+00:09:27.920 --> 00:09:29.040
+be part of this
+
+00:09:29.040 --> 00:09:31.920
+awesome community around Emacs um this
+
+00:09:31.920 --> 00:09:33.600
+piece of free software that has been
+
+00:09:33.600 --> 00:09:36.800
+around for more than 40 years as
+
+00:09:36.800 --> 00:09:38.720
+impressive as that is I think more
+
+00:09:38.720 --> 00:09:41.440
+impressive is a community around it
+
+00:09:41.440 --> 00:09:44.720
+and all the people people around it
+
+00:09:44.720 --> 00:09:52.640
+um yeah definitely
+
+00:09:52.640 --> 00:09:54.560
+sorry I'm just smiling because I've
+
+00:09:54.560 --> 00:09:56.240
+managed to catch a glimpse of the first
+
+00:09:56.240 --> 00:09:57.760
+question that we have
+
+00:09:57.760 --> 00:10:00.560
+and I'm trying to suit myself literally
+
+00:10:00.560 --> 00:10:02.560
+to know how to answer this question
+
+00:10:02.560 --> 00:10:04.640
+and I'm not exactly sure how to do this
+
+00:10:04.640 --> 00:10:11.040
+to the best of my ability so
+
+00:10:11.040 --> 00:10:12.880
+I don't know I think this at this point
+
+00:10:12.880 --> 00:10:14.240
+we would like to remind all of our
+
+00:10:14.240 --> 00:10:15.680
+viewers of the
+
+00:10:15.680 --> 00:10:18.800
+conduct guidelines
+
+00:10:18.800 --> 00:10:22.800
+try not to objectify our speakers
+
+00:10:22.800 --> 00:10:24.959
+yeah that's a generally good point to
+
+00:10:24.959 --> 00:10:25.920
+remember
+
+00:10:25.920 --> 00:10:29.680
+um even in the closing remarks
+
+00:10:29.680 --> 00:10:31.680
+because that's that's a thing I do and I
+
+00:10:31.680 --> 00:10:34.000
+just wa I want to go on record saying I
+
+00:10:34.000 --> 00:10:34.320
+am
+
+00:10:34.320 --> 00:10:36.399
+ready to take it on any live stream any
+
+00:10:36.399 --> 00:10:38.880
+day of the week please call me on that
+
+00:10:38.880 --> 00:10:40.720
+it's always you it's always a new
+
+00:10:40.720 --> 00:10:42.320
+experience for somebody
+
+00:10:42.320 --> 00:10:44.399
+I've definitely been across lines that
+
+00:10:44.399 --> 00:10:46.160
+embarrass me before and
+
+00:10:46.160 --> 00:10:48.320
+I want to know about that thank you in
+
+00:10:48.320 --> 00:10:50.320
+advance
+
+00:10:50.320 --> 00:10:52.800
+okay so do you want to do like someone's
+
+00:10:52.800 --> 00:10:53.519
+official
+
+00:10:53.519 --> 00:10:55.760
+closing of people so closing up stuff
+
+00:10:55.760 --> 00:10:56.560
+just in case
+
+00:10:56.560 --> 00:10:58.000
+people want to know what the next steps
+
+00:10:58.000 --> 00:10:59.839
+are and then we can do all the fun
+
+00:10:59.839 --> 00:11:02.800
+questions and hanging out thing
+
+00:11:02.800 --> 00:11:07.040
+okay um right so yeah
+
+00:11:07.040 --> 00:11:09.680
+okay following up um emax meetups and
+
+00:11:09.680 --> 00:11:11.279
+mention those uh if you want to keep
+
+00:11:11.279 --> 00:11:12.640
+connecting with people you can do that
+
+00:11:12.640 --> 00:11:14.079
+throughout the year
+
+00:11:14.079 --> 00:11:16.240
+we'll figure out some kind of like list
+
+00:11:16.240 --> 00:11:18.399
+on Emacs wiki or whatever that will list
+
+00:11:18.399 --> 00:11:19.600
+the different meetups or you can just
+
+00:11:19.600 --> 00:11:21.839
+search for emats meetup in your area
+
+00:11:21.839 --> 00:11:23.360
+but of course since many of them have
+
+00:11:23.360 --> 00:11:25.680
+online meetups now um Emacs news will
+
+00:11:25.680 --> 00:11:27.600
+mention those whenever people remember
+
+00:11:27.600 --> 00:11:29.600
+to tell me in advance
+
+00:11:29.600 --> 00:11:31.920
+um okay so Emacs meetups that's the
+
+00:11:31.920 --> 00:11:33.440
+thing collaborative pad
+
+00:11:33.440 --> 00:11:36.160
+the either pad isn't great there is a
+
+00:11:36.160 --> 00:11:38.079
+meta discussion so if you want to add
+
+00:11:38.079 --> 00:11:40.000
+things that worked well or make notes of
+
+00:11:40.000 --> 00:11:41.760
+things that could work even better next
+
+00:11:41.760 --> 00:11:42.560
+year
+
+00:11:42.560 --> 00:11:44.880
+then write it while it's fresh we'll
+
+00:11:44.880 --> 00:11:46.720
+make a copy and we'll post it
+
+00:11:46.720 --> 00:11:49.440
+to the wiki somewhere like we did last
+
+00:11:49.440 --> 00:11:50.160
+year
+
+00:11:50.160 --> 00:11:52.000
+we can also copy and paste the links
+
+00:11:52.000 --> 00:11:53.680
+from the individual sections
+
+00:11:53.680 --> 00:11:56.079
+into top pages so you can follow the
+
+00:11:56.079 --> 00:11:58.240
+links from there
+
+00:11:58.240 --> 00:12:00.240
+and if you spoke at a conference and you
+
+00:12:00.240 --> 00:12:01.680
+would like to make it easier for people
+
+00:12:01.680 --> 00:12:02.880
+to follow up with you
+
+00:12:02.880 --> 00:12:04.560
+please let us know your follow-up
+
+00:12:04.560 --> 00:12:06.079
+information and we can add it to that
+
+00:12:06.079 --> 00:12:07.040
+page also
+
+00:12:07.040 --> 00:12:09.600
+or it's a wiki you can edit yourself if
+
+00:12:09.600 --> 00:12:11.120
+you have questions when the videos
+
+00:12:11.120 --> 00:12:12.079
+finally come out
+
+00:12:12.079 --> 00:12:13.519
+when you watch them after the videos
+
+00:12:13.519 --> 00:12:15.360
+have come out then you can look at the
+
+00:12:15.360 --> 00:12:17.120
+page for follow-up information
+
+00:12:17.120 --> 00:12:20.000
+and subscribe to the mailing list low
+
+00:12:20.000 --> 00:12:22.000
+traffic you can get updates like when we
+
+00:12:22.000 --> 00:12:24.480
+release the photos I release the videos
+
+00:12:24.480 --> 00:12:26.320
+and uh and they're ready for you to
+
+00:12:26.320 --> 00:12:28.800
+check out so that's what I got for
+
+00:12:28.800 --> 00:12:32.160
+next steps awesome
+
+00:12:32.160 --> 00:12:34.880
+thank you sasha um do one of you guys
+
+00:12:34.880 --> 00:12:35.680
+want to do
+
+00:12:35.680 --> 00:12:39.760
+the um the thanks or should I do them
+
+00:12:39.760 --> 00:12:42.800
+no read to you so good
+
+00:12:42.800 --> 00:12:44.480
+I was gonna I was gonna say the same
+
+00:12:44.480 --> 00:12:46.560
+thing you are so you go ahead
+
+00:12:46.560 --> 00:12:50.240
+okay
+
+00:12:50.240 --> 00:12:51.920
+thinking that that was an awesome thing
+
+00:12:51.920 --> 00:12:53.760
+for for ramen to do if you would be
+
+00:12:53.760 --> 00:12:57.360
+willing
+
+00:12:57.360 --> 00:12:59.120
+yeah you're the lead organizer you get
+
+00:12:59.120 --> 00:13:00.959
+stuck with other fun jobs
+
+00:13:00.959 --> 00:13:05.440
+all the difficult stuff yeah
+
+00:13:05.440 --> 00:13:07.360
+yeah you don't know dating upwards read
+
+00:13:07.360 --> 00:13:08.720
+my crap if you don't want to
+
+00:13:08.720 --> 00:13:12.320
+but um oh no that's
+
+00:13:12.320 --> 00:13:14.959
+I definitely want to read that corbin um
+
+00:13:14.959 --> 00:13:16.399
+yeah I'll pull it up
+
+00:13:16.399 --> 00:13:20.399
+but um yeah before we get into that um
+
+00:13:20.399 --> 00:13:23.279
+I want to read what we have here so uh
+
+00:13:23.279 --> 00:13:25.040
+thank you very much to the free software
+
+00:13:25.040 --> 00:13:26.079
+foundation
+
+00:13:26.079 --> 00:13:29.040
+especially the tech team for lending us
+
+00:13:29.040 --> 00:13:29.600
+allowing
+
+00:13:29.600 --> 00:13:31.760
+us to use this very big blue button
+
+00:13:31.760 --> 00:13:32.720
+instance
+
+00:13:32.720 --> 00:13:35.839
+that we've used for live calls and um
+
+00:13:35.839 --> 00:13:38.000
+live q a with so many of the speakers
+
+00:13:38.000 --> 00:13:39.199
+this year
+
+00:13:39.199 --> 00:13:42.959
+um thank you so much uh shout out to the
+
+00:13:42.959 --> 00:13:43.760
+tech team
+
+00:13:43.760 --> 00:13:47.040
+um especially reuben who does a lot
+
+00:13:47.040 --> 00:13:50.240
+especially with big blue button um
+
+00:13:50.240 --> 00:13:53.199
+and like streaming in general um but
+
+00:13:53.199 --> 00:13:53.680
+also
+
+00:13:53.680 --> 00:13:55.519
+the other members of the tech team like
+
+00:13:55.519 --> 00:13:57.360
+ian andrew and michael
+
+00:13:57.360 --> 00:14:01.519
+thank you all um next stop volunteers
+
+00:14:01.519 --> 00:14:05.920
+bobbin david bremner uh dave o'toole for
+
+00:14:05.920 --> 00:14:09.199
+taking um on basically writing
+
+00:14:09.199 --> 00:14:10.240
+descriptive text
+
+00:14:10.240 --> 00:14:15.279
+in our #emacsconf-accessible channel
+
+00:14:15.279 --> 00:14:18.480
+along with uh joe corneli and
+
+00:14:18.480 --> 00:14:21.920
+um sea bass or sea bass um
+
+00:14:21.920 --> 00:14:25.199
+basically for transcribing talks
+
+00:14:25.199 --> 00:14:27.950
+um in a way live um
+
+00:14:27.950 --> 00:14:29.120
+[Music]
+
+00:14:29.120 --> 00:14:32.320
+yes thank you to corwin of course
+
+00:14:32.320 --> 00:14:35.600
+uh thank you to carl voight uh thank you
+
+00:14:35.600 --> 00:14:35.920
+to
+
+00:14:35.920 --> 00:14:39.519
+sasha and leo very much um
+
+00:14:39.519 --> 00:14:42.639
+for all your hard work um this event
+
+00:14:42.639 --> 00:14:44.240
+literally wouldn't have been possible
+
+00:14:44.240 --> 00:14:45.680
+without all of your uh
+
+00:14:45.680 --> 00:14:49.279
+guys's helps um so thank you
+
+00:14:49.279 --> 00:14:51.760
+and as I told you in the chat you know
+
+00:14:51.760 --> 00:14:52.639
+you would have been
+
+00:14:52.639 --> 00:14:54.800
+really happy to one-man army the entire
+
+00:14:54.800 --> 00:14:58.160
+thing if we hadn't been there so
+
+00:14:58.160 --> 00:15:00.560
+I I don't know I may have been able to
+
+00:15:00.560 --> 00:15:01.839
+but I definitely would have been happy
+
+00:15:01.839 --> 00:15:02.320
+to
+
+00:15:02.320 --> 00:15:05.760
+I'm much more happier this way so um
+
+00:15:05.760 --> 00:15:07.600
+I guess it's the moment when we ask you
+
+00:15:07.600 --> 00:15:09.519
+uh your energy level is it at
+
+00:15:09.519 --> 00:15:12.560
+50 is it at 40 can you give us an
+
+00:15:12.560 --> 00:15:13.120
+estimate
+
+00:15:13.120 --> 00:15:16.399
+roughly um yeah which is what uh
+
+00:15:16.399 --> 00:15:19.120
+corbin had mentioned um I think I'm at a
+
+00:15:19.120 --> 00:15:19.519
+good
+
+00:15:19.519 --> 00:15:22.320
+like 50 or 60 percent um it's just
+
+00:15:22.320 --> 00:15:23.040
+blended
+
+00:15:23.040 --> 00:15:24.800
+yeah definitely more than I can say last
+
+00:15:24.800 --> 00:15:27.199
+for last year
+
+00:15:27.199 --> 00:15:30.320
+but yes thank you um
+
+00:15:30.320 --> 00:15:33.519
+thank you to um all of the
+
+00:15:33.519 --> 00:15:36.720
+our awesome audience members um everyone
+
+00:15:36.720 --> 00:15:39.279
+who participated in any way
+
+00:15:39.279 --> 00:15:42.880
+in the conference also
+
+00:15:42.880 --> 00:15:44.959
+of course a big thank you to all the
+
+00:15:44.959 --> 00:15:46.399
+awesome speakers
+
+00:15:46.399 --> 00:15:48.720
+for submitting all of these amazing
+
+00:15:48.720 --> 00:15:49.440
+talks
+
+00:15:49.440 --> 00:15:52.320
+um on a very wide range of topics from a
+
+00:15:52.320 --> 00:15:53.120
+wide
+
+00:15:53.120 --> 00:15:56.160
+range of backgrounds it was just awesome
+
+00:15:56.160 --> 00:15:59.680
+thank you um and now corbin do you want
+
+00:15:59.680 --> 00:16:03.600
+to read over your text or should I do it
+
+00:16:03.600 --> 00:16:07.759
+it's entirely up to you I mean I
+
+00:16:07.759 --> 00:16:09.920
+I would have to find it again but I will
+
+00:16:09.920 --> 00:16:11.759
+I just have to bring the right Emacs to
+
+00:16:11.759 --> 00:16:12.720
+the front here
+
+00:16:12.720 --> 00:16:16.240
+my story of today yeah sure go forward
+
+00:16:16.240 --> 00:16:18.959
+um I've already talked enough so I kind
+
+00:16:18.959 --> 00:16:20.480
+of like the idea of putting words in
+
+00:16:20.480 --> 00:16:20.880
+your mouth
+
+00:16:20.880 --> 00:16:23.600
+honestly if you feel good saying go go
+
+00:16:23.600 --> 00:16:25.440
+for it and that'll be good for me
+
+00:16:25.440 --> 00:16:27.759
+or if we want to segue into random next
+
+00:16:27.759 --> 00:16:29.680
+conversation I'm up for that too but I'm
+
+00:16:29.680 --> 00:16:30.720
+conscious of
+
+00:16:30.720 --> 00:16:33.839
+other people with uh um
+
+00:16:33.839 --> 00:16:35.600
+young friends wandering about the house
+
+00:16:35.600 --> 00:16:37.120
+and beginning to thump on things
+
+00:16:37.120 --> 00:16:39.360
+I got it I probably didn't what have you
+
+00:16:39.360 --> 00:16:41.440
+pasted me before
+
+00:16:41.440 --> 00:16:44.399
+right that one is that what you wanted
+
+00:16:44.399 --> 00:16:44.800
+yeah
+
+00:16:44.800 --> 00:16:46.399
+I saw the question in there about
+
+00:16:46.399 --> 00:16:48.399
+windows that's definitely a subject I'm
+
+00:16:48.399 --> 00:16:50.320
+happy to talk about I think others on
+
+00:16:50.320 --> 00:16:51.519
+the call have gotten
+
+00:16:51.519 --> 00:16:54.000
+uh gotten some of that in in as part of
+
+00:16:54.000 --> 00:16:55.600
+other conversations
+
+00:16:55.600 --> 00:16:58.800
+um in brief summary it's kind of a
+
+00:16:58.800 --> 00:16:59.839
+necessity thing
+
+00:16:59.839 --> 00:17:03.040
+it's um
+
+00:17:03.040 --> 00:17:06.160
+it's it's complicated you know it's but
+
+00:17:06.160 --> 00:17:09.280
+I I guess I I can say uh
+
+00:17:09.280 --> 00:17:11.760
+I'd ask you not to not to make free
+
+00:17:11.760 --> 00:17:13.280
+software purity tests right
+
+00:17:13.280 --> 00:17:17.439
+you know I um need windows right now
+
+00:17:17.439 --> 00:17:19.839
+and so that has to be fine because I
+
+00:17:19.839 --> 00:17:33.840
+want to be able to give back
+
+00:17:33.840 --> 00:17:35.360
+I'm looking at it I had the wrong part
+
+00:17:35.360 --> 00:17:48.799
+of the buffer open I think karen
+
+00:17:48.799 --> 00:17:56.799
+let me briefly say um
+
+00:17:56.799 --> 00:17:58.559
+we're using okay so I can I can talk
+
+00:17:58.559 --> 00:18:00.960
+about crdt we experimented with it um
+
+00:18:00.960 --> 00:18:04.320
+and I quite a bit and then eric and I
+
+00:18:04.320 --> 00:18:07.039
+significantly further we uh messed up
+
+00:18:07.039 --> 00:18:08.880
+some of our slides significantly getting
+
+00:18:08.880 --> 00:18:10.480
+a little too ambitious with having
+
+00:18:10.480 --> 00:18:12.080
+multiple people editing it
+
+00:18:12.080 --> 00:18:14.400
+and letting everybody go to work on the
+
+00:18:14.400 --> 00:18:15.360
+presentations
+
+00:18:15.360 --> 00:18:17.919
+so we wasted we found many different
+
+00:18:17.919 --> 00:18:19.679
+ways to use Emacs to waste time and
+
+00:18:19.679 --> 00:18:21.360
+preparing for emax conf
+
+00:18:21.360 --> 00:18:23.840
+but I'm pretty confident we have we have
+
+00:18:23.840 --> 00:18:25.520
+all the good parts saved and
+
+00:18:25.520 --> 00:18:28.480
+we'll just need to pull those together
+
+00:18:28.480 --> 00:18:28.880
+uh
+
+00:18:28.880 --> 00:18:30.720
+for you back into a single or more file
+
+00:18:30.720 --> 00:18:33.600
+that we can put up with those videos
+
+00:18:33.600 --> 00:18:36.000
+thanks again for bearing with us um
+
+00:18:36.000 --> 00:18:37.919
+hopefully my point about
+
+00:18:37.919 --> 00:18:54.640
+Emacs being there for you came across
+
+00:18:54.640 --> 00:18:56.480
+oh yes I can scroll I can scroll back
+
+00:18:56.480 --> 00:18:57.679
+down to your text if you like
+
+00:18:57.679 --> 00:19:04.320
+okay here we go
+
+00:19:04.320 --> 00:19:06.559
+uh we're figuring out carwin here's your
+
+00:19:06.559 --> 00:19:08.240
+text
+
+00:19:08.240 --> 00:19:10.080
+if you want to read it otherwise I'll be
+
+00:19:10.080 --> 00:19:11.600
+plenty happy to read it if you want me
+
+00:19:11.600 --> 00:19:12.480
+to
+
+00:19:12.480 --> 00:19:15.919
+take it all right
+
+00:19:15.919 --> 00:19:18.400
+obviously you had to ask the esl learner
+
+00:19:18.400 --> 00:19:20.480
+so english as a second language to read
+
+00:19:20.480 --> 00:19:24.000
+a chunk of text so thank you for this
+
+00:19:24.000 --> 00:19:28.960
+all right okay so uh this is my call win
+
+00:19:28.960 --> 00:19:32.400
+so Emacs is very very complicated
+
+00:19:32.400 --> 00:19:35.440
+and using computer is hard with Emacs we
+
+00:19:35.440 --> 00:19:37.200
+have an ideal opportunity to learn
+
+00:19:37.200 --> 00:19:40.160
+from our errors to take on hard work
+
+00:19:40.160 --> 00:19:41.600
+with diverse groups
+
+00:19:41.600 --> 00:19:44.160
+and to effect lasting solutions to make
+
+00:19:44.160 --> 00:19:44.960
+Emacs
+
+00:19:44.960 --> 00:19:47.600
+and thereby any word of software thing
+
+00:19:47.600 --> 00:19:48.320
+in practically
+
+00:19:48.320 --> 00:19:50.799
+any human and spoken language easier to
+
+00:19:50.799 --> 00:19:52.320
+learn and to use
+
+00:19:52.320 --> 00:19:55.520
+forever life doesn't come with warning
+
+00:19:55.520 --> 00:19:56.080
+labels
+
+00:19:56.080 --> 00:19:59.039
+or margin notes we have a blank map and
+
+00:19:59.039 --> 00:20:00.799
+an uncertain number of batteries for the
+
+00:20:00.799 --> 00:20:01.840
+torch
+
+00:20:01.840 --> 00:20:04.159
+but there's light in the darkness it's
+
+00:20:04.159 --> 00:20:05.200
+freedom
+
+00:20:05.200 --> 00:20:07.200
+it's the idea of giving to people
+
+00:20:07.200 --> 00:20:12.240
+something that cannot be taken away
+
+00:20:12.240 --> 00:20:14.320
+ultraman to say that that was very
+
+00:20:14.320 --> 00:20:15.440
+beautiful uh
+
+00:20:15.440 --> 00:20:21.120
+thank you corbin for writing that
+
+00:20:21.120 --> 00:20:26.960
+okay so uh are there any questions
+
+00:20:26.960 --> 00:20:32.159
+oh muted
+
+00:20:32.159 --> 00:20:34.240
+I still can't I'm muted I think I'm
+
+00:20:34.240 --> 00:20:36.400
+sorry
+
+00:20:36.400 --> 00:20:40.559
+um what I said was thank you uh
+
+00:20:40.559 --> 00:20:45.600
+just thanks
+
+00:20:45.600 --> 00:20:48.640
+I just this community has really been
+
+00:20:48.640 --> 00:20:49.760
+there for me it's
+
+00:20:49.760 --> 00:20:56.080
+hard to learn and need
+
+00:20:56.080 --> 00:20:58.080
+so yeah I keep laughing because I I see
+
+00:20:58.080 --> 00:21:00.000
+things coming through the chat and I do
+
+00:21:00.000 --> 00:21:01.600
+not know how to react visually
+
+00:21:01.600 --> 00:21:02.960
+I'm not used to getting those types of
+
+00:21:02.960 --> 00:21:04.640
+messages
+
+00:21:04.640 --> 00:21:08.000
+it is very upsetting I don't know which
+
+00:21:08.000 --> 00:21:11.120
+one to use I'm using my english as well
+
+00:21:11.120 --> 00:21:13.120
+I'm intentionally not looking over there
+
+00:21:13.120 --> 00:21:14.320
+because I'll just get dragged into
+
+00:21:14.320 --> 00:21:16.799
+conversation and then this we will be on
+
+00:21:16.799 --> 00:21:18.080
+live stream all night I don't know if
+
+00:21:18.080 --> 00:21:19.600
+you know me at all in fact I
+
+00:21:19.600 --> 00:21:21.679
+I my apologies you probably don't hi my
+
+00:21:21.679 --> 00:21:24.080
+name is corwin I like to talk
+
+00:21:24.080 --> 00:21:27.039
+I like to get you excited about ideas
+
+00:21:27.039 --> 00:21:28.720
+that I think we agree about
+
+00:21:28.720 --> 00:21:31.440
+so we can get somewhere solving an
+
+00:21:31.440 --> 00:21:33.200
+important problem and there's a lot of
+
+00:21:33.200 --> 00:21:35.520
+important problems in the world so
+
+00:21:35.520 --> 00:21:37.840
+I have been living in a devil's paradise
+
+00:21:37.840 --> 00:21:39.600
+throughout covet as people are sitting
+
+00:21:39.600 --> 00:21:40.159
+at home
+
+00:21:40.159 --> 00:21:42.799
+and really frustrated especially in the
+
+00:21:42.799 --> 00:21:44.480
+united states where I live
+
+00:21:44.480 --> 00:21:46.640
+about political and social justice
+
+00:21:46.640 --> 00:21:47.520
+issues you
+
+00:21:47.520 --> 00:21:49.760
+probably heard of the town where I live
+
+00:21:49.760 --> 00:21:50.799
+recently
+
+00:21:50.799 --> 00:21:54.559
+as a direct um
+
+00:21:54.559 --> 00:21:58.000
+uh kind of crucible there right
+
+00:21:58.000 --> 00:22:02.400
+um we are a troubled people
+
+00:22:02.400 --> 00:22:04.559
+we're arguing about freedom it's to the
+
+00:22:04.559 --> 00:22:06.320
+point where it's hard to put those words
+
+00:22:06.320 --> 00:22:07.280
+down
+
+00:22:07.280 --> 00:22:10.400
+without assuming people are gonna write
+
+00:22:10.400 --> 00:22:12.320
+you off as a shyster
+
+00:22:12.320 --> 00:22:15.600
+that's insanity we know exactly what
+
+00:22:15.600 --> 00:22:16.640
+that means
+
+00:22:16.640 --> 00:22:20.480
+especially in this community we uh
+
+00:22:20.480 --> 00:22:23.679
+we're here because we want to
+
+00:22:23.679 --> 00:22:26.640
+um because we want to make sure that
+
+00:22:26.640 --> 00:22:27.200
+some
+
+00:22:27.200 --> 00:22:29.280
+part of what the potential that
+
+00:22:29.280 --> 00:22:30.880
+technology offers
+
+00:22:30.880 --> 00:22:32.880
+is indelibly written out there that
+
+00:22:32.880 --> 00:22:34.320
+nobody can take away
+
+00:22:34.320 --> 00:22:36.799
+that's the bottom line on that that that
+
+00:22:36.799 --> 00:22:38.240
+closing thought I mean that's where I'd
+
+00:22:38.240 --> 00:22:40.240
+leave you at with Emacs conference
+
+00:22:40.240 --> 00:22:41.919
+you want to make stuff that other people
+
+00:22:41.919 --> 00:22:43.280
+can't take away because that's where
+
+00:22:43.280 --> 00:22:44.320
+freedom
+
+00:22:44.320 --> 00:22:48.320
+is hiding
+
+00:22:48.320 --> 00:22:51.360
+thank you and I agree there is something
+
+00:22:51.360 --> 00:22:52.799
+to be said about
+
+00:22:52.799 --> 00:22:55.039
+um you know this idea of having some
+
+00:22:55.039 --> 00:22:56.080
+piece of software
+
+00:22:56.080 --> 00:22:59.360
+or an art form to um
+
+00:22:59.360 --> 00:23:01.679
+setting it free to to live on
+
+00:23:01.679 --> 00:23:03.360
+indefinitely into the future and for
+
+00:23:03.360 --> 00:23:04.400
+everyone else
+
+00:23:04.400 --> 00:23:06.320
+um and for people who may have not
+
+00:23:06.320 --> 00:23:07.600
+already even been born
+
+00:23:07.600 --> 00:23:09.679
+to you know at some point someday
+
+00:23:09.679 --> 00:23:11.280
+discover it and
+
+00:23:11.280 --> 00:23:13.840
+um you know start using it and making it
+
+00:23:13.840 --> 00:23:15.039
+even better
+
+00:23:15.039 --> 00:23:18.880
+um yeah so I think on that note
+
+00:23:18.880 --> 00:23:21.120
+this might be a good note to conclude on
+
+00:23:21.120 --> 00:23:23.039
+what you folks think
+
+00:23:23.039 --> 00:23:24.720
+I always like to go around the room one
+
+00:23:24.720 --> 00:23:26.640
+time but again I'll keep everybody on
+
+00:23:26.640 --> 00:23:28.240
+the phone forever so don't
+
+00:23:28.240 --> 00:23:30.960
+don't don't use my definitely I have to
+
+00:23:30.960 --> 00:23:31.860
+be seconded
+
+00:23:31.860 --> 00:23:33.840
+[Laughter]
+
+00:23:33.840 --> 00:23:38.000
+okay um leo sasha
+
+00:23:38.000 --> 00:23:40.240
+uh I was just wondering if we'd answered
+
+00:23:40.240 --> 00:23:41.760
+as many questions as we could
+
+00:23:41.760 --> 00:23:43.840
+from the people because I believe we've
+
+00:23:43.840 --> 00:23:45.440
+answered some of them and sasha has been
+
+00:23:45.440 --> 00:23:47.520
+kind enough to answer them in line
+
+00:23:47.520 --> 00:23:49.360
+but maybe we wanted to take some of them
+
+00:23:49.360 --> 00:23:50.960
+live especially some of the later ones
+
+00:23:50.960 --> 00:23:52.080
+just to
+
+00:23:52.080 --> 00:23:54.320
+send people off with a feeling that we
+
+00:23:54.320 --> 00:23:56.240
+answered to the very last question that
+
+00:23:56.240 --> 00:23:58.640
+they had
+
+00:23:58.640 --> 00:24:01.360
+and until the sound over my head gets
+
+00:24:01.360 --> 00:24:03.360
+too loud and I have to mute I'll be here
+
+00:24:03.360 --> 00:24:04.400
+and then I'll uh
+
+00:24:04.400 --> 00:24:07.039
+be here if I can convince the loud ones
+
+00:24:07.039 --> 00:24:10.799
+to come watch with me
+
+00:24:10.799 --> 00:24:13.039
+so it's really up to you I mean we I'm
+
+00:24:13.039 --> 00:24:14.559
+the one crumbling right now you know I'm
+
+00:24:14.559 --> 00:24:15.200
+just
+
+00:24:15.200 --> 00:24:17.200
+it's pure showmanship that is keeping me
+
+00:24:17.200 --> 00:24:18.799
+up right now the energy that I've been
+
+00:24:18.799 --> 00:24:21.120
+accumulating over the last few days
+
+00:24:21.120 --> 00:24:22.799
+but what's going to happen basically
+
+00:24:22.799 --> 00:24:24.400
+when we finish this live stream
+
+00:24:24.400 --> 00:24:26.240
+firstly I'm going to turn off this light
+
+00:24:26.240 --> 00:24:27.840
+which has been blasting
+
+00:24:27.840 --> 00:24:30.000
+a very white light in my eyes and up
+
+00:24:30.000 --> 00:24:31.039
+until 11 pm
+
+00:24:31.039 --> 00:24:34.400
+every single day you see this very comfy
+
+00:24:34.400 --> 00:24:37.120
+uh you know so far what not I'm just
+
+00:24:37.120 --> 00:24:37.919
+going to
+
+00:24:37.919 --> 00:24:42.880
+crush on it right away so
+
+00:24:42.880 --> 00:24:45.440
+that sounds like a good plan to me um
+
+00:24:45.440 --> 00:24:47.279
+you know we've all worked hard
+
+00:24:47.279 --> 00:24:50.159
+especially you all um and definitely
+
+00:24:50.159 --> 00:24:51.360
+deserve some rest
+
+00:24:51.360 --> 00:24:54.640
+to um you know rejuvenate our job
+
+00:24:54.640 --> 00:24:58.159
+and get back into it again um
+
+00:24:58.159 --> 00:25:01.279
+yeah sasha did you want to add anything
+
+00:25:01.279 --> 00:25:05.919
+else
+
+00:25:05.919 --> 00:25:08.240
+you just muted yourself yes you've just
+
+00:25:08.240 --> 00:25:12.640
+muted yourself
+
+00:25:12.640 --> 00:25:14.799
+uh yeah just answering questions at the
+
+00:25:14.799 --> 00:25:15.780
+moment um
+
+00:25:15.780 --> 00:25:17.039
+[Music]
+
+00:25:17.039 --> 00:25:18.400
+at some point I will have to do two
+
+00:25:18.400 --> 00:25:20.320
+things but in the meantime I can do
+
+00:25:20.320 --> 00:25:25.520
+Emacs grown-up Emacs things wow
+
+00:25:25.520 --> 00:25:26.880
+what are you saying grown-up Emacs but
+
+00:25:26.880 --> 00:25:28.799
+we still had a talk by uh
+
+00:25:28.799 --> 00:25:32.400
+someone today who was uh 17 I believe
+
+00:25:32.400 --> 00:25:36.480
+so yeah I was very impressed by this
+
+00:25:36.480 --> 00:25:39.039
+yeah it's awesome just seeing the wide
+
+00:25:39.039 --> 00:25:40.320
+diversity and the wide
+
+00:25:40.320 --> 00:25:43.600
+age range of people um just getting into
+
+00:25:43.600 --> 00:25:45.200
+Emacs picking up
+
+00:25:45.200 --> 00:25:48.240
+for all sorts of different things um
+
+00:25:48.240 --> 00:25:49.840
+corbin and I had a bit of a chat about
+
+00:25:49.840 --> 00:25:51.440
+this about this
+
+00:25:51.440 --> 00:25:53.440
+piece of free software that is Emacs and
+
+00:25:53.440 --> 00:25:54.960
+all the freedoms
+
+00:25:54.960 --> 00:25:58.320
+freedoms that it grants us um but yeah
+
+00:25:58.320 --> 00:25:58.960
+we could
+
+00:25:58.960 --> 00:26:02.080
+go on forever and ever um yeah I really
+
+00:26:02.080 --> 00:26:02.559
+can
+
+00:26:02.559 --> 00:26:05.039
+and then and you know and it has to be
+
+00:26:05.039 --> 00:26:06.400
+about getting something done and that's
+
+00:26:06.400 --> 00:26:07.440
+where I think
+
+00:26:07.440 --> 00:26:11.679
+sasha your work and organization is so
+
+00:26:11.679 --> 00:26:15.679
+uh vital to us
+
+00:26:15.679 --> 00:26:18.799
+we uh you know we have to direct that
+
+00:26:18.799 --> 00:26:20.720
+energy into self-organizing
+
+00:26:20.720 --> 00:26:22.480
+and and that's where I'd like probably
+
+00:26:22.480 --> 00:26:24.159
+to focus my work
+
+00:26:24.159 --> 00:26:26.159
+over the probably the next several years
+
+00:26:26.159 --> 00:26:27.200
+is
+
+00:26:27.200 --> 00:26:31.120
+um is is putting that thought and some
+
+00:26:31.120 --> 00:26:32.000
+of the
+
+00:26:32.000 --> 00:26:34.720
+uh some of the ideas that are built into
+
+00:26:34.720 --> 00:26:35.600
+org mode and
+
+00:26:35.600 --> 00:26:37.200
+in fact some of the implementation
+
+00:26:37.200 --> 00:26:38.720
+that's built into org one and in fact
+
+00:26:38.720 --> 00:26:40.240
+probably org mode
+
+00:26:40.240 --> 00:26:43.440
+because hey there it is
+
+00:26:43.440 --> 00:26:46.159
+to work on that yeah you should see all
+
+00:26:46.159 --> 00:26:47.279
+the org scripts I wrote
+
+00:26:47.279 --> 00:26:50.320
+so cool not that other people but anyway
+
+00:26:50.320 --> 00:26:51.760
+we wrote this like fancy scheduling
+
+00:26:51.760 --> 00:26:52.000
+thing
+
+00:26:52.000 --> 00:26:52.799
+and you should check out the
+
+00:26:52.799 --> 00:26:55.360
+submissions.org to to try to use it
+
+00:26:55.360 --> 00:26:57.279
+because then if other people use it they
+
+00:26:57.279 --> 00:26:59.360
+can improve it and then I get to use the
+
+00:26:59.360 --> 00:27:00.720
+improvements next year
+
+00:27:00.720 --> 00:27:04.159
+also erc ux irc clients awesome
+
+00:27:04.159 --> 00:27:06.159
+so a lot of automation was a lot of fun
+
+00:27:06.159 --> 00:27:07.919
+to work on absolutely
+
+00:27:07.919 --> 00:27:10.400
+yeah sasha did a lot of cool automation
+
+00:27:10.400 --> 00:27:11.440
+stuff this year
+
+00:27:11.440 --> 00:27:13.200
+um you know around generating the
+
+00:27:13.200 --> 00:27:15.039
+schedules and everything the pages in
+
+00:27:15.039 --> 00:27:17.200
+the Emacs freaky with org mode
+
+00:27:17.200 --> 00:27:19.919
+um and you know for the calls with uh
+
+00:27:19.919 --> 00:27:21.039
+speakers
+
+00:27:21.039 --> 00:27:24.159
+and coordinating in imaxcom.org
+
+00:27:24.159 --> 00:27:26.720
+um or like you know updating the topics
+
+00:27:26.720 --> 00:27:27.600
+all this stuff
+
+00:27:27.600 --> 00:27:30.480
+she basically automated all of this um
+
+00:27:30.480 --> 00:27:32.240
+which is definitely very impressive and
+
+00:27:32.240 --> 00:27:34.480
+I know I'm gonna be looking into
+
+00:27:34.480 --> 00:27:37.600
+um yeah definitely check out um
+
+00:27:37.600 --> 00:27:40.720
+erc I'm a little biased um I
+
+00:27:40.720 --> 00:27:43.360
+started sort of maintaining it a little
+
+00:27:43.360 --> 00:27:44.320
+bit ago
+
+00:27:44.320 --> 00:27:47.760
+but um it's been there forever and
+
+00:27:47.760 --> 00:27:49.279
+you know I'm just following the
+
+00:27:49.279 --> 00:27:51.919
+footsteps of giants or standing on their
+
+00:27:51.919 --> 00:27:53.120
+shoulders
+
+00:27:53.120 --> 00:27:56.640
+so definitely check it out um yeah
+
+00:27:56.640 --> 00:27:59.919
+any uh last notes to add before we get
+
+00:27:59.919 --> 00:28:00.559
+back
+
+00:28:00.559 --> 00:28:03.120
+to um playing the last few demos that we
+
+00:28:03.120 --> 00:28:04.960
+have
+
+00:28:04.960 --> 00:28:07.600
+I just wanted to say that I'm really sad
+
+00:28:07.600 --> 00:28:08.480
+for the people
+
+00:28:08.480 --> 00:28:11.360
+uh viewing uh viewers right now who
+
+00:28:11.360 --> 00:28:12.000
+won't get
+
+00:28:12.000 --> 00:28:14.320
+the thrill of receiving a message by
+
+00:28:14.320 --> 00:28:16.080
+sasha at 3am telling
+
+00:28:16.080 --> 00:28:17.679
+oh I found a way to automate all the
+
+00:28:17.679 --> 00:28:18.960
+talks I found a way to have this
+
+00:28:18.960 --> 00:28:20.480
+schedule be generated automatically in
+
+00:28:20.480 --> 00:28:21.760
+an old mode file
+
+00:28:21.760 --> 00:28:23.520
+and you know I'm having my team in the
+
+00:28:23.520 --> 00:28:25.360
+morning I'm waking up I see an email
+
+00:28:25.360 --> 00:28:27.760
+which was unless three am and I say
+
+00:28:27.760 --> 00:28:31.039
+wow impressive
+
+00:28:31.039 --> 00:28:33.600
+that works like quite nicely for you um
+
+00:28:33.600 --> 00:28:34.159
+leo
+
+00:28:34.159 --> 00:28:36.000
+with like you know the times and time
+
+00:28:36.000 --> 00:28:37.360
+zones and everything
+
+00:28:37.360 --> 00:28:39.440
+and with sasha usually getting it on
+
+00:28:39.440 --> 00:28:40.480
+later at night
+
+00:28:40.480 --> 00:28:44.399
+um yeah you do get this bedtime right
+
+00:28:44.399 --> 00:28:45.919
+wait until bedtime and then up until
+
+00:28:45.919 --> 00:28:47.279
+like one or two because it's too much
+
+00:28:47.279 --> 00:28:49.200
+fun
+
+00:28:49.200 --> 00:28:52.559
+yeah exactly um yeah
+
+00:28:52.559 --> 00:28:56.240
+so uh on that note
+
+00:28:56.240 --> 00:28:59.919
+if uh there isn't much else to say then
+
+00:28:59.919 --> 00:29:03.200
+I will uh thank each and every one once
+
+00:29:03.200 --> 00:29:04.000
+again
+
+00:29:04.000 --> 00:29:07.039
+um who was in any way
+
+00:29:07.039 --> 00:29:10.240
+part of this um and helped with um
+
+00:29:10.240 --> 00:29:13.520
+any of this um basically
+
+00:29:13.520 --> 00:29:16.640
+um Emacs company anyway um and watched
+
+00:29:16.640 --> 00:29:17.039
+it
+
+00:29:17.039 --> 00:29:20.640
+helped whatever um submitted the talk um
+
+00:29:20.640 --> 00:29:22.960
+I very much thank you um this wouldn't
+
+00:29:22.960 --> 00:29:23.760
+have been
+
+00:29:23.760 --> 00:29:27.120
+what it has been without um all of
+
+00:29:27.120 --> 00:29:30.240
+you folks participation and help and
+
+00:29:30.240 --> 00:29:32.960
+um just being out there and spreading
+
+00:29:32.960 --> 00:29:34.720
+the gospel of Emacs
+
+00:29:34.720 --> 00:29:37.760
+um yeah so
+
+00:29:37.760 --> 00:29:40.799
+yep there we go leo
+
+00:29:40.799 --> 00:29:42.399
+sorry someone just asked me if I was
+
+00:29:42.399 --> 00:29:44.159
+still wearing jeans today so I just felt
+
+00:29:44.159 --> 00:29:46.799
+obligated to show it
+
+00:29:46.799 --> 00:29:50.320
+nice I never got my thanks in I I have
+
+00:29:50.320 --> 00:29:51.039
+to thank
+
+00:29:51.039 --> 00:29:54.399
+uh leo and uh
+
+00:29:54.399 --> 00:29:57.760
+and I'll just stare at you but I I won't
+
+00:29:57.760 --> 00:29:58.480
+say your name
+
+00:29:58.480 --> 00:30:01.520
+yet again um for the insane work that
+
+00:30:01.520 --> 00:30:02.000
+you do
+
+00:30:02.000 --> 00:30:06.320
+and and and sasha um
+
+00:30:06.320 --> 00:30:09.039
+you are an asset to our whole community
+
+00:30:09.039 --> 00:30:11.039
+with the vibrance that you bring and the
+
+00:30:11.039 --> 00:30:13.200
+the passion that you have for
+
+00:30:13.200 --> 00:30:16.720
+um for community itself uh
+
+00:30:16.720 --> 00:30:18.480
+I think a lot of us can say that you're
+
+00:30:18.480 --> 00:30:20.000
+you're driving a lot of our work
+
+00:30:20.000 --> 00:30:24.240
+in in certain ways um
+
+00:30:24.240 --> 00:30:25.919
+and then I I want to thank all the
+
+00:30:25.919 --> 00:30:28.480
+presenters for uh
+
+00:30:28.480 --> 00:30:30.399
+for working with us to get every
+
+00:30:30.399 --> 00:30:31.760
+everything scheduled
+
+00:30:31.760 --> 00:30:35.520
+and also my team and project
+
+00:30:35.520 --> 00:30:39.279
+um for helping uh get the project
+
+00:30:39.279 --> 00:30:41.200
+actually testable we had some
+
+00:30:41.200 --> 00:30:43.279
+interesting stuff to show
+
+00:30:43.279 --> 00:30:46.720
+and my family for uh all that they do
+
+00:30:46.720 --> 00:30:49.279
+to make it possible for me to give back
+
+00:30:49.279 --> 00:30:56.080
+to free software
+
+00:30:56.080 --> 00:30:57.679
+oh there's a question um someone's
+
+00:30:57.679 --> 00:30:59.440
+volunteering to help just get the stream
+
+00:30:59.440 --> 00:31:00.399
+recordings out
+
+00:31:00.399 --> 00:31:02.880
+so it's it's up to you yeah your call
+
+00:31:02.880 --> 00:31:03.600
+you want
+
+00:31:03.600 --> 00:31:05.760
+them out and then you have some time to
+
+00:31:05.760 --> 00:31:07.200
+prepare nice
+
+00:31:07.200 --> 00:31:09.600
+cut up versions or do you want everyone
+
+00:31:09.600 --> 00:31:11.120
+to hang on and then just link to like
+
+00:31:11.120 --> 00:31:12.960
+the EmacsConf website
+
+00:31:12.960 --> 00:31:16.159
+right right um I would very much
+
+00:31:16.159 --> 00:31:17.679
+appreciate help with that
+
+00:31:17.679 --> 00:31:20.880
+in fact um for last year's um live
+
+00:31:20.880 --> 00:31:21.919
+recordings
+
+00:31:21.919 --> 00:31:25.279
+we had someone to help us um
+
+00:31:25.279 --> 00:31:28.320
+uh andrew jordy in fact who also helped
+
+00:31:28.320 --> 00:31:30.159
+light a bunch of transcripts last year
+
+00:31:30.159 --> 00:31:32.559
+did an awesome job um
+
+00:31:32.559 --> 00:31:34.240
+yeah I really wanted to have him around
+
+00:31:34.240 --> 00:31:36.080
+this year but you know circumstances
+
+00:31:36.080 --> 00:31:36.720
+with
+
+00:31:36.720 --> 00:31:39.279
+um everything going on around around the
+
+00:31:39.279 --> 00:31:39.840
+world
+
+00:31:39.840 --> 00:31:42.880
+um just didn't work out but um yeah I
+
+00:31:42.880 --> 00:31:43.279
+could
+
+00:31:43.279 --> 00:31:46.240
+definitely use um help with cutting up
+
+00:31:46.240 --> 00:31:48.159
+the videos
+
+00:31:48.159 --> 00:31:49.679
+you know for the pre-recordings that's
+
+00:31:49.679 --> 00:31:51.519
+pretty trivial it's just me having to
+
+00:31:51.519 --> 00:31:52.640
+upload them
+
+00:31:52.640 --> 00:31:55.120
+and create the pages so I will do that
+
+00:31:55.120 --> 00:31:55.679
+but
+
+00:31:55.679 --> 00:31:58.320
+um to whoever asked the question if it's
+
+00:31:58.320 --> 00:31:59.279
+on the pad
+
+00:31:59.279 --> 00:32:01.200
+or if it's in irc sorry I missed it I
+
+00:32:01.200 --> 00:32:03.440
+will go I'll look back later
+
+00:32:03.440 --> 00:32:06.240
+um yeah just ping me message me or email
+
+00:32:06.240 --> 00:32:07.200
+me
+
+00:32:07.200 --> 00:32:10.080
+at vandalia gnu.org and um I would
+
+00:32:10.080 --> 00:32:17.840
+appreciate your help
+
+00:32:17.840 --> 00:32:20.159
+so have we finished the roundtable uh I
+
+00:32:20.159 --> 00:32:20.880
+believe we're
+
+00:32:20.880 --> 00:32:23.760
+doing the last thinking so colwin did it
+
+00:32:23.760 --> 00:32:24.640
+sasha did it
+
+00:32:24.640 --> 00:32:27.679
+should I go next
+
+00:32:27.679 --> 00:32:30.320
+so well as you can see I've lowered
+
+00:32:30.320 --> 00:32:31.200
+myself
+
+00:32:31.200 --> 00:32:33.360
+ever since the last time I've spoken so
+
+00:32:33.360 --> 00:32:34.399
+the dynasty started
+
+00:32:34.399 --> 00:32:36.640
+starting to set in but uh yeah I just
+
+00:32:36.640 --> 00:32:37.600
+wanted to
+
+00:32:37.600 --> 00:32:40.399
+um rejoin everyone and just say that
+
+00:32:40.399 --> 00:32:40.880
+thank you
+
+00:32:40.880 --> 00:32:42.320
+so much to all the organizers who have
+
+00:32:42.320 --> 00:32:44.640
+been helping us uh we've done a stellar
+
+00:32:44.640 --> 00:32:45.279
+job
+
+00:32:45.279 --> 00:32:47.279
+that I believe at least this year of
+
+00:32:47.279 --> 00:32:48.880
+keeping things on track
+
+00:32:48.880 --> 00:32:51.440
+and I hope that all of you have been
+
+00:32:51.440 --> 00:32:53.039
+able to enjoy this
+
+00:32:53.039 --> 00:32:56.240
+and yeah I don't have any anyone
+
+00:32:56.240 --> 00:32:58.480
+in particular to thank you know uh for
+
+00:32:58.480 --> 00:32:59.840
+me free software was
+
+00:32:59.840 --> 00:33:01.919
+for a very long time something I did in
+
+00:33:01.919 --> 00:33:02.960
+my bedroom
+
+00:33:02.960 --> 00:33:04.559
+on the side of my studies and generally
+
+00:33:04.559 --> 00:33:06.080
+when I was procrastinating
+
+00:33:06.080 --> 00:33:08.720
+from writing that one particular essay
+
+00:33:08.720 --> 00:33:10.559
+or that one particular thesis
+
+00:33:10.559 --> 00:33:13.120
+you know I did my old mood stuff in the
+
+00:33:13.120 --> 00:33:13.919
+background so
+
+00:33:13.919 --> 00:33:16.159
+just to be able to you know join the
+
+00:33:16.159 --> 00:33:17.440
+community
+
+00:33:17.440 --> 00:33:19.360
+when normally I got the chance to you
+
+00:33:19.360 --> 00:33:21.279
+know write some code for it and try to
+
+00:33:21.279 --> 00:33:23.600
+animate to community but also to be part
+
+00:33:23.600 --> 00:33:24.399
+of an event
+
+00:33:24.399 --> 00:33:28.480
+that is so genuine
+
+00:33:28.480 --> 00:33:30.960
+in its mission so genuine in the way
+
+00:33:30.960 --> 00:33:31.519
+that
+
+00:33:31.519 --> 00:33:34.799
+we got speakers together we had you know
+
+00:33:34.799 --> 00:33:36.399
+we had this excitement that we wanted to
+
+00:33:36.399 --> 00:33:38.000
+share and judging
+
+00:33:38.000 --> 00:33:39.360
+by the reactions we've had over the
+
+00:33:39.360 --> 00:33:41.200
+couple of days you know I I believe
+
+00:33:41.200 --> 00:33:41.840
+we've
+
+00:33:41.840 --> 00:33:44.799
+completely hit our target and as corwin
+
+00:33:44.799 --> 00:33:45.679
+said yesterday I
+
+00:33:45.679 --> 00:33:48.320
+am I guess I suppose a little humbled I
+
+00:33:48.320 --> 00:33:50.000
+know it might sound weird for me because
+
+00:33:50.000 --> 00:33:50.320
+I'm
+
+00:33:50.320 --> 00:33:52.240
+from britain all the time but when we're
+
+00:33:52.240 --> 00:33:53.760
+going to press stop
+
+00:33:53.760 --> 00:33:56.080
+to diet you know for the broadcast I
+
+00:33:56.080 --> 00:33:56.799
+think it's
+
+00:33:56.799 --> 00:33:59.840
+going to start slowly dawning slowly
+
+00:33:59.840 --> 00:34:02.880
+sorry french accent coming back slowly
+
+00:34:02.880 --> 00:34:06.480
+dawning on me what we've done and
+
+00:34:06.480 --> 00:34:08.320
+yeah it'll take me a couple of weeks to
+
+00:34:08.320 --> 00:34:09.520
+recover mentally
+
+00:34:09.520 --> 00:34:12.000
+spiritually physically and whatnot but I
+
+00:34:12.000 --> 00:34:13.599
+believe after I'll be able to enjoy what
+
+00:34:13.599 --> 00:34:15.599
+we've been able to do and for that
+
+00:34:15.599 --> 00:34:20.800
+thank you so much
+
+00:34:20.800 --> 00:34:24.480
+um yeah it's you're still you know kind
+
+00:34:24.480 --> 00:34:25.919
+of in the moment and
+
+00:34:25.919 --> 00:34:29.359
+um kind of maybe you haven't quite grabs
+
+00:34:29.359 --> 00:34:32.159
+grasped at all yet but yeah I think
+
+00:34:32.159 --> 00:34:33.359
+it'll
+
+00:34:33.359 --> 00:34:36.079
+start hitting us all individually at
+
+00:34:36.079 --> 00:34:37.599
+different points over the next couple of
+
+00:34:37.599 --> 00:34:39.119
+days or weeks
+
+00:34:39.119 --> 00:34:42.079
+um as we take some time to you know rest
+
+00:34:42.079 --> 00:34:43.599
+up and re-energize
+
+00:34:43.599 --> 00:34:47.359
+and you know keep going forward um
+
+00:34:47.359 --> 00:34:50.960
+yeah so on that note if um
+
+00:34:50.960 --> 00:34:53.839
+no one else has anything to add I will
+
+00:34:53.839 --> 00:34:54.320
+um
+
+00:34:54.320 --> 00:34:57.200
+[ __ ] you all farewell and thank you
+
+00:34:57.200 --> 00:34:59.680
+everyone once again for joining us
+
+00:34:59.680 --> 00:35:03.839
+and making an awesome amazing EmacsConf 2020.
+
+00:35:03.839 --> 00:35:06.079
+um just quickly say we weren't sure that
+
+00:35:06.079 --> 00:35:07.680
+we will be able to pull it off
+
+00:35:07.680 --> 00:35:09.599
+given all the madness going on around
+
+00:35:09.599 --> 00:35:10.720
+the world but
+
+00:35:10.720 --> 00:35:13.839
+for us to have broken um so many of our
+
+00:35:13.839 --> 00:35:14.880
+numbers and records
+
+00:35:14.880 --> 00:35:17.440
+for all of them basically um you know we
+
+00:35:17.440 --> 00:35:18.240
+just had
+
+00:35:18.240 --> 00:35:20.240
+just about like two and a half or three
+
+00:35:20.240 --> 00:35:22.320
+terabytes of streaming bandwidth usage
+
+00:35:22.320 --> 00:35:22.960
+so that's
+
+00:35:22.960 --> 00:35:25.520
+incredible and so many people join in so
+
+00:35:25.520 --> 00:35:26.400
+many talks
+
+00:35:26.400 --> 00:35:30.079
+so it's amazing thank you um
+
+00:35:30.079 --> 00:35:31.839
+yes I see a question coming will the
+
+00:35:31.839 --> 00:35:34.040
+ether pad be archived somewhere on
+
+00:35:34.040 --> 00:35:35.440
+imageconf.org
+
+00:35:35.440 --> 00:35:37.920
+um and the answer is yes I think sasha
+
+00:35:37.920 --> 00:35:38.960
+is answering
+
+00:35:38.960 --> 00:35:41.800
+um yes it will be linked under
+
+00:35:41.800 --> 00:35:43.200
+imanxconf.org
+
+00:35:43.200 --> 00:35:46.400
+2020 um that page will contain all the
+
+00:35:46.400 --> 00:35:47.680
+resources about
+
+00:35:47.680 --> 00:35:50.880
+everything um you know
+
+00:35:50.880 --> 00:35:54.880
+uh about imsgufton20 2020 sorry
+
+00:35:54.880 --> 00:35:57.599
+um yeah now you see some people saying
+
+00:35:57.599 --> 00:35:59.119
+early happy birthday to me
+
+00:35:59.119 --> 00:36:02.320
+um thank you so very much um I think
+
+00:36:02.320 --> 00:36:02.800
+this
+
+00:36:02.800 --> 00:36:05.760
+uh this conference was an incredible um
+
+00:36:05.760 --> 00:36:06.160
+I guess
+
+00:36:06.160 --> 00:36:09.200
+prelude to to my birthday um
+
+00:36:09.200 --> 00:36:12.880
+so thank you all and on that note
+
+00:36:12.880 --> 00:36:15.599
+I will end the stream and say goodbye
+
+00:36:15.599 --> 00:36:15.920
+and
+
+00:36:15.920 --> 00:36:19.680
+beat you very well bye
+
+00:36:19.680 --> 00:36:23.040
+bye everyone and then you're going to
+
+00:36:23.040 --> 00:36:23.839
+play the
+
+00:36:23.839 --> 00:36:27.119
+devils yep exactly okay
+
+00:36:27.119 --> 00:36:30.960
+bye bye