From 72e48bc52524672fc6179d1f45f091df76cd2e02 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Sun, 13 Dec 2020 00:08:14 -0500 Subject: Switch to vtt --- .../emacsconf-2020--00-opening-remarks-autogen.sbv | 603 --- ...from-user-to-package-maintainer--leo-vivier.sbv | 1968 -------- ...0--04-music-in-plain-text--jonathan-gregory.sbv | 606 --- ...f-2020--06-trivial-emacs-kits--corwin-brust.sbv | 1002 ---- ...aradigm--questions--sid-kasivajhula-autogen.sbv | 360 -- ...alable-ui-paradigm--sid-kasivajhula-autogen.sbv | 1335 ------ ...r-life-in-plain-text--rainer-koenig-autogen.sbv | 453 -- ...-2020--10-lead-your-future-with-org--andrea.sbv | 348 -- ...s-about-getting-things-done--aldric-autogen.sbv | 1194 ----- ...y-the-end-of-the-debate--leo-vivier-autogen.sbv | 1446 ------ ...eli-raymond-puzio-cameron-ray-smith-autogen.sbv | 1080 ----- ...--14-readme-driven-design--adam-ard-autogen.sbv | 1425 ------ ...erience-report--adolfo-villafiorita-autogen.sbv | 1182 ----- ...nd-whats-on-the-horizon--leo-vivier-autogen.sbv | 1800 ------- ...ars-and-researchers--noorah-alhasan-autogen.sbv | 1794 ------- ...-technical-presentation--leo-vivier-autogen.sbv | 1803 ------- ...-more-with-org-webring--brett-gilio-autogen.sbv | 708 --- ...f-2020--20-omg-macros--corwin-brust-autogen.sbv | 1605 ------- ...k-like-5-minute-hacks--eduardo-ochs-autogen.sbv | 3300 ------------- ...ng-up-special-blocks--musa-al-hassy-autogen.sbv | 2385 ---------- ...-sitter--questions--tuan-anh-nguyen-autogen.sbv | 1086 ----- ...-emacs-tree-sitter--tuan-anh-nguyen-autogen.sbv | 1521 ------ ...-counsel-jq--zen-monk-alain-m-lafon-autogen.sbv | 756 --- ...how-it-changed-my-life--pierce-wang-autogen.sbv | 768 --- ...ged-my-life--questions--pierce-wang-autogen.sbv | 768 --- ...ip8--vasilij-wasamasa-schneidermann-autogen.sbv | 912 ---- ...ngeon--erik-elmshauser-corwin-brust-autogen.sbv | 4992 -------------------- ...of-vterm--gabriele-bozzola-sbozzolo-autogen.sbv | 633 --- ...uestions--gabriele-bozzola-sbozzolo-autogen.sbv | 384 -- ...anguage-and-emacs--grant-shangreaux-autogen.sbv | 858 ---- ...-emacs--questions--grant-shangreaux-autogen.sbv | 411 -- ...he-gnus-newsreader--eric-abrahamsen-autogen.sbv | 2214 --------- ...-a-computer-algebra-system-in-emacs--fermin.sbv | 1707 ------- ...applications-with-eaf--matthew-zeng-autogen.sbv | 1713 ------- ...c-zmusic--questions--zachary-kanfer-autogen.sbv | 507 -- ...cs-development-update--john-wiegley-autogen.sbv | 459 -- ...u-elpa--questions--richard-stallman-autogen.sbv | 2832 ----------- ...onf-2020--40-closing-remarks-part-1-autogen.sbv | 205 - ...onf-2020--40-closing-remarks-part-2-autogen.sbv | 999 ---- .../emacsconf-2020--41-opening-remarks-autogen.sbv | 1035 ---- .../emacsconf-2020--42-closing-remarks-autogen.sbv | 2904 ------------ 41 files changed, 54061 deletions(-) delete mode 100644 2020/subtitles/emacsconf-2020--00-opening-remarks-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.sbv delete mode 100644 2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.sbv delete mode 100644 2020/subtitles/emacsconf-2020--06-trivial-emacs-kits--corwin-brust.sbv delete mode 100644 2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--09-orgmode-your-life-in-plain-text--rainer-koenig-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--10-lead-your-future-with-org--andrea.sbv delete mode 100644 2020/subtitles/emacsconf-2020--11-the-org-gtd-package-opinions-about-getting-things-done--aldric-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--13-experience-report-steps-to-emacs-hyper-notebooks--joseph-corneli-raymond-puzio-cameron-ray-smith-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--14-readme-driven-design--adam-ard-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--15-moving-from-jekyll-to-orgmode-an-experience-report--adolfo-villafiorita-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--16-org-roam-presentation-demonstration-and-whats-on-the-horizon--leo-vivier-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--questions--tuan-anh-nguyen-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--tuan-anh-nguyen-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--25-traverse-complex-json-structures-with-live-feedback-counsel-jq--zen-monk-alain-m-lafon-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--pierce-wang-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--questions--pierce-wang-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--27-state-of-retro-gaming-in-emacs-chip8--vasilij-wasamasa-schneidermann-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--questions--gabriele-bozzola-sbozzolo-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--grant-shangreaux-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--questions--grant-shangreaux-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.sbv delete mode 100644 2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--40-closing-remarks-part-1-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--40-closing-remarks-part-2-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--41-opening-remarks-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--42-closing-remarks-autogen.sbv (limited to '2020/subtitles') diff --git a/2020/subtitles/emacsconf-2020--00-opening-remarks-autogen.sbv b/2020/subtitles/emacsconf-2020--00-opening-remarks-autogen.sbv deleted file mode 100644 index 76298cad..00000000 --- a/2020/subtitles/emacsconf-2020--00-opening-remarks-autogen.sbv +++ /dev/null @@ -1,603 +0,0 @@ -0:00:03.919,0:00:08.400 -all right - -0:00:05.279,0:00:11.920 -hello and uh welcome to EmacsConf - -0:00:08.400,0:00:14.920 -2020. um I'm Amin Bandali - -0:00:11.920,0:00:16.560 -and I have with me my fellow - -0:00:14.920,0:00:20.720 -co-organizers uh - -0:00:16.560,0:00:24.160 -Leo Vivier and Sacha Chua - -0:00:20.720,0:00:25.439 -and we're very excited to be doing this - -0:00:24.160,0:00:28.240 -conference again this year - -0:00:25.439,0:00:28.560 -it's already been a year since the last - -0:00:28.240,0:00:32.079 -one - -0:00:28.560,0:00:35.680 -gosh the time flies by but - -0:00:32.079,0:00:38.960 -um yeah so I guess - -0:00:35.680,0:00:41.520 -without further ado let's get into - -0:00:38.960,0:00:43.520 -the conference so hello again and - -0:00:41.520,0:00:47.039 -welcome to EmacsConf 2020. - -0:00:43.520,0:00:49.360 -we're very happy to have you here um - -0:00:47.039,0:00:50.239 -so we're gonna start right off the bat - -0:00:49.360,0:00:53.600 -with - -0:00:50.239,0:00:56.000 -um a huge series of thank yous to um - -0:00:53.600,0:00:57.120 -free software foundation especially the - -0:00:56.000,0:00:59.760 -tech team - -0:00:57.120,0:01:01.600 -for um you know their continued support - -0:00:59.760,0:01:04.559 -and for letting us use - -0:01:01.600,0:01:05.360 -um their big blue button instance uh for - -0:01:04.559,0:01:07.840 -this very - -0:01:05.360,0:01:09.680 -um presentation that you're watching um - -0:01:07.840,0:01:10.720 -to for us to be able to deliver it using - -0:01:09.680,0:01:14.320 -only free software - -0:01:10.720,0:01:14.320 -um that's very generous of them - -0:01:14.640,0:01:19.920 -thank you so much next up I want to - -0:01:18.240,0:01:21.600 -thank all my co-organizers and - -0:01:19.920,0:01:24.640 -volunteers um - -0:01:21.600,0:01:26.880 -so this list is in alphabetical or order - -0:01:24.640,0:01:28.479 -but um yeah so there's myself there's - -0:01:26.880,0:01:31.360 -bobbin 192. - -0:01:28.479,0:01:32.159 -there's david bremner um david o'toole - -0:01:31.360,0:01:35.360 -um - -0:01:32.159,0:01:38.560 -mpls corbin or corbin bruce public - -0:01:35.360,0:01:41.759 -voigt which is carl boyd um - -0:01:38.560,0:01:44.799 -sasha chu of course and zeph which is - -0:01:41.759,0:01:45.520 -uh who is leo vva um thank you all so - -0:01:44.799,0:01:48.399 -much - -0:01:45.520,0:01:48.880 -so now I'll pass it on to sasha chua for - -0:01:48.399,0:01:52.000 -a - -0:01:48.880,0:01:54.640 -quick um overview of the schedule - -0:01:52.000,0:01:56.640 -we have a lot of fun fun talks scheduled - -0:01:54.640,0:01:59.280 -for today and tomorrow - -0:01:56.640,0:02:01.520 -you can find it at the Emacs con - -0:01:59.280,0:02:03.600 -schedule which I will open up in the tab - -0:02:01.520,0:02:04.880 -and here we go so I'll give you a quick - -0:02:03.600,0:02:06.960 -overview of the schedule - -0:02:04.880,0:02:09.039 -you can drop in of course all the times - -0:02:06.960,0:02:11.280 -are approximate despite the misleading - -0:02:09.039,0:02:13.760 -these specific time stamps so please - -0:02:11.280,0:02:14.800 -check back in on the Emacs comp channel - -0:02:13.760,0:02:16.160 -or - -0:02:14.800,0:02:18.400 -or keep checking the schedule throughout - -0:02:16.160,0:02:20.400 -the day as things things get updated - -0:02:18.400,0:02:22.000 -we'll start off with some user stories - -0:02:20.400,0:02:24.400 -and uh and then we'll dive - -0:02:22.000,0:02:26.080 -right into how Emacs can be used for - -0:02:24.400,0:02:28.000 -lots of different things - -0:02:26.080,0:02:29.840 -uh emax configuration of course is a - -0:02:28.000,0:02:31.120 -huge part of using Emacs like a tinker - -0:02:29.840,0:02:31.760 -with it and so we've got a couple of - -0:02:31.120,0:02:35.040 -talks - -0:02:31.760,0:02:36.160 -about that in the afternoon it's a lot - -0:02:35.040,0:02:39.280 -of org talks - -0:02:36.160,0:02:40.879 -so if if you're into org - -0:02:39.280,0:02:43.040 -the whole afternoon you've got these - -0:02:40.879,0:02:44.800 -things to play with next day - -0:02:43.040,0:02:46.239 -so sunday we have a lot of development - -0:02:44.800,0:02:48.400 -oriented talks we have - -0:02:46.239,0:02:50.480 -a development update from john weekly - -0:02:48.400,0:02:52.640 -and a number of talks about Emacs list - -0:02:50.480,0:02:54.160 -or packages that that help you with - -0:02:52.640,0:02:56.239 -working with code - -0:02:54.160,0:02:57.920 -you also have some talks that need to be - -0:02:56.239,0:03:00.000 -moved to the second day for - -0:02:57.920,0:03:01.680 -uh for scheduling reasons but overall - -0:03:00.000,0:03:03.040 -the second day is mostly about - -0:03:01.680,0:03:05.599 -development - -0:03:03.040,0:03:06.879 -no matter what uh what uh you're - -0:03:05.599,0:03:07.360 -interested in I hope you'll find - -0:03:06.879,0:03:10.640 -something - -0:03:07.360,0:03:10.640 -in the schedule for you - -0:03:11.760,0:03:15.200 -and then how do you actually participate - -0:03:13.760,0:03:16.720 -how do you actually watch and - -0:03:15.200,0:03:18.319 -ask questions and all of that let's turn - -0:03:16.720,0:03:19.920 -it over to leo - -0:03:18.319,0:03:21.280 -sure so hi there everyone it's a - -0:03:19.920,0:03:23.040 -pleasure to meet you all I'm really - -0:03:21.280,0:03:25.280 -happy to be part of the team this year - -0:03:23.040,0:03:26.159 -so uh this year we've decided to change - -0:03:25.280,0:03:28.799 -things a little - -0:03:26.159,0:03:29.440 -uh compared to what we did last year so - -0:03:28.799,0:03:31.519 -um - -0:03:29.440,0:03:32.480 -everything is on the link that will - -0:03:31.519,0:03:34.400 -pre-paste - -0:03:32.480,0:03:36.560 -in the chat right now but to participate - -0:03:34.400,0:03:38.480 -I suppose if you're hearing us right now - -0:03:36.560,0:03:43.120 -you found the link to follow us which is - -0:03:38.480,0:03:46.080 -very good so it's live.emacsconf.org - -0:03:43.120,0:03:47.200 -for the questions uh we use a pad where - -0:03:46.080,0:03:48.959 -you can both - -0:03:47.200,0:03:50.480 -add your questions and if you feel like - -0:03:48.959,0:03:51.920 -adding notes as well you know you are - -0:03:50.480,0:03:54.480 -completely free to do so - -0:03:51.920,0:03:56.319 -I believe you already have 42 people - -0:03:54.480,0:03:58.239 -which are on there so - -0:03:56.319,0:03:59.680 -if someone one of the other organizers - -0:03:58.239,0:04:00.799 -could paste the link there that would be - -0:03:59.680,0:04:02.959 -splendid - -0:04:00.799,0:04:04.640 -uh for chatting with us or with the - -0:04:02.959,0:04:07.920 -other people attending the conference - -0:04:04.640,0:04:09.599 -we are using isc and there are three - -0:04:07.920,0:04:10.959 -channels that you need to pay attention - -0:04:09.599,0:04:13.120 -to the first one - -0:04:10.959,0:04:14.239 -is #emacsconf where the general - -0:04:13.120,0:04:16.560 -discussion will be - -0:04:14.239,0:04:18.000 -happening so if you have any reactions - -0:04:16.560,0:04:19.199 -to what you're hearing if you are - -0:04:18.000,0:04:20.400 -excited about - -0:04:19.199,0:04:22.400 -the new things you've discovered you - -0:04:20.400,0:04:25.440 -know that's the channel to be using - -0:04:22.400,0:04:27.520 -we also have #emacsconf-accessible - -0:04:25.440,0:04:28.960 -which is community-run and it's for - -0:04:27.520,0:04:30.320 -people who - -0:04:28.960,0:04:32.400 -you know if you want to volunteer and - -0:04:30.320,0:04:33.680 -describe to uh - -0:04:32.400,0:04:34.960 -people what is going on during the - -0:04:33.680,0:04:36.479 -conference either because they can't - -0:04:34.960,0:04:38.240 -hear because they can't see you know - -0:04:36.479,0:04:40.720 -feel free to do so that would be a nice - -0:04:38.240,0:04:42.960 -help to us and for the speakers more - -0:04:40.720,0:04:44.800 -specifically if you have - -0:04:42.960,0:04:46.320 -any problem whatsoever or if you need to - -0:04:44.800,0:04:49.680 -check something with us - -0:04:46.320,0:04:51.759 -we will be in iEmacsConff.org and - -0:04:49.680,0:04:54.000 -feel free to message us there and we'll - -0:04:51.759,0:04:55.360 -try to take care of your problem as soon - -0:04:54.000,0:04:58.160 -as possible - -0:04:55.360,0:04:59.120 -we also have another thing this year so - -0:04:58.160,0:05:02.160 -as we will be - -0:04:59.120,0:05:03.520 -having talks one after the other if you - -0:05:02.160,0:05:05.120 -happen to be - -0:05:03.520,0:05:07.840 -if you want to continue the discussion - -0:05:05.120,0:05:09.360 -basically we invite you to use - -0:05:07.840,0:05:11.280 -jitsi to be able to continue the - -0:05:09.360,0:05:12.720 -discussion either with the speaker if - -0:05:11.280,0:05:14.400 -the speaker is willing to do so - -0:05:12.720,0:05:15.759 -or just with the community of users and - -0:05:14.400,0:05:18.880 -for that will leave you - -0:05:15.759,0:05:19.520 -organize yourself on isc okay I believe - -0:05:18.880,0:05:23.360 -that's me - -0:05:19.520,0:05:25.759 -uh should I hand you back the - -0:05:23.360,0:05:26.960 -uh speech I can't find a way to say this - -0:05:25.759,0:05:30.000 -in english so - -0:05:26.960,0:05:33.120 -just say yeah I mean go go take it away - -0:05:30.000,0:05:36.240 -sure thank you okay sure - -0:05:33.120,0:05:37.039 -thank you um so first off let me address - -0:05:36.240,0:05:39.600 -this um - -0:05:37.039,0:05:40.400 -the webcam placement on this laptop is - -0:05:39.600,0:05:43.039 -very weird - -0:05:40.400,0:05:44.800 -it's right at the bottom and if you see - -0:05:43.039,0:05:45.600 -me looking up like this I'm actually - -0:05:44.800,0:05:47.759 -looking at the - -0:05:45.600,0:05:48.720 -um my second monitor which has the - -0:05:47.759,0:05:52.800 -stream - -0:05:48.720,0:05:55.600 -um so yeah sorry about that um - -0:05:52.800,0:05:56.720 -but yeah so we have a mailing list um - -0:05:55.600,0:05:58.400 -which of course - -0:05:56.720,0:06:00.639 -isn't going to be super active at this - -0:05:58.400,0:06:03.280 -very moment because everyone's watching - -0:06:00.639,0:06:03.680 -but before and after the conference um - -0:06:03.280,0:06:05.600 -you know - -0:06:03.680,0:06:07.520 -please feel free to subscribe to uh - -0:06:05.600,0:06:10.240 -emacsconf-discuss - -0:06:07.520,0:06:11.199 -um for various updates and posts about - -0:06:10.240,0:06:14.240 -the conference - -0:06:11.199,0:06:15.280 -um follow-ups um like announcements for - -0:06:14.240,0:06:16.800 -example when we - -0:06:15.280,0:06:18.160 -put out the videos after the conference - -0:06:16.800,0:06:20.240 -we will make an announcement on that - -0:06:18.160,0:06:24.560 -list - -0:06:20.240,0:06:28.240 -and next up we have conduct guidelines - -0:06:24.560,0:06:30.240 -which are a series of - -0:06:28.240,0:06:32.479 -basically guidelines that we would very - -0:06:30.240,0:06:34.720 -much appreciate everyone - -0:06:32.479,0:06:36.240 -participating in the conference abide by - -0:06:34.720,0:06:38.240 -and um - -0:06:36.240,0:06:40.000 -to to help make you know the event a - -0:06:38.240,0:06:43.120 -great experience for everyone - -0:06:40.000,0:06:48.000 -um yeah I think that's about it - -0:06:43.120,0:06:51.440 -do you guys have anything else to add - -0:06:48.000,0:06:54.479 -gonna get so good alrighty um - -0:06:51.440,0:06:57.840 -so if you're just joining us once again - -0:06:54.479,0:07:00.960 -hello and welcome to EmacsConf 2020. - -0:06:57.840,0:07:01.599 -um I guess we'll go ahead and uh start - -0:07:00.960,0:07:05.840 -with - -0:07:01.599,0: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.sbv b/2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.sbv deleted file mode 100644 index 2971cc83..00000000 --- a/2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.sbv +++ /dev/null @@ -1,1968 +0,0 @@ -0:00:00.000,0:00:05.839 -(Amin: Alrighty, Leo Vivier, take it away.) - -0:00:03.760,0:00:06.879 -Okay, well, thank you. I'm in. So you've - -0:00:05.839,0:00:08.880 -just had a - -0:00:06.879,0:00:10.320 -little roundup of the news, and we're - -0:00:08.880,0:00:11.120 -going to get started now with some - -0:00:10.320,0:00:13.840 -presentations. - -0:00:11.120,0:00:15.920 -We're starting with user - -0:00:13.840,0:00:18.000 -developer stories. - -0:00:15.920,0:00:19.199 -I was extremely interested in this - -0:00:18.000,0:00:21.600 -section because I - -0:00:19.199,0:00:24.160 -wanted to get a chance, basically, to tell - -0:00:21.600,0:00:27.039 -you a little more about who I am and - -0:00:24.160,0:00:28.160 -how I got from basically being a user of - -0:00:27.039,0:00:30.640 -Emacs - -0:00:28.160,0:00:31.279 -to being nowadays a package - -0:00:30.640,0:00:33.280 -maintainer, - -0:00:31.279,0:00:34.559 -and maybe more in the future. I don't - -0:00:33.280,0:00:36.160 -know. So, - -0:00:34.559,0:00:37.760 -just for the organizers, I'm planning to - -0:00:36.160,0:00:39.680 -speak for 15 minutes, and I'll have five - -0:00:37.760,0:00:41.360 -more minutes of questions at the end. - -0:00:39.680,0:00:43.440 -As I told you before, if you want to have - -0:00:41.360,0:00:44.879 -questions, you know you can use the pad, - -0:00:43.440,0:00:47.360 -and I'll be reading the questions from - -0:00:44.879,0:00:49.600 -there. Okay. So - -0:00:47.360,0:00:51.280 -hi there, as Amin introduced me before, - -0:00:49.600,0:00:53.280 -my name is Leo Vivier. - -0:00:51.280,0:00:54.800 -I'm a freelance software engineer - -0:00:54.800,0:00:59.359 -in France, and I have been using Emacs - -0:00:58.079,0:01:01.280 -now for - -0:00:59.359,0:01:03.039 -i believe close to eight years. I can't - -0:01:01.280,0:01:07.680 -believe it's been so long. - -0:01:03.039,0:01:12.000 -But yes, it's been a journey because, - -0:01:07.680,0:01:14.560 -in a way, nothing - -0:01:12.000,0:01:15.119 -made me go for Emacs. You know I'm an-- - -0:01:15.119,0:01:19.200 -sorry, I was about to say Emacs major, but - -0:01:17.280,0:01:21.280 -no, I'm an English major. I went to - -0:01:19.200,0:01:24.320 -university to study English literature - -0:01:21.280,0:01:26.159 -and linguistics, and - -0:01:24.320,0:01:28.240 -I just got started in emacs - -0:01:26.159,0:01:31.340 -because I was looking for ways to take - -0:01:28.240,0:01:32.640 -better notes. I was looking for ways to - -0:01:31.340,0:01:34.640 -[Applause] - -0:01:32.640,0:01:36.720 -structure the way I was learning, - -0:01:34.640,0:01:40.079 -structure the way I was - -0:01:36.720,0:01:42.320 -taking notes. I stumbled one day - -0:01:40.079,0:01:43.759 -upon this weird piece of software which - -0:01:42.320,0:01:46.479 -was called Emacs, - -0:01:43.759,0:01:47.920 -and I've been trapped forever since, - -0:01:46.479,0:01:49.280 -basically, because - -0:01:47.920,0:01:51.119 -eight years ago, when I discovered - -0:01:49.280,0:01:52.720 -Emacs I just couldn't let go. There was - -0:01:51.119,0:01:55.439 -just something very - -0:01:52.720,0:01:56.320 -interesting about the way you configured - -0:01:55.439,0:01:58.799 -your setup, - -0:01:56.320,0:01:59.759 -and I just wanted to dive deeper and - -0:01:58.799,0:02:04.320 -deeper. - -0:01:59.759,0:02:06.640 -So the title is of this talk exactly is - -0:02:04.320,0:02:08.000 -how I went from user to package - -0:02:06.640,0:02:09.840 -maintainer, and - -0:02:08.000,0:02:11.599 -the package now that I'm maintaining is - -0:02:09.840,0:02:12.080 -called org-roam. I'm not the only one - -0:02:11.599,0:02:14.879 -doing this. - -0:02:12.080,0:02:15.440 -I'm helped with many lovely people - -0:02:15.440,0:02:21.360 -working on org-roam. - -0:02:18.720,0:02:23.360 -I got started as a maintainer - -0:02:21.360,0:02:24.720 -only this year, so that means that for - -0:02:23.360,0:02:27.360 -the eight years I've been - -0:02:24.720,0:02:29.200 -an Emacs user, seven of those years were - -0:02:27.360,0:02:31.040 -spent merely being a user - -0:02:29.200,0:02:33.920 -trying to be a sponge for knowledge, - -0:02:31.040,0:02:36.800 -trying to learn as much as I could. - -0:02:33.920,0:02:39.040 -I believe it would be - -0:02:36.800,0:02:40.959 -interesting for me to share my story - -0:02:39.040,0:02:42.160 -because I believe that I'm far from - -0:02:40.959,0:02:43.599 -being the only user - -0:02:42.160,0:02:45.519 -who can make the jump to being a - -0:02:43.599,0:02:46.879 -maintainer. A lot of you have - -0:02:45.519,0:02:48.959 -a lot of knowledge when it comes to - -0:02:46.879,0:02:51.040 -Emacs. Some of you - -0:02:48.959,0:02:52.720 -are at different steps in your journey. - -0:02:51.040,0:02:55.680 -Some of you, for instance, are just - -0:02:52.720,0:02:57.040 -starting to copy stuff out of - -0:02:55.680,0:02:59.519 -StackExchange - -0:02:57.040,0:03:00.720 -into your Emacs configuration. let's - -0:02:59.519,0:03:01.599 -say you want to do something very - -0:03:00.720,0:03:04.480 -particular - -0:03:01.599,0:03:05.920 -and you haven't found a way to do so. - -0:03:04.480,0:03:06.640 -You go on StackExchange. You find - -0:03:05.920,0:03:09.040 -something - -0:03:06.640,0:03:10.239 -that's interesting. You add it to your - -0:03:09.040,0:03:11.680 -Emacs configuration. You - -0:03:10.239,0:03:13.519 -barely understand anything that's going - -0:03:11.680,0:03:14.800 -on. You know that it's supposed to be - -0:03:13.519,0:03:17.200 -Emacs Lisp. - -0:03:14.800,0:03:19.440 -"I hardly know Emacs and I - -0:03:17.200,0:03:21.440 -know even less what is Lisp supposed to be." - -0:03:19.440,0:03:22.800 -But you paste it in and it does what you - -0:03:21.440,0:03:26.959 -want it to do, and you say - -0:03:22.800,0:03:29.280 -"Great, I'll move on to my work now." So - -0:03:26.959,0:03:30.879 -that's how I got started. I had - -0:03:29.280,0:03:33.440 -a very spartan - -0:03:30.879,0:03:35.200 -setup for Emacs, which a lot of you must - -0:03:33.440,0:03:36.000 -know... The first time you launch Emacs, - -0:03:36.000,0:03:39.599 -you have this feeling that you're jumping 20 - -0:03:37.840,0:03:43.680 -years back in time, as far as the - -0:03:39.599,0:03:45.920 -user interface is concerned. But - -0:03:43.680,0:03:46.959 -as you get to spend more time with Emacs... - -0:03:46.959,0:03:50.959 -Some would call it Stockholm syndrome - -0:03:49.120,0:03:53.360 -insofar as you can't see - -0:03:50.959,0:03:54.640 -how spartan the entire thing is, but it - -0:03:53.360,0:03:58.400 -actually is - -0:03:54.640,0:04:00.400 -a lovely prison so to speak. - -0:03:58.400,0:04:01.680 -That's how I got started eight years - -0:04:00.400,0:04:04.319 -ago. I just wanted - -0:04:01.680,0:04:05.519 -to find a way to do my research properly. - -0:04:04.319,0:04:07.280 -I wanted to have a - -0:04:05.519,0:04:08.959 -tool that I could use to write my notes - -0:04:07.280,0:04:11.680 -in plain text, because I was already - -0:04:08.959,0:04:14.560 -fairly averse to - -0:04:11.680,0:04:16.320 -Microsoft solutions when it - -0:04:14.560,0:04:19.359 -came to taking notes. - -0:04:16.320,0:04:20.880 -So yeah, I got started in emacs. I - -0:04:19.359,0:04:23.040 -read a little bit about what plain text - -0:04:20.880,0:04:26.000 -was about. Just to be clear, - -0:04:23.040,0:04:27.120 -at the time, yes, I was very good with - -0:04:26.000,0:04:30.160 -computers, - -0:04:27.120,0:04:32.479 -but I was not a computer science student. - -0:04:30.160,0:04:33.520 -I had barely any experience with - -0:04:32.479,0:04:36.080 -programming - -0:04:33.520,0:04:36.800 -and coding, and I was even less of a - -0:04:36.080,0:04:39.919 -hacker - -0:04:36.800,0:04:42.560 -back then. - -0:04:39.919,0:04:44.479 -It just goes to show you that at the - -0:04:42.560,0:04:45.840 -beginning, I had close to no knowledge, - -0:04:44.479,0:04:47.840 -whether it be about - -0:04:45.840,0:04:48.880 -the free software world, whether it be - -0:04:47.840,0:04:50.800 -about... - -0:04:48.880,0:04:52.479 -Sacha, do you want to say something? (Sacha: just - -0:04:50.800,0:04:54.080 -confirming, you're not sharing anything - -0:04:52.479,0:04:55.360 -on the screen at the moment, right?) - -0:04:54.080,0:04:55.759 -No, I'm not sharing anything, I'm - -0:04:55.360,0:04:59.040 -just - -0:04:55.759,0:05:02.240 -presenting. - -0:04:59.040,0:05:03.680 -So when I started, I had no - -0:05:02.240,0:05:07.199 -experience whatsoever. - -0:05:03.680,0:05:10.080 -I was just a literature major - -0:05:07.199,0:05:11.039 -trying to get better at taking notes. - -0:05:11.039,0:05:15.280 -I stumbled upon LaTeX. As many people - -0:05:13.440,0:05:17.039 -who stumble upon LaTeX know, - -0:05:15.280,0:05:19.759 -you don't just stumble upon - -0:05:17.039,0:05:21.199 -LaTeX, you embroil yourself in the - -0:05:19.759,0:05:24.560 -turmoil of - -0:05:21.199,0:05:27.440 -suffering, of late nights tweaking, - -0:05:24.560,0:05:30.000 -so that your document is exactly in the - -0:05:27.440,0:05:33.440 -perfect shape you want it to be. - -0:05:33.440,0:05:36.639 -Soon after, when I got started with Emacs - -0:05:35.520,0:05:38.400 -and LaTeX, - -0:05:36.639,0:05:40.560 -I discovered something that truly - -0:05:38.400,0:05:44.479 -changed my life, and it was Org Mode. - -0:05:40.560,0:05:46.960 -As you'll get a lot of presentations - -0:05:44.479,0:05:49.360 -this afternoon about Org Mode, - -0:05:46.960,0:05:50.479 -I won't be spending too much time on it. - -0:05:49.360,0:05:53.680 -But Org Mode, - -0:05:50.479,0:05:56.880 -for me, was a revelation. It's... - -0:05:53.680,0:05:59.039 -There was something that, upon reading - -0:05:56.880,0:06:02.080 -articles on how to use Org Mode, - -0:05:59.039,0:06:04.160 -especially one of the key - -0:06:02.080,0:06:06.000 -article that I'd read which really made - -0:06:04.160,0:06:09.199 -a huge impact on me - -0:06:06.000,0:06:10.720 -was the "Organize Your Life in Plain Text" one - -0:06:09.199,0:06:12.240 -which i'm sure many of you must have - -0:06:10.720,0:06:15.919 -stumbled upon - -0:06:12.240,0:06:18.720 -in your Emacs journey... - -0:06:15.919,0:06:19.680 -For me, when I stumbled upon - -0:06:18.720,0:06:21.840 -this - -0:06:19.680,0:06:23.440 -document, I was starting to get - -0:06:21.840,0:06:24.240 -interested in Getting Things - -0:06:23.440,0:06:26.560 -Done and - -0:06:24.240,0:06:29.199 -all the nitty-gritty stuff about - -0:06:26.560,0:06:31.919 -organization and self-organization. - -0:06:29.199,0:06:32.960 -It just felt like everything was under - -0:06:31.919,0:06:36.960 -my fingertips - -0:06:32.960,0:06:40.880 -to make the perfect workflow. - -0:06:36.960,0:06:44.080 -There was something incredibly - -0:06:40.880,0:06:46.319 -satisfying about - -0:06:44.080,0:06:48.319 -having a system that gave you so many - -0:06:46.319,0:06:50.160 -options to configure your experience - -0:06:48.319,0:06:54.479 -exactly how you wanted. - -0:06:50.160,0:06:57.199 -You had this feeling that - -0:06:54.479,0:06:57.599 -the people behind Org Mode had thought - -0:06:57.199,0:07:00.479 -of everything, - -0:06:57.599,0:07:02.000 -whichever small adjustment - -0:07:00.479,0:07:04.800 -that you needed in workflow - -0:07:02.000,0:07:05.440 -whether it be more states for your - -0:07:04.800,0:07:07.520 -TODOs, - -0:07:05.440,0:07:09.360 -whether it be, oh, I want my weeks to - -0:07:07.520,0:07:13.039 -start on Monday and not on Saturday, - -0:07:09.360,0:07:13.520 -oh, it's half past one and I need - -0:07:13.039,0:07:15.280 -to... - -0:07:13.520,0:07:17.039 -in the morning, I mean, and I need to make - -0:07:15.280,0:07:17.680 -sure that the item that i'm marking as done - -0:07:17.680,0:07:21.199 -is done for the day before and not for - -0:07:19.199,0:07:21.919 -the current day. You see what I'm talking about. - -0:07:21.919,0:07:28.800 -So many details that were already - -0:07:25.280,0:07:31.039 -present in Org Mode. At first you're - -0:07:28.800,0:07:34.080 -really impressed, because you think, - -0:07:31.039,0:07:35.599 -wow, they thought of everything, but then - -0:07:34.080,0:07:38.080 -you realize that it's just a matter of - -0:07:35.599,0:07:40.800 -experience, just a matter of people - -0:07:38.080,0:07:42.400 -contributing code, because the - -0:07:40.800,0:07:43.520 -development of Org Mode, Emacs, and - -0:07:42.400,0:07:45.440 -everything is just - -0:07:43.520,0:07:46.879 -open to the public. You know, it's like - -0:07:45.440,0:07:48.560 -everything is being done with the garage - -0:07:46.879,0:07:50.960 -door opened. You can just - -0:07:48.560,0:07:51.680 -go on Org Mode on Savannah and see - -0:07:50.960,0:07:54.800 -everything that is being developed. - -0:07:54.800,0:08:02.639 -For me, the shift that occurred - -0:07:58.639,0:08:04.240 -in my mind was when - -0:08:02.639,0:08:06.240 -I was reading all the options, I - -0:08:04.240,0:08:08.160 -was looking at all the variables that i - -0:08:06.240,0:08:11.440 -could modify for Org Mode, - -0:08:08.160,0:08:12.560 -and there came a time, maybe two to three - -0:08:11.440,0:08:15.599 -years ago, - -0:08:12.560,0:08:17.759 -where I thought, oh wow, - -0:08:15.599,0:08:19.599 -maybe for the first time in a while, - -0:08:17.759,0:08:21.440 -there is no option for me to do what I - -0:08:19.599,0:08:24.479 -want to be doing with Org Mode. - -0:08:21.440,0:08:26.400 -I believe at the time the the key - -0:08:24.479,0:08:29.199 -issue that triggered this reflex for me was - -0:08:29.199,0:08:33.599 -I wanted to do something with the agenda. - -0:08:31.039,0:08:34.159 -I wanted to have a super category so, you - -0:08:33.599,0:08:36.320 -know, in the... - -0:08:34.159,0:08:38.000 -for those of you who know, in your - -0:08:36.320,0:08:39.440 -agenda, you have the ability to have many - -0:08:38.000,0:08:41.200 -files, and you have the ability to have - -0:08:39.440,0:08:44.560 -categories. - -0:08:41.200,0:08:47.920 -I wanted somehow to group my - -0:08:47.920,0:08:52.560 -TODOs in smaller groups, or bigger - -0:08:51.680,0:08:53.920 -groups, I should say, - -0:08:52.560,0:08:55.440 -so that, for instance, I could have one - -0:08:53.920,0:08:56.000 -group for my professional life, I could - -0:08:55.440,0:08:59.120 -have a group - -0:08:56.000,0:08:59.600 -for one work, the second - -0:08:59.120,0:09:00.800 -work... - -0:08:59.600,0:09:02.800 -I could have something for - -0:09:00.800,0:09:06.000 -university and all this. - -0:09:02.800,0:09:08.240 -I thought, yeah, - -0:09:06.000,0:09:09.600 -I think I'd like this. - -0:09:09.600,0:09:15.519 -After having spent so long working - -0:09:12.959,0:09:17.200 -with Emacs and working with Org Mode, - -0:09:15.519,0:09:18.800 -I had some ideas about what was - -0:09:17.200,0:09:21.120 -within the realm of possibility and what - -0:09:18.800,0:09:23.040 -wasn't. Here I thought to myself, - -0:09:21.120,0:09:24.320 -this is definitely something that I can do. - -0:09:24.320,0:09:31.360 -And so thus started my journey - -0:09:27.839,0:09:33.040 -into the Org Mode libraries. - -0:09:31.360,0:09:34.959 -I won't go too much into details right - -0:09:33.040,0:09:37.040 -now, because right now, the main objective - -0:09:34.959,0:09:40.240 -that I have is just to show you - -0:09:37.040,0:09:41.600 -how simple it is to become a maintainer, - -0:09:40.240,0:09:42.800 -how to become more involved with the - -0:09:41.600,0:09:46.320 -development. - -0:09:42.800,0:09:48.839 -The libraries in Org Mode, - -0:09:46.320,0:09:50.320 -they're written in Elisp, which is a very... - -0:09:50.320,0:09:54.080 -It might seem like an obscure language, - -0:09:52.080,0:09:56.399 -and it certainly is, - -0:09:54.080,0:09:57.279 -but as soon as you get the logic of the - -0:09:56.399,0:09:59.360 -language--and - -0:09:57.279,0:10:00.560 -what i'm telling you - -0:09:59.360,0:10:01.760 -is coming from someone who's never - -0:10:00.560,0:10:04.399 -studied programming-- - -0:10:01.760,0:10:06.079 -it made sense. - -0:10:04.399,0:10:07.279 -Everything is so verbose when you get - -0:10:06.079,0:10:10.399 -into the code. - -0:10:07.279,0:10:13.360 -When you learn the rudiments - -0:10:10.399,0:10:14.079 -of Elisp, you start getting to the code, - -0:10:13.360,0:10:17.120 -and you start - -0:10:14.079,0:10:19.519 -thinking, wow, okay that makes sense, - -0:10:17.120,0:10:21.360 -and you start developing a logic - -0:10:19.519,0:10:24.720 -for all this. - -0:10:21.360,0:10:26.959 -So, equipped as I was with this - -0:10:24.720,0:10:27.760 -new knowledge, I went on my project, - -0:10:27.760,0:10:30.880 -i went into the Org agenda code, - -0:10:30.000,0:10:33.440 -and I thought, okay, - -0:10:30.880,0:10:34.640 -is there anything that I can use to do - -0:10:33.440,0:10:37.760 -my bidding? - -0:10:34.640,0:10:38.560 -Fast forward maybe two to three weeks of - -0:10:38.560,0:10:42.720 -intense turmoil and many nights which - -0:10:41.600,0:10:45.279 -were spent - -0:10:42.720,0:10:46.079 -single-mindedly working on this project, - -0:10:46.079,0:10:51.680 -two weeks after, I had something that was - -0:10:48.079,0:10:54.640 -working, and I was pretty happy about it. - -0:10:51.680,0:10:56.800 -That was a key landmark for - -0:10:54.640,0:11:00.320 -me, because when that happened, - -0:10:56.800,0:11:02.160 -it just felt like, okay, I can contribute - -0:11:00.320,0:11:03.120 -something to Org Mode, and I can do - -0:11:02.160,0:11:06.000 -something that would benefit as many people - -0:11:06.000,0:11:09.519 -as possible. - -0:11:07.600,0:11:11.440 -And to me, that was the click. That's when - -0:11:09.519,0:11:13.680 -it occurred. That's when I - -0:11:11.440,0:11:14.640 -went on my first project and I did something - -0:11:14.640,0:11:18.079 -that felt useful to the community. - -0:11:18.079,0:11:21.760 -And nowadays, as I told you, I - -0:11:20.079,0:11:22.640 -maintain packages, but really, nothing - -0:11:21.760,0:11:24.399 -has changed. - -0:11:22.640,0:11:26.880 -The only thing, maybe, that has changed - -0:11:24.399,0:11:28.320 -that I've turned my mind onto other problems. - -0:11:28.320,0:11:35.279 -Maybe I've got three more minutes - -0:11:32.000,0:11:38.399 -and I'd like to finish by - -0:11:35.279,0:11:39.600 -maybe something a little different. - -0:11:38.399,0:11:42.079 -I've told you my Emacs story and - -0:11:39.600,0:11:43.600 -I hope I've stressed how little effort - -0:11:42.079,0:11:46.560 -it took me to - -0:11:43.600,0:11:48.399 -move from steps to steps on the ladder. - -0:11:46.560,0:11:48.959 -The ladder implies a sense of hierarchy, - -0:11:48.399,0:11:52.240 -but it really isn't. - -0:11:48.959,0:11:53.920 -Whatever your step on the - -0:11:52.240,0:11:55.600 -journey of Emacs is... - -0:11:53.920,0:11:57.440 -Some of you might be at the - -0:11:55.600,0:11:59.360 -step where you're really worried - -0:11:57.440,0:12:01.440 -about learning Elisp because it feels - -0:11:59.360,0:12:02.399 -like such a monumental task to be - -0:12:01.440,0:12:04.720 -undertaking - -0:12:02.399,0:12:06.079 -and you have no experience whatsoever, - -0:12:04.720,0:12:07.839 -but the thing is, - -0:12:06.079,0:12:09.600 -maybe you could try climbing this first - -0:12:07.839,0:12:11.200 -step on the ladder. Maybe you could try, - -0:12:09.600,0:12:13.120 -if you have any project, - -0:12:11.200,0:12:14.880 -if you've been using Org Mode, - -0:12:13.120,0:12:15.600 -maybe one day you thought, "oh, yes, - -0:12:15.600,0:12:19.920 -I wish I could do this but I can't," - -0:12:18.160,0:12:21.680 -or maybe do try to do this, - -0:12:19.920,0:12:23.279 -maybe do try to change something in a - -0:12:21.680,0:12:26.560 -major mode that you're using - -0:12:23.279,0:12:29.760 -and which you feel might be better. - -0:12:26.560,0:12:31.040 -I think Emacs, Org Mode, and all free - -0:12:29.760,0:12:34.240 -software in general - -0:12:31.040,0:12:34.720 -has this tendency to give you this idea - -0:12:34.720,0:12:41.360 -that I can be a hacker - -0:12:38.720,0:12:43.200 -in the sense of the term - -0:12:41.360,0:12:46.320 -that you're modifying things - -0:12:43.200,0:12:48.399 -to do your bidding. - -0:12:46.320,0:12:50.320 -For me, I believe this to be a very - -0:12:48.399,0:12:52.959 -healthy attitude towards software. - -0:12:50.320,0:12:54.079 -As Amin said in the very beginning, - -0:12:54.079,0:12:59.360 -we are doing this entire presentation-- - -0:12:57.279,0:13:00.800 -sorry, this entire conference with free software. - -0:13:00.800,0:13:03.920 -Just see all the things we've been able - -0:13:02.240,0:13:07.360 -to do in free software. - -0:13:03.920,0:13:10.399 -For me, Emacs - -0:13:07.360,0:13:14.399 -was my gateway, so to speak, - -0:13:10.399,0:13:17.200 -into how to contribute to free software, - -0:13:14.399,0:13:18.639 -about the philosophy that surrounds it. - -0:13:18.639,0:13:22.000 -What I would like to do... I'll finish - -0:13:20.560,0:13:23.360 -on this note and then I'll be taking - -0:13:22.000,0:13:26.480 -your questions. - -0:13:23.360,0:13:29.360 -Just try. - -0:13:26.480,0:13:31.279 -You've read on Reddit that you - -0:13:29.360,0:13:33.040 -need to go through the Elisp manual - -0:13:31.279,0:13:35.920 -in Emacs. You might be scared, - -0:13:33.040,0:13:38.560 -but just do it. Just give it a shot. - -0:13:35.920,0:13:39.199 -Just give it maybe one afternoon. - -0:13:38.560,0:13:42.160 -Try to read it. - -0:13:39.199,0:13:43.120 -Try to see if this appeals to your mind. - -0:13:43.120,0:13:45.680 -If you've been interested enough in my - -0:13:44.399,0:13:47.199 -presentation right now, and if you're - -0:13:45.680,0:13:48.560 -interested enough in any of the talks - -0:13:47.199,0:13:49.519 -you're going to have during the entire - -0:13:48.560,0:13:51.839 -conference, - -0:13:49.519,0:13:52.959 -do give it a shot. I'm pretty sure - -0:13:51.839,0:13:55.760 -you will like the journey - -0:13:52.959,0:13:57.120 -on which you will be embarking upon. So i - -0:13:55.760,0:13:57.680 -believe i'm finishing one minute early - -0:13:57.120,0:14:00.000 -but I see quite a bit of questions already. - -0:14:01.040,0:14:06.000 -I'm not sure. Sacha, should I - -0:14:04.320,0:14:07.120 -just be reading the questions, or - -0:14:06.000,0:14:08.639 -do you want to be feeding me the - -0:14:07.120,0:14:11.120 -questions? - -0:14:08.639,0:14:12.320 -(Amin: It's really up to you. it's - -0:14:11.120,0:14:13.600 -completely up to you. - -0:14:12.320,0:14:15.839 -If you've got the questions - -0:14:13.600,0:14:18.320 -open and can take them or read them, - -0:14:15.839,0:14:19.680 -by all means please.) - -0:14:18.320,0:14:20.880 -Okay, well, I'm going to read them because - -0:14:19.680,0:14:22.800 -I've got them on the side. I'm going - -0:14:20.880,0:14:24.959 -to start with the one at the bottom. - -0:14:22.800,0:14:26.959 -"Do you feel that being a white male - -0:14:24.959,0:14:29.680 -contributed to your experience?" - -0:14:26.959,0:14:31.360 -Yeah. I mean, I do believe... There's - -0:14:29.680,0:14:34.639 -an idea of privilege. I mean, I'm - -0:14:31.360,0:14:35.279 -french. I live in... I'm lucky enough to - -0:14:34.639,0:14:38.560 -be here - -0:14:35.279,0:14:39.120 -at university, okay, and I'm fairly aware - -0:14:38.560,0:14:41.600 -of the - -0:14:39.120,0:14:42.880 -discrepancies that happen, even in France, - -0:14:41.600,0:14:46.320 -according to this... - -0:14:42.880,0:14:51.040 -So, yes, I believe my journey - -0:14:46.320,0:14:51.040 -was heavily influenced by this. - -0:14:51.199,0:14:54.320 -If you would like to specify the - -0:14:52.639,0:14:56.560 -question, please do, but I don't have - -0:14:54.320,0:14:59.199 -really all that much to ask on this. - -0:14:56.560,0:14:59.839 -"What is your advice to start learning - -0:14:59.839,0:15:04.160 -Elisp language? Any particularly good - -0:15:01.279,0:15:06.880 -resource or any other tips?" I finished - -0:15:04.160,0:15:07.760 -um my presentation by telling you about - -0:15:07.760,0:15:11.519 -the Elisp introduction which is built into - -0:15:10.560,0:15:13.519 -Emacs. What I might do... I'm going to share my - -0:15:13.519,0:15:19.519 -screen just to show you - -0:15:15.120,0:15:22.880 -how this works. I will be sharing - -0:15:19.519,0:15:24.399 -this window. - -0:15:22.880,0:15:27.199 -I believe it's frozen on my end, so I - -0:15:24.399,0:15:28.959 -can't see anything. - -0:15:27.199,0:15:31.680 -i'm not sure if you can see me or if my - -0:15:28.959,0:15:31.680 -camera is moving. - -0:15:32.560,0:15:36.000 -Okay, so my Firefox is frozen. So i'll - -0:15:34.800,0:15:36.800 -answer the question, but I won't be able - -0:15:36.000,0:15:40.000 -to show you - -0:15:36.800,0:15:42.639 -what I wanted to show you. - -0:15:40.000,0:15:44.320 -There's a built-in guide inside Emacs to - -0:15:42.639,0:15:46.880 -learn Elisp. - -0:15:44.320,0:15:49.040 -Maybe the best chance that you have - -0:15:46.880,0:15:50.959 -is just to go open these info pages. - -0:15:49.040,0:15:53.839 -I'm sure someone will be kind enough to - -0:15:50.959,0:15:54.880 -mention this to you in the #emacsconf channel - -0:15:53.839,0:15:56.880 -on IRC - -0:15:54.880,0:15:59.040 -but it's probably the best way - -0:15:56.880,0:16:01.279 -to get started with Elisp. - -0:15:59.040,0:16:03.360 -You know, we tend to get obsessed, with - -0:16:01.279,0:16:04.880 -software and with programming, about - -0:16:03.360,0:16:06.959 -what's the best way to get started. - -0:16:04.880,0:16:08.399 -You see so many people who are - -0:16:06.959,0:16:10.639 -heavily interested - -0:16:08.399,0:16:12.320 -in getting started with programming but - -0:16:10.639,0:16:14.320 -they never managed to get started - -0:16:12.320,0:16:16.320 -because there's so much choice. - -0:16:14.320,0:16:17.920 -My advice would be to just get started. - -0:16:16.320,0:16:18.800 -Don't get so worried about the first step. - -0:16:18.800,0:16:23.920 -Well, if I may still recommend the - -0:16:21.839,0:16:26.480 -first step, even after saying this, - -0:16:23.920,0:16:28.000 -do try to start with the - -0:16:26.480,0:16:29.600 -built-in guides. I believe they're pretty - -0:16:28.000,0:16:32.079 -pretty good. - -0:16:29.600,0:16:33.199 -There was another question. It's - -0:16:32.079,0:16:34.800 -the last question that I can read and - -0:16:33.199,0:16:36.000 -after that, you will have to read - -0:16:34.800,0:16:37.920 -the questions for me because everything - -0:16:36.000,0:16:41.600 -is frozen on my end. - -0:16:37.920,0:16:44.240 -I hope I'm not frozen - -0:16:41.600,0:16:45.680 -in a very bad position so - -0:16:44.240,0:16:48.240 -please excuse me if - -0:16:45.680,0:16:49.759 -my mouth is open or anything. (Amin: no, we - -0:16:48.240,0:16:51.120 -just completely lost the video feed, so - -0:16:49.759,0:16:52.720 -no worries.) - -0:16:51.120,0:16:54.800 -Oh, splendid, so I won't have to make a - -0:16:52.720,0:16:56.800 -fool out of myself. - -0:16:54.800,0:16:58.320 -So the last question I wanted to answer was - -0:16:56.800,0:16:59.199 -"Have you read Dirk Gently's Holistic - -0:16:58.320,0:17:02.079 -Detective Agency?" - -0:16:59.199,0:17:03.519 -No, I haven't. I hope it's not - -0:17:03.519,0:17:06.559 -a jab at the way i'm dressing for the - -0:17:05.199,0:17:08.559 -conference, but yeah, - -0:17:06.559,0:17:10.559 -I haven't read it. Was there any - -0:17:08.559,0:17:13.919 -other question? - -0:17:10.559,0:17:15.919 -(Amin: I see one other question. - -0:17:15.919,0:17:19.679 -"Any recommendation for good packaging - -0:17:17.919,0:17:23.199 -guides or places to start? - -0:17:19.679,0:17:24.959 -i get a bit overwhelmed by some things. - -0:17:23.199,0:17:26.799 -For example, the choice of different test - -0:17:24.959,0:17:28.240 -frameworks.") - -0:17:26.799,0:17:30.400 -Right. Okay. So that's a very good - -0:17:28.240,0:17:33.840 -question. I believe - -0:17:30.400,0:17:35.840 -alphapapa is in the chat right now. - -0:17:33.840,0:17:37.760 -As myself a new lisp developer for - -0:17:35.840,0:17:38.320 -org-roam, i'd really recommend you to look into - -0:17:38.320,0:17:42.799 -his package developers' guide because you - -0:17:40.640,0:17:44.559 -have a list of all the softwares that - -0:17:42.799,0:17:45.760 -are extremely useful to be using when - -0:17:44.559,0:17:48.000 -you're getting started. - -0:17:45.760,0:17:50.000 -If you're looking into a first - -0:17:48.000,0:17:52.640 -step for how to develop - -0:17:50.000,0:17:53.520 -elast package, i'd really advise you to - -0:17:52.640,0:17:56.559 -look into edebug. - -0:17:53.520,0:17:58.000 -It's one word, edebug, - -0:17:56.559,0:17:58.400 -and you have a section in the manual for this, - -0:17:58.400,0:18:01.919 -because for me, it was the key step to - -0:18:00.799,0:18:04.320 -getting to - -0:18:01.919,0:18:05.679 -develop good packages. It was - -0:18:04.320,0:18:06.160 -understanding basically what the code did - -0:18:06.160,0:18:09.919 -and having us something like a - -0:18:08.960,0:18:11.760 -REPL (read-evaluate-print-loop) - -0:18:09.919,0:18:13.360 -that allows you to step through the code - -0:18:11.760,0:18:13.919 -and see exactly which states the - -0:18:13.360,0:18:16.000 -variables are at which at this point in the - -0:18:16.000,0:18:20.080 -program. That's really my biggest advice - -0:18:18.400,0:18:21.200 -to you - -0:18:20.080,0:18:24.400 -[Music] - -0:18:21.200,0:18:26.160 -Any other question? Thanks. Yeah, I see one - -0:18:24.400,0:18:28.240 -or two more. - -0:18:26.160,0:18:30.080 -So there's one. They ask, "How did the - -0:18:28.240,0:18:33.120 -freedom of Emacs help you on - -0:18:30.080,0:18:36.480 -your way?" - -0:18:33.120,0:18:38.080 -So the freedom of Emacs... I mentioned - -0:18:36.480,0:18:40.320 -that Emacs, for me, was my gateway - -0:18:38.080,0:18:41.360 -into free software and the freedom of - -0:18:40.320,0:18:43.840 -Emacs was that - -0:18:41.360,0:18:44.960 -you could maybe... First and foremost, - -0:18:43.840,0:18:47.840 -compared to - -0:18:44.960,0:18:48.400 -other software, was that you had - -0:18:47.840,0:18:51.039 -behind Emacs, - -0:18:48.400,0:18:52.400 -Elisp, which allows you to read the code, - -0:18:51.039,0:18:53.039 -read whatever is going on in the - -0:18:52.400,0:18:54.640 -background. - -0:18:53.039,0:18:56.160 -Surely, if you go deep enough, you'll - -0:18:54.640,0:18:58.000 -end up on - -0:18:56.160,0:18:59.679 -C functions that you might not be able to - -0:18:58.000,0:19:02.000 -read if you do not have the experience. - -0:18:59.679,0:19:03.520 -But for Org Mode, which was my gateway - -0:19:02.000,0:19:06.400 -into Emacs, - -0:19:03.520,0:19:08.240 -most of it is written in Elisp, and all - -0:19:06.400,0:19:10.080 -the commands have a very verbose - -0:19:08.240,0:19:13.440 -name, like something simple as - -0:19:10.080,0:19:15.840 -org go to next subtree or - -0:19:13.440,0:19:16.880 -org go to a parent subtree. You know, things - -0:19:15.840,0:19:20.240 -like this. - -0:19:16.880,0:19:22.799 -It's so elegant. It's verbose. - -0:19:20.240,0:19:24.320 -That's a sense of freedom - -0:19:22.799,0:19:26.160 -insofar as you can go into the code and - -0:19:24.320,0:19:28.640 -see, oh, okay, that's how it's implemented. - -0:19:26.160,0:19:30.400 -I believe in a way that's the freedom - -0:19:28.640,0:19:31.600 -and the liberty that is given to you to - -0:19:30.400,0:19:33.039 -look into the code - -0:19:31.600,0:19:34.640 -is something that invites you to do the - -0:19:33.039,0:19:35.200 -same with your life. As - -0:19:34.640,0:19:36.559 -someone who - -0:19:35.200,0:19:38.080 -does a little bit of philosophy on the - -0:19:36.559,0:19:38.799 -side, I believe it's a very healthy - -0:19:38.080,0:19:42.320 -message - -0:19:38.799,0:19:45.440 -to be gathering from a piece of software. - -0:19:42.320,0:19:50.720 -(Amin: Awesome, thank you. - -0:19:45.440,0:19:50.720 -Let's see... So we have... - -0:19:50.960,0:19:55.200 -I think I saw another question pop up.) - -0:19:57.200,0:19:59.760 -I'm not sure how we're doing as far - -0:19:58.559,0:20:02.080 -as time is concerned... I believe we - -0:19:59.760,0:20:04.240 -have like one or two minutes more. - -0:20:02.080,0:20:05.679 -(Amin: Yeah, actually, we're quite a bit - -0:20:04.240,0:20:07.840 -ahead of the schedule, so if we take a - -0:20:05.679,0:20:09.440 -little bit longer, we're fine. - -0:20:07.840,0:20:11.280 -If you do have more - -0:20:09.440,0:20:12.880 -questions, please do.) I'm just sorry that - -0:20:11.280,0:20:16.000 -my video is not working anymore. - -0:20:12.880,0:20:17.120 -(Amin: No problem. Someone was - -0:20:16.000,0:20:21.120 -actually saying... - -0:20:17.120,0:20:24.159 -What's the most recent... - -0:20:21.120,0:20:25.919 -Actually, yeah well before that. - -0:20:24.159,0:20:27.440 -"Please show off your three-piece suit - -0:20:25.919,0:20:30.080 -before you end your talk, - -0:20:27.440,0:20:31.919 -which requires fixing your frozen camera. - -0:20:30.080,0:20:34.000 -if this is not possible, please post - -0:20:31.919,0:20:36.240 -suit selfies in an easily accessible - -0:20:34.000,0:20:38.720 -location." - -0:20:36.240,0:20:40.559 -Okay, I'll make sure to do this. But yes, I - -0:20:38.720,0:20:41.200 -wanted to hype things up for the - -0:20:40.559,0:20:43.039 -conference, - -0:20:41.200,0:20:44.400 -so yes I did get the three-piece suit out. - -0:20:43.039,0:20:45.919 -I'm very glad - -0:20:44.400,0:20:47.760 -you like it. By the way when you get - -0:20:45.919,0:20:50.080 -a chance to see me live again, - -0:20:47.760,0:20:51.280 -do appreciate that my tie has both the - -0:20:50.080,0:20:53.679 -colors of Emacs purple - -0:20:51.280,0:20:54.960 -and also Org Mode green. - -0:20:53.679,0:20:55.760 -It took me a while to find this one, so I - -0:20:55.760,0:20:58.880 -hope you will appreciate this. - -0:21:00.840,0:21:06.880 -(Amin: Awesome. Let's see. We have - -0:21:03.679,0:21:08.960 -one other question. "What's the - -0:21:06.880,0:21:10.159 -most recent Emacs package or tool that - -0:21:08.960,0:21:14.480 -you've discovered - -0:21:10.159,0:21:17.600 -that you've added to your repertoire?") - -0:21:14.480,0:21:20.320 -Very interesting question. - -0:21:17.600,0:21:20.799 -The thing is, - -0:21:20.799,0:21:23.919 -when you've spent as long as I have on - -0:21:22.320,0:21:25.120 -Emacs--and I know that I've only spent - -0:21:23.919,0:21:28.799 -eight years and some of you - -0:21:25.120,0:21:30.000 -might have spent maybe 10, 20, maybe even - -0:21:28.799,0:21:32.799 -more years on Emacs-- - -0:21:30.000,0:21:35.120 -but for me, I believe the the coolest - -0:21:32.799,0:21:38.200 -neat trick that I found in Emacs was - -0:21:35.120,0:21:40.080 -a mode which is called beacon-mode. - -0:21:40.080,0:21:43.679 -It's something that allows - -0:21:42.559,0:21:45.120 -you to show - -0:21:43.679,0:21:46.960 -when you're jumping between buffers or - -0:21:45.120,0:21:49.760 -when you're dropping between windows, - -0:21:46.960,0:21:51.520 -it shows exactly where your point is in - -0:21:49.760,0:21:53.840 -that buffer by making - -0:21:51.520,0:21:55.440 -a slight ray of light which looks like a - -0:21:53.840,0:21:57.760 -beacon, hence the name. - -0:21:55.440,0:21:59.520 -It really helps you navigate buffers - -0:21:57.760,0:22:01.760 -because it always shows in a very - -0:21:59.520,0:22:03.520 -visual way where your point is. - -0:22:01.760,0:22:04.640 -I'll get a chance to show this to - -0:22:03.520,0:22:08.720 -you later today - -0:22:04.640,0:22:08.720 -when i'll be presenting my other talks. - -0:22:10.159,0:22:16.880 -(Amin: AWesome. - -0:22:13.840,0:22:20.159 -We have one question - -0:22:16.880,0:22:20.880 -from Jonas, the maintainer - -0:22:20.159,0:22:24.720 -from Magit. - -0:22:20.880,0:22:26.880 -He asks, "When you touched your - -0:22:24.720,0:22:29.600 -webcam, that blew a fuse at my place. - -0:22:26.880,0:22:29.600 -How did you do that?") - -0:22:29.760,0:22:32.960 -Well, I'm very sorry, Jonas, that it - -0:22:31.600,0:22:36.000 -happened to you, but i'll make sure not - -0:22:32.960,0:22:36.000 -to touch my webcam again. - -0:22:36.960,0:22:43.919 -(Amin: Do we have any other questions?) - -0:22:41.600,0:22:45.840 -I have to trust you on this one. - -0:22:43.919,0:22:46.960 -I'm really sorry. Everything is frozen - -0:22:45.840,0:22:48.720 -on my end. - -0:22:46.960,0:22:49.940 -(Amin: No problem. Yeah i'm more talking to the - -0:22:48.720,0:22:51.520 -audience, I guess.) - -0:22:49.940,0:22:55.120 -[Music] - -0:22:51.520,0:22:56.960 -I hope my lack of - -0:22:55.120,0:22:58.159 -slides didn't bother you. I really - -0:22:56.960,0:23:01.039 -wanted to have this - -0:22:58.159,0:23:01.600 -verbose time with people, to be - -0:23:01.039,0:23:04.880 -able to... - -0:23:01.600,0:23:05.280 -it's a message that i've been trying - -0:23:04.880,0:23:06.960 -to share with as many people as possible. - -0:23:08.640,0:23:14.159 -In france we do have an Emacs workshop - -0:23:11.760,0:23:16.000 -that we have on a monthly basis. - -0:23:14.159,0:23:18.960 -I've been learning a lot - -0:23:16.000,0:23:20.400 -with those people and I felt like - -0:23:18.960,0:23:22.480 -doing the same with Emacs conference - -0:23:20.400,0:23:24.000 -would be good. That's why i'm really - -0:23:22.480,0:23:25.120 -happy, and I'm really lucky to have had - -0:23:24.000,0:23:27.919 -the chance to - -0:23:25.120,0:23:29.200 -do this today. I hope some of you - -0:23:27.919,0:23:31.679 -I've convinced you - -0:23:29.200,0:23:34.480 -of climbing up a step on a ladder or - -0:23:31.679,0:23:37.280 -making a step in a journey. - -0:23:34.480,0:23:38.080 -(Amin: Absolutely. Thank you so much, Leo. - -0:23:38.080,0:23:41.279 -I happen to completely agree - -0:23:41.279,0:23:45.600 -with your not necessarily using a slide - -0:23:43.600,0:23:48.480 -when it's not really needed - -0:23:45.600,0:23:49.200 -and to help give some face-to-face time - -0:23:49.200,0:23:53.520 -with the audience. Unfortunately - -0:23:51.840,0:23:55.200 -your webcam cut out, but I mean - -0:23:53.520,0:23:57.279 -before that.) - -0:23:55.200,0:23:59.679 -Yes, I'll make sure to fix the problems - -0:23:57.279,0:24:02.240 -later on, so don't worry about it. - -0:23:59.679,0:24:03.200 -(Amin: Awesome. Alrighty. I guess we're - -0:24:02.240,0:24:06.400 -wrapping up - -0:24:03.200,0:24:08.000 -for your talk and getting ready for the - -0:24:06.400,0:24:10.000 -next talk.) - -0:24:08.000,0:24:11.760 -Sure. Well, thank you so much. I'll see - -0:24:10.000,0:24:16.799 -you all later, I suppose! - -0:24:11.760,0:24:16.799 -(Amin: Sounds good. Thank you again, Leo. Bye-bye) - diff --git a/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.sbv b/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.sbv deleted file mode 100644 index 239cf0e3..00000000 --- a/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.sbv +++ /dev/null @@ -1,606 +0,0 @@ -0:00:02.000,0:00:04.799 -Hello, everyone, and welcome to the EmacsConf. - -0:00:04.799,0:00:09.599 -I am Jonathan. In this talk I'm going - -0:00:07.200,0:00:10.880 -to demonstrate ways of producing sheet - -0:00:09.599,0:00:14.320 -music in Emacs - -0:00:10.880,0:00:18.400 -using Lilypond, and maybe also convince - -0:00:14.320,0:00:18.400 -you to use Emacs for writing your scores. - -0:00:18.640,0:00:22.240 -I'll start with an overview of the - -0:00:20.400,0:00:24.400 -syntax for those who are new to using - -0:00:22.240,0:00:26.800 -text-based notation - -0:00:24.400,0:00:28.800 -as a shallow dive into the deep pond of - -0:00:26.800,0:00:30.800 -lilies and Lilypond, - -0:00:28.800,0:00:32.960 -and move on to showcase some of its - -0:00:30.800,0:00:36.320 -functionalities using Org Mode - -0:00:32.960,0:00:40.480 -and lilypond-mode. One disclaimer, - -0:00:36.320,0:00:44.079 -however: I am not a Lilypond developer. - -0:00:40.480,0:00:46.800 -So what is Lilypond? Lilypond is - -0:00:44.079,0:00:50.000 -a file format and music engraving system - -0:00:46.800,0:00:52.640 -for producing high-quality sheet music. - -0:00:50.000,0:00:55.120 -It translates textual representations of - -0:00:52.640,0:00:57.760 -music to graphical objects. - -0:00:55.120,0:01:00.000 -It's similar to LaTeX in that its - -0:00:57.760,0:01:01.600 -input format describes the visual - -0:01:00.000,0:01:03.520 -layouts of the score, - -0:01:01.600,0:01:05.119 -using commands to define musical - -0:01:03.520,0:01:07.760 -expressions. - -0:01:05.119,0:01:08.640 -Commands begin with a backslash. - -0:01:07.760,0:01:10.479 -For example, - -0:01:08.640,0:01:13.040 -the formatter command, as shown on the - -0:01:10.479,0:01:13.920 -left, yields its graphical equivalents on - -0:01:13.040,0:01:16.640 -the right, - -0:01:13.920,0:01:19.119 -the fermata symbol over the low B and - -0:01:16.640,0:01:21.600 -so on and so forth. - -0:01:19.119,0:01:23.119 -It's also fully extensible, like Emacs, - -0:01:21.600,0:01:25.600 -allowing users to extend - -0:01:23.119,0:01:26.640 -and override Lilypond's functionalities - -0:01:25.600,0:01:29.840 -using the Scheme - -0:01:26.640,0:01:31.600 -scripting language. It can be used for - -0:01:29.840,0:01:34.479 -early and contemporary music - -0:01:31.600,0:01:35.200 -tablature, vocal music lead sheets, - -0:01:34.479,0:01:38.000 -and so on. - -0:01:35.200,0:01:38.479 -Above all, it works with Emacs. - -0:01:38.000,0:01:41.040 -In fact, - -0:01:38.479,0:01:43.119 -Lilypond ships with Emacs Lisp libraries, - -0:01:41.040,0:01:45.920 -including a major mode for editing - -0:01:43.119,0:01:45.920 -Lilypond files. - -0:01:47.360,0:01:50.560 -So the input files are similar to - -0:01:50.000,0:01:52.560 -source files. - -0:01:50.560,0:01:54.079 -They contain expressions formed with - -0:01:52.560,0:01:55.840 -curly braces, - -0:01:54.079,0:02:00.159 -comments that start with the percent - -0:01:55.840,0:02:00.159 -sign, and the code is indented. - -0:02:00.240,0:02:05.600 -Notes are entered using lowercase - -0:02:02.159,0:02:08.800 -letters, and rests with the letter r. - -0:02:05.600,0:02:11.039 -In this case, the lowercase r or r4 - -0:02:08.800,0:02:14.000 -is the equivalence of a crotchet or - -0:02:11.039,0:02:16.160 -quarter note rest. - -0:02:14.000,0:02:18.480 -Durations are entered using numbers and - -0:02:16.160,0:02:20.959 -dots after the note name. - -0:02:18.480,0:02:22.640 -If you do not specify one, the previous - -0:02:20.959,0:02:24.560 -duration is used. - -0:02:22.640,0:02:27.360 -You can also tie notes together using - -0:02:24.560,0:02:30.000 -the tilde symbol (~). - -0:02:27.360,0:02:32.080 -In fact, you can input chords, lyrics, - -0:02:30.000,0:02:33.920 -embellishments, and a lot more. - -0:02:32.080,0:02:36.160 -I encourage you to read the manual for - -0:02:33.920,0:02:39.680 -more information. - -0:02:36.160,0:02:42.000 -Now let's switch to a terminal window. - -0:02:39.680,0:02:43.840 -with Lilypond installed, let's create - -0:02:42.000,0:02:50.560 -a test file with the extension - -0:02:43.840,0:02:52.400 -.ly and open it in Emacs. - -0:02:50.560,0:02:54.800 -At the top of the file is the version - -0:02:52.400,0:02:57.440 -statement, which tells Lilypond which - -0:02:54.800,0:03:00.959 -version to use when compiling the file. - -0:02:57.440,0:03:03.680 -Here I'm using version 2.20.0. - -0:03:00.959,0:03:04.159 -I've added the clef and time signature. - -0:03:04.159,0:03:07.440 -Let's add some notes. - -0:03:09.280,0:03:14.560 -I'm going to close this now and - -0:03:12.400,0:03:19.760 -compile the file by running - -0:03:14.560,0:03:25.040 -lilypond followed by the file name. - -0:03:19.760,0:03:25.040 -So now let's view the output. - -0:03:27.360,0:03:32.239 -Okay. So here's a more complex example - -0:03:29.760,0:03:34.080 -for randomizing note sequences. - -0:03:32.239,0:03:36.239 -The idea is to create new reading - -0:03:34.080,0:03:37.760 -materials each time the code blocks are - -0:03:36.239,0:03:40.640 -evaluated. - -0:03:37.760,0:03:41.840 -As usual, we begin with a header. - -0:03:40.640,0:03:45.200 -I've added the title - -0:03:41.840,0:03:47.920 -and composer. Then we add the note - -0:03:45.200,0:03:50.879 -sequences to use in the composition. - -0:03:47.920,0:03:51.200 -In this case, sn is a note name just like - -0:03:51.200,0:03:54.959 -a b c d and so on, and stands for snare drum, - -0:03:54.959,0:03:58.239 -the percussion instruments. - -0:03:58.879,0:04:04.080 -Now here's a function that's going to - -0:04:00.720,0:04:06.560 -shuffle the notes in the table. - -0:04:04.080,0:04:08.799 -Finally, we expand the notes inside - -0:04:06.560,0:04:10.799 -the Lilypond source block. - -0:04:08.799,0:04:13.680 -So whatever the function returns is - -0:04:10.799,0:04:16.479 -expanded inside the drums block. - -0:04:13.680,0:04:19.120 -Now let's press C-c C-c to view - -0:04:16.479,0:04:19.120 -the results. - -0:04:20.079,0:04:26.800 -Okay. And if I run this again, it should - -0:04:23.280,0:04:26.800 -create a new composition. - -0:04:26.840,0:04:31.360 -Great. You can also audition a piece - -0:04:29.680,0:04:34.320 -using the midi command, - -0:04:31.360,0:04:36.560 -which creates a midi file of the score. - -0:04:34.320,0:04:39.040 -Note also that the ob library-- - -0:04:36.560,0:04:40.400 -sorry, the ob-lilypond library comes - -0:04:39.040,0:04:42.560 -with two modes. - -0:04:40.400,0:04:43.440 -The one I'm using now is called - -0:04:42.560,0:04:45.440 -arrange mode - -0:04:43.440,0:04:47.120 -and is useful for assembling - -0:04:45.440,0:04:49.360 -complete scores. - -0:04:47.120,0:04:51.199 -The basic mode on the other hand allows - -0:04:49.360,0:04:53.360 -you to mix text and music - -0:04:51.199,0:04:55.440 -by embedding Lilypond snippets and - -0:04:53.360,0:04:57.840 -export them using typical Org Mode - -0:04:55.440,0:04:57.840 -commands. - -0:05:00.240,0:05:04.320 -Now to demonstrate the basic mode in - -0:05:02.320,0:05:05.120 -action. I'm going to export this document - -0:05:04.320,0:05:08.240 -to a PDF file. - -0:05:05.120,0:05:10.639 -In this case, the - -0:05:08.240,0:05:11.919 -:file header argument is required, so you - -0:05:10.639,0:05:15.280 -have to provide one - -0:05:11.919,0:05:15.280 -and include the file name. - -0:05:15.600,0:05:20.479 -Again, you can run the code and view - -0:05:17.919,0:05:20.479 -the results. - -0:05:22.160,0:05:30.080 -Here it is. So now let's - -0:05:25.840,0:05:30.080 -export this to a PDF file. - -0:05:33.680,0:05:41.440 -And here it is, what it generates. - -0:05:39.680,0:05:44.000 -Now I'm going to show you the workflow I - -0:05:41.440,0:05:46.160 -used to produce music books in Emacs, - -0:05:44.000,0:05:48.000 -combining Lilypond and LaTeX for a - -0:05:46.160,0:05:50.160 -perfect marriage. - -0:05:48.000,0:05:53.039 -I begin by sketching the first draft of the - -0:05:50.160,0:05:55.039 -manuscript using pencil and paper. - -0:05:53.039,0:05:57.440 -Then I move to Emacs to input the notes - -0:05:55.039,0:06:00.080 -in a git repository. - -0:05:57.440,0:06:01.360 -This is a typical source file. It begins - -0:06:00.080,0:06:03.199 -with a stylesheet - -0:06:01.360,0:06:05.440 -where I set variables and layout - -0:06:03.199,0:06:07.039 -settings, although in general, there's no - -0:06:05.440,0:06:09.280 -need for tweaking the layout - -0:06:07.039,0:06:11.199 -unless you have specific requirements to - -0:06:09.280,0:06:13.360 -do so. - -0:06:11.199,0:06:15.520 -The easiest way to compile the file from - -0:06:13.360,0:06:19.280 -Emacs is by pressing C-c C-l, - -0:06:15.520,0:06:21.199 -so let's do this now, - -0:06:19.280,0:06:23.759 -and the compilation buffer will tell you - -0:06:21.199,0:06:26.000 -if there were any errors in the file. - -0:06:23.759,0:06:28.560 -Now to automate the process of compiling - -0:06:26.000,0:06:31.280 -several files and building the PDF, - -0:06:28.560,0:06:32.560 -I use GNU Make, so all I have to do is - -0:06:31.280,0:06:36.000 -open the shell - -0:06:32.560,0:06:37.840 -and run the make command. Don't worry, - -0:06:36.000,0:06:40.720 -I'll provide a link to the source code - -0:06:37.840,0:06:40.720 -on the last slide. - -0:06:41.600,0:06:46.000 -As I moved forward with the project, I - -0:06:43.600,0:06:48.720 -found at least two things missing. - -0:06:46.000,0:06:50.479 -One, I had no access to a metronome, - -0:06:48.720,0:06:52.960 -at least not from the editor, - -0:06:50.479,0:06:55.919 -so I built one for casual use and made - -0:06:52.960,0:06:58.000 -it available in the MELPA repository. - -0:06:55.919,0:06:59.039 -I also missed bar numbers in the source file. - -0:06:59.039,0:07:03.199 -This is useful when going back and forth - -0:07:00.880,0:07:04.479 -between input and output files without - -0:07:03.199,0:07:06.720 -getting lost. - -0:07:04.479,0:07:08.479 -So I wrote a command for toggling bar - -0:07:06.720,0:07:10.000 -numbers, which I hope you can see on the left. - -0:07:10.000,0:07:14.160 -Also, some expressions are difficult or - -0:07:12.080,0:07:17.039 -slow to write on the keyboard-- - -0:07:14.160,0:07:19.199 -accents and tuplets, for example--so I use - -0:07:17.039,0:07:20.160 -template expansion extensively for this purpose, - -0:07:20.160,0:07:23.280 -mainly ya-snippet. - -0:07:23.440,0:07:28.080 -So what do I think? Well, I think - -0:07:25.680,0:07:31.039 -Lilypond can be a sharp paradigm shift - -0:07:28.080,0:07:32.720 -for people used to GUI alternatives, but - -0:07:31.039,0:07:34.639 -the results are impressive. - -0:07:32.720,0:07:36.960 -You don't have to dive too deeply to - -0:07:34.639,0:07:38.880 -start using Lilypond. - -0:07:36.960,0:07:40.720 -Likewise, the ability to extend the - -0:07:38.880,0:07:42.400 -software, I think, is especially appealing - -0:07:40.720,0:07:45.199 -for music professionals, - -0:07:42.400,0:07:46.560 -enthusiasts, composers, and the academic - -0:07:45.199,0:07:48.400 -community: - -0:07:46.560,0:07:50.800 -for example, allowing users to create - -0:07:48.400,0:07:53.120 -alternative notation systems required in - -0:07:50.800,0:07:56.160 -non-Western music traditions - -0:07:53.120,0:07:58.400 -and other non-conventional requirements. - -0:07:56.160,0:08:00.720 -Also, Lilypond and Emacs both have - -0:07:58.400,0:08:04.639 -extensive and well-written manuals - -0:08:00.720,0:08:06.400 -and active communities of users. - -0:08:04.639,0:08:08.800 -But if you're still not sure where to - -0:08:06.400,0:08:09.599 -start and when to wedge your feet in the deep - -0:08:09.599,0:08:13.680 -but warm pond of lilies, Lilypond, and - -0:08:12.160,0:08:15.680 -Lilypond users, - -0:08:13.680,0:08:16.960 -I invite you to contribute to my - -0:08:15.680,0:08:18.800 -Lilypond projects, - -0:08:16.960,0:08:20.720 -which you can do so from the links on - -0:08:18.800,0:08:22.800 -the screen. - -0:08:20.720,0:08:24.639 -So, thank you all. I look forward to your - -0:08:22.800,0:08:27.840 -comments, and I hope you enjoy the rest - -0:08:24.639,0:08:27.840 -of the conference. - diff --git a/2020/subtitles/emacsconf-2020--06-trivial-emacs-kits--corwin-brust.sbv b/2020/subtitles/emacsconf-2020--06-trivial-emacs-kits--corwin-brust.sbv deleted file mode 100644 index 23b9faa0..00000000 --- a/2020/subtitles/emacsconf-2020--06-trivial-emacs-kits--corwin-brust.sbv +++ /dev/null @@ -1,1002 +0,0 @@ -0:00:00.399,0:00:03.280 -My name is Corwin Brust and I - -0:00:03.280,0:00:06.240 -will be talking about getting started - -0:00:06.240,0:00:11.200 -with Emacs today. - -0:00:08.960,0:00:13.040 -I have been an Emacs user for a long - -0:00:11.200,0:00:15.360 -time. First of all, thanks and a huge - -0:00:13.040,0:00:18.400 -welcome to the conference - -0:00:15.360,0:00:22.400 -from me and - -0:00:18.400,0:00:24.720 -and on behalf - -0:00:22.400,0:00:26.080 -and back to the other people that - -0:00:24.720,0:00:29.920 -have been helping to organize. - -0:00:26.080,0:00:30.480 -It's been amazing just to be involved - -0:00:30.480,0:00:35.120 -with that and just, kind of, see - -0:00:32.480,0:00:35.120 -backstage. - -0:00:36.399,0:00:42.960 -So I've used a lot of different editors - -0:00:39.680,0:00:45.440 -in my time. That's - -0:00:42.960,0:00:48.399 -about 25 years as a professional - -0:00:45.440,0:00:48.399 -software engineer. - -0:00:52.399,0:00:56.160 -And most of that time I've been using - -0:00:53.920,0:01:00.960 -Emacs. I'll talk a little bit in a minute - -0:00:56.160,0:01:04.479 -(if I can ever find my slides) - -0:01:00.960,0:01:07.200 -about how I got into Emacs - -0:01:04.479,0:01:10.240 -but I think if you've used Emacs and a - -0:01:07.200,0:01:12.640 -lot of other editors for a long time, - -0:01:10.240,0:01:14.960 -something that you notice right away is that - -0:01:15.200,0:01:18.560 -you get good with it in a way that stays - -0:01:17.520,0:01:20.799 -meaningful. - -0:01:18.560,0:01:24.840 -You learn new things. Those things - -0:01:20.799,0:01:27.600 -stick with you. You learn how to - -0:01:27.600,0:01:30.720 -make it do new tricks and then - -0:01:30.720,0:01:36.799 -keep doing those tricks. - -0:01:33.759,0:01:39.439 -I want to mention that this - -0:01:36.799,0:01:41.439 -conference--oops, - -0:01:39.439,0:01:45.600 -this talk isn't about - -0:01:41.439,0:01:47.520 -how to adjust your - -0:01:45.600,0:01:50.000 -configuration specifically. I don't have - -0:01:47.520,0:01:51.520 -a bunch of good code samples in here. - -0:01:50.000,0:01:54.399 -There are other great talks at the - -0:01:51.520,0:01:57.600 -conference, particularly Andrew's, - -0:01:54.399,0:01:59.920 -that I looked at, that looked - -0:01:57.600,0:02:01.600 -like they might be more aimed at that - -0:01:59.920,0:02:02.240 -"hey, I'm just getting started with Emacs, - -0:02:02.240,0:02:07.200 -what are some things to try to make - -0:02:05.280,0:02:08.879 -it more comfortable for me starting?" This - -0:02:07.200,0:02:09.759 -is about how to think about the problem - -0:02:08.879,0:02:12.959 -space. - -0:02:09.759,0:02:14.080 -Hopefully, a good warm up as we - -0:02:12.959,0:02:17.200 -start thinking about some of the - -0:02:14.080,0:02:20.000 -lightning talks a little later on. - -0:02:17.200,0:02:22.400 -I'm just gonna quickly make sure I - -0:02:20.000,0:02:24.080 -can see my IRC buffer in case I run into - -0:02:22.400,0:02:25.680 -time. I didn't get my stopwatch started - -0:02:24.080,0:02:29.680 -for this one. - -0:02:25.680,0:02:32.879 -So all right, let's dive in. - -0:02:29.680,0:02:33.840 -We assume that we want to install - -0:02:32.879,0:02:36.560 -packages - -0:02:33.840,0:02:38.319 -and maybe configure some features. This - -0:02:36.560,0:02:39.120 -is particularly from the perspective of - -0:02:38.319,0:02:40.800 -where we're working - -0:02:39.120,0:02:42.160 -with a bunch of people on a team and we - -0:02:40.800,0:02:44.800 -want to get something done. - -0:02:42.160,0:02:46.560 -Some of us probably already have mature - -0:02:44.800,0:02:49.280 -Emacs workflows. - -0:02:46.560,0:02:50.319 -Others are installing it for the first - -0:02:49.280,0:02:53.519 -time. - -0:02:53.519,0:02:59.280 -So the first question is, you know, - -0:02:56.879,0:03:00.879 -in that context: what's the value - -0:02:59.280,0:03:02.840 -proposition? Why should I mess with my - -0:03:00.879,0:03:05.599 -machine, my mature Emacs - -0:03:02.840,0:03:07.440 -configuration, and impose my - -0:03:05.599,0:03:10.239 -ideas over the way somebody else is - -0:03:07.440,0:03:12.800 -learning Emacs? Well, - -0:03:10.239,0:03:13.840 -it can be.. I'm off my slides here a - -0:03:12.800,0:03:16.400 -little bit. - -0:03:13.840,0:03:16.959 -It can be a little bit - -0:03:16.400,0:03:20.400 -tricky - -0:03:16.959,0:03:21.440 -to learn Emacs. One thing that - -0:03:20.400,0:03:24.720 -helps us a lot - -0:03:21.440,0:03:26.239 -is if people that we're working with - -0:03:24.720,0:03:28.080 -can tell us, kinda, keystroke for - -0:03:26.239,0:03:30.480 -keystroke at times, what to do and - -0:03:28.080,0:03:32.400 -explain what everything is doing. - -0:03:30.480,0:03:35.840 -Using the same packages can really - -0:03:32.400,0:03:39.840 -help us working together on a project. - -0:03:35.840,0:03:40.720 -Speaking from my personal - -0:03:39.840,0:03:42.959 -experience, - -0:03:40.720,0:03:45.040 -it took me decades to get to the point - -0:03:42.959,0:03:46.720 -where I was excited to program in Emacs - -0:03:45.040,0:03:47.840 -Lisp. I've programmed in a lot of programming - -0:03:46.720,0:03:51.200 -languages, - -0:03:47.840,0:03:53.680 -but Lisp wasn't on my list. I looked at - -0:03:51.200,0:03:56.319 -my config that I was copy-pasting around - -0:03:53.680,0:03:57.519 -from generation after generation of - -0:03:56.319,0:03:59.519 -.Emacs file or - -0:03:57.519,0:04:00.799 -recrafting it from hand and from Internet - -0:03:59.519,0:04:03.519 -searches, - -0:04:00.799,0:04:05.680 -to get the things that I needed when - -0:04:03.519,0:04:07.680 -I would quickly go install Emacs at some - -0:04:05.680,0:04:10.959 -new job or contract, - -0:04:07.680,0:04:13.680 -and - -0:04:10.959,0:04:15.280 -be able to to quickly get through that - -0:04:13.680,0:04:17.440 -workflow that caused me to install the - -0:04:15.280,0:04:20.560 -program. - -0:04:17.440,0:04:23.440 -You know, just - -0:04:20.560,0:04:25.199 -little simple one-liners that that - -0:04:23.440,0:04:27.120 -got committed to memory over decades - -0:04:25.199,0:04:28.880 -eventually just led me to a sort of "hey what's going on - -0:04:27.120,0:04:31.680 -here." And I credit - -0:04:28.880,0:04:33.520 -Jeff Goff, my good friend who died - -0:04:31.680,0:04:37.759 -earlier in 2020, - -0:04:33.520,0:04:39.280 -for my lifelong love of Emacs. - -0:04:37.759,0:04:40.800 -Perhaps EriK and I will talk about that - -0:04:39.280,0:04:41.360 -a little bit more in another talk we - -0:04:40.800,0:04:43.280 -have - -0:04:41.360,0:04:44.400 -scheduled, but Jeff was a huge - -0:04:43.280,0:04:47.280 -influenceo on us - -0:04:44.400,0:04:48.720 -in a number of ways and a huge - -0:04:47.280,0:04:50.720 -contributor to the Raku programming - -0:04:48.720,0:04:54.000 -language - -0:04:50.720,0:04:54.000 -which is very cool. - -0:04:54.840,0:05:01.039 -So, understanding how - -0:04:58.880,0:05:03.120 -to make a good decision about splitting - -0:05:01.039,0:05:03.680 -up configuration in a way to share it - -0:05:03.120,0:05:05.600 -across - -0:05:03.680,0:05:07.600 -people with really different uses of - -0:05:05.600,0:05:09.360 -Emacs... That's actually a - -0:05:07.600,0:05:11.039 -complicated topic and I want to - -0:05:09.360,0:05:12.639 -sort of back off and stare at it for a - -0:05:11.039,0:05:15.840 -second. - -0:05:12.639,0:05:18.720 -I think Emacs is about people, so that - -0:05:15.840,0:05:22.000 -means it's about community. - -0:05:18.720,0:05:24.960 -And community means we're going to - -0:05:22.000,0:05:29.120 -invite disagreement. - -0:05:24.960,0:05:32.160 -In fact, that disagreement - -0:05:29.120,0:05:33.280 -isn't necessarily a road-block to our - -0:05:32.160,0:05:35.680 -project. In fact, - -0:05:33.280,0:05:37.759 -some of the work that a community - -0:05:35.680,0:05:39.680 -project can invite us to do - -0:05:37.759,0:05:40.960 -is to get closer to each other by - -0:05:39.680,0:05:42.080 -inviting those disagreements, by - -0:05:40.960,0:05:43.280 -learning from them--learning from - -0:05:42.080,0:05:46.880 -different people's - -0:05:43.280,0:05:49.120 -styles and from how they argue, - -0:05:46.880,0:05:50.400 -and thinking about why they have that - -0:05:49.120,0:05:53.680 -perspective and - -0:05:50.400,0:05:55.360 -what technical benefits that - -0:05:53.680,0:05:56.720 -perhaps radical point of view might - -0:05:55.360,0:05:59.039 -carry away. Some people are really - -0:05:56.720,0:06:01.919 -aggressive arguers, and others - -0:05:59.039,0:06:03.120 -are very passive and really - -0:06:01.919,0:06:06.240 -couch their ideas - -0:06:03.120,0:06:08.080 -in distancing terms, to say, "well - -0:06:06.240,0:06:12.479 -probably, this is a good idea" or - -0:06:08.080,0:06:15.520 -"please double check me." - -0:06:12.479,0:06:17.120 -Those don't always necessarily indicate - -0:06:15.520,0:06:18.479 -how certain a person is, because we're - -0:06:17.120,0:06:19.520 -different. We have different ways of - -0:06:18.479,0:06:23.380 -communicating - -0:06:19.520,0:06:24.560 -ideas like certainty or excitement. - -0:06:23.380,0:06:26.560 -[Music] - -0:06:24.560,0:06:30.000 -When we think about a bunch of really - -0:06:26.560,0:06:33.280 -diverse programmers approaching Emacs, - -0:06:30.000,0:06:36.479 -probably one of our our first really big - -0:06:33.280,0:06:39.759 -challenges is just - -0:06:36.479,0:06:41.120 -to pick what we're going to go - -0:06:39.759,0:06:44.000 -after. There are a lot of - -0:06:41.120,0:06:45.759 -existing kit - -0:06:44.000,0:06:49.599 -installs and things like this. - -0:06:49.599,0:06:54.400 -My argument is that you could actually - -0:06:52.880,0:06:56.560 -get pretty far - -0:06:54.400,0:06:58.319 -just trading files around. Maybe the - -0:06:56.560,0:07:02.240 -more valuable - -0:07:02.240,0:07:06.080 -conversation to have is making the - -0:07:04.720,0:07:08.000 -hard decisions about, well, - -0:07:06.080,0:07:10.080 -"should we have vertical completion," - -0:07:08.000,0:07:11.759 -should that be the out of the box, - -0:07:10.080,0:07:15.680 -and the people that want - -0:07:11.759,0:07:17.440 -the traditional splayed out over a - -0:07:15.680,0:07:19.840 -single line completion - -0:07:17.440,0:07:20.800 -for example in the mode line, those - -0:07:19.840,0:07:22.800 -people are going to - -0:07:20.800,0:07:24.160 -add a line of config - -0:07:24.160,0:07:27.199 -to their own setup? - -0:07:29.039,0:07:34.080 -The way to get there? I mean, how do we - -0:07:32.479,0:07:35.520 -find out what works? We don't want to - -0:07:34.080,0:07:38.800 -slow down the people that - -0:07:35.520,0:07:40.479 -are super productive with Emacs by - -0:07:38.800,0:07:42.080 -asking them to completely break their - -0:07:40.479,0:07:42.560 -workflows and make it easier for new - -0:07:42.080,0:07:46.240 -folks. - -0:07:42.560,0:07:48.960 -At the same time, we do - -0:07:46.240,0:07:51.280 -want to make sure those new people are - -0:07:48.960,0:07:52.720 -excited by Emacs and not turned off by - -0:07:51.280,0:07:56.319 -having to learn - -0:07:52.720,0:07:59.840 -the entire jungle of Emacs - -0:07:56.319,0:08:03.120 -history in the form of its - -0:07:59.840,0:08:06.160 -unique technical stylings for - -0:08:03.120,0:08:09.840 -things like frames, - -0:08:06.160,0:08:12.960 -buffers, and other unique - -0:08:09.840,0:08:16.240 -Emacs viewpoints on important - -0:08:12.960,0:08:18.720 -interface concepts, especially. - -0:08:16.240,0:08:19.520 -The encouragement here is to keep - -0:08:19.520,0:08:23.280 -the initialization for a project team - -0:08:21.680,0:08:25.280 -together as a crucible. - -0:08:23.280,0:08:27.680 -Rather than necessarily following our - -0:08:25.280,0:08:31.440 -defaults of - -0:08:31.440,0:08:35.120 -finding the simplest configuration - -0:08:33.279,0:08:37.440 -that generally work and letting people - -0:08:35.120,0:08:40.479 -customize it, - -0:08:37.440,0:08:42.560 -what if we tried to look - -0:08:40.479,0:08:44.159 -for fairly specific configurations that - -0:08:42.560,0:08:46.320 -we'll expect essentially all of our - -0:08:44.159,0:08:50.320 -developers to be using, - -0:08:46.320,0:08:50.320 -at least when they submit bug reports. - -0:08:52.839,0:08:58.800 -In particular, with this, - -0:08:55.920,0:08:59.839 -I think that degree of - -0:08:58.800,0:09:01.680 -experimentation - -0:08:59.839,0:09:03.360 -can drive back into the Emacs - -0:09:01.680,0:09:04.800 -development process. In the development - -0:09:03.360,0:09:07.760 -mailing list... - -0:09:04.800,0:09:09.680 -I'm hoping I'll get a timing cue - -0:09:07.760,0:09:14.000 -here. - -0:09:15.120,0:09:18.320 -In the context of Emacs development as a - -0:09:17.760,0:09:20.959 -greater - -0:09:18.320,0:09:22.399 -entity, we see some of these struggles. - -0:09:20.959,0:09:24.000 -Should we change this default? - -0:09:22.399,0:09:26.720 -Sometimes we can have the - -0:09:24.000,0:09:29.279 -sense that defaults in Emacs will never - -0:09:26.720,0:09:30.959 -change. The conversation is too difficult. - -0:09:29.279,0:09:32.560 -I think one thing that can help us get - -0:09:30.959,0:09:36.160 -there is evidence - -0:09:32.560,0:09:38.880 -that says, "hey my 30- to 40-person project - -0:09:36.160,0:09:40.399 -is using this set of bindings and - -0:09:38.880,0:09:42.240 -here's what we learned about - -0:09:40.399,0:09:43.519 -brand new Emacs users trying to come in - -0:09:42.240,0:09:46.800 -and get work done with that." - -0:09:46.800,0:09:50.720 -(Amin: Yeah you still have - -0:09:49.360,0:09:52.640 -a couple more minutes) - -0:09:50.720,0:09:54.160 -Oh, beautiful. Okay, great. I will try to - -0:09:52.640,0:09:54.720 -get through my last few slides that i - -0:09:54.160,0:09:56.320 -cut - -0:09:54.720,0:09:58.320 -in my last walkthrough, but I think i'm - -0:09:56.320,0:10:00.640 -going quicker today thank you. - -0:09:58.320,0:10:00.640 -Thank you. - -0:10:02.000,0:10:06.800 -So let's just recap real quick: - -0:10:05.120,0:10:10.399 -in theory, Emacs works - -0:10:06.800,0:10:10.720 -out of the box. That means we're - -0:10:10.720,0:10:17.120 -free to experiment. We can - -0:10:14.079,0:10:20.399 -throw it all away and start over. - -0:10:17.120,0:10:23.760 -As an organizational principle... - -0:10:26.000,0:10:30.079 -I don't know what I was thinking on that - -0:10:27.360,0:10:32.240 -slide, excuse me. - -0:10:30.079,0:10:33.440 -Bringing it back around - -0:10:32.240,0:10:35.680 -to the free - -0:10:33.440,0:10:36.480 -and open source software community, - -0:10:35.680,0:10:39.519 -our goal - -0:10:36.480,0:10:41.440 -is to enable users - -0:10:39.519,0:10:43.040 -to unlock their computers, to do as much - -0:10:41.440,0:10:45.600 -with them as possible. - -0:10:43.040,0:10:47.680 -That's the context to take with project - -0:10:45.600,0:10:49.560 -initialization, but sometimes - -0:10:47.680,0:10:50.800 -it could make sense to put... - -0:10:49.560,0:10:53.040 -[Music] - -0:10:50.800,0:10:54.880 -to put some gloves on. I've thrown up on - -0:10:53.040,0:10:57.279 -the screen here just a couple of other - -0:10:54.880,0:10:57.920 -ideas, ways to maybe think outside of the - -0:10:57.279,0:11:00.399 -box. - -0:10:57.920,0:11:01.440 -As you're putting together project - -0:11:00.399,0:11:04.959 -nets, - -0:11:01.440,0:11:05.519 -my words of encouragement are to experiment - -0:11:04.959,0:11:09.200 -with it, - -0:11:05.519,0:11:10.560 -try different things, and think really - -0:11:09.200,0:11:14.320 -specifically about how - -0:11:10.560,0:11:17.760 -different the development users - -0:11:14.320,0:11:21.680 -might be from each other as you - -0:11:17.760,0:11:23.519 -define standards for configuring - -0:11:21.680,0:11:25.360 -the user environment of Emacs - -0:11:23.519,0:11:29.120 -specifically for developing - -0:11:25.360,0:11:30.480 -on a project. That's pretty much my talk. - -0:11:29.120,0:11:32.959 -If there's any time, I would take a - -0:11:30.480,0:11:35.040 -couple questions. - -0:11:32.959,0:11:36.480 -Thank you for your awesome talk, - -0:11:35.040,0:11:38.160 -Corwin. - -0:11:36.480,0:11:43.839 -I think we have one or two - -0:11:38.160,0:11:43.839 -minutes for a few questions. - -0:11:49.519,0:11:53.839 -Do you have the pad open or would you - -0:11:52.000,0:11:56.959 -like me to read the questions for you? - -0:11:53.839,0:11:58.000 -Oh, I managed to close the - -0:11:56.959,0:12:00.560 -pad - -0:11:58.000,0:12:03.440 -and I am trying to open it again. All - -0:12:00.560,0:12:03.440 -right, there it opened. - -0:12:03.519,0:12:06.880 -Bringing it onto a screen where I can - -0:12:05.040,0:12:08.399 -see it. Will you read me the - -0:12:06.880,0:12:09.360 -first question while I drag windows - -0:12:08.399,0:12:12.720 -around, please? - -0:12:09.360,0:12:15.600 -(Amin: Sure. It says, "do you use Emacs as a - -0:12:12.720,0:12:17.680 -community building tool?") - -0:12:15.600,0:12:19.760 -Do I use Emacs as a community building - -0:12:17.680,0:12:23.519 -tool, or how do I? - -0:12:19.760,0:12:26.720 -(Amin: It just says do you.) Yes, absolutely. - -0:12:23.519,0:12:29.920 -I think Emacs is an ambassador to - -0:12:26.720,0:12:33.279 -the GNU tool chain. - -0:12:29.920,0:12:34.560 -I think that in the fullness of time, we - -0:12:33.279,0:12:38.240 -will see an Emacs - -0:12:34.560,0:12:42.000 -that makes - -0:12:38.240,0:12:42.800 -and that makes iOS and Android and other - -0:12:42.000,0:12:45.680 -closed-source - -0:12:42.800,0:12:46.320 -tools dream. That's why they mock us - -0:12:45.680,0:12:49.200 -and call - -0:12:46.320,0:12:51.440 -Emacs an operating system. It's because - -0:12:49.200,0:12:53.920 -it could be, if we cared for it to be. - -0:12:51.440,0:12:55.680 -It's quite a threatening product - -0:12:55.680,0:12:59.440 -from the perspective of how many problem - -0:12:57.440,0:13:01.519 -spaces it can address, how many types of - -0:12:59.440,0:13:04.399 -users it can satisfy, - -0:13:01.519,0:13:05.600 -the things that we can do to make - -0:13:04.399,0:13:07.839 -it robust in those - -0:13:05.600,0:13:09.760 -environments. I mean, we're always - -0:13:07.839,0:13:11.839 -thinking about the weak points, but - -0:13:09.760,0:13:14.079 -is Emacs a community building tool? Heck - -0:13:11.839,0:13:14.079 -yeah. - -0:13:14.639,0:13:18.480 -(Amin: There's like one or two more - -0:13:17.920,0:13:21.519 -questions. - -0:13:18.480,0:13:22.480 -I think they're more long-form so it - -0:13:21.519,0:13:24.000 -might be better - -0:13:22.480,0:13:26.880 -if you took them off stream so you - -0:13:24.000,0:13:28.959 -could keep the schedule on time.) - -0:13:26.880,0:13:31.040 -i would love to take those questions - -0:13:28.959,0:13:32.399 -offline. I will respond to you in - -0:13:31.040,0:13:33.360 -writing if we don't get to it in a - -0:13:32.399,0:13:35.519 -breakout room. - -0:13:33.360,0:13:36.639 -Thanks so much for joining us. I - -0:13:35.519,0:13:38.000 -can't wait to see the rest of the - -0:13:36.639,0:13:42.800 -conference. See you there! - -0:13:38.000,0:13:42.800 -(Amin: Awesome. Thank you again so much, Corwin.) - diff --git a/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula-autogen.sbv b/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula-autogen.sbv deleted file mode 100644 index 016d54f9..00000000 --- a/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula-autogen.sbv +++ /dev/null @@ -1,360 +0,0 @@ -0:00:00.080,0:00:03.520 -for the list of questions in whatever - -0:00:01.680,0:00:06.160 -order you like - -0:00:03.520,0:00:08.000 -okay so I see what package is used um - -0:00:06.160,0:00:10.400 -probably cemex mode - -0:00:08.000,0:00:11.360 -um right so the main package that was - -0:00:10.400,0:00:14.480 -being demoed - -0:00:11.360,0:00:16.720 -um that is not yet on melpa in fact I - -0:00:14.480,0:00:19.359 -haven't even decided on a name for it - -0:00:16.720,0:00:22.080 -um I've alternately alternately called - -0:00:19.359,0:00:26.000 -it epistemic mode I've called it - -0:00:22.080,0:00:28.560 -um england I called it uh - -0:00:26.000,0:00:30.240 -all kinds of things but at the moment - -0:00:28.560,0:00:31.439 -you can find it on my github there's a - -0:00:30.240,0:00:32.960 -link - -0:00:31.439,0:00:35.600 -in the presentation itself if you go to - -0:00:32.960,0:00:38.879 -github slash account about - -0:00:35.600,0:00:39.840 -um the package there it's currently - -0:00:38.879,0:00:42.879 -named indra - -0:00:39.840,0:00:46.800 -I'm not sure um - -0:00:42.879,0:00:49.920 -packages actually yes the second one is - -0:00:46.800,0:00:53.280 -red that was the name that I selected um - -0:00:49.920,0:00:53.920 -last night um and that's because it - -0:00:53.280,0:00:55.760 -might that - -0:00:53.920,0:00:57.520 -there's a concept in tibetan buddhism - -0:00:55.760,0:00:58.480 -that seems like it might have something - -0:00:57.520,0:00:59.840 -to do with - -0:00:58.480,0:01:01.600 -the kinds of concepts we're talking - -0:00:59.840,0:01:04.000 -about with this package so I just - -0:01:01.600,0:01:05.760 -thought it would be a good name for it - -0:01:04.000,0:01:09.920 -so you can look up that concept - -0:01:05.760,0:01:13.119 -and get a sense of it on wikipedia - -0:01:09.920,0:01:15.759 -next question is how to deal with dwarak - -0:01:13.119,0:01:16.960 -dwarjak or however that's pronounced - -0:01:15.759,0:01:20.400 -this is always bug me - -0:01:16.960,0:01:22.400 -is there an x-mod map mode so the thing - -0:01:20.400,0:01:23.360 -with this is it's kind of surprising but - -0:01:22.400,0:01:26.000 -although vim - -0:01:23.360,0:01:27.200 -was originally developed um you know - -0:01:26.000,0:01:29.520 -with the idea of - -0:01:27.200,0:01:32.000 -the key bindings being on the home rule - -0:01:29.520,0:01:33.119 -it turns out that that is actually not a - -0:01:32.000,0:01:36.400 -major aspect - -0:01:33.119,0:01:38.560 -of the vim editing experience so - -0:01:36.400,0:01:40.720 -people who use the dvorak layout - -0:01:38.560,0:01:42.640 -actually end up using the same keys as - -0:01:40.720,0:01:44.720 -they do on the normal qwerty layout so - -0:01:42.640,0:01:48.159 -they don't remap anything - -0:01:44.720,0:01:51.040 -because the uh the the sort of - -0:01:48.159,0:01:52.240 -the power that vim or the the - -0:01:51.040,0:01:55.600 -flexibility the - -0:01:52.240,0:01:56.880 -spiral that bim enables on qwerty layout - -0:01:55.600,0:01:58.719 -keyboards is exactly - -0:01:56.880,0:01:59.920 -preserved even on a door jack keyboard - -0:01:58.719,0:02:01.920 -even though you your - -0:01:59.920,0:02:04.399 -fingers are not in the same positions - -0:02:01.920,0:02:09.119 -it's not a big deal actually - -0:02:04.399,0:02:10.879 -um and then I mostly use default model - -0:02:09.119,0:02:12.319 -provided by vanilla Emacs and work and - -0:02:10.879,0:02:13.840 -org mode for text editing can you give - -0:02:12.319,0:02:15.920 -me some examples - -0:02:13.840,0:02:17.280 -of how the user can use the concept of - -0:02:15.920,0:02:20.840 -mode mode - -0:02:17.280,0:02:24.640 -to do some interesting - -0:02:20.840,0:02:25.120 -um so probably the main thing would be - -0:02:24.640,0:02:27.920 -the - -0:02:25.120,0:02:28.959 -the keystrokes would be less uh - -0:02:27.920,0:02:32.080 -contrived - -0:02:28.959,0:02:36.560 -so they the the fewer modes you have - -0:02:32.080,0:02:39.840 -the more modifiers you need - -0:02:36.560,0:02:41.280 -in order to um do whatever it is that - -0:02:39.840,0:02:44.800 -you're trying to do because you've got - -0:02:41.280,0:02:47.840 -essentially with a max model you've got - -0:02:44.800,0:02:47.840 -a completely flat - -0:02:48.080,0:02:52.160 -keyboard structure and so all of the - -0:02:50.959,0:02:55.680 -different things that you might - -0:02:52.160,0:02:58.720 -want to express are all mapped to a flat - -0:02:55.680,0:03:02.840 -keyboard uh set of keys - -0:02:58.720,0:03:06.400 -so with um with this kind of - -0:03:02.840,0:03:09.200 -modal structure the more modes you have - -0:03:06.400,0:03:10.400 -the more the individual keystrokes - -0:03:09.200,0:03:13.200 -become - -0:03:10.400,0:03:14.959 -shorter and shorter so that could be one - -0:03:13.200,0:03:17.519 -benefit that would be provided - -0:03:14.959,0:03:18.000 -with many modes your keystrokes would - -0:03:17.519,0:03:20.080 -generally - -0:03:18.000,0:03:22.080 -be a single keystroke long for even - -0:03:20.080,0:03:24.159 -relatively complex tasks - -0:03:22.080,0:03:25.440 -because you're setting the context - -0:03:24.159,0:03:27.200 -beforehand - -0:03:25.440,0:03:30.840 -so you already say oh I'm going to be - -0:03:27.200,0:03:33.440 -talking about this org buffer - -0:03:30.840,0:03:36.319 -agenda and then - -0:03:33.440,0:03:39.599 -um the all the keystrokes that you do at - -0:03:36.319,0:03:42.159 -that point would be in relation to that - -0:03:39.599,0:03:44.080 -um okay I think we have time for like - -0:03:42.159,0:03:46.879 -one more short question - -0:03:44.080,0:03:48.879 -one more short question okay let's see - -0:03:46.879,0:03:50.400 -how do new modes come into existence you - -0:03:48.879,0:03:53.040 -can make them yourself - -0:03:50.400,0:03:53.760 -um and you can specify them in Emacs - -0:03:53.040,0:03:56.159 -lisp - -0:03:53.760,0:03:59.040 -if you like but there's also simple you - -0:03:56.159,0:04:02.720 -can also do it visually as we did - -0:03:59.040,0:04:04.799 -um but the yeah defining them - -0:04:02.720,0:04:07.519 -is essentially built on top of hydra but - -0:04:04.799,0:04:09.120 -it could also be built on top of evil or - -0:04:07.519,0:04:12.400 -any other modal interface provider - -0:04:09.120,0:04:12.400 -there's an abstraction layer - -0:04:12.840,0:04:17.919 -okay thank you so much for your talk and - -0:04:15.920,0:04:21.440 -for the live q a - -0:04:17.919,0:04:22.880 -sure thank you yes feel free to um take - -0:04:21.440,0:04:23.759 -up the rest of the questions either via - -0:04:22.880,0:04:25.680 -irc or - -0:04:23.759,0:04:26.960 -on the pad on on your own time off the - -0:04:25.680,0:04:28.639 -stream - -0:04:26.960,0:04:30.000 -perfect yeah I'll go ahead and put in - -0:04:28.639,0:04:32.240 -some answers there - -0:04:30.000,0:04:33.120 -awesome thank you all right thank you - -0:04:32.240,0:04:36.880 -have a good one - -0:04:33.120,0: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.sbv b/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula-autogen.sbv deleted file mode 100644 index 56aadd05..00000000 --- a/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula-autogen.sbv +++ /dev/null @@ -1,1335 +0,0 @@ -0:00:02.960,0:00:06.560 -far away in the heavenly abode of the - -0:00:04.960,0:00:08.320 -great god indra - -0:00:06.560,0:00:10.160 -there is a wonderful net which has been - -0:00:08.320,0:00:12.080 -hung by some cunning artificer - -0:00:10.160,0:00:14.320 -in such a manner that it stretches out - -0:00:12.080,0:00:15.920 -infinitely in all directions - -0:00:14.320,0:00:18.240 -in accordance with the extravagant - -0:00:15.920,0:00:20.960 -tastes of deities the artificer has hung - -0:00:18.240,0:00:22.080 -a single glittering jewel in each eye of - -0:00:20.960,0:00:24.000 -the net - -0:00:22.080,0:00:26.480 -and since the net itself is infinite the - -0:00:24.000,0:00:28.400 -jewels are infinite in number - -0:00:26.480,0:00:30.480 -there hang the jewels glittering like - -0:00:28.400,0:00:33.440 -stars in the first magnitude - -0:00:30.480,0:00:34.800 -a wonderful sight to behold were we to - -0:00:33.440,0:00:35.680 -select one of these jewels for - -0:00:34.800,0:00:37.760 -inspection - -0:00:35.680,0:00:39.520 -we would discover that in its polished - -0:00:37.760,0:00:41.920 -surface there are reflected - -0:00:39.520,0:00:43.360 -all the other jewels in the net infinite - -0:00:41.920,0:00:45.600 -in number - -0:00:43.360,0:00:47.840 -if we look still more closely we would - -0:00:45.600,0:00:48.960 -see that each of the jewels reflected in - -0:00:47.840,0:00:52.239 -this one jewel - -0:00:48.960,0:00:54.000 -reflects all the others this is the - -0:00:52.239,0:00:56.840 -metaphor of indra's net - -0:00:54.000,0:00:59.359 -which is told in some schools of - -0:00:56.840,0:01:00.160 -philosophy let's keep this metaphor in - -0:00:59.359,0:01:01.920 -mind - -0:01:00.160,0:01:03.760 -because it'll help us understand the - -0:01:01.920,0:01:06.239 -Emacs extension that we're about to - -0:01:03.760,0:01:06.239 -discuss - -0:01:06.960,0:01:13.200 -so in editing text there's two - -0:01:10.080,0:01:16.880 -main paradigms one - -0:01:13.200,0:01:19.439 -is um editing at the ground level - -0:01:16.880,0:01:22.159 -where the characters that we type - -0:01:19.439,0:01:25.960 -actually appear on the screen - -0:01:22.159,0:01:28.479 -the changes we make actually occur - -0:01:25.960,0:01:30.720 -[Music] - -0:01:28.479,0:01:33.439 -the other editing paradigm is where we - -0:01:30.720,0:01:36.000 -escape to a higher level - -0:01:33.439,0:01:36.479 -and now the characters that we type are - -0:01:36.000,0:01:39.040 -not - -0:01:36.479,0:01:41.600 -they don't actually appear on the screen - -0:01:39.040,0:01:44.799 -because we're not at the ground level - -0:01:41.600,0:01:48.479 -with the text we are at a higher level - -0:01:44.799,0:01:51.920 -looking down at the text - -0:01:48.479,0:01:54.640 -and regarding the text referring to - -0:01:51.920,0:01:56.159 -this world of text in terms of a - -0:01:54.640,0:01:57.920 -language - -0:01:56.159,0:02:00.640 -for instance we could describe this - -0:01:57.920,0:02:02.079 -world as having words and paragraphs and - -0:02:00.640,0:02:04.640 -sentences and - -0:02:02.079,0:02:05.360 -lines and so on and we could reason - -0:02:04.640,0:02:08.800 -about this - -0:02:05.360,0:02:11.440 -text in terms of these - -0:02:08.800,0:02:13.120 -textual entities and this textual - -0:02:11.440,0:02:15.920 -language - -0:02:13.120,0:02:18.319 -this is the second paradigm of text - -0:02:15.920,0:02:18.319 -editing - -0:02:18.640,0:02:24.800 -and when we're in the second paradigm - -0:02:22.800,0:02:26.480 -there is a way to go down to ground - -0:02:24.800,0:02:28.160 -level you hit enter - -0:02:26.480,0:02:30.480 -now or we'll hit enter to go down to the - -0:02:28.160,0:02:33.200 -ground level and you can hit escape - -0:02:30.480,0:02:35.200 -to go back out to the referential level - -0:02:33.200,0:02:37.280 -enter to go down to ground level - -0:02:35.200,0:02:39.599 -and escape to go up to the referential - -0:02:37.280,0:02:39.599 -level - -0:02:40.160,0:02:48.239 -now in vim the nouns - -0:02:44.879,0:02:50.959 -in this world of text all - -0:02:48.239,0:02:51.519 -share the same referential plane which - -0:02:50.959,0:02:54.319 -we call - -0:02:51.519,0:02:54.959 -normal mode so in normal mode all of the - -0:02:54.319,0:02:57.360 -nouns - -0:02:54.959,0:02:58.959 -of the world of text are available - -0:02:57.360,0:03:00.959 -whether it's words or sentences or - -0:02:58.959,0:03:04.400 -paragraphs - -0:03:00.959,0:03:08.319 -and they all share this same - -0:03:04.400,0:03:11.120 -referential plane and there's uh - -0:03:08.319,0:03:12.720 -they sort of compete for space on the - -0:03:11.120,0:03:15.760 -keyboard - -0:03:12.720,0:03:17.680 -um so an alternative uh - -0:03:15.760,0:03:19.280 -way to structure these modes is instead - -0:03:17.680,0:03:21.840 -of having a single mode where all the - -0:03:19.280,0:03:24.959 -nouns coexist - -0:03:21.840,0:03:30.400 -peacefully or otherwise you instead - -0:03:24.959,0:03:33.040 -have a dedicated mode for every noun - -0:03:30.400,0:03:35.440 -so in that case what happens is because - -0:03:33.040,0:03:37.280 -your modal spaces are now much smaller - -0:03:35.440,0:03:38.720 -you're just talking about words or - -0:03:37.280,0:03:42.560 -paragraphs or - -0:03:38.720,0:03:45.760 -lines or something the keys that you use - -0:03:42.560,0:03:48.560 -can be much more targeted - -0:03:45.760,0:03:50.400 -and you can use the same keystrokes in - -0:03:48.560,0:03:52.000 -in all of your modes and they would have - -0:03:50.400,0:03:53.280 -the same ideas behind them but - -0:03:52.000,0:03:55.519 -they would have different effects - -0:03:53.280,0:03:57.519 -depending on which context you're using - -0:03:55.519,0:03:59.120 -so it's the same keystrokes different - -0:03:57.519,0:04:01.360 -contexts - -0:03:59.120,0:04:02.480 -and the advantage of that is it's often - -0:04:01.360,0:04:05.519 -easier - -0:04:02.480,0:04:09.040 -to change context than it is to - -0:04:05.519,0:04:12.080 -learn new key bindings so let's see - -0:04:09.040,0:04:13.680 -an example of how that works we go into - -0:04:12.080,0:04:14.000 -character mode and if you look at the - -0:04:13.680,0:04:15.439 -mode - -0:04:14.000,0:04:18.720 -line at the bottom of the screen there - -0:04:15.439,0:04:21.519 -you'll see that we're in character mode - -0:04:18.720,0:04:23.919 -and now when we move up down left and - -0:04:21.519,0:04:28.479 -right we're moving by character - -0:04:23.919,0:04:30.240 -we can also transform the text and - -0:04:28.479,0:04:32.400 -the transformations occur in terms of - -0:04:30.240,0:04:34.320 -character - -0:04:32.400,0:04:35.520 -you can also go into word mode and in - -0:04:34.320,0:04:38.560 -word mode - -0:04:35.520,0:04:40.000 -the transformations that you do are on - -0:04:38.560,0:04:42.320 -words - -0:04:40.000,0:04:43.440 -and you try you your movement is also in - -0:04:42.320,0:04:45.600 -terms of words - -0:04:43.440,0:04:46.560 -so that's the level of granularity that - -0:04:45.600,0:04:49.520 -you have - -0:04:46.560,0:04:50.720 -you could also go to line mode and when - -0:04:49.520,0:04:53.759 -you're in line mode - -0:04:50.720,0:04:54.240 -you go up and down by line and you can - -0:04:53.759,0:04:57.520 -move - -0:04:54.240,0:04:59.120 -lines up and down left and right and so - -0:04:57.520,0:05:00.880 -on - -0:04:59.120,0:05:02.800 -and the transformations you do are in - -0:05:00.880,0:05:07.600 -terms of lines - -0:05:02.800,0:05:07.600 -you could also go to window mode where - -0:05:08.400,0:05:12.400 -now the objects that you're referring to - -0:05:10.639,0:05:15.759 -are windows and you can - -0:05:12.400,0:05:17.520 -move spatially amongst the windows or - -0:05:15.759,0:05:20.850 -make do transformations on the windows - -0:05:17.520,0:05:22.840 -using the same keystrokes - -0:05:20.850,0:05:25.360 -[Music] - -0:05:22.840,0:05:28.720 -um - -0:05:25.360,0:05:32.800 -so let's go to - -0:05:28.720,0:05:35.280 -um right and so um the one of the things - -0:05:32.800,0:05:36.880 -the the principles that play here is - -0:05:35.280,0:05:38.000 -something called the rumpelstiltskin - -0:05:36.880,0:05:40.720 -principle which is something - -0:05:38.000,0:05:42.320 -that's known in computer science which - -0:05:40.720,0:05:43.759 -is that if you can name something then - -0:05:42.320,0:05:46.720 -you have that you have power - -0:05:43.759,0:05:48.560 -then you have power over it so this is - -0:05:46.720,0:05:50.479 -kind of an adaptation of that principle - -0:05:48.560,0:05:52.320 -which says that if you can - -0:05:50.479,0:05:54.000 -name something and if you can talk about - -0:05:52.320,0:05:55.360 -it then it's a noun - -0:05:54.000,0:05:56.960 -[Music] - -0:05:55.360,0:05:58.960 -in your editing language and if it's a - -0:05:56.960,0:06:01.520 -noun then it has - -0:05:58.960,0:06:02.319 -it's a mode so if we can talk about it - -0:06:01.520,0:06:05.039 -it's a noun - -0:06:02.319,0:06:06.479 -if it's a noun then it's a mode and one - -0:06:05.039,0:06:07.039 -of the things we've been talking a lot - -0:06:06.479,0:06:10.800 -about - -0:06:07.039,0:06:14.240 -is modes so in fact - -0:06:10.800,0:06:17.280 -uh by this principle modes also - -0:06:14.240,0:06:19.039 -should be a mode - -0:06:17.280,0:06:21.120 -you should have a mode that can reason - -0:06:19.039,0:06:22.080 -in terms of modes as objects just like - -0:06:21.120,0:06:23.759 -you have - -0:06:22.080,0:06:26.560 -modes where you can reason in terms of - -0:06:23.759,0:06:28.800 -words or lines as objects - -0:06:26.560,0:06:30.479 -and so let's do that let's go to mode - -0:06:28.800,0:06:34.000 -mode - -0:06:30.479,0:06:36.080 -when you go to mode mode you see that uh - -0:06:34.000,0:06:37.919 -the objects that are depicted here are - -0:06:36.080,0:06:40.960 -the modes that are - -0:06:37.919,0:06:44.880 -that are present in the buffer - -0:06:40.960,0:06:46.400 -which we knew about um because the - -0:06:44.880,0:06:48.720 -style of editing that we had in this - -0:06:46.400,0:06:50.479 -buffer was the vim style of editing - -0:06:48.720,0:06:52.400 -where there's an insert mode at the - -0:06:50.479,0:06:53.039 -ground level and a normal mode that you - -0:06:52.400,0:06:57.280 -can escape - -0:06:53.039,0:07:00.479 -to you insert enter the ground level - -0:06:57.280,0:07:02.880 -enter to the insert mode and escape to - -0:07:00.479,0:07:03.680 -normal mode and when you look at the - -0:07:02.880,0:07:06.160 -mode mode - -0:07:03.680,0:07:09.680 -representation you see that in fact that - -0:07:06.160,0:07:09.680 -is the structure that's depicted - -0:07:10.479,0:07:14.080 -but in different situations you might - -0:07:12.720,0:07:16.080 -find - -0:07:14.080,0:07:17.680 -that you that these modes are not the - -0:07:16.080,0:07:19.360 -ones that you want you want something - -0:07:17.680,0:07:20.880 -more tailored for the specific - -0:07:19.360,0:07:23.050 -application - -0:07:20.880,0:07:24.240 -for instance if you're editing - -0:07:23.050,0:07:27.360 -[Music] - -0:07:24.240,0:07:30.880 -lisp code uh or or code in general but - -0:07:27.360,0:07:32.960 -list code is a particular example - -0:07:30.880,0:07:34.000 -you might want to take advantage of the - -0:07:32.960,0:07:37.599 -structure of - -0:07:34.000,0:07:40.960 -the code and for lisp code in particular - -0:07:37.599,0:07:44.240 -we have a mode called symax mode - -0:07:40.960,0:07:46.720 -which is able to reason - -0:07:44.240,0:07:47.919 -about your code in terms of its tree - -0:07:46.720,0:07:50.560 -structure - -0:07:47.919,0:07:51.120 -so you can use the same keystrokes hkl - -0:07:50.560,0:07:53.440 -goes - -0:07:51.120,0:07:54.960 -left right up and down but you also have - -0:07:53.440,0:07:58.080 -other keystrokes that are more - -0:07:54.960,0:08:01.520 -specialized to the application - -0:07:58.080,0:08:06.160 -and you can run the code and - -0:08:01.520,0:08:06.160 -we'll see that happen here in a minute - -0:08:06.960,0:08:12.240 -and you can make changes to it really - -0:08:10.080,0:08:16.080 -quickly - -0:08:12.240,0:08:16.080 -and see the effects of those changes - -0:08:18.000,0:08:21.360 -and you're doing this all in a mode - -0:08:19.440,0:08:23.199 -that's convenient for - -0:08:21.360,0:08:25.039 -this particular application which is - -0:08:23.199,0:08:28.960 -editing lisp code - -0:08:25.039,0:08:31.039 -and that is in this case symmex mode - -0:08:28.960,0:08:32.640 -so typically when you're editing code - -0:08:31.039,0:08:34.800 -like this you'd want to be - -0:08:32.640,0:08:36.640 -in insert mode actually typing out the - -0:08:34.800,0:08:38.320 -code - -0:08:36.640,0:08:40.959 -and then you'd want to escape to simex - -0:08:38.320,0:08:42.159 -mode rather than normal mode - -0:08:40.959,0:08:44.080 -and then you could escape again and - -0:08:42.159,0:08:46.720 -you'd end up in normal mode - -0:08:44.080,0:08:48.000 -so this if we go to mode mode we see is - -0:08:46.720,0:08:51.040 -depicted - -0:08:48.000,0:08:52.800 -as this tower where insert is at the - -0:08:51.040,0:08:54.800 -bottom and normal is at the top but - -0:08:52.800,0:08:57.200 -symmex mode is in between - -0:08:54.800,0:08:58.800 -the two you could also change that if - -0:08:57.200,0:09:00.640 -you like if you don't want cmx mode to - -0:08:58.800,0:09:03.760 -be there you could just - -0:09:00.640,0:09:05.600 -move it to the top and now you find some - -0:09:03.760,0:09:06.160 -mixes at the top and you enter down to - -0:09:05.600,0:09:07.600 -normal - -0:09:06.160,0:09:10.480 -you can see it on the status bar at the - -0:09:07.600,0:09:13.839 -bottom there enter to insert - -0:09:10.480,0:09:16.480 -escape to normal escape to symmex and - -0:09:13.839,0:09:19.380 -in fact you can even add more modes if - -0:09:16.480,0:09:21.519 -you don't like the existing ones - -0:09:19.380,0:09:23.839 -[Music] - -0:09:21.519,0:09:25.440 -and now we have an additional mode here - -0:09:23.839,0:09:27.519 -we have window mode it goes down to - -0:09:25.440,0:09:30.320 -symmex goes down to normal - -0:09:27.519,0:09:33.600 -enter the insert escape to normal escape - -0:09:30.320,0:09:37.600 -to smx escape the window - -0:09:33.600,0:09:41.760 -um so we've talked okay so another thing - -0:09:37.600,0:09:45.360 -actually to note here is that in editing - -0:09:41.760,0:09:46.720 -modes um - -0:09:45.360,0:09:48.399 -if you look at the mode line at the - -0:09:46.720,0:09:50.640 -bottom of the screen - -0:09:48.399,0:09:51.519 -you'll see that we are currently in this - -0:09:50.640,0:09:54.560 -buffer - -0:09:51.519,0:09:57.600 -we are currently in line mode - -0:09:54.560,0:09:58.720 -and I'm going to hit enter now and - -0:09:57.600,0:10:01.519 -you'll see that when I hit - -0:09:58.720,0:10:02.160 -enter nothing is happening it's still in - -0:10:01.519,0:10:05.120 -line mode - -0:10:02.160,0:10:07.200 -if you'd escape it's still in line mode - -0:10:05.120,0:10:10.640 -and you can find out the reason for that - -0:10:07.200,0:10:12.800 -by taking another meta jump out of this - -0:10:10.640,0:10:15.279 -and you'll see that in fact the reason - -0:10:12.800,0:10:17.360 -is that we're currently in line mode - -0:10:15.279,0:10:19.519 -and line mode is the only one available - -0:10:17.360,0:10:21.760 -in this tower - -0:10:19.519,0:10:24.880 -for editing the modes that are in - -0:10:21.760,0:10:26.560 -operation in your ground level - -0:10:24.880,0:10:28.320 -and in fact line mode is all you need - -0:10:26.560,0:10:30.320 -here because this is just - -0:10:28.320,0:10:32.079 -uh the nature of how these modes are - -0:10:30.320,0:10:35.040 -laid out is - -0:10:32.079,0:10:36.399 -in in rows and so line mode is the most - -0:10:35.040,0:10:37.680 -appropriate thing here - -0:10:36.399,0:10:39.740 -but you could change it to something - -0:10:37.680,0:10:40.959 -else if you like - -0:10:39.740,0:10:44.160 -[Music] - -0:10:40.959,0:10:44.560 -and then now we've seen two towers we've - -0:10:44.160,0:10:48.079 -seen - -0:10:44.560,0:10:53.680 -the vim tower and we've seen - -0:10:48.079,0:10:56.959 -also the symex tower the the lisp tower - -0:10:53.680,0:10:58.880 -and it turns out that because we've been - -0:10:56.959,0:11:01.519 -talking about towers now - -0:10:58.880,0:11:02.800 -by the rumpelstiltskin principle towers - -0:11:01.519,0:11:06.399 -also - -0:11:02.800,0:11:09.279 -um can be talked about - -0:11:06.399,0:11:11.200 -and therefore they also are a mode so - -0:11:09.279,0:11:14.640 -how do we go to tower mode - -0:11:11.200,0:11:18.560 -and the way we go tower mode is we do - -0:11:14.640,0:11:18.560 -we go in a slightly different direction - -0:11:19.200,0:11:23.120 -and we find that we are now in tower - -0:11:20.800,0:11:23.120 -mode - -0:11:23.360,0:11:29.279 -and we see that there are many towers - -0:11:27.440,0:11:32.640 -available so we're now - -0:11:29.279,0:11:36.240 -we're we're seeing several possible - -0:11:32.640,0:11:39.120 -towers that we have written - -0:11:36.240,0:11:41.440 -um to be available and for use in - -0:11:39.120,0:11:44.000 -different buffers and you can edit them - -0:11:41.440,0:11:46.320 -on the fly for instance let's enter this - -0:11:44.000,0:11:46.320 -tower - -0:11:46.630,0:11:49.920 -[Music] - -0:11:48.000,0:11:51.519 -and now you see that in the bottom of - -0:11:49.920,0:11:52.480 -the in the mode line you see that we're - -0:11:51.519,0:11:54.240 -going - -0:11:52.480,0:11:56.480 -across all of these different modes that - -0:11:54.240,0:11:58.800 -were in the tower - -0:11:56.480,0:12:00.399 -and you could escape and you could even - -0:11:58.800,0:12:00.880 -move things around you could put window - -0:12:00.399,0:12:02.399 -mode - -0:12:00.880,0:12:04.079 -all the way at the bottom right above - -0:12:02.399,0:12:06.880 -insert mode - -0:12:04.079,0:12:09.839 -let's see that happen there it is window - -0:12:06.880,0:12:13.040 -is right above insert - -0:12:09.839,0:12:14.240 -so on and the tower always reflects your - -0:12:13.040,0:12:15.760 -current position - -0:12:14.240,0:12:17.600 -so if you're in buffer mode here and you - -0:12:15.760,0:12:19.120 -go down to line mode - -0:12:17.600,0:12:22.240 -when you go back to mode mode you see - -0:12:19.120,0:12:22.240 -that we are in line mode - -0:12:22.480,0:12:26.160 -but in practice you wouldn't have a - -0:12:24.000,0:12:28.959 -tower this elaborate because - -0:12:26.160,0:12:29.440 -you'd rather have several smaller towers - -0:12:28.959,0:12:33.360 -you - -0:12:29.440,0:12:36.639 -enter that you alternate between - -0:12:33.360,0:12:39.839 -um okay so one - -0:12:36.639,0:12:42.240 -other thing of interest here is that - -0:12:39.839,0:12:43.839 -when you're in tower mode - -0:12:42.240,0:12:45.920 -if you look at the status line at the - -0:12:43.839,0:12:49.200 -bottom there we are currently - -0:12:45.920,0:12:49.839 -in buffer mode while we are in tower - -0:12:49.200,0:12:51.600 -mode - -0:12:49.839,0:12:53.519 -and tower mode actually isn't a mode - -0:12:51.600,0:12:53.920 -really neither is mode mode they're - -0:12:53.519,0:12:58.000 -really - -0:12:53.920,0:13:00.959 -referential planes or meta planes - -0:12:58.000,0:13:03.120 -um in any case you can see that we're in - -0:13:00.959,0:13:04.560 -buffer mode and we can take a meta jump - -0:13:03.120,0:13:07.120 -out of this to confirm - -0:13:04.560,0:13:08.000 -that buffer mode is the only mode - -0:13:07.120,0:13:10.560 -available - -0:13:08.000,0:13:11.200 -when we're editing towers because that's - -0:13:10.560,0:13:14.240 -the one - -0:13:11.200,0:13:15.200 -we need given that our towers are - -0:13:14.240,0:13:21.839 -represented - -0:13:15.200,0:13:21.839 -in individual buffers - -0:13:23.200,0:13:26.320 -right so let's uh let's see where we're - -0:13:26.000,0:13:28.240 -at - -0:13:26.320,0:13:30.160 -trump's still skin principle we talked - -0:13:28.240,0:13:32.240 -about mode mode - -0:13:30.160,0:13:33.920 -um we talked about the strange loop - -0:13:32.240,0:13:37.820 -application of - -0:13:33.920,0:13:39.600 -ground level modes in meta levels - -0:13:37.820,0:13:42.240 -[Music] - -0:13:39.600,0:13:43.199 -and yeah we saw the different towers and - -0:13:42.240,0:13:46.639 -in fact - -0:13:43.199,0:13:49.839 -you can we're currently in - -0:13:46.639,0:13:49.839 -vim tower - -0:13:50.720,0:13:54.720 -where you can go to Emacs tower and now - -0:13:53.120,0:13:55.760 -with a single keystroke you can - -0:13:54.720,0:13:59.040 -alternate - -0:13:55.760,0:14:02.399 -between e-max - -0:13:59.040,0:14:05.519 -and vim which are represented which are - -0:14:02.399,0:14:07.839 -modeled as towers - -0:14:05.519,0:14:07.839 -um - -0:14:09.279,0:14:11.920 -okay so - -0:14:13.360,0:14:17.040 -so there's uh the one thing that we've - -0:14:15.360,0:14:18.160 -sort of alluded to is that there are two - -0:14:17.040,0:14:20.480 -directions - -0:14:18.160,0:14:22.399 -that you can travel in when you're going - -0:14:20.480,0:14:25.120 -through this framework - -0:14:22.399,0:14:32.560 -one lev one direction is uh and we'll - -0:14:25.120,0:14:32.560 -visualize it with uh like so - -0:14:33.760,0:14:37.040 -there's two directions you can travel - -0:14:35.120,0:14:38.399 -and you can either go sideways or you - -0:14:37.040,0:14:40.399 -can go up and down - -0:14:38.399,0:14:41.680 -if you go sideways you're changing your - -0:14:40.399,0:14:45.440 -perspective - -0:14:41.680,0:14:47.360 -so normal mode word mode line mode - -0:14:45.440,0:14:49.120 -window mode and so on are all different - -0:14:47.360,0:14:51.680 -perspectives on your under on your - -0:14:49.120,0:14:53.040 -ground editing experience - -0:14:51.680,0:14:55.519 -and the other direction you can travel - -0:14:53.040,0:14:57.920 -in is up or down which takes you - -0:14:55.519,0:14:59.600 -through meta levels so you go from the - -0:14:57.920,0:15:01.920 -ground level editing experience - -0:14:59.600,0:15:03.440 -up to mode mode and then up to the tower - -0:15:01.920,0:15:07.040 -plane and so on - -0:15:03.440,0:15:10.800 -or uh yeah and so on - -0:15:07.040,0:15:14.880 -um yeah so this all sounds - -0:15:10.800,0:15:18.160 -very complex but the truth is - -0:15:14.880,0:15:21.519 -it's not really that complicated - -0:15:18.160,0:15:22.959 -even though it feels that way the reason - -0:15:21.519,0:15:26.480 -it isn't that complicated - -0:15:22.959,0:15:28.800 -is because no matter how many levels - -0:15:26.480,0:15:30.160 -up or down you go and no matter where - -0:15:28.800,0:15:32.399 -you are - -0:15:30.160,0:15:34.079 -whether you're in at the ground level - -0:15:32.399,0:15:36.000 -editing the actual text - -0:15:34.079,0:15:37.600 -or whether you're at a meta level some - -0:15:36.000,0:15:39.279 -unknown meta level and you don't know - -0:15:37.600,0:15:42.320 -where you are - -0:15:39.279,0:15:44.399 -no matter where you are the way in which - -0:15:42.320,0:15:47.519 -you interact with it - -0:15:44.399,0:15:52.000 -is the same at every level - -0:15:47.519,0:15:55.440 -and that is the great power of um - -0:15:52.000,0:15:58.720 -this approach is that - -0:15:55.440,0:16:00.880 -all of the different levels um are the - -0:15:58.720,0:16:03.839 -same - -0:16:00.880,0:16:05.759 -and in fact the complexity of the whole - -0:16:03.839,0:16:08.720 -is exactly identical to the - -0:16:05.759,0:16:10.000 -complexity of each part so if you know - -0:16:08.720,0:16:12.959 -how to edit words - -0:16:10.000,0:16:13.440 -in the ground level buffer and you know - -0:16:12.959,0:16:15.839 -how to move - -0:16:13.440,0:16:16.720 -lines around using line mode then you - -0:16:15.839,0:16:19.519 -know how to edit - -0:16:16.720,0:16:22.800 -any aspect of your editing experience at - -0:16:19.519,0:16:23.310 -any level - -0:16:22.800,0:16:26.240 -so - -0:16:23.310,0:16:28.480 -[Music] - -0:16:26.240,0:16:28.480 -um - -0:16:30.079,0:16:33.839 -so this is a pre-release demo this - -0:16:32.000,0:16:36.880 -doesn't exist on melpa - -0:16:33.839,0:16:40.079 -yet but you can follow updates um - -0:16:36.880,0:16:44.079 -at this repo on github - -0:16:40.079,0:16:45.199 -and if you can also be a beta tester or - -0:16:44.079,0:16:46.000 -something like that if you like that - -0:16:45.199,0:16:49.199 -would be very - -0:16:46.000,0:16:50.560 -uh helpful and you can learn more about - -0:16:49.199,0:16:53.920 -this at - -0:16:50.560,0:16:55.920 -dream.org which is where I house - -0:16:53.920,0:16:57.279 -the research that I work on and in - -0:16:55.920,0:17:00.800 -particular - -0:16:57.279,0:17:03.600 -the research on epistemic levels is what - -0:17:00.800,0:17:06.480 -inspired this particular Emacs extension - -0:17:03.600,0:17:08.480 -you can also learn about dialectical - -0:17:06.480,0:17:10.880 -inheritance attribution which is the - -0:17:08.480,0:17:14.559 -basis of - -0:17:10.880,0:17:16.959 -a new economic system that could be fair - -0:17:14.559,0:17:19.439 -and could lead to a prosperous and happy - -0:17:16.959,0:17:22.799 -world - -0:17:19.439,0:17:26.319 -and um yeah you can follow me on - -0:17:22.799,0:17:31.919 -twitter at countwajoula and - -0:17:26.319,0: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.sbv b/2020/subtitles/emacsconf-2020--09-orgmode-your-life-in-plain-text--rainer-koenig-autogen.sbv deleted file mode 100644 index 2699f8ae..00000000 --- a/2020/subtitles/emacsconf-2020--09-orgmode-your-life-in-plain-text--rainer-koenig-autogen.sbv +++ /dev/null @@ -1,453 +0,0 @@ -0:00:02.480,0:00:06.240 -so - -0:00:03.199,0:00:08.559 -hi there this is reiner I have a 10 - -0:00:06.240,0:00:11.759 -minute time slot at the imax conf - -0:00:08.559,0:00:13.519 -and I will show you a quick uh walk - -0:00:11.759,0:00:17.039 -through my gtd - -0:00:13.519,0:00:19.520 -system in order mode so - -0:00:17.039,0:00:20.640 -let's start with capturing we want to - -0:00:19.520,0:00:24.080 -capture - -0:00:20.640,0:00:27.279 -what we do here so the idea - -0:00:24.080,0:00:29.599 -is I press f6 and I say I want to make a - -0:00:27.279,0:00:33.120 -small project because this video - -0:00:29.599,0:00:35.120 -will be a small project so the thing is - -0:00:33.120,0:00:38.239 -record a video - -0:00:35.120,0:00:42.000 -for imax imx - -0:00:38.239,0:00:45.920 -conf 2020 - -0:00:42.000,0:00:49.360 -video is recorded edited - -0:00:45.920,0:00:52.160 -and uploaded and we can also - -0:00:49.360,0:00:53.680 -set the timeline because we want to - -0:00:52.160,0:00:56.640 -upload it and the time - -0:00:53.680,0:00:59.440 -the deadline for uploads is we know it - -0:00:56.640,0:01:02.719 -already the 14th of november - -0:00:59.440,0:01:03.600 -so let me put this in here see this is - -0:01:02.719,0:01:05.760 -done - -0:01:03.600,0:01:07.600 -and now because it's a project I mean I - -0:01:05.760,0:01:09.280 -could say just one task to record a - -0:01:07.600,0:01:12.159 -video but it's - -0:01:09.280,0:01:27.840 -too much so let's split it down in a few - -0:01:12.159,0:01:27.840 -small tasks so the next one - -0:01:40.400,0:01:46.159 -so you see I've just typed a few - -0:01:43.439,0:01:46.640 -quick tasks we can see them if we look - -0:01:46.159,0:01:49.360 -in the - -0:01:46.640,0:01:49.360 -capture file - -0:01:50.240,0:01:54.479 -so you see there's my project entry and - -0:01:52.399,0:01:56.799 -there are all my tasks and since it's a - -0:01:54.479,0:02:00.240 -project I can now - -0:01:56.799,0:02:02.479 -make it easy I just indent every task by - -0:02:00.240,0:02:02.479 -one - -0:02:05.360,0:02:09.840 -and then - -0:02:14.480,0:02:16.800 -so - -0:02:18.560,0:02:27.360 -okay so you see we have one - -0:02:23.120,0:02:30.080 -project here and this one we refile now - -0:02:27.360,0:02:30.080 -to our - -0:02:34.840,0:02:41.680 -backlog - -0:02:36.160,0:02:41.680 -so if we look in our backlog - -0:02:42.000,0:02:51.840 -you see my project with all the tasks - -0:02:45.599,0:02:51.840 -so now next one - -0:02:52.480,0:02:56.720 -and I pretend now I'm doing a weekly - -0:02:55.040,0:03:00.959 -review - -0:02:56.720,0:03:00.959 -see makes me - -0:03:01.040,0:03:07.120 -and I already did some things and now - -0:03:04.080,0:03:10.319 -the point where I am - -0:03:07.120,0:03:14.319 -is schedule tasks with no date - -0:03:10.319,0:03:14.319 -those are all those tasks so I have a - -0:03:15.200,0:03:19.040 -weekly review help but that says okay - -0:03:17.519,0:03:22.080 -show me everything - -0:03:19.040,0:03:25.280 -that I need to schedule plan - -0:03:22.080,0:03:27.760 -so schedule this class we do - -0:03:25.280,0:03:27.760 -everything - -0:03:30.879,0:03:34.640 -so everything is scheduled now - -0:03:35.040,0:03:42.000 -and we can check off that and so on - -0:03:38.239,0:03:44.959 -we can I have a plan - -0:03:42.000,0:03:46.879 -for every day that's my free plan I - -0:03:44.959,0:03:50.239 -press f6 - -0:03:46.879,0:03:53.439 -and I say pp plan - -0:03:50.239,0:03:57.360 -private things you see there is the - -0:03:53.439,0:04:01.120 -first day 12th of november german - -0:03:57.360,0:04:03.200 -and now I can - -0:04:01.120,0:04:04.239 -look at what I have to do today you see - -0:04:03.200,0:04:07.040 -my my uh - -0:04:04.239,0:04:09.360 -agenda view is very long and I just want - -0:04:07.040,0:04:14.000 -to focus on a few tasks so - -0:04:09.360,0:04:16.720 -I copied them to my - -0:04:14.000,0:04:16.720 -daily plan - -0:04:22.639,0:04:29.919 -I just want to show you so I have a - -0:04:25.680,0:04:33.919 -daily plan for every day and that means - -0:04:29.919,0:04:37.680 -this one is what I see - -0:04:33.919,0:04:41.360 -and this one is gone - -0:04:37.680,0:04:43.600 -so now let's pretend we are working on - -0:04:41.360,0:04:44.960 -the first refine the requirements for - -0:04:43.600,0:04:48.320 -the video - -0:04:44.960,0:04:51.520 -and we had a look and uh okay - -0:04:48.320,0:04:53.520 -I can mark this task as done here - -0:04:51.520,0:04:54.840 -because I knew the requirements the main - -0:04:53.520,0:04:57.759 -ct - -0:04:54.840,0:05:01.199 -done format - -0:04:57.759,0:05:05.199 -is 720p - -0:05:01.199,0:05:09.440 -webm codec - -0:05:05.199,0:05:10.960 -so this one is done and I can mark it - -0:05:09.440,0:05:14.560 -off here - -0:05:10.960,0:05:17.600 -as well so now I have marked it off - -0:05:14.560,0:05:19.600 -everywhere and the good thing of my - -0:05:17.600,0:05:21.600 -daily plan is that I can't - -0:05:19.600,0:05:23.520 -really see it all the day and I stick to - -0:05:21.600,0:05:24.639 -this what I decided in the morning what - -0:05:23.520,0:05:27.120 -I want to do - -0:05:24.639,0:05:28.080 -so let's go to the next one make a quick - -0:05:27.120,0:05:38.000 -test - -0:05:28.080,0:05:40.720 -yeah I did the test already - -0:05:38.000,0:05:42.639 -uh I will do a small trick I say okay I - -0:05:40.720,0:05:46.960 -record the video here - -0:05:42.639,0:05:53.840 -video recorded and then let me do - -0:05:46.960,0:05:53.840 -what to show - -0:05:55.120,0:06:01.280 -now I'm recording the video so - -0:05:58.319,0:06:02.240 -let's see what we do we had capture we - -0:06:01.280,0:06:05.440 -had - -0:06:02.240,0:06:09.919 -weekly review we had daily planning - -0:06:05.440,0:06:12.319 -and how are we processing this very nice - -0:06:09.919,0:06:15.120 -so let's pretend the video is recorded - -0:06:12.319,0:06:15.120 -ct done - -0:06:17.520,0:06:21.120 -let me put this to next again start - -0:06:20.479,0:06:26.000 -cardi - -0:06:21.120,0:06:26.000 -and live to time lapse - -0:06:27.280,0:06:33.759 -and after recording it - -0:06:30.319,0:06:36.720 -I pre pretend this is done now - -0:06:33.759,0:06:36.720 -ct done - -0:06:39.039,0:06:44.639 -and then I have a video ready and then - -0:06:42.400,0:06:50.639 -let's pretend I did the upload - -0:06:44.639,0:06:55.280 -as well done radio uploaded - -0:06:50.639,0:06:58.319 -cc so I can say everything now is done - -0:06:55.280,0:06:59.199 -save it so tomorrow I see what I did - -0:06:58.319,0:07:02.560 -yesterday - -0:06:59.199,0:07:06.000 -and here I'm completely - -0:07:02.560,0:07:09.680 -done we have the weekly review - -0:07:06.000,0:07:12.639 -and we put another - -0:07:09.680,0:07:15.199 -buffer here because I want to show you - -0:07:12.639,0:07:16.960 -the the final step of my weekly review - -0:07:15.199,0:07:19.199 -if you see the - -0:07:16.960,0:07:21.599 -if you see there's a final step that - -0:07:19.199,0:07:24.160 -says select finish tasks and make a bulk - -0:07:21.599,0:07:26.560 -archive action so if you look at my - -0:07:24.160,0:07:27.440 -uh imax coin thing okay the project is - -0:07:26.560,0:07:31.360 -done as well - -0:07:27.440,0:07:34.880 -project ct done - -0:07:31.360,0:07:38.160 -and then what I can do is now see - -0:07:34.880,0:07:41.680 -a weekly review helper - -0:07:38.160,0:07:44.720 -finish tasks and I could - -0:07:41.680,0:07:48.639 -make a bike - -0:07:44.720,0:07:50.639 -operation that says archive everything - -0:07:48.639,0:07:52.720 -but at the moment I don't need to do - -0:07:50.639,0:07:56.720 -that because we have - -0:07:52.720,0:08:00.080 -a tree structure so it's cxa I have this - -0:07:56.720,0:08:02.800 -task away and the task is done so that's - -0:08:00.080,0:08:06.080 -it that's my system you see from - -0:08:02.800,0:08:08.000 -capturing tasks to scheduling tasks to - -0:08:06.080,0:08:09.759 -putting it on the daily plan - -0:08:08.000,0:08:11.120 -performing it and at the end when - -0:08:09.759,0:08:13.199 -everything is done - -0:08:11.120,0:08:14.879 -and the next weekly review they will go - -0:08:13.199,0:08:17.199 -to the ici file - -0:08:14.879,0:08:21.759 -because it's finished thank you for - -0:08:17.199,0:08:21.759 -watching that's it - diff --git a/2020/subtitles/emacsconf-2020--10-lead-your-future-with-org--andrea.sbv b/2020/subtitles/emacsconf-2020--10-lead-your-future-with-org--andrea.sbv deleted file mode 100644 index 1718ca36..00000000 --- a/2020/subtitles/emacsconf-2020--10-lead-your-future-with-org--andrea.sbv +++ /dev/null @@ -1,348 +0,0 @@ -0:00:00.220,0:00:03.400 -Welcome to my talk, Lead Your Future with -Org. - -0:00:03.400,0:00:04.680 -Who am I? - -0:00:04.680,0:00:05.680 -I'm Andrea. - -0:00:05.680,0:00:10.060 -I work as a Scala software engineer somewhere -in the Netherlands, and I inherited my passion - -0:00:10.060,0:00:12.340 -for Emacs from my PhD supervisor. - -0:00:12.340,0:00:15.050 -From that moment on, I got in synergy with -it. - -0:00:15.050,0:00:19.830 -You can find more about me and my interests -at https://ag91.github.io. - -0:00:19.830,0:00:27.150 -That is the place where I keep my blog and -I blog on a weekly basis. - -0:00:27.150,0:00:29.449 -Let's get into the bulk of the talk. - -0:00:29.449,0:00:31.679 -Why I needed a vision. - -0:00:31.679,0:00:34.360 -The main, main problem is that I have too -many interests. - -0:00:34.360,0:00:37.740 -I like a lot of things, and these things take -time. - -0:00:37.740,0:00:44.000 -Then I have too little time to do other things -that are very important as well. - -0:00:44.000,0:00:46.430 -And so I need priority. - -0:00:46.430,0:00:51.750 -And the vision in my mind is both an ambition, -something that I want to do with my life, - -0:00:51.750,0:00:59.220 -and at the same time, it's a way to focus -my efforts and get rid of some stuff that - -0:00:59.220,0:01:03.350 -fundamentally is not something I really care -so much about. - -0:01:03.350,0:01:09.400 -Even if you come up with a vision and so with -a smaller scope of things that you want to - -0:01:09.400,0:01:17.150 -do, even then, you have to take this ambition -of yours, this vision, and disassemble it - -0:01:17.150,0:01:19.310 -in very small steps. - -0:01:19.310,0:01:28.950 -Org Mode is very good at taking care of this -because you can keep track of TODOs in Org - -0:01:28.950,0:01:29.950 -Mode. - -0:01:29.950,0:01:36.740 -So let me show you how I keep an agenda that -also keeps track of my vision. - -0:01:36.740,0:01:40.250 -For this talk, I have a running example. - -0:01:40.250,0:01:42.990 -Vision will be "I want to bring joy to people." - -0:01:42.990,0:01:45.730 -and "I want to live in synergy with the planet." - -0:01:45.730,0:01:49.740 -Okay, so, given these two visions, let's open -the agenda. - -0:01:49.740,0:01:59.560 -You will see on the right that now I have -some tasks, both on Tuesday and on Friday. - -0:01:59.560,0:02:04.560 -Things to notice is that we said one of our -visions is synergy with the planet, so some - -0:02:04.560,0:02:13.010 -tasks are annotated on the left with this -category and some with "Bring joy to people." - -0:02:13.010,0:02:16.730 -In this way, you can distinguish where are -my... - -0:02:16.730,0:02:20.100 -In this day, where my effort is going in this -day. - -0:02:20.100,0:02:27.950 -The other thing is the specification of these -tasks, and then at the end, you can notice - -0:02:27.950,0:02:42.690 -a tag on the right that is essentially a guess -of how long this task will have an effect - -0:02:42.690,0:02:43.750 -over the future. - -0:02:43.750,0:02:53.970 -So, for example, installing solar panel onto -my roof is going to have an effect of 10 years - -0:02:53.970,0:02:57.180 -over my life, if I manage to achieve that. - -0:02:57.180,0:03:01.230 -That is my rough guess. - -0:03:01.230,0:03:08.180 -You will notice that the ones that have a -bigger amount, so 10 years over the 5 year - -0:03:08.180,0:03:15.879 -one, because I order my day so that the tasks -that are more important or that I believe - -0:03:15.879,0:03:21.540 -are more effective over my future, I sort -them so that they appear at the top. - -0:03:21.540,0:03:26.420 -In this way, I can basically decide, okay, -today, what should I... - -0:03:26.420,0:03:36.379 -Find a video on Youtube, but I should take -into consideration when I look at my agenda - -0:03:36.379,0:03:42.379 -that I've traded that small fun for today -with something that could have had an effect - -0:03:42.379,0:03:45.890 -over a longer period of time. - -0:03:45.890,0:04:03.909 -Let me show you how I also exploit the facilities -that Org Mode comes with. - -0:04:03.909,0:04:05.190 -I will... - -0:04:05.190,0:04:07.830 -I have two templates available to me. - -0:04:07.830,0:04:09.330 -I will choose one. - -0:04:09.330,0:04:13.970 -The first thing that it asks to me is "How -long will this affect your life?" - -0:04:13.970,0:04:20.660 -So I like ... It will affect a long time, -if I manage to produce only for myself. - -0:04:20.660,0:04:23.400 -So I choose 10 years. - -0:04:23.400,0:04:24.750 -And then I specify the task. - -0:04:24.750,0:04:29.080 -So, "Learn how to keep bees." - -0:04:29.080,0:04:30.080 -I collect this task. - -0:04:30.080,0:04:35.870 -It will now appear in the middle because 10 -years is between 20 years and 5 years. - -0:04:35.870,0:04:40.860 -So I know that if I put some effort in learning -how to keep bees, I should be quite happy - -0:04:40.860,0:04:41.979 -for today. - -0:04:41.979,0:04:43.060 -Okay. - -0:04:43.060,0:04:50.470 -So, say that I do it, say that that's it... - -0:04:50.470,0:04:52.490 -Once I've done this task, how can I be... - -0:04:52.490,0:04:58.000 -How do I know how much progress I am doing? - -0:04:58.000,0:05:07.100 -The way I can do that is by retrospecting -weekly or monthly about the successes or the - -0:05:07.100,0:05:09.520 -progress that I am doing. - -0:05:09.520,0:05:14.949 -How I do it is simply by running this kind -of snippet that shows me that for this month, - -0:05:14.949,0:05:23.350 -I have done three tasks for bringing joy to -people and three tasks for synergy with planet. - -0:05:23.350,0:05:30.300 -This is useful because you can repeat it and -it will be appended, so every time you run - -0:05:30.300,0:05:38.040 -it again, you can compare if you are... how -you are working towards your goal and if you're - -0:05:38.040,0:05:43.830 -focusing more on bringing joy to people or -if you're focusing more on synergy. - -0:05:43.830,0:05:45.990 -Balance the effort. - -0:05:45.990,0:05:51.850 -A thing that I want to share that I think -will be useful to you is this function I use - -0:05:51.850,0:05:55.789 -that I made for myself to create these statistics. - -0:05:55.789,0:06:04.509 -It's a wrapper around the very enjoyable library -org-ql, which allows you to query and group - -0:06:04.509,0:06:13.650 -headings, do analysis on headings, or restructuring -and view headings in a SQL fashion. - -0:06:13.650,0:06:19.120 -The syntax is very similar to SQL. - -0:06:19.120,0:06:25.390 -You can manipulate your headings and visualize -them or just get statistics as I have done - -0:06:25.390,0:06:26.390 -here. - -0:06:26.390,0:06:36.540 -Finally, for this talk, say that you are doing -progress, that progress most likely will generate - -0:06:36.540,0:06:39.950 -some useful knowledge for yourself. - -0:06:39.950,0:06:46.050 -My way to store this knowledge is through -org-roam, another interesting mode that is - -0:06:46.050,0:06:54.759 -very... that is becoming very relevant and -known today. - -0:06:54.759,0:06:56.020 -The idea is that I simply... - -0:06:56.020,0:07:08.470 -If I learn how to make, how to install solar -panels, that can be useful knowledge. - -0:07:08.470,0:07:15.800 -I can link to some other knowledge that I -have and so create my own knowledgebase, and - -0:07:15.800,0:07:19.020 -save it for later use. - -0:07:19.020,0:07:25.160 -My later use is typically, in this case, my -blog. - -0:07:25.160,0:07:31.630 -In here, I have a few notes that are basically -a synthesis of knowledge that I have collected - -0:07:31.630,0:07:34.550 -doing my tasks towards my vision. - -0:07:34.550,0:07:39.440 -With this, this is all I wanted to show you -for this talk. - -0:07:39.440,0:07:47.490 -You can follow me on my blog at https://ag91.github.io -. That is also where I am going to share a - -0:07:47.490,0:07:55.370 -version of this Org Mode file that allows -you basically to create the same kind of configuration - -0:07:55.370,0:08:02.950 -I have here, and you can create an instance -by running this snippet of Emacs in which - -0:08:02.950,0:08:04.790 -you can just run this example. - -0:08:04.790,0:08:11.890 -An extended example I will also add, to just -play around safely with this kind of configuration. - -0:08:11.890,0:08:13.300 -So enjoy the rest of the conference. - -0:08:13.300,0:08:14.460 -Catch you later! - -0:08:14.460,0:08:15.650 -Nice to meet you! - diff --git a/2020/subtitles/emacsconf-2020--11-the-org-gtd-package-opinions-about-getting-things-done--aldric-autogen.sbv b/2020/subtitles/emacsconf-2020--11-the-org-gtd-package-opinions-about-getting-things-done--aldric-autogen.sbv deleted file mode 100644 index ee8fdb9f..00000000 --- a/2020/subtitles/emacsconf-2020--11-the-org-gtd-package-opinions-about-getting-things-done--aldric-autogen.sbv +++ /dev/null @@ -1,1194 +0,0 @@ -0:00:01.680,0:00:07.120 -hello and welcome - -0:00:03.439,0:00:07.120 -to my org gt - -0:00:07.200,0:00:12.719 -I wrote this package because myself - -0:00:10.400,0:00:14.320 -overwhelmed with all the stuff I had to - -0:00:12.719,0:00:17.359 -manage at working at home - -0:00:14.320,0:00:18.720 -and I'd heard about gtd saw someone - -0:00:17.359,0:00:22.320 -using it with - -0:00:18.720,0:00:24.720 -just a small notebook - -0:00:22.320,0:00:25.920 -and I wanted to do it in emacs because - -0:00:24.720,0:00:29.199 -well - -0:00:25.920,0:00:31.359 -max can do everything right so - -0:00:29.199,0:00:34.559 -I'm going to jump in quickly so just so - -0:00:31.359,0:00:36.960 -you know here's kind of a list of the - -0:00:34.559,0:00:38.719 -resources obviously org gtd which you - -0:00:36.960,0:00:41.120 -can find there you can open an issue ask - -0:00:38.719,0:00:43.280 -me questions there about it - -0:00:41.120,0:00:45.360 -I use org edna a package for state - -0:00:43.280,0:00:46.160 -triggers I'm going to show this briefly - -0:00:45.360,0:00:49.840 -when I - -0:00:46.160,0:00:52.000 -finish item in a project - -0:00:49.840,0:00:53.440 -org agenda property you will see in the - -0:00:52.000,0:00:57.360 -agenda it's going to show - -0:00:53.440,0:01:00.960 -to whom an action has been delegated to - -0:00:57.360,0:01:02.559 -and you will see orgrome briefly as a - -0:01:00.960,0:01:04.080 -reference because that is what I have - -0:01:02.559,0:01:06.960 -chosen for - -0:01:04.080,0:01:07.360 -my knowledge archival tool you can - -0:01:06.960,0:01:12.640 -choose - -0:01:07.360,0:01:15.520 -whatever you prefer - -0:01:12.640,0:01:15.840 -um this is a quick quick reminder on - -0:01:15.520,0:01:18.479 -what - -0:01:15.840,0:01:19.680 -gtd is and how it works uh this is not a - -0:01:18.479,0:01:22.640 -lesson on - -0:01:19.680,0:01:23.360 -presentation on gtd because that would - -0:01:22.640,0:01:25.680 -be - -0:01:23.360,0:01:27.920 -well other people have done it better - -0:01:25.680,0:01:30.320 -than me - -0:01:27.920,0:01:31.280 -so in short um everything goes into the - -0:01:30.320,0:01:34.320 -inbox - -0:01:31.280,0:01:35.600 -and then you process the inbox and you - -0:01:34.320,0:01:37.200 -decide what to do if - -0:01:35.600,0:01:39.119 -it could be actionable or not if it's - -0:01:37.200,0:01:40.799 -actionable it could be a project - -0:01:39.119,0:01:42.159 -or it could be a single action which you - -0:01:40.799,0:01:45.759 -could delegate - -0:01:42.159,0:01:48.079 -or soon or schedule or just do - -0:01:45.759,0:01:49.680 -do it if it's not actionable you could - -0:01:48.079,0:01:51.759 -just throw it away - -0:01:49.680,0:01:53.600 -incubate it for later or move it into - -0:01:51.759,0:01:56.079 -your files - -0:01:53.600,0:01:56.079 -reference - -0:01:57.520,0:02:00.240 -over here - -0:02:01.920,0:02:08.959 -you can see the global bindings - -0:02:05.119,0:02:11.599 -or or gtd those are the the actions that - -0:02:08.959,0:02:12.319 -the functions I have made available this - -0:02:11.599,0:02:14.000 -is - -0:02:12.319,0:02:15.760 -in progress there's more to come some - -0:02:14.000,0:02:17.360 -stuff is probably missing but - -0:02:15.760,0:02:22.400 -it's grown mostly from my own personal - -0:02:17.360,0:02:25.520 -use so far so it doesn't have things - -0:02:22.400,0:02:27.200 -and the bottom right you can see the - -0:02:25.520,0:02:28.560 -agenda - -0:02:27.200,0:02:31.599 -one thing I wanted to do with this - -0:02:28.560,0:02:32.959 -package was leverage org mode as much as - -0:02:31.599,0:02:36.319 -possible - -0:02:32.959,0:02:40.160 -so I tried to not reinvent - -0:02:36.319,0:02:43.599 -the wheel as much as I could that meant - -0:02:40.160,0:02:45.599 -reusing the agenda you can see here - -0:02:43.599,0:02:47.920 -a couple of the things that are made - -0:02:45.599,0:02:49.760 -available or kind of - -0:02:47.920,0:02:54.160 -custom customized or configure it for - -0:02:49.760,0:02:54.160 -you some of the opinions that or gtd has - -0:02:54.319,0:02:57.840 -up here for instance you can see a - -0:02:56.400,0:03:01.040 -delegated action - -0:02:57.840,0:03:03.200 -so a delegated action is - -0:03:01.040,0:03:04.720 -as someone to whom it's delegated it's - -0:03:03.200,0:03:06.080 -my parents in this case - -0:03:04.720,0:03:08.239 -it has the name of the action ask - -0:03:06.080,0:03:11.599 -parents what gift they want - -0:03:08.239,0:03:14.800 -it's marked as the tag as the state - -0:03:11.599,0:03:17.280 -of wait because I'm waiting - -0:03:14.800,0:03:18.080 -and it is scheduled because you should - -0:03:17.280,0:03:20.239 -ping people - -0:03:18.080,0:03:21.840 -or check on the status status of a task - -0:03:20.239,0:03:25.680 -when you're waiting for it so you don't - -0:03:21.840,0:03:27.599 -forget about it or it gets lost forever - -0:03:25.680,0:03:30.560 -I have a scheduled action to give a talk - -0:03:27.599,0:03:33.440 -that's what I'm doing right now - -0:03:30.560,0:03:35.599 -and I have an incubated action which is - -0:03:33.440,0:03:36.640 -also scheduled to make money through the - -0:03:35.599,0:03:38.640 -lottery this is a - -0:03:36.640,0:03:41.120 -thing to take a look at for you know - -0:03:38.640,0:03:42.560 -later decide later what I want to do - -0:03:41.120,0:03:44.560 -it might be actionable it might not be I - -0:03:42.560,0:03:46.239 -just I don't know right now or I didn't - -0:03:44.560,0:03:49.280 -know when I - -0:03:46.239,0:03:52.319 -processed it so I incubated it - -0:03:49.280,0:03:53.200 -underneath we have all the things that - -0:03:52.319,0:03:56.799 -are - -0:03:53.200,0:03:56.799 -direct actions for me to take - -0:03:59.360,0:04:03.200 -all right you see a little bit of the - -0:04:01.439,0:04:04.080 -preparation seeps through the actual - -0:04:03.200,0:04:05.519 -talk - -0:04:04.080,0:04:07.920 -so I have here two I have a single - -0:04:05.519,0:04:09.840 -action of a steal the android uh andreas - -0:04:07.920,0:04:12.879 -gtd configuration - -0:04:09.840,0:04:15.840 -and an action to read the gtd book it's - -0:04:12.879,0:04:15.840 -part of a project - -0:04:16.320,0:04:23.840 -so most of the day-to-day operation with - -0:04:21.680,0:04:26.000 -with this package should come through - -0:04:23.840,0:04:29.600 -just having the agenda open - -0:04:26.000,0:04:31.199 -and having having it be your your source - -0:04:29.600,0:04:31.919 -for the information you need to know so - -0:04:31.199,0:04:34.960 -that you can - -0:04:31.919,0:04:35.440 -do the right thing so let's take a look - -0:04:34.960,0:04:37.440 -at - -0:04:35.440,0:04:39.600 -what's underneath all of this really - -0:04:37.440,0:04:42.320 -quickly - -0:04:39.600,0:04:43.360 -we have there's three primary files um - -0:04:42.320,0:04:45.759 -we have the inbox - -0:04:43.360,0:04:46.400 -I'm gonna process it in a second because - -0:04:45.759,0:04:48.880 -there's - -0:04:46.400,0:04:50.000 -two things here one thing to cancel like - -0:04:48.880,0:04:51.919 -an action to - -0:04:50.000,0:04:53.919 -not take it's nothing and then something - -0:04:51.919,0:04:54.479 -I will just put into org roam just so - -0:04:53.919,0:04:58.960 -you can - -0:04:54.479,0:05:00.240 -see that there is the incubate file - -0:04:58.960,0:05:02.000 -you can see here make money through the - -0:05:00.240,0:05:04.800 -lottery - -0:05:02.000,0:05:06.560 -captured refiled here and scheduled to - -0:05:04.800,0:05:10.000 -so it would show up in the agenda - -0:05:06.560,0:05:13.039 -right at a given time and on the right - -0:05:10.000,0:05:14.560 -you have the actionable file and this is - -0:05:13.039,0:05:15.919 -the one that has the most information - -0:05:14.560,0:05:18.960 -because - -0:05:15.919,0:05:20.560 -where most things should go so - -0:05:18.960,0:05:22.720 -I have the single actions they all go - -0:05:20.560,0:05:24.479 -underneath here and so - -0:05:22.720,0:05:26.240 -this is marked as next because it's an - -0:05:24.479,0:05:28.240 -action for me to take - -0:05:26.240,0:05:29.600 -uh delegated is marked as weight it is - -0:05:28.240,0:05:31.199 -not an action for me to take it's an - -0:05:29.600,0:05:32.400 -action for somebody else to take but it - -0:05:31.199,0:05:37.919 -is scheduled because - -0:05:32.400,0:05:38.400 -I may wanna I can check in at some point - -0:05:37.919,0:05:39.759 -uh - -0:05:38.400,0:05:43.120 -things that are scheduled like give a - -0:05:39.759,0:05:44.960 -talk do not have a to-do or next or wait - -0:05:43.120,0:05:46.400 -state because they are not bound that - -0:05:44.960,0:05:48.080 -way they are time-bound - -0:05:46.400,0:05:50.320 -so they will show up in the agenda when - -0:05:48.080,0:05:53.840 -the time comes I shouldn't act on them - -0:05:50.320,0:05:55.280 -or I can't act on them beforehand - -0:05:53.840,0:05:56.880 -you can see here I have two projects a - -0:05:55.280,0:05:58.880 -test project and I will - -0:05:56.880,0:06:00.080 -do something with this in a second and - -0:05:58.880,0:06:01.919 -then there's this - -0:06:00.080,0:06:04.000 -package make a gte package there's a - -0:06:01.919,0:06:07.520 -project here for me to create this back - -0:06:04.000,0:06:09.759 -it's made a bunch of actions and - -0:06:07.520,0:06:11.440 -I'm going to show you two things here - -0:06:09.759,0:06:14.639 -one is - -0:06:11.440,0:06:16.400 -since I was trying to leverage org mode - -0:06:14.639,0:06:20.479 -as much as possible - -0:06:16.400,0:06:24.080 -I didn't try to create very clever - -0:06:20.479,0:06:27.199 -operations because org mode has a lot of - -0:06:24.080,0:06:29.600 -very powerful tools already - -0:06:27.199,0:06:31.039 -so there's automations I could I can add - -0:06:29.600,0:06:34.240 -but I thought it might be - -0:06:31.039,0:06:35.680 -better to leave more things into the - -0:06:34.240,0:06:38.000 -hands of the user - -0:06:35.680,0:06:39.199 -so here in this case this test project - -0:06:38.000,0:06:42.479 -we can just archive - -0:06:39.199,0:06:45.680 -right that's just - -0:06:42.479,0:06:46.840 -control c control x control a is the org - -0:06:45.680,0:06:51.440 -archive - -0:06:46.840,0:06:51.440 -action save this - -0:06:52.000,0:06:56.160 -so now if I if we go to the you know - -0:06:54.479,0:06:59.440 -this will create an archive file - -0:06:56.160,0:07:00.560 -which will have this this information - -0:06:59.440,0:07:03.840 -for later perusal - -0:07:00.560,0:07:05.360 -brutal if you're interested that's - -0:07:03.840,0:07:07.199 -that's one thing if we go back to the - -0:07:05.360,0:07:10.479 -agenda for a second - -0:07:07.199,0:07:14.080 -um you can see - -0:07:10.479,0:07:16.479 -these things here uh org so by the way - -0:07:14.080,0:07:19.120 -uh this this parents here with the org - -0:07:16.479,0:07:22.319 -agenda property this is what shows here - -0:07:19.120,0:07:23.680 -right and here if I finish read the gtd - -0:07:22.319,0:07:27.680 -book - -0:07:23.680,0:07:31.919 -I mark it as done now refresh - -0:07:27.680,0:07:34.720 -you'll see that another item shows up - -0:07:31.919,0:07:37.280 -and that is where org edna comes in when - -0:07:34.720,0:07:39.759 -an action is marked as done in a project - -0:07:37.280,0:07:41.360 -the net the next to do action is - -0:07:39.759,0:07:43.759 -automatically marked as next so your - -0:07:41.360,0:07:46.400 -agenda is automatically updated - -0:07:43.759,0:07:48.400 -this was one of the nice things for me - -0:07:46.400,0:07:50.400 -because I didn't want to have to - -0:07:48.400,0:07:51.919 -open my file go find the action mark it - -0:07:50.400,0:07:53.440 -as done find the next one mark it as - -0:07:51.919,0:07:57.280 -next and so forth - -0:07:53.440,0:07:58.960 -so I didn't want to bother with it - -0:07:57.280,0:08:00.960 -um oh actually you know what let me show - -0:07:58.960,0:08:04.080 -you something else - -0:08:00.960,0:08:07.120 -this uh simple - -0:08:04.080,0:08:07.840 -project I don't need this timestamp to - -0:08:07.120,0:08:09.680 -be here but - -0:08:07.840,0:08:13.039 -I like having a capture timestamp here - -0:08:09.680,0:08:15.919 -so I'm gonna make one up - -0:08:13.039,0:08:16.879 -so this is the most convenient thing - -0:08:15.919,0:08:17.919 -that I think - -0:08:16.879,0:08:20.720 -this is one of the most convenient - -0:08:17.919,0:08:22.960 -things that I get out of is binding - -0:08:20.720,0:08:24.400 -the next really convenient thing is the - -0:08:22.960,0:08:27.440 -way this gets processed - -0:08:24.400,0:08:30.080 -let me show you this um - -0:08:27.440,0:08:31.440 -when you process the the entire inbox - -0:08:30.080,0:08:33.440 -what you see is - -0:08:31.440,0:08:34.560 -the items one at a time so you can work - -0:08:33.440,0:08:36.320 -with them - -0:08:34.560,0:08:38.320 -you can see at the bottom where you can - -0:08:36.320,0:08:40.320 -work with them without being distracted - -0:08:38.320,0:08:42.399 -you can see at the bottom the the list - -0:08:40.320,0:08:45.120 -of things you can do which are all the - -0:08:42.399,0:08:45.760 -decisions you can take from gtd right in - -0:08:45.120,0:08:48.959 -this case - -0:08:45.760,0:08:50.959 -this is one to throw out so press t you - -0:08:48.959,0:08:52.320 -have the option to make modifications to - -0:08:50.959,0:08:55.200 -this if you want to - -0:08:52.320,0:08:56.240 -if you have any reason to store it then - -0:08:55.200,0:08:58.160 -you finish editing - -0:08:56.240,0:09:00.080 -you can add a tag if you want to because - -0:08:58.160,0:09:02.720 -this might still be interesting - -0:09:00.080,0:09:03.920 -and then enter and it's done so - -0:09:02.720,0:09:06.959 -important knowledge - -0:09:03.920,0:09:10.880 -I'm going to hit a for archive it - -0:09:06.959,0:09:12.160 -and then um I'm gonna start looking at - -0:09:10.880,0:09:17.839 -orgrom - -0:09:12.160,0:09:17.839 -so this is uh important knowledge - -0:09:20.800,0:09:24.640 -I have to get to this that's it I've - -0:09:23.519,0:09:27.920 -captured it - -0:09:24.640,0:09:30.959 -uh it is done I uh - -0:09:27.920,0:09:34.080 -go back to buffer - -0:09:30.959,0:09:35.360 -and I can market control c then - -0:09:34.080,0:09:37.279 -there's no archiving because this is - -0:09:35.360,0:09:38.800 -just knowledge there's no - -0:09:37.279,0:09:40.320 -tagging it's just knowledge but then the - -0:09:38.800,0:09:41.040 -simple project I want to show you this - -0:09:40.320,0:09:42.800 -because - -0:09:41.040,0:09:44.640 -there's some automation that's pretty - -0:09:42.800,0:09:48.839 -helpful so - -0:09:44.640,0:09:50.000 -in the simple project I have my first - -0:09:48.839,0:09:53.920 -action - -0:09:50.000,0:09:55.360 -second action third action - -0:09:53.920,0:09:56.720 -and you see this is all I'm writing I'm - -0:09:55.360,0:10:00.000 -not adding any of the states any of the - -0:09:56.720,0:10:00.000 -tags they're going to be added by - -0:10:00.399,0:10:05.839 -so um here I can add a - -0:10:04.320,0:10:07.360 -I can add a tag if I want to this - -0:10:05.839,0:10:09.920 -project I don't care - -0:10:07.360,0:10:11.279 -right now but you know I leave the tags - -0:10:09.920,0:10:11.920 -to the user so they're not super - -0:10:11.279,0:10:15.440 -relevant - -0:10:11.920,0:10:19.279 -to me as a package - -0:10:15.440,0:10:19.600 -provider and this is where we are this - -0:10:19.279,0:10:21.200 -is - -0:10:19.600,0:10:23.519 -the whole thing so now if we go back to - -0:10:21.200,0:10:27.600 -the agenda - -0:10:23.519,0:10:30.720 -I have a first action right and - -0:10:27.600,0:10:32.959 -if I go to the actionable file and now - -0:10:30.720,0:10:34.079 -see I have a simple project that has my - -0:10:32.959,0:10:36.880 -first action as next - -0:10:34.079,0:10:38.079 -second option to do third action as to - -0:10:36.880,0:10:41.360 -do - -0:10:38.079,0:10:42.880 -uh so what I've you know - -0:10:41.360,0:10:47.200 -as you can see I hope what I've tried to - -0:10:42.880,0:10:50.880 -do is take all of the kind of - -0:10:47.200,0:10:52.560 -all the tedium out of working with - -0:10:50.880,0:10:54.880 -with emacs and org mode when working - -0:10:52.560,0:10:57.200 -with your actions so you could focus on - -0:10:54.880,0:10:58.640 -what you want to do what you need to do - -0:10:57.200,0:10:59.279 -what you care about and the package - -0:10:58.640,0:11:04.079 -would - -0:10:59.279,0:11:04.079 -take care of the rest so - -0:11:04.880,0:11:08.000 -the last thing I wanted to take a quick - -0:11:06.240,0:11:08.640 -look at was some of the the tests - -0:11:08.000,0:11:11.120 -there's - -0:11:08.640,0:11:13.440 -the code is available here but you can - -0:11:11.120,0:11:14.800 -see the code - -0:11:13.440,0:11:16.880 -you on see the code on github if you - -0:11:14.800,0:11:18.720 -want um - -0:11:16.880,0:11:20.320 -I've had some trouble writing good tests - -0:11:18.720,0:11:22.000 -for this because org mode was written at - -0:11:20.320,0:11:26.000 -a time before - -0:11:22.000,0:11:29.200 -testing was quite as important - -0:11:26.000,0:11:31.440 -I think or valued quite the same way - -0:11:29.200,0:11:34.320 -let's put it this way - -0:11:31.440,0:11:34.959 -and as a result a number of things - -0:11:34.320,0:11:37.200 -actually - -0:11:34.959,0:11:38.240 -it might also be a feature of emacs at - -0:11:37.200,0:11:40.560 -the time I don't know - -0:11:38.240,0:11:42.480 -but a lot of things in order mode aren't - -0:11:40.560,0:11:45.519 -very testable and so - -0:11:42.480,0:11:49.440 -what I ended up doing was just having an - -0:11:45.519,0:11:53.360 -actual directory in which I - -0:11:49.440,0:11:55.279 -actually um with files - -0:11:53.360,0:11:57.120 -right so like I don't have much mocking - -0:11:55.279,0:11:58.639 -I can do I can't just do a bunch of fake - -0:11:57.120,0:12:01.200 -files fake directories - -0:11:58.639,0:12:03.360 -so I actually go through the process - -0:12:01.200,0:12:05.040 -actually create files and then actually - -0:12:03.360,0:12:08.839 -have emacs pointing at this - -0:12:05.040,0:12:10.240 -directory to process and get the - -0:12:08.839,0:12:12.240 -information - -0:12:10.240,0:12:13.920 -so I have to define the key to test that - -0:12:12.240,0:12:18.160 -gets bounded properly - -0:12:13.920,0:12:19.839 -I have to set the capture templates um - -0:12:18.160,0:12:21.839 -other capture templates are how you know - -0:12:19.839,0:12:25.600 -things get added I have a wrapper - -0:12:21.839,0:12:27.279 -control uh or gtd capture essentially is - -0:12:25.600,0:12:29.920 -a wrapper around the capture that - -0:12:27.279,0:12:32.000 -makes sure the inbox is there and then - -0:12:29.920,0:12:35.920 -captures to the inbox - -0:12:32.000,0:12:35.920 -right and - -0:12:36.240,0:12:41.519 -making sure the items show in the agenda - -0:12:39.360,0:12:42.639 -when I'm done with the with processing - -0:12:41.519,0:12:45.519 -was a little bit - -0:12:42.639,0:12:46.800 -tricky I had a bug and I had to to fix - -0:12:45.519,0:12:49.600 -it so I just wrote this - -0:12:46.800,0:12:50.480 -this test but it's uh it's pretty - -0:12:49.600,0:12:51.839 -convenient - -0:12:50.480,0:12:54.000 -now to have that because it gives me a - -0:12:51.839,0:12:55.040 -bunch of sanity so again I have a - -0:12:54.000,0:12:56.000 -capture and this is - -0:12:55.040,0:12:58.480 -I wanted to be able to do this - -0:12:56.000,0:12:59.680 -automatically but ojtd but or capture - -0:12:58.480,0:13:02.079 -itself - -0:12:59.680,0:13:03.200 -is not super testable right now so the - -0:13:02.079,0:13:04.480 -way it's - -0:13:03.200,0:13:07.519 -the way you test it is just by - -0:13:04.480,0:13:09.279 -programmatically calling it which - -0:13:07.519,0:13:10.639 -is not exactly what I wanted because I - -0:13:09.279,0:13:13.200 -wanted something more like - -0:13:10.639,0:13:15.519 -the user action but I'll you know what I - -0:13:13.200,0:13:17.040 -can get - -0:13:15.519,0:13:19.360 -and then I can I'll just insert these - -0:13:17.040,0:13:21.760 -words into the buffer and then - -0:13:19.360,0:13:23.519 -I'll finalize the capture then I have - -0:13:21.760,0:13:26.160 -another I have a test package here - -0:13:23.519,0:13:29.920 -called with simulated input which - -0:13:26.160,0:13:33.040 -um basically calls this and then enters - -0:13:29.920,0:13:34.800 -these uh these user actions right so - -0:13:33.040,0:13:39.040 -like the letter s - -0:13:34.800,0:13:41.360 -control c c and then return and that is - -0:13:39.040,0:13:42.480 -uh you know choosing a single action - -0:13:41.360,0:13:45.360 -then finishing the edit - -0:13:42.480,0:13:46.480 -and then adding zero and not adding tags - -0:13:45.360,0:13:48.639 -you - -0:13:46.480,0:13:50.320 -as you can tell there's a strong layer - -0:13:48.639,0:13:53.760 -of disconnect between the tests - -0:13:50.320,0:13:56.160 -and what they represent that's a work in - -0:13:53.760,0:13:56.160 -progress - -0:13:56.560,0:14:02.320 -um so I have like four tests - -0:13:59.680,0:14:03.680 -it's not a lot but I want to I intend to - -0:14:02.320,0:14:05.040 -add more as I keep on adding more - -0:14:03.680,0:14:09.519 -behavior - -0:14:05.040,0:14:13.680 -and I would like this to be eventually - -0:14:09.519,0:14:13.680 -a sane starting point for gt - -0:14:14.320,0:14:18.720 -there's there's a lot of people like - -0:14:16.079,0:14:20.959 -like andre I like reiner like - -0:14:18.720,0:14:22.160 -I mean if you search for org mode and - -0:14:20.959,0:14:25.279 -gtd you'll find - -0:14:22.160,0:14:27.600 -a lot of blog entries a lot of - -0:14:25.279,0:14:29.360 -entries a lot of articles that explain - -0:14:27.600,0:14:31.199 -how to connect it together how to think - -0:14:29.360,0:14:34.320 -that way how to use all the tools that - -0:14:31.199,0:14:34.320 -orgmod makes available - -0:14:34.880,0:14:40.320 -and hopefully this package is a way to - -0:14:38.399,0:14:41.040 -get started without having to write too - -0:14:40.320,0:14:45.839 -much - -0:14:41.040,0:14:45.839 -of your own code um - -0:14:45.920,0:14:48.720 -then eventually you can move away from - -0:14:47.279,0:14:50.000 -the package if you want if you realize - -0:14:48.720,0:14:52.000 -that you are developing different - -0:14:50.000,0:14:54.160 -opinions and you don't want to - -0:14:52.000,0:14:55.519 -if gtd doesn't work this way for you if - -0:14:54.160,0:14:57.839 -you have a different way - -0:14:55.519,0:14:59.279 -it is a better fit for the way you want - -0:14:57.839,0:15:02.720 -to organize your life - -0:14:59.279,0:15:05.920 -then you know move away from the package - -0:15:02.720,0:15:07.839 -in the meanwhile I welcome all thoughts - -0:15:05.920,0:15:10.079 -I welcome contributions I welcome - -0:15:07.839,0:15:13.920 -questions bug reports everything - -0:15:10.079,0:15:17.040 -so you know come say hi try the package - -0:15:13.920,0:15:20.560 -and uh yeah see you - -0:15:17.040,0: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.sbv b/2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier-autogen.sbv deleted file mode 100644 index 8207d0c3..00000000 --- a/2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier-autogen.sbv +++ /dev/null @@ -1,1446 +0,0 @@ -0:00:00.240,0:00:03.679 -I mean we are ahead of the schedule a - -0:00:01.520,0:00:05.680 -little bit but I mean we also was a - -0:00:03.679,0:00:09.040 -little bit earlier in the day - -0:00:05.680,0:00:10.800 -so yeah yeah I'd say that's fine go for - -0:00:09.040,0:00:14.240 -it take it away - -0:00:10.800,0:00:16.640 -sure thank you so am I live already - -0:00:14.240,0:00:17.359 -you are now unmuted um yep your life - -0:00:16.640,0:00:18.880 -hello - -0:00:17.359,0:00:20.720 -spell it so I'll just start the timer to - -0:00:18.880,0:00:22.720 -make sure that I don't go overboard - -0:00:20.720,0:00:24.160 -all right so you are now muted okay good - -0:00:22.720,0:00:26.960 -to go now so - -0:00:24.160,0:00:28.240 -hello again everyone so I hope you had - -0:00:26.960,0:00:30.880 -well quite a lot of talks - -0:00:28.240,0:00:32.000 -ever since the last one I did and all - -0:00:30.880,0:00:35.040 -more interesting - -0:00:32.000,0:00:36.559 -uh one after the other so um - -0:00:35.040,0:00:38.239 -you know I'm a bit in a bit of a weird - -0:00:36.559,0:00:39.760 -spot right now because I'm supposed to - -0:00:38.239,0:00:40.239 -be presenting to you as you can see on - -0:00:39.760,0:00:42.879 -my screen - -0:00:40.239,0:00:44.960 -one big-ass awk file multiple tiny ones - -0:00:42.879,0:00:48.160 -finally the end of the debate - -0:00:44.960,0:00:49.760 -and it sounds about as clickbaity - -0:00:48.160,0:00:51.280 -as you can possibly get with those - -0:00:49.760,0:00:54.000 -topics and by the way - -0:00:51.280,0:00:55.760 -uh credit where credit is due the title - -0:00:54.000,0:00:57.039 -is not mine it's actually from bastian - -0:00:55.760,0:01:00.719 -gary the current old - -0:00:57.039,0:01:03.199 -maintainer and yeah I wanted to - -0:01:00.719,0:01:04.879 -talk to you a little bit today about - -0:01:03.199,0:01:07.600 -this question because - -0:01:04.879,0:01:09.040 -if you are used to going on our slash - -0:01:07.600,0:01:09.600 -emacs you know the subreddit that we - -0:01:09.040,0:01:11.840 -have - -0:01:09.600,0:01:13.200 -if you go on I can use often you know - -0:01:11.840,0:01:16.000 -it's a question that - -0:01:13.200,0:01:17.520 -you see pop-up every once in a while - -0:01:16.000,0:01:20.640 -should I be using - -0:01:17.520,0:01:24.159 -one big file or should I be using - -0:01:20.640,0:01:24.799 -a lot of tiny files and I believe you - -0:01:24.159,0:01:27.600 -know - -0:01:24.799,0:01:29.520 -we've got defenders on both sides if I - -0:01:27.600,0:01:32.479 -just show you one examples - -0:01:29.520,0:01:35.280 -so we have carl voigt okay so he's one - -0:01:32.479,0:01:37.920 -of the organizers for the conference - -0:01:35.280,0:01:40.000 -he hears the guy who probably has the - -0:01:37.920,0:01:42.000 -biggest augment files - -0:01:40.000,0:01:43.759 -right now in all the people I know and - -0:01:42.000,0:01:44.479 -god knows I know plenty of people use - -0:01:43.759,0:01:46.880 -old mode - -0:01:44.479,0:01:48.320 -but if you just look at this line I hope - -0:01:46.880,0:01:51.360 -it's not too small you just - -0:01:48.320,0:01:56.719 -make it a little larger but - -0:01:51.360,0:02:01.759 -carl basically has a file with 126 - -0:01:56.719,0:02:04.560 -000 lines and I'm just going to pause - -0:02:01.759,0:02:06.399 -and try to have you imagine how large a - -0:02:04.560,0:02:08.399 -file it actually is - -0:02:06.399,0:02:10.000 -just think about all of these lines - -0:02:08.399,0:02:12.080 -being tasked in your days - -0:02:10.000,0:02:13.200 -think about all those lines being about - -0:02:12.080,0:02:14.400 -little thoughts - -0:02:13.200,0:02:17.200 -you know that you've had throughout the - -0:02:14.400,0:02:19.680 -day or project that you were working on - -0:02:17.200,0:02:20.720 -and it's massive and you know one of the - -0:02:19.680,0:02:23.920 -problem that - -0:02:20.720,0:02:27.680 -uh calvoit actually approaches on - -0:02:23.920,0:02:30.160 -this topic is that it takes him roughly - -0:02:27.680,0:02:32.400 -20 seconds to get his old agenda going - -0:02:30.160,0:02:35.680 -which is a massive amount of time - -0:02:32.400,0:02:37.720 -I mean we have very fast computers now - -0:02:35.680,0:02:39.200 -you know ever since e-max was created in - -0:02:37.720,0:02:42.319 -1976 - -0:02:39.200,0:02:43.440 -computers I have no idea how much faster - -0:02:42.319,0:02:47.760 -they've gotten - -0:02:43.440,0:02:49.599 -and yet you know for earth 1000 lines - -0:02:47.760,0:02:51.120 -emac seems to be choking and it's - -0:02:49.599,0:02:52.720 -certainly not reasonable in a way to - -0:02:51.120,0:02:55.360 -have to wait 20 seconds - -0:02:52.720,0:02:57.040 -just for your entire file to be passed - -0:02:55.360,0:02:58.480 -so basically what I want to do - -0:02:57.040,0:03:00.879 -and by the way I forgot to do the - -0:02:58.480,0:03:02.879 -presentation but I'm leova I did this - -0:03:00.879,0:03:05.519 -before for those who were around - -0:03:02.879,0:03:06.640 -and I um help maintain a software which - -0:03:05.519,0:03:08.560 -is called orgrom - -0:03:06.640,0:03:09.840 -and that's the expertise that I have on - -0:03:08.560,0:03:11.760 -the topic - -0:03:09.840,0:03:13.599 -actually if you go online I do have a - -0:03:11.760,0:03:15.440 -github page I will make sure that you - -0:03:13.599,0:03:18.640 -have all the links available afterwards - -0:03:15.440,0:03:20.720 -but I do publish my init files - -0:03:18.640,0:03:22.319 -and you can see if you scroll at the - -0:03:20.720,0:03:23.200 -bottom I have a little demonstration - -0:03:22.319,0:03:25.519 -which shows you - -0:03:23.200,0:03:27.440 -the fancy things that I can do with my - -0:03:25.519,0:03:28.159 -old mood setup and that might be even - -0:03:27.440,0:03:30.720 -interesting - -0:03:28.159,0:03:32.319 -in lights of the talk you've just had - -0:03:30.720,0:03:34.080 -about gtd stuff because - -0:03:32.319,0:03:36.159 -the first one is about how I end all my - -0:03:34.080,0:03:39.680 -projects the second one is about - -0:03:36.159,0:03:40.000 -the flow from a task uh as I work on it - -0:03:39.680,0:03:41.519 -so - -0:03:40.000,0:03:43.120 -I won't spend too much time on this but - -0:03:41.519,0:03:45.440 -basically that's my expertise - -0:03:43.120,0:03:46.959 -I have spent eight years working with - -0:03:45.440,0:03:48.959 -working with org mode - -0:03:46.959,0:03:50.720 -three of them actually thinking about - -0:03:48.959,0:03:54.080 -writing packages - -0:03:50.720,0:03:55.680 -and the thing is if I go into a little - -0:03:54.080,0:03:57.760 -bit of details and obviously it's only a - -0:03:55.680,0:04:00.720 -lighting talk so I won't have time to - -0:03:57.760,0:04:01.840 -actually go really in depth about it but - -0:04:00.720,0:04:03.599 -there is something - -0:04:01.840,0:04:05.200 -in the ultimate libraries which is - -0:04:03.599,0:04:07.000 -called org elements - -0:04:05.200,0:04:08.319 -and you have the name right there org - -0:04:07.000,0:04:11.439 -element.el - -0:04:08.319,0:04:12.319 -dot el being for e-lisp file and as you - -0:04:11.439,0:04:14.799 -can see - -0:04:12.319,0:04:16.239 -the page it's on the work wiki so it's - -0:04:14.799,0:04:19.280 -accessible by everyone - -0:04:16.239,0:04:23.759 -but it's basically the api that - -0:04:19.280,0:04:26.400 -org mode uses to pass all mode files - -0:04:23.759,0:04:27.199 -so for those who don't know passing - -0:04:26.400,0:04:29.360 -means basically - -0:04:27.199,0:04:30.880 -checking a file checking all the content - -0:04:29.360,0:04:32.880 -of the file and extracting all the - -0:04:30.880,0:04:34.960 -information that we need from that file - -0:04:32.880,0:04:36.560 -and as you can imagine you all have - -0:04:34.960,0:04:38.240 -augmented files in your mind - -0:04:36.560,0:04:39.840 -well you know they can be fairly complex - -0:04:38.240,0:04:41.759 -you know you can have properties - -0:04:39.840,0:04:43.040 -you can have contextual information like - -0:04:41.759,0:04:45.199 -if you write a line - -0:04:43.040,0:04:46.560 -which starts at column zero which means - -0:04:45.199,0:04:48.000 -at the left - -0:04:46.560,0:04:49.680 -you know it doesn't have the same - -0:04:48.000,0:04:52.639 -meaning whether or not it is - -0:04:49.680,0:04:54.160 -before the beginning of a headline or if - -0:04:52.639,0:04:55.199 -it is after the beginning of a red line - -0:04:54.160,0:04:57.759 -you know it's going to be - -0:04:55.199,0:04:58.960 -relatively different hierarchically - -0:04:57.759,0:05:01.759 -speaking - -0:04:58.960,0:05:02.639 -and so the problem when it comes to the - -0:05:01.759,0:05:05.759 -question of - -0:05:02.639,0:05:08.560 -many files versus one big file or - -0:05:05.759,0:05:09.600 -few big files is that we always have to - -0:05:08.560,0:05:12.880 -keep in mind - -0:05:09.600,0:05:15.680 -what org elements want you to do - -0:05:12.880,0:05:17.440 -and the thing is there are plenty of - -0:05:15.680,0:05:18.400 -problems when it comes to passing file - -0:05:17.440,0:05:21.360 -the first one - -0:05:18.400,0:05:22.160 -being obviously that emacs is a single - -0:05:21.360,0:05:24.880 -thread - -0:05:22.160,0:05:26.400 -process or has some threading - -0:05:24.880,0:05:28.639 -capabilities we're not going to go into - -0:05:26.400,0:05:32.400 -the details right now that's not my goal - -0:05:28.639,0:05:35.919 -but it makes it incredibly hard to - -0:05:32.400,0:05:39.280 -parallelize uh passing processes as - -0:05:35.919,0:05:42.320 -we currently with the current technology - -0:05:39.280,0:05:44.080 -and so you'd have to imagine that if you - -0:05:42.320,0:05:46.479 -have a very large files if you go back - -0:05:44.080,0:05:49.199 -to the example of carl voice from before - -0:05:46.479,0:05:50.000 -100 000 lines that means that you have - -0:05:49.199,0:05:52.320 -to scan - -0:05:50.000,0:05:53.759 -through every single line basically - -0:05:52.320,0:05:56.080 -because sometimes let's just say that - -0:05:53.759,0:05:59.440 -you have a property drawer for instance - -0:05:56.080,0:06:03.520 -which tells you oh okay uh this tree - -0:05:59.440,0:06:05.120 -has the tag foo so the problem is there - -0:06:03.520,0:06:08.720 -are multiple ways for you - -0:06:05.120,0:06:11.840 -to define a tag okay so you can use the - -0:06:08.720,0:06:14.000 -usual way which is about wrapping in - -0:06:11.840,0:06:16.160 -columns the tag at the end of a heading - -0:06:14.000,0:06:17.360 -so for instance if I I'm not going to - -0:06:16.160,0:06:18.240 -switch to emac that's going to waste too - -0:06:17.360,0:06:21.039 -much time - -0:06:18.240,0:06:21.520 -but that's one way to say your time but - -0:06:21.039,0:06:23.520 -say - -0:06:21.520,0:06:25.360 -you have tag inheritance which means - -0:06:23.520,0:06:28.160 -that when you have a parent with a tag - -0:06:25.360,0:06:29.520 -you also want the child to inherit the - -0:06:28.160,0:06:32.400 -tag so if you have - -0:06:29.520,0:06:33.680 -first heading with the typhoo you have - -0:06:32.400,0:06:37.520 -the first subheading - -0:06:33.680,0:06:39.680 -and the tag foo is implied now imagine - -0:06:37.520,0:06:41.039 -having to do that with a file that is - -0:06:39.680,0:06:44.160 -completely nested - -0:06:41.039,0:06:47.280 -a file that has maybe 9 10 - -0:06:44.160,0:06:49.039 -11 levels of depth to it - -0:06:47.280,0:06:51.039 -it's mind-bogglingly complicated for the - -0:06:49.039,0:06:52.639 -software to do that knowing that I've - -0:06:51.039,0:06:55.919 -told you about tags - -0:06:52.639,0:06:58.639 -but any property can be inheritable - -0:06:55.919,0:07:00.240 -anything like priorities even though why - -0:06:58.639,0:07:03.759 -would you do this - -0:07:00.240,0:07:05.599 -you can have groups you can all this and - -0:07:03.759,0:07:07.199 -as someone who went through the trouble - -0:07:05.599,0:07:08.560 -of optimizing his old agenda so - -0:07:07.199,0:07:11.280 -basically if we go back to the - -0:07:08.560,0:07:12.160 -gifts gifs oh god we've already had this - -0:07:11.280,0:07:14.479 -discussion - -0:07:12.160,0:07:16.400 -between the git and magit and now I've - -0:07:14.479,0:07:18.080 -started jeff and gif and I only have one - -0:07:16.400,0:07:19.599 -more minute left to do so so let's just - -0:07:18.080,0:07:23.599 -say I'm going to say gif - -0:07:19.599,0:07:26.880 -just to spice people so if you go on - -0:07:23.599,0:07:29.120 -the way I organize my agenda what I did - -0:07:26.880,0:07:30.960 -in order to keep my agenda build time - -0:07:29.120,0:07:33.440 -under two seconds - -0:07:30.960,0:07:35.520 -is that I've rewritten a whole lot of - -0:07:33.440,0:07:36.560 -codes to be able to pass my organ gender - -0:07:35.520,0:07:40.080 -files - -0:07:36.560,0:07:41.360 -so the thing is I'm going to be talking - -0:07:40.080,0:07:43.440 -more about this later - -0:07:41.360,0:07:44.479 -I only have let's say one minutes to - -0:07:43.440,0:07:47.440 -conclude - -0:07:44.479,0:07:48.479 -so as you've gathered I'm not going to - -0:07:47.440,0:07:51.039 -be giving you the answer - -0:07:48.479,0:07:53.440 -right now I'm going to be talking about - -0:07:51.039,0:07:55.680 -orgrum a little later which is about - -0:07:53.440,0:07:57.759 -following the principle of having many - -0:07:55.680,0:08:01.120 -small files - -0:07:57.759,0:08:02.960 -but as someone who has been using - -0:08:01.120,0:08:04.879 -one large file to manage my life you - -0:08:02.960,0:08:08.319 -know I'm sitting on the fence - -0:08:04.879,0:08:10.560 -I do not know which one is the best - -0:08:08.319,0:08:12.240 -but I hope that my presentation has - -0:08:10.560,0:08:15.199 -given you a little id - -0:08:12.240,0:08:15.520 -of what goes on behind the principles - -0:08:15.199,0:08:16.560 -and - -0:08:15.520,0:08:18.560 -you also need to think about the - -0:08:16.560,0:08:19.120 -philosophy behind the organization of - -0:08:18.560,0:08:21.039 -your notes - -0:08:19.120,0:08:23.280 -but I hope to be approaching this topic - -0:08:21.039,0:08:25.360 -with you in about - -0:08:23.280,0:08:27.520 -two hours or so maybe one hour actually - -0:08:25.360,0:08:28.960 -so I'm actually finished I've decided to - -0:08:27.520,0:08:31.520 -leave you two minutes of questions - -0:08:28.960,0:08:32.880 -so uh if someone could feed me the - -0:08:31.520,0:08:34.399 -question that might be best - -0:08:32.880,0:08:36.240 -because I don't want oh actually I can - -0:08:34.399,0:08:39.919 -just open the year - -0:08:36.240,0:08:40.800 -I can just open it give me a second okay - -0:08:39.919,0:08:43.039 -ah - -0:08:40.800,0:08:43.839 -just loading up huh I might stop showing - -0:08:43.039,0:08:46.959 -my screen - -0:08:43.839,0:08:47.519 -that might make it easier so I mean if - -0:08:46.959,0:08:49.360 -you can make - -0:08:47.519,0:08:52.000 -myself big now on the screen that would - -0:08:49.360,0:08:55.839 -be splendid yeah sure - -0:08:52.000,0:08:58.720 -thank you so uh where are we - -0:08:55.839,0:09:00.160 -question 12. okay so what's better one - -0:08:58.720,0:09:02.160 -big file - -0:09:00.160,0:09:03.120 -I did is it did a job to tell me that I - -0:09:02.160,0:09:04.240 -haven't answered the question because - -0:09:03.120,0:09:06.320 -someone just - -0:09:04.240,0:09:08.080 -asked me the question well personally if - -0:09:06.320,0:09:08.560 -I were to give you a quick answer in - -0:09:08.080,0:09:11.600 -like - -0:09:08.560,0:09:13.920 -20 seconds personally I think it's a - -0:09:11.600,0:09:15.680 -question that is contextually based - -0:09:13.920,0:09:17.839 -do you want something that is efficient - -0:09:15.680,0:09:21.200 -as far as optimization is concerned - -0:09:17.839,0:09:23.440 -then you need to think about - -0:09:21.200,0:09:24.640 -this and personally for all the - -0:09:23.440,0:09:26.640 -organization that I do - -0:09:24.640,0:09:27.760 -all this stuff all the to-do's that I - -0:09:26.640,0:09:30.080 -handle - -0:09:27.760,0:09:31.519 -I like to do this in one simple big file - -0:09:30.080,0:09:33.760 -because you benefit from all the - -0:09:31.519,0:09:36.320 -refiling capabilities of log mode - -0:09:33.760,0:09:37.200 -so I would do that but for knowledge - -0:09:36.320,0:09:40.080 -management - -0:09:37.200,0:09:41.279 -for note-taking and all this well I'd - -0:09:40.080,0:09:42.959 -much rather follow the - -0:09:41.279,0:09:44.480 -orgrom way of doing things which is - -0:09:42.959,0:09:48.240 -about having many - -0:09:44.480,0:09:50.000 -small files okay I'm not getting any - -0:09:48.240,0:09:52.080 -more questions I'm not sure if there is - -0:09:50.000,0:09:53.040 -one on ise that could be fed to me - -0:09:52.080,0:09:56.399 -otherwise I'm - -0:09:53.040,0:09:57.040 -happy to to uh pass over to the next uh - -0:09:56.399,0:09:59.360 -speaker - -0:09:57.040,0:10:01.360 -and by the way just before I finish your - -0:09:59.360,0:10:04.399 -world is a lie it's not a three-piece - -0:10:01.360,0:10:06.520 -suit I'm wearing jeans below so I hope - -0:10:04.399,0:10:09.610 -that satisfies your curiosity - -0:10:06.520,0:10:09.610 -[Music] - -0:10:10.640,0:10:15.040 -okay there's one more question appearing - -0:10:12.640,0:10:17.680 -but otherwise one big file to have - -0:10:15.040,0:10:19.760 -everything so I'm putting you on the - -0:10:17.680,0:10:21.040 -spot I believe it was such a short talk - -0:10:19.760,0:10:23.600 -you know the problem is - -0:10:21.040,0:10:24.720 -I just wanted to give you a little - -0:10:23.600,0:10:26.959 -answer - -0:10:24.720,0:10:27.920 -a little you know path of thinking on - -0:10:26.959,0:10:29.839 -this topic - -0:10:27.920,0:10:31.600 -but obviously it's a topic I could be - -0:10:29.839,0:10:33.200 -spending 40 minutes on but - -0:10:31.600,0:10:35.120 -I'm going to be drained you're going to - -0:10:33.200,0:10:35.680 -be drained nobody's going to be happy if - -0:10:35.120,0:10:37.920 -I do this - -0:10:35.680,0:10:37.920 -so - -0:10:39.440,0:10:42.880 -and someone asked me if I switch between - -0:10:41.200,0:10:46.560 -british and french accents - -0:10:42.880,0:10:48.480 -so a little a little secret for you um - -0:10:46.560,0:10:49.760 -when I'm stressed I tend to relate to a - -0:10:48.480,0:10:53.760 -french accent - -0:10:49.760,0:10:56.160 -so you can measure the amount of stress - -0:10:53.760,0:10:58.880 -that I'm feeling during this talk - -0:10:56.160,0:11:00.560 -with the amount of h's that I drop and - -0:10:58.880,0:11:02.720 -the amount of uh - -0:11:00.560,0:11:04.399 -sheer fright that you can see sometimes - -0:11:02.720,0:11:07.200 -in my eyes when I'm thinking about what - -0:11:04.399,0:11:07.200 -to say next - -0:11:08.240,0:11:11.360 -all right sir so I mean do you believe - -0:11:10.880,0:11:14.240 -we can - -0:11:11.360,0:11:15.519 -leave it at that and uh I'll be you - -0:11:14.240,0:11:17.040 -people will see plenty more with me - -0:11:15.519,0:11:20.000 -later on anyway - -0:11:17.040,0:11:20.640 -right um so looking at the schedule I - -0:11:20.000,0:11:23.920 -think - -0:11:20.640,0:11:27.120 -your talk has until like 202 meaning - -0:11:23.920,0:11:28.000 -like five or six minutes from now oh - -0:11:27.120,0:11:30.000 -right - -0:11:28.000,0:11:31.680 -yeah so if you do like to take like one - -0:11:30.000,0:11:33.920 -or two questions to add two more - -0:11:31.680,0:11:37.040 -questions by all means - -0:11:33.920,0:11:38.320 -okay so uh someone has asked me what is - -0:11:37.040,0:11:40.640 -the emacs icon - -0:11:38.320,0:11:42.880 -icon sorry see another french accent - -0:11:40.640,0:11:44.880 -here uh in my status bar - -0:11:42.880,0:11:46.640 -uh oh sorry I'm not sharing anymore uh I - -0:11:44.880,0:11:49.200 -might just share again just so that - -0:11:46.640,0:11:53.120 -everyone can catch a glimpse of that - -0:11:49.200,0:11:54.880 -uh there we go allow - -0:11:53.120,0:11:56.240 -so it should be so if you could make me - -0:11:54.880,0:11:56.959 -small again I'm in I'm not sure if it's - -0:11:56.240,0:12:00.480 -going to do it - -0:11:56.959,0:12:01.839 -by itself but I do have a little icon - -0:12:00.480,0:12:04.480 -here in my status bar - -0:12:01.839,0:12:05.760 -which is basically a way to interact - -0:12:04.480,0:12:07.279 -with all protocol - -0:12:05.760,0:12:09.120 -uh I'm not going to look for it right - -0:12:07.279,0:12:10.800 -now but it's uh - -0:12:09.120,0:12:12.399 -it's a browser extension that is - -0:12:10.800,0:12:15.680 -developed by one of my friends - -0:12:12.399,0:12:16.160 -over at ranger whose name is v phone and - -0:12:15.680,0:12:18.240 -uh - -0:12:16.160,0:12:19.680 -it's very useful I'm someone who uses a - -0:12:18.240,0:12:22.320 -lot of uh - -0:12:19.680,0:12:23.040 -of uh all protocols and by the way I - -0:12:22.320,0:12:25.279 -used to teach - -0:12:23.040,0:12:27.279 -english okay to high schoolers and they - -0:12:25.279,0:12:29.600 -were supremely worried - -0:12:27.279,0:12:30.800 -when I show them my status line and they - -0:12:29.600,0:12:34.000 -so kill - -0:12:30.800,0:12:36.560 -and explore in my status line so as - -0:12:34.000,0:12:37.839 -fellow emacs users you know that - -0:12:36.560,0:12:40.880 -obviously kill - -0:12:37.839,0:12:44.320 -means to kill a selection of text and - -0:12:40.880,0:12:47.279 -keep it inside your clipboard - -0:12:44.320,0:12:48.320 -but for my students who you know they - -0:12:47.279,0:12:51.600 -were very worried - -0:12:48.320,0:12:53.600 -about what their professor was up to - -0:12:51.600,0:12:55.120 -doing his nights - -0:12:53.600,0:12:56.560 -so let's see if we've got more questions - -0:12:55.120,0:12:57.920 -so I'm showing you the questions on the - -0:12:56.560,0:13:00.560 -rainbow so let's see if - -0:12:57.920,0:13:01.920 -we've got more so people are posting a - -0:13:00.560,0:13:03.920 -lot of questions now - -0:13:01.920,0:13:06.399 -so how do you feel about archiving files - -0:13:03.920,0:13:09.360 -in old mode and how can that work in - -0:13:06.399,0:13:10.240 -so one of the thing when we think about - -0:13:09.360,0:13:13.920 -optimization - -0:13:10.240,0:13:16.240 -is yes archiving done trees - -0:13:13.920,0:13:17.920 -is a good idea because it means that if - -0:13:16.240,0:13:18.720 -we go back to the org element the way it - -0:13:17.920,0:13:20.399 -works - -0:13:18.720,0:13:22.079 -and we'll get into technical details - -0:13:20.399,0:13:24.079 -afterwards I'm giving a presentation - -0:13:22.079,0:13:26.880 -about all grown technical suspect - -0:13:24.079,0:13:28.399 -aspects sorry so I'll have a chance to - -0:13:26.880,0:13:31.360 -expand a little more on this - -0:13:28.399,0:13:32.160 -but basically all elements need to uh - -0:13:31.360,0:13:35.279 -every time - -0:13:32.160,0:13:38.320 -it sees a to do it has to consider it - -0:13:35.279,0:13:40.000 -even though it is a done to do why - -0:13:38.320,0:13:41.839 -because let's say for instance that in - -0:13:40.000,0:13:45.519 -your agenda you want to activate - -0:13:41.839,0:13:48.959 -log mode which is going to show the - -0:13:45.519,0:13:49.519 -tasks which are done now you could be - -0:13:48.959,0:13:51.440 -clever - -0:13:49.519,0:13:53.360 -and say oh okay the old agenda does not - -0:13:51.440,0:13:54.880 -need to show don items so it's not going - -0:13:53.360,0:13:56.959 -to look for them - -0:13:54.880,0:13:58.720 -but the problem is that all elements is - -0:13:56.959,0:13:59.519 -always called it always needs to pass - -0:13:58.720,0:14:01.839 -the buffer - -0:13:59.519,0:14:03.519 -you know uh nicodego as you who is the - -0:14:01.839,0:14:05.040 -french developer who's worked a whole - -0:14:03.519,0:14:07.440 -lot on all elements - -0:14:05.040,0:14:08.399 -has gone through a lot of trouble to - -0:14:07.440,0:14:11.600 -optimize all - -0:14:08.399,0:14:13.279 -elements but the problem is - -0:14:11.600,0:14:14.720 -there's just so much that we can do with - -0:14:13.279,0:14:18.560 -a concurrent process - -0:14:14.720,0:14:21.120 -and right now it leaves somewhat - -0:14:18.560,0:14:22.079 -uh you know things to be desired but - -0:14:21.120,0:14:24.800 -we're working on it - -0:14:22.079,0:14:25.839 -and one more time I feel like I spent - -0:14:24.800,0:14:28.000 -half of this talk - -0:14:25.839,0:14:29.360 -teasing my next talks but I'll be - -0:14:28.000,0:14:31.279 -talking more about this - -0:14:29.360,0:14:32.639 -in my future talks in about one to two - -0:14:31.279,0:14:34.959 -hours - -0:14:32.639,0:14:36.079 -so continuing with questions how big are - -0:14:34.959,0:14:37.760 -my org files - -0:14:36.079,0:14:39.839 -so in the background I'm just going to - -0:14:37.760,0:14:40.720 -check how many lines I have in my main - -0:14:39.839,0:14:42.959 -file - -0:14:40.720,0:14:44.079 -so in my own file so the one I told you - -0:14:42.959,0:14:47.279 -about where I keep all - -0:14:44.079,0:14:50.720 -my to do gtd stuff I have - -0:14:47.279,0:14:54.000 -38 000 lines which is - -0:14:50.720,0:14:57.040 -you know it's sizable definitely - -0:14:54.000,0:14:58.480 -but I do archive a lot of stuff - -0:14:57.040,0:15:00.880 -so that might be a slight difference - -0:14:58.480,0:15:02.079 -between uh my myself and carl voight - -0:15:00.880,0:15:04.880 -even though I don't remember if they - -0:15:02.079,0:15:06.639 -actually archive stuff - -0:15:04.880,0:15:08.480 -so does it not consume more resources - -0:15:06.639,0:15:10.839 -and time to load multiple files - -0:15:08.480,0:15:12.560 -files than a large file or the same - -0:15:10.839,0:15:15.839 -content now - -0:15:12.560,0:15:19.279 -theoretically yes having many files - -0:15:15.839,0:15:22.240 -open concurrently is slightly slower - -0:15:19.279,0:15:24.160 -than having one main file opened - -0:15:22.240,0:15:25.279 -now the problem is for those of you who - -0:15:24.160,0:15:27.199 -have large files - -0:15:25.279,0:15:29.360 -you may have noticed that when you are - -0:15:27.199,0:15:32.560 -scrolling in a very large file - -0:15:29.360,0:15:34.480 -it starts taking quite a bit of time why - -0:15:32.560,0:15:35.920 -it's because you know in old mode you - -0:15:34.480,0:15:38.959 -have a lot of content - -0:15:35.920,0:15:40.959 -that is hidden so when you have - -0:15:38.959,0:15:43.040 -the view mode which hides as much stuff - -0:15:40.959,0:15:43.600 -as possible means meaning that you only - -0:15:43.040,0:15:45.360 -see - -0:15:43.600,0:15:46.880 -the top heading and I'm checking the - -0:15:45.360,0:15:49.360 -time I mean don't worry I'm I'm finished - -0:15:46.880,0:15:49.360 -on this one - -0:15:50.240,0:15:53.360 -when you're hiding a whole lot of stuff - -0:15:52.160,0:15:54.720 -you know orgmo - -0:15:53.360,0:15:56.959 -needs to keep track or I should say - -0:15:54.720,0:15:58.160 -emacs needs to keep track of which areas - -0:15:56.959,0:16:00.560 -of text to show - -0:15:58.160,0:16:02.320 -and which areas of text to hide and the - -0:16:00.560,0:16:04.480 -problem is that when you're hiding stuff - -0:16:02.320,0:16:06.320 -let's say you're moving from line the - -0:16:04.480,0:16:08.639 -first heading to the second heading - -0:16:06.320,0:16:09.839 -but you've got like 10 000 lines between - -0:16:08.639,0:16:11.519 -those two headings - -0:16:09.839,0:16:13.680 -well he max needs to compute the - -0:16:11.519,0:16:15.680 -difference between the two passages - -0:16:13.680,0:16:17.040 -and that takes quite a lot of time and - -0:16:15.680,0:16:18.560 -in that that's my - -0:16:17.040,0:16:20.560 -why you might realize that it's a little - -0:16:18.560,0:16:21.199 -choppy when you start scrolling in large - -0:16:20.560,0:16:22.560 -files - -0:16:21.199,0:16:24.480 -anyway I could be answering questions - -0:16:22.560,0:16:25.120 -about org mode for literally two hours - -0:16:24.480,0:16:26.720 -straight - -0:16:25.120,0:16:28.639 -so I'm gonna end it over to the next - -0:16:26.720,0:16:31.759 -speakers and I'll be seeing - -0:16:28.639,0:16:33.440 -seeing you guys a little later thank you - -0:16:31.759,0:16:36.959 -very much leo - -0:16:33.440,0:16:39.839 -oh thank you yes bye - -0:16:36.959,0: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.sbv b/2020/subtitles/emacsconf-2020--13-experience-report-steps-to-emacs-hyper-notebooks--joseph-corneli-raymond-puzio-cameron-ray-smith-autogen.sbv deleted file mode 100644 index 8f77e78a..00000000 --- a/2020/subtitles/emacsconf-2020--13-experience-report-steps-to-emacs-hyper-notebooks--joseph-corneli-raymond-puzio-cameron-ray-smith-autogen.sbv +++ /dev/null @@ -1,1080 +0,0 @@ -0:00:00.320,0:00:05.920 -um so hi I'm joe corneli - -0:00:03.280,0:00:06.879 -uh this is work I did with ray puzio and - -0:00:05.920,0:00:10.559 -cameron smith - -0:00:06.879,0:00:11.599 -um and they're the main protagonists in - -0:00:10.559,0:00:14.960 -this story they - -0:00:11.599,0:00:17.840 -are uh researchers who've been working - -0:00:14.960,0:00:20.160 -on theoretical biology um so in a - -0:00:17.840,0:00:23.760 -typical project they may use manxima - -0:00:20.160,0:00:24.800 -and julia their work for biology physics - -0:00:23.760,0:00:27.199 -and computer science - -0:00:24.800,0:00:29.439 -computer science and the latest work in - -0:00:27.199,0:00:30.800 -progress is on branching processes for - -0:00:29.439,0:00:34.719 -cancer modeling so - -0:00:30.800,0:00:37.360 -how can um Emacs possibly help - -0:00:34.719,0:00:38.399 -let's let's have a look uh moving code - -0:00:37.360,0:00:39.680 -and data between these different - -0:00:38.399,0:00:42.000 -programs by hand is - -0:00:39.680,0:00:43.200 -annoying on separate workflows for - -0:00:42.000,0:00:44.399 -writing up notes and preparing - -0:00:43.200,0:00:46.000 -publications - -0:00:44.399,0:00:48.640 -is perhaps even more annoying all of - -0:00:46.000,0:00:52.000 -it's time consuming and error-prone - -0:00:48.640,0:00:53.760 -um so what about maybe using jupiter - -0:00:52.000,0:00:55.199 -uh we found something called script of - -0:00:53.760,0:00:58.399 -scripts and it solves some of those - -0:00:55.199,0:01:01.120 -problems because you can use - -0:00:58.399,0:01:02.640 -maximum and julia together but we were - -0:01:01.120,0:01:05.199 -quite happy to explore emacs based - -0:01:02.640,0:01:05.840 -solutions being emax enthusiasts and we - -0:01:05.199,0:01:07.760 -even - -0:01:05.840,0:01:09.200 -got cameron to be enthusiastic about - -0:01:07.760,0:01:11.600 -doing emacs so that - -0:01:09.200,0:01:12.400 -went nice so just here's a little - -0:01:11.600,0:01:15.360 -feature grid - -0:01:12.400,0:01:16.400 -of emacs org versus just sort of your - -0:01:15.360,0:01:19.040 -generic - -0:01:16.400,0:01:20.960 -um tools that are in a different more - -0:01:19.040,0:01:21.520 -general ecosystem so as you can see it's - -0:01:20.960,0:01:23.360 -quite - -0:01:21.520,0:01:25.520 -feature complete you've got your maximo - -0:01:23.360,0:01:27.119 -mode julia mode you can use both of them - -0:01:25.520,0:01:28.720 -inside of org mode - -0:01:27.119,0:01:30.240 -you can present things with word tree - -0:01:28.720,0:01:33.280 -slide you can set up a - -0:01:30.240,0:01:33.680 -wiki inside of orgrome this is one I - -0:01:33.280,0:01:35.759 -found - -0:01:33.680,0:01:37.759 -rather recently you can even use - -0:01:35.759,0:01:38.799 -compatibly with orgrome something called - -0:01:37.759,0:01:41.520 -log seek - -0:01:38.799,0:01:42.159 -which is in the browser um so that's - -0:01:41.520,0:01:44.320 -nice - -0:01:42.159,0:01:45.840 -um you can do real-time collaborative - -0:01:44.320,0:01:47.840 -editing um - -0:01:45.840,0:01:49.280 -either in a kind of pairing style or in - -0:01:47.840,0:01:51.520 -a more etherpad style - -0:01:49.280,0:01:54.159 -obviously you can manage your references - -0:01:51.520,0:01:55.759 -you can typeset whatever you want um you - -0:01:54.159,0:01:57.439 -can publish work in progress on a blog - -0:01:55.759,0:01:58.159 -and the fern is another one of these - -0:01:57.439,0:02:00.560 -external - -0:01:58.159,0:02:01.360 -org mode tools it's not actually any mac - -0:02:00.560,0:02:03.680 -but works with - -0:02:01.360,0:02:04.399 -org mode stuff and you know so we're - -0:02:03.680,0:02:06.640 -good to go - -0:02:04.399,0:02:08.000 -uh with all of that so what does that - -0:02:06.640,0:02:09.679 -look like well here's - -0:02:08.000,0:02:11.599 -a little example from before they were - -0:02:09.679,0:02:12.800 -doing um - -0:02:11.599,0:02:14.560 -before we started really thinking - -0:02:12.800,0:02:15.599 -seriously about this stuff so this is - -0:02:14.560,0:02:17.440 -just maxima - -0:02:15.599,0:02:19.280 -well maximo doesn't have a long running - -0:02:17.440,0:02:20.160 -process by default if you've ever used - -0:02:19.280,0:02:22.480 -python - -0:02:20.160,0:02:23.920 -uh you have something called sessions uh - -0:02:22.480,0:02:24.959 -they don't have that for maxim at least - -0:02:23.920,0:02:27.599 -not by default - -0:02:24.959,0:02:29.360 -um so how what was the workaround - -0:02:27.599,0:02:32.480 -there's this thing called uh - -0:02:29.360,0:02:34.879 -solve for you here and um - -0:02:32.480,0:02:36.319 -that shows up down below again in these - -0:02:34.879,0:02:37.360 -angle brackets which you've seen maybe - -0:02:36.319,0:02:40.480 -in someone else's talk - -0:02:37.360,0:02:41.920 -uh which means go to the previous uh - -0:02:40.480,0:02:43.920 -thing that was named soul for you - -0:02:41.920,0:02:45.280 -and do that all over again so they do - -0:02:43.920,0:02:47.440 -that over again - -0:02:45.280,0:02:49.519 -and here's the little maxima code for - -0:02:47.440,0:02:50.560 -defining you saw so you've now defined - -0:02:49.519,0:02:51.920 -you saw - -0:02:50.560,0:02:54.000 -and then you can use it in the next - -0:02:51.920,0:02:56.560 -expression you get out a nice juicy - -0:02:54.000,0:02:57.200 -zero at the end but it's a little bit a - -0:02:56.560,0:02:58.959 -little bit - -0:02:57.200,0:03:00.640 -like cartridge in a pear tree to have to - -0:02:58.959,0:03:02.560 -redefine everything every time - -0:03:00.640,0:03:04.159 -so this is clearly at the level of work - -0:03:02.560,0:03:06.879 -around um maybe just - -0:03:04.159,0:03:07.920 -one more time going looking through that - -0:03:06.879,0:03:11.599 -um - -0:03:07.920,0:03:13.760 -that stuff um - -0:03:11.599,0:03:15.280 -sorry so uh looking through that stuff - -0:03:13.760,0:03:17.200 -this is we're going to need something - -0:03:15.280,0:03:19.599 -like that probably for stitching - -0:03:17.200,0:03:20.319 -maxima and julie julia together so it's - -0:03:19.599,0:03:21.680 -good to - -0:03:20.319,0:03:23.920 -look a little bit about how that might - -0:03:21.680,0:03:25.680 -work so first of all you can cache - -0:03:23.920,0:03:26.480 -results so if you wanted to save the - -0:03:25.680,0:03:28.480 -date - -0:03:26.480,0:03:29.920 -out of block one at a certain time and - -0:03:28.480,0:03:32.239 -then use - -0:03:29.920,0:03:33.280 -use it again later so at the time when I - -0:03:32.239,0:03:34.640 -ran this code - -0:03:33.280,0:03:36.720 -you can see I've got two slightly - -0:03:34.640,0:03:38.560 -different time stamps down below one's - -0:03:36.720,0:03:40.319 -the cached result and the other was the - -0:03:38.560,0:03:42.640 -result of reevaluating - -0:03:40.319,0:03:43.760 -the block so you can move things around - -0:03:42.640,0:03:46.000 -um and that's - -0:03:43.760,0:03:47.280 -that's going to be useful but you know - -0:03:46.000,0:03:48.080 -that's not really the main problem the - -0:03:47.280,0:03:50.799 -main problem is - -0:03:48.080,0:03:51.440 -making maxima long running so kind of - -0:03:50.799,0:03:53.920 -the - -0:03:51.440,0:03:56.400 -core of this talk is a new observant - -0:03:53.920,0:03:59.280 -facility which is a general purpose - -0:03:56.400,0:04:00.560 -way to do that kind of thing which - -0:03:59.280,0:04:04.239 -involves a very simple - -0:04:00.560,0:04:05.360 -change to obcor uh so we'll give a quick - -0:04:04.239,0:04:08.480 -overview of that and show - -0:04:05.360,0:04:11.760 -an example um so here's the example - -0:04:08.480,0:04:13.040 -um a very simple sort of silly example - -0:04:11.760,0:04:14.640 -uh what does it mean to have a long - -0:04:13.040,0:04:15.920 -running process here I've set this - -0:04:14.640,0:04:18.560 -display2d - -0:04:15.920,0:04:19.440 -to be false um which just means that - -0:04:18.560,0:04:22.320 -things are going to come - -0:04:19.440,0:04:23.040 -come across in 1d and then I ask it to - -0:04:22.320,0:04:25.199 -expand - -0:04:23.040,0:04:27.280 -uh something and I get latex by default - -0:04:25.199,0:04:28.639 -so so that's what it means is I've sent - -0:04:27.280,0:04:30.240 -something in and it's going to come - -0:04:28.639,0:04:32.080 -across in one view which is great - -0:04:30.240,0:04:34.560 -um maybe you'll also notice that there's - -0:04:32.080,0:04:36.720 -no semicolon if you're a maxima fan - -0:04:34.560,0:04:38.400 -um and things are coming across as tech - -0:04:36.720,0:04:40.320 -so those were some little bonus features - -0:04:38.400,0:04:41.040 -and I'll show you how that works later - -0:04:40.320,0:04:45.440 -so - -0:04:41.040,0:04:48.880 -um the change to obcor is as follows uh - -0:04:45.440,0:04:51.520 -um we uh actually this should say uh - -0:04:48.880,0:04:52.479 -instead of stream here it should say um - -0:04:51.520,0:04:54.800 -servant - -0:04:52.479,0:04:56.160 -sorry uh we tried an experimental - -0:04:54.800,0:04:58.160 -version what's called stream so now it's - -0:04:56.160,0:05:01.520 -called servant but all it does is it - -0:04:58.160,0:05:02.639 -overrides uh or babel execute laying for - -0:05:01.520,0:05:05.919 -arbitrary laying - -0:05:02.639,0:05:07.840 -if you have um a servant - -0:05:05.919,0:05:09.759 -in your in your params so that's the - -0:05:07.840,0:05:11.919 -change that hasn't been - -0:05:09.759,0:05:13.759 -pushed out or sent as a patch to anybody - -0:05:11.919,0:05:16.960 -but it's a pretty minor change - -0:05:13.759,0:05:19.080 -um here's an overview without the code - -0:05:16.960,0:05:20.720 -of just a high level overview of - -0:05:19.080,0:05:22.160 -observant.el so - -0:05:20.720,0:05:24.479 -it stores information about these - -0:05:22.160,0:05:26.080 -processes in a hash table - -0:05:24.479,0:05:27.600 -it can do pre-processing and - -0:05:26.080,0:05:29.759 -post-processing - -0:05:27.600,0:05:30.720 -um it does all these things it stores - -0:05:29.759,0:05:32.479 -the output - -0:05:30.720,0:05:34.080 -I mentioned here that in principle we - -0:05:32.479,0:05:35.280 -could store lots of output and have a - -0:05:34.080,0:05:36.560 -kind of browsable - -0:05:35.280,0:05:38.880 -history although we don't do that - -0:05:36.560,0:05:40.639 -presently um but that's what observant - -0:05:38.880,0:05:41.440 -does is it does what you might expect - -0:05:40.639,0:05:45.440 -and here's the - -0:05:41.440,0:05:48.160 -here's the maxima kind of um - -0:05:45.440,0:05:49.600 -on-ramp uh to get maxima brought in so - -0:05:48.160,0:05:51.360 -you have to obviously have a maximum - -0:05:49.600,0:05:54.960 -process you can call - -0:05:51.360,0:05:57.840 -um put hash uh this is the preprocessing - -0:05:54.960,0:05:58.960 -thing I mentioned adding in some tech um - -0:05:57.840,0:06:01.520 -and adding in - -0:05:58.960,0:06:03.120 -uh or deleting rather a substring and - -0:06:01.520,0:06:03.759 -here here is why you delete the - -0:06:03.120,0:06:06.960 -substring - -0:06:03.759,0:06:08.240 -is because um maxima thinks it's a good - -0:06:06.960,0:06:10.080 -idea to tell you false - -0:06:08.240,0:06:11.759 -once you once you run check on things - -0:06:10.080,0:06:13.680 -you've got to delete that back out to - -0:06:11.759,0:06:16.960 -get something kind of coherent out of it - -0:06:13.680,0:06:19.280 -but so this is how to set up maximal um - -0:06:16.960,0:06:20.000 -that's enough really of the demo is not - -0:06:19.280,0:06:21.919 -really a demos for - -0:06:20.000,0:06:23.600 -show and tell but uh this is an - -0:06:21.919,0:06:25.440 -experience report I wanted to talk about - -0:06:23.600,0:06:28.080 -the experience of doing this - -0:06:25.440,0:06:30.160 -so some some negatives like we tried to - -0:06:28.080,0:06:33.199 -get emacs jupiter working - -0:06:30.160,0:06:36.000 -prior to prior to working on the um - -0:06:33.199,0:06:37.919 -observant and we couldn't get it doing - -0:06:36.000,0:06:40.160 -everything we wanted despite a bit of - -0:06:37.919,0:06:41.840 -heavy lifting and debugging and stuff so - -0:06:40.160,0:06:42.880 -that's not not finished that was a bit - -0:06:41.840,0:06:45.360 -difficult - -0:06:42.880,0:06:47.759 -um on the other hand working on - -0:06:45.360,0:06:48.479 -observing was fun and pretty lightweight - -0:06:47.759,0:06:50.400 -and easy - -0:06:48.479,0:06:52.400 -um we got some experience co-editing - -0:06:50.400,0:06:54.479 -things with these real-time tools - -0:06:52.400,0:06:55.919 -obviously the stack is somewhat work in - -0:06:54.479,0:06:58.000 -progress um - -0:06:55.919,0:07:00.800 -so I just wanted to give a shout out to - -0:06:58.000,0:07:03.919 -crdt which was really fun - -0:07:00.800,0:07:07.039 -and champion was making bug fiction - -0:07:03.919,0:07:08.960 -bug fixes for that as we go similarly - -0:07:07.039,0:07:10.160 -for fern and log seek the maintainers - -0:07:08.960,0:07:12.960 -were really responsive - -0:07:10.160,0:07:14.560 -um and so that was nice we did try to - -0:07:12.960,0:07:15.840 -get emacs running in the browser - -0:07:14.560,0:07:16.880 -thinking it would be really nice for - -0:07:15.840,0:07:19.520 -people who - -0:07:16.880,0:07:21.120 -um didn't want to install it to get a - -0:07:19.520,0:07:23.120 -chance to just try it - -0:07:21.120,0:07:24.479 -uh but actually browsers capture things - -0:07:23.120,0:07:27.120 -like uh control n - -0:07:24.479,0:07:28.479 -and so that's that was a bit annoying - -0:07:27.120,0:07:29.759 -but we did get lots of great feedback - -0:07:28.479,0:07:31.599 -and interaction with people including - -0:07:29.759,0:07:33.759 -around this conference so thank you - -0:07:31.599,0:07:35.599 -to those who we've had discussions with - -0:07:33.759,0:07:37.680 -um - -0:07:35.599,0:07:38.639 -so future work okay so maybe you - -0:07:37.680,0:07:41.039 -remember I didn't - -0:07:38.639,0:07:42.400 -give a talk a few years back on arcana - -0:07:41.039,0:07:44.479 -so what what - -0:07:42.400,0:07:45.919 -might this have to do with org mode and - -0:07:44.479,0:07:47.039 -that's always the question one asks - -0:07:45.919,0:07:48.720 -about arcata - -0:07:47.039,0:07:50.319 -well so arcana one of the things it does - -0:07:48.720,0:07:51.680 -is transclusions and so that could be - -0:07:50.319,0:07:54.000 -actually very helpful - -0:07:51.680,0:07:55.520 -in connection with this combined notes - -0:07:54.000,0:07:56.479 -and write-up workflow so you might have - -0:07:55.520,0:07:58.400 -a - -0:07:56.479,0:08:00.800 -forward mode uh and some of these - -0:07:58.400,0:08:03.199 -results we got back as raw results - -0:08:00.800,0:08:03.919 -could go right into your write up in a - -0:08:03.199,0:08:07.520 -kind of - -0:08:03.919,0:08:09.039 -convenient way at a level above um - -0:08:07.520,0:08:11.280 -transparently a level above the notebook - -0:08:09.039,0:08:13.440 -so you'd have the notebook alongside the - -0:08:11.280,0:08:15.599 -write-up in that case - -0:08:13.440,0:08:16.800 -which is a sort of variation on the - -0:08:15.599,0:08:19.120 -literate programming - -0:08:16.800,0:08:20.000 -workflow this is speculative who knows - -0:08:19.120,0:08:22.080 -the other thought is - -0:08:20.000,0:08:23.520 -it just relates to the idea of network - -0:08:22.080,0:08:24.800 -programming so we can imagine these - -0:08:23.520,0:08:26.639 -networks of - -0:08:24.800,0:08:28.800 -computational nodes maybe sitting inside - -0:08:26.639,0:08:31.199 -of orgrome calling each other - -0:08:28.800,0:08:32.560 -um and you would want to maintain some - -0:08:31.199,0:08:34.959 -kind of model of that - -0:08:32.560,0:08:36.640 -process and a sort of general question - -0:08:34.959,0:08:38.320 -is how do we have a remote control for - -0:08:36.640,0:08:40.240 -long-running processes you could do that - -0:08:38.320,0:08:42.479 -in lisp or closure but - -0:08:40.240,0:08:44.080 -maybe we could have something a little - -0:08:42.479,0:08:45.839 -bit like that here - -0:08:44.080,0:08:48.080 -um so conclusions what have we actually - -0:08:45.839,0:08:50.080 -addressed well uh we addressed uh - -0:08:48.080,0:08:51.600 -accessing any long-running process with - -0:08:50.080,0:08:52.959 -a simple or mode interface - -0:08:51.600,0:08:54.880 -obviously we're not the only people to - -0:08:52.959,0:08:56.880 -think about notebooks but we think that - -0:08:54.880,0:08:58.880 -emacs has some advantages - -0:08:56.880,0:09:01.120 -related to reproducible research and - -0:08:58.880,0:09:01.680 -interdisciplinary collaboration so let's - -0:09:01.120,0:09:03.120 -just - -0:09:01.680,0:09:04.880 -say that we think something is - -0:09:03.120,0:09:07.200 -reproducible if it's actually teachable - -0:09:04.880,0:09:09.279 -to someone new and they can do it - -0:09:07.200,0:09:11.680 -org mode seems very useful for that many - -0:09:09.279,0:09:14.399 -of the other talks have touched on this - -0:09:11.680,0:09:16.000 -interdisciplinary collaboration is great - -0:09:14.399,0:09:17.839 -this was an interdisciplinary - -0:09:16.000,0:09:19.680 -collaboration on some level but - -0:09:17.839,0:09:21.600 -what about you know future work for - -0:09:19.680,0:09:22.320 -bringing in scenario planners simulation - -0:09:21.600,0:09:24.480 -scientists - -0:09:22.320,0:09:25.519 -and local farmers and building something - -0:09:24.480,0:09:27.200 -that they can all - -0:09:25.519,0:09:29.200 -use that's more than the sum of the - -0:09:27.200,0:09:30.720 -parts so a little - -0:09:29.200,0:09:32.160 -future work for everybody else here so - -0:09:30.720,0:09:33.120 -we think science should be widely - -0:09:32.160,0:09:34.560 -teachable - -0:09:33.120,0:09:36.720 -shareable semi-automated - -0:09:34.560,0:09:40.399 -transdisciplinary and real time - -0:09:36.720,0:09:43.279 -like EmacsConf so you can get in touch - -0:09:40.399,0:09:44.560 -uh via these methods and the code which - -0:09:43.279,0:09:45.200 -is very much early stage work in - -0:09:44.560,0:09:46.640 -progress - -0:09:45.200,0:09:48.800 -as this was meant to be an experience - -0:09:46.640,0:09:49.920 -report not a it's all done here it is - -0:09:48.800,0:09:51.680 -polished report - -0:09:49.920,0:09:53.360 -um it's also online if you'd like to - -0:09:51.680,0:09:54.560 -have a look so that's the end of the - -0:09:53.360,0:09:55.279 -talk and I don't know if there's time - -0:09:54.560,0:09:57.440 -for questions - -0:09:55.279,0:10:00.240 -or not but um I'm at your disposal now - -0:09:57.440,0:10:04.079 -thank you you are now unmuted - -0:10:00.240,0:10:07.120 -um many thanks for the tough job - -0:10:04.079,0:10:08.880 -uh let's see we have about I think four - -0:10:07.120,0:10:10.880 -minutes four questions - -0:10:08.880,0:10:12.320 -um and we have a couple of questions on - -0:10:10.880,0:10:14.240 -the pad would you like to read them - -0:10:12.320,0:10:16.560 -yourself or should I read them to you - -0:10:14.240,0:10:18.079 -uh just for sake of easy management why - -0:10:16.560,0:10:21.279 -don't you read them out if that's okay - -0:10:18.079,0:10:22.240 -yeah sure uh so they ask have you looked - -0:10:21.279,0:10:25.440 -into trying - -0:10:22.240,0:10:33.760 -sage math I've long uh long wanted - -0:10:25.440,0:10:36.959 -nothing org files - -0:10:33.760,0:10:39.279 -right and I and I wrote the answer that - -0:10:36.959,0:10:42.079 -we should be possible because one can - -0:10:39.279,0:10:42.079 -call it from a command - -0:10:44.839,0:10:48.640 -okay - -0:10:46.399,0:10:50.079 -and I see there's another sagemath - -0:10:48.640,0:10:52.100 -question that you seem to have answered - -0:10:50.079,0:10:54.880 -as well so I guess I won't repeat that - -0:10:52.100,0:10:56.959 -[Music] - -0:10:54.880,0:11:00.640 -there's let's not forget about embedded - -0:10:56.959,0:11:03.680 -calc in emacs - -0:11:00.640,0:11:05.040 -so so the first demos actually were with - -0:11:03.680,0:11:06.640 -calc so that's that's - -0:11:05.040,0:11:07.839 -useful uh although I think it was a - -0:11:06.640,0:11:08.240 -different kind of a different command - -0:11:07.839,0:11:11.839 -line - -0:11:08.240,0:11:13.839 -well that was the next calc yeah - -0:11:11.839,0:11:15.680 -so sure there is there is calc so that - -0:11:13.839,0:11:19.120 -would be calculus and - -0:11:15.680,0:11:21.839 -calc is already in org mode yeah - -0:11:19.120,0:11:21.839 -yeah yeah - -0:11:25.680,0:11:29.839 -um still looking for questions - -0:11:39.760,0:11:44.320 -okay I think that's about it I don't see - -0:11:41.760,0:11:47.440 -any questions on the ether pad - -0:11:44.320,0:11:50.480 -and let's see - -0:11:47.440,0:11:50.480 -anything on irc - -0:11:53.040,0:11:56.720 -um nothing but phrases and everyone - -0:11:55.760,0:11:59.120 -thanking you - -0:11:56.720,0:12:00.240 -thank you all right you're welcome - -0:11:59.120,0:12:02.880 -thanks a lot uh - -0:12:00.240,0:12:06.800 -we'll see you guys around then cheers - -0:12:02.880,0:12:06.800 -and see you around - diff --git a/2020/subtitles/emacsconf-2020--14-readme-driven-design--adam-ard-autogen.sbv b/2020/subtitles/emacsconf-2020--14-readme-driven-design--adam-ard-autogen.sbv deleted file mode 100644 index 506a26eb..00000000 --- a/2020/subtitles/emacsconf-2020--14-readme-driven-design--adam-ard-autogen.sbv +++ /dev/null @@ -1,1425 +0,0 @@ -0:00:03.600,0:00:06.560 -hello - -0:00:04.400,0:00:08.400 -welcome to readme driven design in Emacs - -0:00:06.560,0:00:10.800 -by adam aard - -0:00:08.400,0:00:12.559 -if you're a programmer you're accustomed - -0:00:10.800,0:00:13.759 -to putting a readme file at the root of - -0:00:12.559,0:00:16.400 -your project - -0:00:13.759,0:00:17.600 -and it's usually a markdown file but if - -0:00:16.400,0:00:20.720 -you use an org - -0:00:17.600,0:00:22.560 -more an org mode file instead you can - -0:00:20.720,0:00:24.400 -take advantage of the great features - -0:00:22.560,0:00:25.920 -that org mode provides including - -0:00:24.400,0:00:28.000 -literate programming - -0:00:25.920,0:00:31.840 -which lets you generate your source code - -0:00:28.000,0:00:34.719 -and markdown documentation dynamically - -0:00:31.840,0:00:37.120 -I want to walk you through a little bit - -0:00:34.719,0:00:39.440 -of what this looks like - -0:00:37.120,0:00:41.280 -when you start a project especially if - -0:00:39.440,0:00:43.320 -if you use something like github you - -0:00:41.280,0:00:47.039 -begin with an automatically generated - -0:00:43.320,0:00:50.239 -readme.md file so just delete that - -0:00:47.039,0:00:51.920 -and instead create a readme.org file - -0:00:50.239,0:00:54.800 -starting with an empty org file like you - -0:00:51.920,0:00:56.559 -see here you can begin - -0:00:54.800,0:00:59.440 -by recording important information about - -0:00:56.559,0:01:01.920 -your project goals you can add diagrams - -0:00:59.440,0:01:03.520 -code snippets to-do lists time tracking - -0:01:01.920,0:01:05.360 -and much more - -0:01:03.520,0:01:07.760 -I'm going to drop in some documentation - -0:01:05.360,0:01:10.840 -that I r that I've written about - -0:01:07.760,0:01:12.240 -about my project here so you can kind of - -0:01:10.840,0:01:15.280 -see - -0:01:12.240,0:01:17.119 -what this would look like - -0:01:15.280,0:01:20.320 -so as you can see I have a title and a - -0:01:17.119,0:01:23.840 -description and then a sub section - -0:01:20.320,0:01:25.520 -as well as some code snippets - -0:01:23.840,0:01:28.240 -and you can see that orgmo does a great - -0:01:25.520,0:01:31.280 -job of formatting lists and - -0:01:28.240,0:01:33.920 -code sections diagrams and so forth - -0:01:31.280,0:01:35.040 -it's good or it's as good or better than - -0:01:33.920,0:01:37.520 -markdown - -0:01:35.040,0:01:38.880 -but when you use it in the Emacs you can - -0:01:37.520,0:01:40.479 -do a lot more - -0:01:38.880,0:01:43.360 -for example you can dynamically create - -0:01:40.479,0:01:45.200 -diagrams using graphviz - -0:01:43.360,0:01:46.560 -from a text description so if you go to - -0:01:45.200,0:01:49.439 -this source block here - -0:01:46.560,0:01:51.439 -and hit control c control c you'll see - -0:01:49.439,0:01:55.439 -that we generate a - -0:01:51.439,0:01:59.200 -diagram dynamically you can run - -0:01:55.439,0:02:00.799 -so you can run these code snippets in - -0:01:59.200,0:02:03.040 -place and get the results - -0:02:00.799,0:02:06.640 -to show up inside of your your file - -0:02:03.040,0:02:06.640 -which is a really powerful paradigm - -0:02:08.000,0:02:11.520 -but most important most importantly for - -0:02:10.640,0:02:14.800 -the - -0:02:11.520,0:02:17.200 -purposes my purpose is here - -0:02:14.800,0:02:19.520 -orgmo provides you the ability to do - -0:02:17.200,0:02:21.440 -literate programming - -0:02:19.520,0:02:23.200 -so take a quick look at this diagram - -0:02:21.440,0:02:25.360 -that I generated here - -0:02:23.200,0:02:27.520 -and gives you a quick overview of what I - -0:02:25.360,0:02:31.200 -mean by literate programming - -0:02:27.520,0:02:33.920 -and how I'm using it you can see - -0:02:31.200,0:02:34.720 -that we start with a readme.org file on - -0:02:33.920,0:02:36.879 -top - -0:02:34.720,0:02:37.920 -at this point we can do one of two - -0:02:36.879,0:02:41.280 -things - -0:02:37.920,0:02:42.720 -tangle or weave tangle is used to - -0:02:41.280,0:02:46.319 -describe the process of - -0:02:42.720,0:02:47.599 -generating source code while weave - -0:02:46.319,0:02:49.840 -is the process of generating - -0:02:47.599,0:02:51.920 -documentation these are terms that - -0:02:49.840,0:02:53.840 -donald knuth used - -0:02:51.920,0:02:55.519 -and he's the one that came up with the - -0:02:53.840,0:02:59.920 -idea of literate programming - -0:02:55.519,0:03:01.519 -in the early 1980s - -0:02:59.920,0:03:04.480 -but this is really all that there is to - -0:03:01.519,0:03:06.400 -it you just - -0:03:04.480,0:03:07.840 -who are simply using literate illiterate - -0:03:06.400,0:03:10.319 -source file - -0:03:07.840,0:03:11.680 -in this case the readme.org to generate - -0:03:10.319,0:03:15.680 -the rest of the project - -0:03:11.680,0:03:15.680 -the rest of the project files basically - -0:03:17.120,0:03:22.640 -so let's dig in to the details of how - -0:03:20.959,0:03:24.560 -this works - -0:03:22.640,0:03:26.159 -and I hope you hopefully you'll see how - -0:03:24.560,0:03:28.959 -cool this is - -0:03:26.159,0:03:31.120 -so returning to the file here let's - -0:03:28.959,0:03:32.080 -assume we have enough documentation now - -0:03:31.120,0:03:34.159 -that we want to get started - -0:03:32.080,0:03:35.519 -coding so maybe we'll just start with - -0:03:34.159,0:03:38.159 -like a hello world - -0:03:35.519,0:03:41.519 -app just so we can make sure that our - -0:03:38.159,0:03:47.120 -environment is set up correctly - -0:03:41.519,0:03:49.519 -so let's get started with a code block - -0:03:47.120,0:03:50.319 -so I created a little snippet to help me - -0:03:49.519,0:03:52.239 -add - -0:03:50.319,0:03:53.599 -a source block for literate programming - -0:03:52.239,0:03:56.959 -quickly - -0:03:53.599,0:03:58.799 -and there's not much to it - -0:03:56.959,0:04:01.599 -but there is some important annotations - -0:03:58.799,0:04:04.080 -here so there's - -0:04:01.599,0:04:05.200 -excuse me there's a there's a property - -0:04:04.080,0:04:09.360 -called tangle - -0:04:05.200,0:04:13.280 -and that takes a value of a file name - -0:04:09.360,0:04:16.560 -and then there's also a no web property - -0:04:13.280,0:04:16.560 -called no export - -0:04:18.880,0:04:22.000 -and basically - -0:04:23.759,0:04:28.639 -basically the no export will explain - -0:04:26.800,0:04:32.080 -that a little bit - -0:04:28.639,0:04:33.919 -more later um it has has to do with how - -0:04:32.080,0:04:37.600 -the tangling - -0:04:33.919,0:04:39.280 -is uh done in the tangle step versus the - -0:04:37.600,0:04:41.199 -weave step and I'll explain that a - -0:04:39.280,0:04:45.199 -little bit more but the tangle - -0:04:41.199,0:04:48.320 -field just simply tells tells uh - -0:04:45.199,0:04:50.320 -Emacs where it needs to generate the - -0:04:48.320,0:04:53.280 -main.go file and where it needs to put - -0:04:50.320,0:04:53.280 -it on the file system - -0:04:55.360,0:04:59.040 -uh you'll you'll notice that we we're - -0:04:57.680,0:05:01.440 -going to use go - -0:04:59.040,0:05:02.160 -that's just the language that I've been - -0:05:01.440,0:05:05.360 -using - -0:05:02.160,0:05:07.360 -the most lately uh but - -0:05:05.360,0:05:08.400 -this programming strategy is language - -0:05:07.360,0:05:12.080 -agnostic - -0:05:08.400,0:05:14.720 -you could use any language or any mix - -0:05:12.080,0:05:16.560 -of languages you could create some files - -0:05:14.720,0:05:19.520 -in python some files and go - -0:05:16.560,0:05:21.520 -some files in in lisp or whatever you - -0:05:19.520,0:05:24.720 -want - -0:05:21.520,0:05:28.000 -and so but let's - -0:05:24.720,0:05:29.440 -uh let's create just a little hello - -0:05:28.000,0:05:32.320 -world - -0:05:29.440,0:05:33.520 -let's use another snippet here to - -0:05:32.320,0:05:36.560 -generate - -0:05:33.520,0:05:39.840 -the basics of a go program - -0:05:36.560,0:05:39.840 -so I'm just going to print - -0:05:40.240,0:05:42.960 -hello world - -0:05:44.960,0:05:48.240 -so that's and then - -0:05:48.560,0:05:55.280 -let's make it a section in our - -0:05:52.320,0:05:56.400 -file so now you can see we've got this - -0:05:55.280,0:05:59.600 -snippet - -0:05:56.400,0:06:01.600 -um when you have a source block in - -0:05:59.600,0:06:02.880 -inside of org mode you can easily pop - -0:06:01.600,0:06:04.960 -into a - -0:06:02.880,0:06:07.680 -language specific buffer by typing - -0:06:04.960,0:06:10.240 -control c single quote - -0:06:07.680,0:06:12.160 -so you can see now I have a a go a - -0:06:10.240,0:06:14.240 -buffer that's in go mode - -0:06:12.160,0:06:15.520 -and gives you all the ability to edit - -0:06:14.240,0:06:18.800 -like you would - -0:06:15.520,0:06:20.800 -normally if you hit ctrl c - -0:06:18.800,0:06:22.639 -single quote again then it goes back and - -0:06:20.800,0:06:25.280 -any changes you - -0:06:22.639,0:06:26.160 -make would will be updated there but you - -0:06:25.280,0:06:28.000 -can do quite a bit - -0:06:26.160,0:06:29.199 -just inside of here too there's quite a - -0:06:28.000,0:06:32.400 -bit of - -0:06:29.199,0:06:32.400 -language specific - -0:06:33.360,0:06:36.880 -functionality just in place and so you - -0:06:35.440,0:06:38.080 -don't always have to go over to a - -0:06:36.880,0:06:42.319 -separate buffer - -0:06:38.080,0:06:44.319 -but it's a it's a nice option sometimes - -0:06:42.319,0:06:46.720 -but now that you have the code in here - -0:06:44.319,0:06:48.560 -you're going to want to run it - -0:06:46.720,0:06:50.240 -but right now it just lives here in this - -0:06:48.560,0:06:52.160 -documentation - -0:06:50.240,0:06:53.840 -so you need to get a copy of it into a - -0:06:52.160,0:06:57.440 -separate file - -0:06:53.840,0:07:01.360 -and that's the tangle process that you - -0:06:57.440,0:07:03.360 -you need to follow there so I'm gonna - -0:07:01.360,0:07:05.280 -drop in a little bit more doc a little - -0:07:03.360,0:07:08.960 -bit more - -0:07:05.280,0:07:08.960 -documentation really quick here - -0:07:12.240,0:07:21.520 -okay all right so just kind of as a - -0:07:17.360,0:07:24.800 -kind of as a side note I like to follow - -0:07:21.520,0:07:26.639 -this process uh whenever having whenever - -0:07:24.800,0:07:28.880 -I have an operation to perform I - -0:07:26.639,0:07:31.680 -I'd like to document it here with a - -0:07:28.880,0:07:33.280 -snippet that can be executed in line - -0:07:31.680,0:07:34.639 -then I don't have to leave org mode and - -0:07:33.280,0:07:36.800 -I don't have to try to remember what I - -0:07:34.639,0:07:38.960 -did later so instead of just - -0:07:36.800,0:07:40.319 -trying to do an operation the first time - -0:07:38.960,0:07:41.680 -I do something I take the - -0:07:40.319,0:07:43.440 -take the time to figure out what it is - -0:07:41.680,0:07:44.879 -and document it and so then it's - -0:07:43.440,0:07:48.400 -recorded - -0:07:44.879,0:07:49.120 -and so here we find that to do a tangle - -0:07:48.400,0:07:51.680 -operation - -0:07:49.120,0:07:52.560 -you run the command or babel tangled - -0:07:51.680,0:07:55.840 -which is a - -0:07:52.560,0:07:59.199 -e-list command so if you hit ctrl c - -0:07:55.840,0:08:00.080 -ctrl c to run it in place you get the - -0:07:59.199,0:08:02.720 -result - -0:08:00.080,0:08:03.759 -of main dot go which basically is - -0:08:02.720,0:08:07.680 -telling us that - -0:08:03.759,0:08:11.039 -we've tangled one file called main.go - -0:08:07.680,0:08:14.000 -and you can see that that's true - -0:08:11.039,0:08:14.400 -if you go to the file system and you - -0:08:14.000,0:08:17.840 -look - -0:08:14.400,0:08:20.960 -so now in uh in our demo directory - -0:08:17.840,0:08:22.479 -we have a readme.org we have that png - -0:08:20.960,0:08:23.440 -that we generated but we also have a - -0:08:22.479,0:08:26.080 -main.go - -0:08:23.440,0:08:27.759 -and if you if you visit that file you'll - -0:08:26.080,0:08:29.280 -see that it's just the source code that - -0:08:27.759,0:08:31.039 -was in our documentation which is - -0:08:29.280,0:08:32.880 -exactly what we expected and what we - -0:08:31.039,0:08:36.000 -wanted so that's good - -0:08:32.880,0:08:36.000 -so if we return to - -0:08:36.560,0:08:39.919 -to where we are at - -0:08:41.120,0:08:44.640 -now we're we're at the point where we - -0:08:42.959,0:08:45.760 -have a file on the file system so now we - -0:08:44.640,0:08:48.959 -need - -0:08:45.760,0:08:53.600 -um now we need to build it and to - -0:08:48.959,0:08:57.040 -run it so let's follow the same - -0:08:53.600,0:08:58.720 -philosophy where let's document - -0:08:57.040,0:09:00.160 -these operations that we're going to - -0:08:58.720,0:09:03.920 -perform - -0:09:00.160,0:09:03.920 -so I'm dropping in a - -0:09:04.560,0:09:11.200 -a build instruction section and a run - -0:09:07.839,0:09:11.200 -instruction section - -0:09:13.360,0:09:17.839 -so as you can see here we have a little - -0:09:15.279,0:09:20.000 -a bash source block - -0:09:17.839,0:09:22.000 -and another batch source block this one - -0:09:20.000,0:09:25.440 -compiles the go build command is what - -0:09:22.000,0:09:26.880 -compiles a file and then - -0:09:25.440,0:09:29.519 -the file that gets generated should be - -0:09:26.880,0:09:29.519 -called demo - -0:09:30.080,0:09:34.000 -and uh so we just run it here so if if I - -0:09:32.959,0:09:37.839 -type control c - -0:09:34.000,0:09:40.640 -control c we get an empty results block - -0:09:37.839,0:09:41.360 -when you compile things no news is good - -0:09:40.640,0:09:44.399 -news - -0:09:41.360,0:09:46.560 -so it means there's no errors so - -0:09:44.399,0:09:48.000 -presumably we've created an executable - -0:09:46.560,0:09:51.440 -that's called demo - -0:09:48.000,0:09:54.560 -so let's uh - -0:09:51.440,0:09:57.519 -let's look again at the file system and - -0:09:54.560,0:09:57.519 -regenerate - -0:10:02.480,0:10:07.200 -yep and what we have here is a demo - -0:10:05.760,0:10:07.760 -executable which is exactly what we - -0:10:07.200,0:10:12.079 -wanted - -0:10:07.760,0:10:14.160 -so let's go back - -0:10:12.079,0:10:16.079 -so now we should be able to run it so - -0:10:14.160,0:10:20.320 -ctrl c ctrl c - -0:10:16.079,0:10:20.320 -and we get hello world as a result - -0:10:20.399,0:10:26.560 -which was exactly what we were expecting - -0:10:23.440,0:10:30.240 -so that's already pretty cool - -0:10:26.560,0:10:30.240 -you can you can do that much - -0:10:30.839,0:10:34.560 -um but - -0:10:33.040,0:10:37.839 -that's really just kind of the tip of - -0:10:34.560,0:10:41.040 -the iceberg to uh to really - -0:10:37.839,0:10:43.440 -kind of um - -0:10:41.040,0:10:46.160 -use the more impressive features of - -0:10:43.440,0:10:49.519 -literate programming we need to uh - -0:10:46.160,0:10:49.519 -we need to do a little bit more - -0:10:49.920,0:10:55.519 -so or at least - -0:10:53.200,0:10:56.480 -at least really to get the full benefit - -0:10:55.519,0:10:59.120 -of it then - -0:10:56.480,0:10:59.120 -we need to do - -0:10:59.600,0:11:06.320 -add some sections that will cause uh - -0:11:02.959,0:11:06.720 -Emacs to have to to tangle or assemble - -0:11:06.320,0:11:09.760 -this - -0:11:06.720,0:11:13.120 -this file from different pieces so - -0:11:09.760,0:11:16.720 -imagine that we wanted to take this file - -0:11:13.120,0:11:19.120 -and maybe kind of templatize it - -0:11:16.720,0:11:21.279 -so using literature programming syntax - -0:11:19.120,0:11:24.399 -this angle bracket syntax - -0:11:21.279,0:11:29.360 -let's say that we want to create an in - -0:11:24.399,0:11:32.399 -imports section - -0:11:29.360,0:11:35.040 -in a functions section - -0:11:32.399,0:11:36.240 -and then maybe just a main section and - -0:11:35.040,0:11:37.920 -we'll get rid of this - -0:11:36.240,0:11:39.760 -so now you see we've created something - -0:11:37.920,0:11:42.000 -that looks a little bit like a - -0:11:39.760,0:11:42.880 -like a template or a scaffolding or - -0:11:42.000,0:11:46.000 -outline - -0:11:42.880,0:11:48.399 -for what what our file is going to be it - -0:11:46.000,0:11:50.800 -looks a little bit like pseudocode - -0:11:48.399,0:11:52.399 -and what we're going to have literate - -0:11:50.800,0:11:54.800 -programming do - -0:11:52.399,0:11:56.639 -is dynamically insert those things into - -0:11:54.800,0:12:00.079 -those slots - -0:11:56.639,0:12:03.200 -so the first thing we need to do - -0:12:00.079,0:12:08.079 -is so let's create a section - -0:12:03.200,0:12:09.519 -maybe called say hello so we want - -0:12:08.079,0:12:12.720 -we want to add some functionality that - -0:12:09.519,0:12:15.680 -makes our program say hello - -0:12:12.720,0:12:17.600 -so using a different snippet that I have - -0:12:15.680,0:12:20.800 -for creating something - -0:12:17.600,0:12:24.079 -that I call like a literate section - -0:12:20.800,0:12:26.000 -um basically we create a - -0:12:24.079,0:12:27.839 -another source block that's almost the - -0:12:26.000,0:12:31.040 -same as the one for the file but it's - -0:12:27.839,0:12:31.680 -it just has a few differences so say we - -0:12:31.040,0:12:34.160 -want to - -0:12:31.680,0:12:36.639 -drop code into the import section and we - -0:12:34.160,0:12:39.120 -want it to be in go - -0:12:36.639,0:12:40.720 -here we use the same noed no web no - -0:12:39.120,0:12:43.200 -export syntax - -0:12:40.720,0:12:44.560 -but then we've added this no web refs - -0:12:43.200,0:12:48.240 -imports - -0:12:44.560,0:12:51.120 -and this ties that slot - -0:12:48.240,0:12:53.760 -basically to this reference it tells - -0:12:51.120,0:12:56.880 -Emacs that when you tangle - -0:12:53.760,0:12:58.240 -we want to stick whatever's in here in - -0:12:56.880,0:13:02.079 -that spot - -0:12:58.240,0:13:03.279 -so you skip the tangle file name section - -0:13:02.079,0:13:04.240 -because you're not actually creating a - -0:13:03.279,0:13:06.160 -file name you're - -0:13:04.240,0:13:07.680 -you're putting information into an - -0:13:06.160,0:13:10.720 -existing file - -0:13:07.680,0:13:13.680 -so here we would just add the fmt - -0:13:10.720,0:13:13.680 -for the imports - -0:13:14.399,0:13:22.240 -so let's add another section for uh - -0:13:18.839,0:13:25.519 -functions and let's create a - -0:13:22.240,0:13:30.240 -let's just create a function called - -0:13:25.519,0:13:32.839 -say hello that - -0:13:30.240,0:13:34.000 -doesn't have any arguments no return - -0:13:32.839,0:13:35.760 -types - -0:13:34.000,0:13:37.440 -all it does is kind of pretty much the - -0:13:35.760,0:13:39.199 -same thing as we did before - -0:13:37.440,0:13:41.360 -just print something but let's just say - -0:13:39.199,0:13:45.760 -hello - -0:13:41.360,0:13:49.519 -Emacs comp this time - -0:13:45.760,0:13:51.040 -okay so now we have a function and now - -0:13:49.519,0:13:52.720 -the function won't do anything unless we - -0:13:51.040,0:13:56.000 -invoke it so let's do - -0:13:52.720,0:13:59.920 -one last literate section - -0:13:56.000,0:14:03.519 -called main make that go - -0:13:59.920,0:14:06.399 -source block and then let's - -0:14:03.519,0:14:06.399 -just invoke - -0:14:06.560,0:14:13.360 -that that function - -0:14:10.320,0:14:15.600 -so now you can see that we've got - -0:14:13.360,0:14:17.199 -our scaffolding scaffolding kind of - -0:14:15.600,0:14:20.079 -outline and then we have - -0:14:17.199,0:14:21.360 -the sections that we want to get tangled - -0:14:20.079,0:14:25.440 -or inserted - -0:14:21.360,0:14:27.199 -so I I've kind of used this syntax - -0:14:25.440,0:14:28.560 -it's it's kind of borrowed from - -0:14:27.199,0:14:30.320 -literature programming a little bit with - -0:14:28.560,0:14:32.480 -a plus equals so really it's just saying - -0:14:30.320,0:14:35.760 -that I want to append - -0:14:32.480,0:14:37.600 -this item into the import section so - -0:14:35.760,0:14:39.839 -it's really just to make a little bit - -0:14:37.600,0:14:41.519 -more clear what's going on - -0:14:39.839,0:14:43.519 -when you generate documentation you - -0:14:41.519,0:14:46.160 -won't see these - -0:14:43.519,0:14:49.360 -these these particular property - -0:14:46.160,0:14:51.440 -annotations and so you won't know - -0:14:49.360,0:14:53.839 -immediately that this section goes in - -0:14:51.440,0:14:55.440 -the imports area and so I usually put - -0:14:53.839,0:14:57.760 -a little bit of documentation on top - -0:14:55.440,0:15:01.120 -there so that it's easy to see - -0:14:57.760,0:15:03.040 -and you would probably if this was very - -0:15:01.120,0:15:06.399 -complicated you'd put some - -0:15:03.040,0:15:07.360 -documentation above to explain what you - -0:15:06.399,0:15:10.320 -were doing - -0:15:07.360,0:15:10.320 -maybe right here - -0:15:11.519,0:15:15.040 -you could you could picture yourself - -0:15:13.279,0:15:17.440 -maybe explaining - -0:15:15.040,0:15:18.079 -a complicated algorithm or something up - -0:15:17.440,0:15:21.120 -here - -0:15:18.079,0:15:22.959 -and having a nice way to document it - -0:15:21.120,0:15:25.600 -so now that we've got that here in the - -0:15:22.959,0:15:27.040 -documentation we need to figure out - -0:15:25.600,0:15:29.920 -we need to make sure that it's going to - -0:15:27.040,0:15:33.519 -tangle properly so your best friend - -0:15:29.920,0:15:35.680 -at this point is is uh - -0:15:33.519,0:15:38.240 -is a keyboard shortcut that lets you - -0:15:35.680,0:15:38.959 -preview the tangled operation so if you - -0:15:38.240,0:15:42.560 -say control - -0:15:38.959,0:15:45.120 -c control v control v - -0:15:42.560,0:15:46.480 -it will create a new buffer with the - -0:15:45.120,0:15:49.360 -tangled - -0:15:46.480,0:15:50.639 -contents and so you can see here that - -0:15:49.360,0:15:53.199 -the fmt - -0:15:50.639,0:15:54.720 -import went to the right place that - -0:15:53.199,0:15:56.160 -function went to the right place the - -0:15:54.720,0:15:58.480 -function invocation went to the right - -0:15:56.160,0:16:01.279 -place and so we're feeling good - -0:15:58.480,0:16:02.800 -you can nest these things many layers - -0:16:01.279,0:16:04.800 -deep - -0:16:02.800,0:16:07.199 -actually so like if you came into the - -0:16:04.800,0:16:10.160 -say hello function you could add - -0:16:07.199,0:16:10.160 -more sections - -0:16:10.560,0:16:13.759 -you know and it gets and it'll go - -0:16:12.160,0:16:15.680 -through and it'll - -0:16:13.759,0:16:16.959 -keep track of all that and tangle it for - -0:16:15.680,0:16:18.320 -you so you really get a lot of freedom - -0:16:16.959,0:16:19.600 -and flexibility for how you want to - -0:16:18.320,0:16:22.320 -document things - -0:16:19.600,0:16:25.839 -by doing this so now that we've - -0:16:22.320,0:16:28.639 -previewed it and we feel good about it - -0:16:25.839,0:16:31.440 -we need to uh we need to tangle so we - -0:16:28.639,0:16:34.480 -get the file on the file system - -0:16:31.440,0:16:37.199 -so ctrl c ctrl c and - -0:16:34.480,0:16:37.920 -get just main.go comes back again - -0:16:37.199,0:16:40.959 -control c - -0:16:37.920,0:16:43.839 -control c and no errors come back - -0:16:40.959,0:16:45.600 -and then if we did this right when we - -0:16:43.839,0:16:47.199 -when we run this we should get hello - -0:16:45.600,0:16:51.199 -Emacs comp so ctrl c - -0:16:47.199,0:16:54.800 -ctrl c hello Emacs comp - -0:16:51.199,0:16:57.120 -so I uh - -0:16:54.800,0:16:58.240 -I think that's pretty pretty cool - -0:16:57.120,0:17:00.160 -actually so we've got - -0:16:58.240,0:17:02.399 -kind of the breadcrumbs of the process - -0:17:00.160,0:17:05.520 -we've gone through to get to this point - -0:17:02.399,0:17:08.000 -this initial this initial - -0:17:05.520,0:17:09.919 -document that has some tangling in it we - -0:17:08.000,0:17:12.799 -have documentation for how to tangle - -0:17:09.919,0:17:14.079 -how to build how to run it's we've - -0:17:12.799,0:17:17.760 -really built a nice - -0:17:14.079,0:17:20.160 -foundation for - -0:17:17.760,0:17:21.439 -moving forward on our project and a nice - -0:17:20.160,0:17:23.280 -way of breaking things out and - -0:17:21.439,0:17:27.120 -documenting further - -0:17:23.280,0:17:30.559 -the last piece that we need to - -0:17:27.120,0:17:34.799 -take care of is the weave that I - -0:17:30.559,0:17:38.640 -that's I showed you in the diagram above - -0:17:34.799,0:17:41.760 -so one more time we'll drop in - -0:17:38.640,0:17:42.400 -some documentation so this time on how - -0:17:41.760,0:17:44.400 -to weave - -0:17:42.400,0:17:47.520 -so it's really just an export function - -0:17:44.400,0:17:49.280 -it's not there's not a separate weave - -0:17:47.520,0:17:50.640 -command going on here we're just going - -0:17:49.280,0:17:52.799 -to export - -0:17:50.640,0:17:55.200 -what we've got here into a markdown - -0:17:52.799,0:17:57.440 -format so we're using org - -0:17:55.200,0:17:58.880 -gfm export to markdown which is the - -0:17:57.440,0:18:02.160 -github style - -0:17:58.880,0:18:05.440 -markdown you can use the other just - -0:18:02.160,0:18:10.320 -more standard type as well so hit ctrl c - -0:18:05.440,0:18:15.280 -ctrl c now you see we've got a readme - -0:18:10.320,0:18:17.440 -file and if you look - -0:18:15.280,0:18:19.120 -in the file system we've got that right - -0:18:17.440,0:18:23.120 -there and so - -0:18:19.120,0:18:29.840 -if you go to something like ghostwriter - -0:18:23.120,0:18:29.840 -and open that file - -0:18:31.679,0:18:35.520 -now you can see that it's generated some - -0:18:34.559,0:18:38.320 -documentation - -0:18:35.520,0:18:39.679 -it puts a index at top at the top I - -0:18:38.320,0:18:42.000 -usually just - -0:18:39.679,0:18:43.679 -I usually turn that off it's easy to do - -0:18:42.000,0:18:44.559 -that by putting a property at the top of - -0:18:43.679,0:18:46.880 -your - -0:18:44.559,0:18:48.559 -your org file but some people like to - -0:18:46.880,0:18:50.799 -have an index - -0:18:48.559,0:18:52.160 -but here you can see that it's generated - -0:18:50.799,0:18:55.200 -pretty nicely and - -0:18:52.160,0:18:56.880 -formatted snippets well - -0:18:55.200,0:18:58.240 -put the diagram in there and then it's - -0:18:56.880,0:19:01.039 -preserved - -0:18:58.240,0:19:02.799 -it's preserved this literate programming - -0:19:01.039,0:19:04.960 -syntax - -0:19:02.799,0:19:06.480 -which is important because that's how we - -0:19:04.960,0:19:07.200 -want to view the documentation that's - -0:19:06.480,0:19:10.559 -what the no - -0:19:07.200,0:19:13.360 -exports um - -0:19:10.559,0:19:14.000 -property was was trying to maintain so - -0:19:13.360,0:19:16.080 -that - -0:19:14.000,0:19:18.400 -no exports means when you export do not - -0:19:16.080,0:19:20.559 -try to tangle so that's - -0:19:18.400,0:19:22.240 -hopefully that makes more sense now but - -0:19:20.559,0:19:26.080 -now you can see all the documentation - -0:19:22.240,0:19:29.919 -and I think it demonstrates a - -0:19:26.080,0:19:33.520 -pretty useful feature that's inside of - -0:19:29.919,0:19:35.039 -Emacs and and hopefully - -0:19:33.520,0:19:39.840 -hopefully you'll have as much fun using - -0:19:35.039,0:19:39.840 -that as I have - -0:19:39.919,0:19:43.600 -so thanks - diff --git a/2020/subtitles/emacsconf-2020--15-moving-from-jekyll-to-orgmode-an-experience-report--adolfo-villafiorita-autogen.sbv b/2020/subtitles/emacsconf-2020--15-moving-from-jekyll-to-orgmode-an-experience-report--adolfo-villafiorita-autogen.sbv deleted file mode 100644 index 02c40424..00000000 --- a/2020/subtitles/emacsconf-2020--15-moving-from-jekyll-to-orgmode-an-experience-report--adolfo-villafiorita-autogen.sbv +++ /dev/null @@ -1,1182 +0,0 @@ -0:00:00.080,0:00:06.960 -okay okay excellent sorry okay so - -0:00:03.120,0:00:10.080 -uh hello everyone um and um - -0:00:06.960,0:00:12.400 -uh nice meeting you and let me - -0:00:10.080,0:00:13.920 -thank the the organizer for all the - -0:00:12.400,0:00:15.200 -organization and all the work they are - -0:00:13.920,0:00:18.400 -doing to support us - -0:00:15.200,0:00:19.920 -my name is adolfo villaferita - -0:00:18.400,0:00:21.920 -I'm teaching at the university of - -0:00:19.920,0:00:24.480 -trenton I'm also - -0:00:21.920,0:00:26.240 -work will shortly be working at - -0:00:24.480,0:00:29.359 -shared.tech which is a comp - -0:00:26.240,0:00:30.530 -a non-profit organization developing an - -0:00:29.359,0:00:32.399 -applications to - -0:00:30.530,0:00:35.680 -[Music] - -0:00:32.399,0:00:38.960 -recover surplus food but the the - -0:00:35.680,0:00:40.079 -reason of the talk today and the reason - -0:00:38.960,0:00:42.719 -I'm here today - -0:00:40.079,0:00:44.000 -is to talk about my experience in moving - -0:00:42.719,0:00:47.200 -from jekyll uh - -0:00:44.000,0:00:49.200 -static website generator to org mode and - -0:00:47.200,0:00:52.079 -the reason - -0:00:49.200,0:00:53.039 -I move to work mode is to have better - -0:00:52.079,0:00:56.800 -support for - -0:00:53.039,0:00:58.399 -literary programming on the websites - -0:00:56.800,0:01:00.480 -at the university of trento where we - -0:00:58.399,0:01:04.720 -make available the content for the - -0:01:00.480,0:01:08.000 -the students okay so - -0:01:04.720,0:01:10.080 -first of all what is a static website - -0:01:08.000,0:01:11.360 -generator it is basically a tool which - -0:01:10.080,0:01:15.360 -allows you to - -0:01:11.360,0:01:17.439 -generate html files out of text files - -0:01:15.360,0:01:19.280 -containing basically two types of - -0:01:17.439,0:01:23.119 -information metadata - -0:01:19.280,0:01:26.159 -and content metadata is let's say a - -0:01:23.119,0:01:28.560 -set of key pairs describing the the - -0:01:26.159,0:01:30.000 -content of the file such as the title - -0:01:28.560,0:01:31.759 -author - -0:01:30.000,0:01:34.560 -tags and so on and so forth and the - -0:01:31.759,0:01:37.040 -content is what you actually want to to - -0:01:34.560,0:01:38.880 -get published on the on the internet in - -0:01:37.040,0:01:41.439 -the html file - -0:01:38.880,0:01:44.240 -and usually the content is written in - -0:01:41.439,0:01:44.240 -some kind of - -0:01:44.560,0:01:49.759 -markup language such as markdown or - -0:01:47.520,0:01:53.200 -possibly - -0:01:49.759,0:01:55.759 -org mode and well jackie is a very - -0:01:53.200,0:01:58.719 -popular website uh - -0:01:55.759,0:01:59.840 -a static website generator it is written - -0:01:58.719,0:02:03.280 -in a ruby - -0:01:59.840,0:02:06.840 -and what it does it it it systematically - -0:02:03.280,0:02:09.440 -let's say transforms all the input files - -0:02:06.840,0:02:11.599 -by making the content into - -0:02:09.440,0:02:14.000 -html and systematically applying a - -0:02:11.599,0:02:17.120 -template in order to generate the - -0:02:14.000,0:02:19.840 -html files which you can then deploy - -0:02:17.120,0:02:22.160 -on your server of choice to make them - -0:02:19.840,0:02:26.160 -available on the on the internet - -0:02:22.160,0:02:28.480 -and one of the features uh most - -0:02:26.160,0:02:30.239 -well I would say all static website - -0:02:28.480,0:02:32.560 -generators have - -0:02:30.239,0:02:34.879 -is a debt of being able to let's say - -0:02:32.560,0:02:38.400 -collect the metadata information - -0:02:34.879,0:02:39.440 -uh of the files being part of your of - -0:02:38.400,0:02:45.280 -your project - -0:02:39.440,0:02:47.840 -and the reason they do that is because - -0:02:45.280,0:02:49.280 -you sometimes want to generate pages - -0:02:47.840,0:02:53.200 -based on the content - -0:02:49.280,0:02:56.239 -of your um of your projects - -0:02:53.200,0:02:59.040 -such as for instance the the list of - -0:02:56.239,0:03:00.400 -posts you have recently published or - -0:02:59.040,0:03:03.840 -maybe the list of tags - -0:03:00.400,0:03:07.280 -uh you uh have defined for your post and - -0:03:03.840,0:03:09.760 -so on and so forth so so - -0:03:07.280,0:03:12.400 -dracula gives the possibility of - -0:03:09.760,0:03:15.760 -generating this kind of dynamic - -0:03:12.400,0:03:18.800 -content by using liquid which is a - -0:03:15.760,0:03:21.840 -templating language which - -0:03:18.800,0:03:24.879 -looks like these - -0:03:21.840,0:03:26.879 -so basically you you have all the - -0:03:24.879,0:03:29.120 -constructs you can - -0:03:26.879,0:03:29.920 -expect in a programming language this - -0:03:29.120,0:03:33.360 -for instance - -0:03:29.920,0:03:37.440 -is a fourth cycle which - -0:03:33.360,0:03:39.599 -iterates over all the post or the - -0:03:37.440,0:03:41.040 -files in a specific directory of the - -0:03:39.599,0:03:45.040 -jacket project - -0:03:41.040,0:03:48.400 -and for each post it takes the the title - -0:03:45.040,0:03:51.840 -and the url and generates a link - -0:03:48.400,0:03:55.200 -okay so dracule is - -0:03:51.840,0:03:57.760 -nice and sweet but over the years - -0:03:55.200,0:03:59.519 -I started using more and more - -0:03:57.760,0:04:02.959 -systematically - -0:03:59.519,0:04:05.439 -or mode to write all my files and I - -0:04:02.959,0:04:07.439 -moved from markdown to word mode I am a - -0:04:05.439,0:04:09.680 -long time Emacs user so I've been using - -0:04:07.439,0:04:12.799 -imax for 30 years now so - -0:04:09.680,0:04:15.280 -or mode is a more recent discovery - -0:04:12.799,0:04:16.239 -but it is a very nice uh let's say - -0:04:15.280,0:04:19.680 -discovery I - -0:04:16.239,0:04:22.320 -I made and the reason I like org mode - -0:04:19.680,0:04:23.600 -is because for instance you can write - -0:04:22.320,0:04:26.639 -formulas using - -0:04:23.600,0:04:30.320 -mac jacks and you can generate diagrams - -0:04:26.639,0:04:32.240 -or plots with new plots and - -0:04:30.320,0:04:34.080 -also important is the fact that you have - -0:04:32.240,0:04:35.919 -the possibility of let's say publishing - -0:04:34.080,0:04:39.520 -your documents - -0:04:35.919,0:04:40.400 -to multiple ends backhands such as pdf - -0:04:39.520,0:04:43.600 -or - -0:04:40.400,0:04:47.199 -maybe a review presentations or - -0:04:43.600,0:04:50.479 -or html and this is all made possible - -0:04:47.199,0:04:52.560 -by bubble which is - -0:04:50.479,0:04:54.639 -exactly what we just saw in the the - -0:04:52.560,0:04:57.440 -previous talk - -0:04:54.639,0:04:59.520 -namely the possibility of executing a - -0:04:57.440,0:05:02.560 -snippet of code - -0:04:59.520,0:05:06.400 -embedded in in your pages - -0:05:02.560,0:05:09.600 -um and our model can also be used - -0:05:06.400,0:05:10.720 -within let's say jackie and in fact - -0:05:09.600,0:05:15.199 -there is a - -0:05:10.720,0:05:18.880 -a nice gem a nice library called jackie - -0:05:15.199,0:05:19.680 -org which allows you to use org modifies - -0:05:18.880,0:05:22.880 -directly - -0:05:19.680,0:05:26.560 -into jekyll but when you start using - -0:05:22.880,0:05:30.560 -org mode when I started using - -0:05:26.560,0:05:34.240 -mode I realized I could move - -0:05:30.560,0:05:36.840 -all my workflow to or my publishing - -0:05:34.240,0:05:39.520 -workflow to image - -0:05:36.840,0:05:41.600 -and and and in fact - -0:05:39.520,0:05:42.880 -org mode is also static website - -0:05:41.600,0:05:46.240 -generator because - -0:05:42.880,0:05:50.880 -it has got the possibility of publishing - -0:05:46.240,0:05:53.840 -um projects made of org mode files - -0:05:50.880,0:05:55.759 -and one of the nice things about let's - -0:05:53.840,0:05:56.479 -say that the publishing features of work - -0:05:55.759,0:05:58.880 -mode - -0:05:56.479,0:05:59.840 -is that it allows you to define in the - -0:05:58.880,0:06:03.199 -org publish - -0:05:59.840,0:06:06.479 -project a list of the components - -0:06:03.199,0:06:07.520 -which are part of your project and in a - -0:06:06.479,0:06:10.479 -sense it is - -0:06:07.520,0:06:12.400 -also more flexible than jackie lee's - -0:06:10.479,0:06:12.880 -because it also allows you for instance - -0:06:12.400,0:06:15.120 -to - -0:06:12.880,0:06:17.440 -let's say publish a single file rather - -0:06:15.120,0:06:20.080 -than having to recompile everything - -0:06:17.440,0:06:23.919 -every time you want to publish your - -0:06:20.080,0:06:25.840 -your project to your website however - -0:06:23.919,0:06:27.120 -there are some short comments I would - -0:06:25.840,0:06:29.520 -say or some some - -0:06:27.120,0:06:30.400 -areas of improvement improvement let me - -0:06:29.520,0:06:32.720 -say - -0:06:30.400,0:06:33.600 -the first is that let's say support for - -0:06:32.720,0:06:36.639 -templating - -0:06:33.600,0:06:39.280 -is not so obvious as it is let's say - -0:06:36.639,0:06:40.560 -in jackie or even though there are some - -0:06:39.280,0:06:44.560 -let's say - -0:06:40.560,0:06:46.160 -nice extensions such as argo t html - -0:06:44.560,0:06:48.400 -for instance which allows you to use - -0:06:46.160,0:06:51.840 -templates and - -0:06:48.400,0:06:54.080 -more important to me was the fact that - -0:06:51.840,0:06:55.520 -apparently there is little support for - -0:06:54.080,0:06:58.240 -the creation of dynamic - -0:06:55.520,0:06:59.360 -content so I was very curious and very - -0:06:58.240,0:07:02.800 -keen to use - -0:06:59.360,0:07:05.440 -or mode for let's say publishing my blog - -0:07:02.800,0:07:08.720 -and my the the courses at the university - -0:07:05.440,0:07:11.440 -but then uh I had to find a way - -0:07:08.720,0:07:13.599 -to let's say being able to publish these - -0:07:11.440,0:07:16.000 -dynamic pages finding some kind of - -0:07:13.599,0:07:16.720 -replacement so to speak for uh the - -0:07:16.000,0:07:19.759 -liquid - -0:07:16.720,0:07:20.160 -the liquid engine and and the solution - -0:07:19.759,0:07:24.160 -was - -0:07:20.160,0:07:27.280 -that at hand actually because - -0:07:24.160,0:07:30.800 -basically I realized I could use bubble - -0:07:27.280,0:07:32.720 -for exactly this purpose so rather than - -0:07:30.800,0:07:35.759 -using bubble for generating - -0:07:32.720,0:07:37.919 -plots or let's say my other computation - -0:07:35.759,0:07:41.039 -or whatever I was using them for - -0:07:37.919,0:07:42.080 -I realized they could use bubble to - -0:07:41.039,0:07:45.120 -generate - -0:07:42.080,0:07:48.960 -html which could be let's say - -0:07:45.120,0:07:52.720 -uh then published uh uh - -0:07:48.960,0:07:53.680 -in the project so uh so all I needed to - -0:07:52.720,0:07:56.240 -do then - -0:07:53.680,0:07:58.319 -was defining some kind of functions some - -0:07:56.240,0:08:01.840 -kind of code in order to read - -0:07:58.319,0:08:02.400 -all the org mode uh the metadata of all - -0:08:01.840,0:08:05.759 -the - -0:08:02.400,0:08:09.680 -opmod files of my web project so that - -0:08:05.759,0:08:13.280 -I could let's say then publish uh - -0:08:09.680,0:08:17.440 -generate the dynamic content and - -0:08:13.280,0:08:17.440 -this is a snippet taken from - -0:08:18.080,0:08:24.800 -one of my html projects - -0:08:21.759,0:08:27.599 -which basically shows the way in which - -0:08:24.800,0:08:29.360 -I generate the um the list of posts on - -0:08:27.599,0:08:32.560 -my on my page it is uh - -0:08:29.360,0:08:34.320 -exactly how the the liquid that we saw - -0:08:32.560,0:08:35.680 -in a couple of a couple of slides - -0:08:34.320,0:08:39.200 -earlier that looks like - -0:08:35.680,0:08:42.320 -uh in inner mode - -0:08:39.200,0:08:46.720 -and basically what I'm doing I'm using I - -0:08:42.320,0:08:49.680 -wrote a ruby script which - -0:08:46.720,0:08:51.040 -reads all the metadata so this uh - -0:08:49.680,0:08:53.440 -highlighted code - -0:08:51.040,0:08:54.240 -basically loads the script which is - -0:08:53.440,0:08:56.800 -stored - -0:08:54.240,0:08:58.320 -externally and then it collects all the - -0:08:56.800,0:09:00.880 -metadata from the - -0:08:58.320,0:09:02.240 -org mode files in the current uh in the - -0:09:00.880,0:09:04.800 -current directory - -0:09:02.240,0:09:06.480 -and then the the following the the code - -0:09:04.800,0:09:09.839 -you can see here - -0:09:06.480,0:09:12.959 -basically iterate over all the - -0:09:09.839,0:09:16.399 -past red the at the previous step - -0:09:12.959,0:09:19.519 -and it generates um - -0:09:16.399,0:09:22.959 -a list with the title and uh - -0:09:19.519,0:09:27.440 -and the urls and so basically - -0:09:22.959,0:09:30.240 -replicating what jackie does so - -0:09:27.440,0:09:32.399 -okay so there are some some other things - -0:09:30.240,0:09:33.200 -I have to to deal with in order to let's - -0:09:32.399,0:09:36.480 -say - -0:09:33.200,0:09:39.200 -accommodate my workflow and but that was - -0:09:36.480,0:09:40.240 -relatively easy in the sense that one of - -0:09:39.200,0:09:43.279 -the - -0:09:40.240,0:09:45.360 -uh problem one of the issue I had to - -0:09:43.279,0:09:48.480 -solve was that of let's say having - -0:09:45.360,0:09:51.040 -a common navigation on all my - -0:09:48.480,0:09:51.920 -pages uh but that was easily solved - -0:09:51.040,0:09:54.959 -using - -0:09:51.920,0:09:56.000 -uh the include feature so I basically - -0:09:54.959,0:09:57.839 -made available - -0:09:56.000,0:10:00.560 -and include with all the navigation - -0:09:57.839,0:10:01.839 -which is uh embedded in all the pages of - -0:10:00.560,0:10:04.959 -my websites - -0:10:01.839,0:10:06.160 -uh through the could include and another - -0:10:04.959,0:10:08.560 -nice feature which - -0:10:06.160,0:10:09.760 -jackie las is the possibility of - -0:10:08.560,0:10:12.800 -previewing - -0:10:09.760,0:10:13.200 -a website before deploying it and but - -0:10:12.800,0:10:16.079 -then - -0:10:13.200,0:10:17.839 -Emacs also has got a node which allows - -0:10:16.079,0:10:21.200 -you to - -0:10:17.839,0:10:24.320 -launch a web server and in fact - -0:10:21.200,0:10:26.959 -I wrote a quick ack - -0:10:24.320,0:10:28.000 -which allows you to which allows to - -0:10:26.959,0:10:31.519 -basically - -0:10:28.000,0:10:34.720 -invoke a node on a on our - -0:10:31.519,0:10:37.920 -mode project and start a local preview - -0:10:34.720,0:10:43.680 -and then use rsync - -0:10:37.920,0:10:43.680 -in order to deploy the the website - -0:10:44.839,0:10:48.720 -um - -0:10:46.240,0:10:51.200 -five minutes left okay okay more than - -0:10:48.720,0:10:53.200 -enough okay - -0:10:51.200,0:10:55.440 -thanks thank you thank you very much I'm - -0:10:53.200,0:10:56.480 -nearly done so then I can take some some - -0:10:55.440,0:11:00.560 -questions - -0:10:56.480,0:11:03.680 -so okay just to give you maybe - -0:11:00.560,0:11:06.480 -a slightly more in-depth uh - -0:11:03.680,0:11:07.200 -view of what the pages look like so - -0:11:06.480,0:11:11.120 -these are - -0:11:07.200,0:11:14.720 -one of the pages or the source files - -0:11:11.120,0:11:18.480 -of one of the websites it is - -0:11:14.720,0:11:20.399 -in literate programming so basically uh - -0:11:18.480,0:11:22.640 -you see there is some metadata here I - -0:11:20.399,0:11:26.640 -mean this is a regular old mod file - -0:11:22.640,0:11:29.920 -and this part here - -0:11:26.640,0:11:31.519 -basically defines some common options - -0:11:29.920,0:11:35.920 -for publication - -0:11:31.519,0:11:41.120 -and these two includes here - -0:11:35.920,0:11:44.480 -put some extra html in the head part and - -0:11:41.120,0:11:48.079 -the navigation and here as you can see - -0:11:44.480,0:11:50.160 -is the code generating the - -0:11:48.079,0:11:52.240 -the list in chronological order it is - -0:11:50.160,0:11:53.839 -slightly more complex than the example I - -0:11:52.240,0:11:56.240 -made in the slide - -0:11:53.839,0:11:57.839 -because uh there is some more - -0:11:56.240,0:11:59.760 -elaboration to - -0:11:57.839,0:12:01.839 -uh to do including putting some - -0:11:59.760,0:12:05.120 -javascript to identify - -0:12:01.839,0:12:08.160 -according to let's say the the tags - -0:12:05.120,0:12:11.200 -so to go back to the to the presentation - -0:12:08.160,0:12:13.600 -um so the okay so - -0:12:11.200,0:12:14.560 -I I managed this migration uh a few - -0:12:13.600,0:12:17.680 -months ago - -0:12:14.560,0:12:20.399 -and then uh all my workflow is within - -0:12:17.680,0:12:23.079 -with old mode and within imax and um - -0:12:20.399,0:12:24.240 -I'm very happy with it because it's - -0:12:23.079,0:12:26.800 -simplified - -0:12:24.240,0:12:28.480 -uh quite a bit let's say my public - -0:12:26.800,0:12:31.839 -publication process - -0:12:28.480,0:12:34.240 -and uh one of the advantages so another - -0:12:31.839,0:12:36.959 -advantage so the first advantage is that - -0:12:34.240,0:12:38.160 -everything is in ork mode and dmax - -0:12:36.959,0:12:41.680 -second advantage - -0:12:38.160,0:12:44.880 -is that everything is based on the - -0:12:41.680,0:12:47.760 -standard machinery provided by orb mode - -0:12:44.880,0:12:50.079 -so in a sense it is kind of let's say - -0:12:47.760,0:12:53.040 -more robust with respect to - -0:12:50.079,0:12:54.320 -dependencies and possible errors and so - -0:12:53.040,0:12:56.639 -on and so forth - -0:12:54.320,0:12:58.240 -and um and the fact that the old mode - -0:12:56.639,0:13:00.880 -allows you to publish - -0:12:58.240,0:13:03.839 -a single file in a project is is also - -0:13:00.880,0:13:07.839 -very interesting because - -0:13:03.839,0:13:11.040 -it allows to let's say be more robust to - -0:13:07.839,0:13:14.079 -problems you might introduce when - -0:13:11.040,0:13:14.959 -you're changing when I'm changing the - -0:13:14.079,0:13:16.880 -setup - -0:13:14.959,0:13:18.320 -and another interesting thing which I - -0:13:16.880,0:13:21.519 -realized that I - -0:13:18.320,0:13:23.600 -uh I could have is that - -0:13:21.519,0:13:24.880 -in a sense the specification of the - -0:13:23.600,0:13:27.360 -website - -0:13:24.880,0:13:28.480 -is uh can be embedded in the website - -0:13:27.360,0:13:30.800 -itself - -0:13:28.480,0:13:31.839 -so in a sense this is some kind of let's - -0:13:30.800,0:13:35.120 -say self - -0:13:31.839,0:13:37.200 -the command it's a real set documenting - -0:13:35.120,0:13:38.560 -uh what I'm actually doing so for - -0:13:37.200,0:13:42.800 -instance - -0:13:38.560,0:13:42.800 -uh here on my - -0:13:43.199,0:13:48.240 -website you can see let's say the - -0:13:46.399,0:13:51.519 -specification of the - -0:13:48.240,0:13:52.320 -of the of the project which is uh loaded - -0:13:51.519,0:13:55.519 -from my - -0:13:52.320,0:13:56.320 -initialization file but then it is also - -0:13:55.519,0:13:59.440 -published - -0:13:56.320,0:14:01.360 -together with my home page and it leaves - -0:13:59.440,0:14:05.360 -with the repository where - -0:14:01.360,0:14:08.079 -I keep all the sources of my website - -0:14:05.360,0:14:09.839 -which is kind of nice because it - -0:14:08.079,0:14:14.079 -basically isolates - -0:14:09.839,0:14:16.880 -everything in a single in a single place - -0:14:14.079,0:14:18.000 -okay so there are some examples I'm - -0:14:16.880,0:14:20.320 -showing them - -0:14:18.000,0:14:21.760 -more because of the let's say source - -0:14:20.320,0:14:25.519 -code which - -0:14:21.760,0:14:26.160 -you can grab from the git repositories - -0:14:25.519,0:14:28.399 -if you are - -0:14:26.160,0:14:30.079 -interested of course I'm also available - -0:14:28.399,0:14:32.959 -to provide some - -0:14:30.079,0:14:34.480 -support and help if you are interested - -0:14:32.959,0:14:37.760 -in this kind of stuff - -0:14:34.480,0:14:38.560 -the the next step for me will be that of - -0:14:37.760,0:14:41.600 -let's say trying - -0:14:38.560,0:14:45.199 -making this kind of machinery available - -0:14:41.600,0:14:47.120 -for more general use at the moment - -0:14:45.199,0:14:48.800 -if you are interested in trying out my - -0:14:47.120,0:14:49.839 -suggestion is let's say grabbing the - -0:14:48.800,0:14:52.959 -sources - -0:14:49.839,0:14:56.000 -or one of the let's say websites to see - -0:14:52.959,0:14:56.720 -what how they look like and maybe try - -0:14:56.000,0:15:00.160 -and - -0:14:56.720,0:15:02.720 -customize it for your purposes - -0:15:00.160,0:15:03.839 -and this is basically the content of my - -0:15:02.720,0:15:06.959 -talk so - -0:15:03.839,0:15:07.279 -I'm open to two questions and thank you - -0:15:06.959,0:15:10.880 -for - -0:15:07.279,0:15:12.880 -your attention you are now unmuted uh - -0:15:10.880,0:15:14.480 -thank you very much adolfo for your - -0:15:12.880,0:15:17.360 -awesome presentation - -0:15:14.480,0:15:19.360 -um I think we have time for maybe like - -0:15:17.360,0:15:21.279 -one or two questions - -0:15:19.360,0:15:22.880 -um and then the rest maybe you could - -0:15:21.279,0:15:26.639 -take up um - -0:15:22.880,0:15:30.000 -after the stream after sure - -0:15:26.639,0:15:31.839 -uh I we should do um would you like me - -0:15:30.000,0:15:35.199 -to read you the questions - -0:15:31.839,0:15:40.399 -uh yeah probably better because - -0:15:35.199,0:15:42.480 -I kind of lost there okay no problem um - -0:15:40.399,0:15:45.440 -okay so someone asks do you have any - -0:15:42.480,0:15:48.639 -opinion on fern - -0:15:45.440,0:15:51.839 -fan I I don't know fans - -0:15:48.639,0:15:55.040 -so I'll give it a try and uh and uh - -0:15:51.839,0:15:57.839 -and check it out okay - -0:15:55.040,0:15:59.680 -thanks and um people are also asking do - -0:15:57.839,0:16:01.279 -you discuss this for example in a blog - -0:15:59.680,0:16:02.800 -or anywhere else they could find more - -0:16:01.279,0:16:05.600 -about it - -0:16:02.800,0:16:08.560 -oh yes I'm going to publish the let's - -0:16:05.600,0:16:11.120 -say the talk and the content on the - -0:16:08.560,0:16:12.320 -on my website and then I'll link it from - -0:16:11.120,0:16:14.720 -the max conf - -0:16:12.320,0:16:15.680 -conference so that it will be easier for - -0:16:14.720,0:16:19.040 -people to - -0:16:15.680,0:16:22.880 -to reach it so I will shortly make it - -0:16:19.040,0:16:25.440 -available right after the conference - -0:16:22.880,0:16:26.160 -wonderful and I think that's all for the - -0:16:25.440,0:16:28.560 -questions - -0:16:26.160,0:16:29.600 -thank you very much okay thank you very - -0:16:28.560,0:16:34.800 -much thank you - -0:16:29.600,0: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.sbv b/2020/subtitles/emacsconf-2020--16-org-roam-presentation-demonstration-and-whats-on-the-horizon--leo-vivier-autogen.sbv deleted file mode 100644 index 515970f8..00000000 --- a/2020/subtitles/emacsconf-2020--16-org-roam-presentation-demonstration-and-whats-on-the-horizon--leo-vivier-autogen.sbv +++ /dev/null @@ -1,1800 +0,0 @@ -0:00:00.000,0:00:03.919 -I'm hoping to keep this talk in the 15 - -0:00:02.480,0:00:05.279 -minutes and I'll take five minutes of - -0:00:03.919,0:00:07.520 -question at the end - -0:00:05.279,0:00:09.200 -so hello again I suppose you're starting - -0:00:07.520,0:00:10.719 -to get pretty familiar with me and my - -0:00:09.200,0:00:12.480 -start right now so - -0:00:10.719,0:00:14.719 -right now we're getting into the nitty - -0:00:12.480,0:00:17.039 -gritty we started today - -0:00:14.719,0:00:18.480 -I told you about how I'd ventured from - -0:00:17.039,0:00:20.800 -being a user - -0:00:18.480,0:00:22.080 -to being a maintainer and right now I'm - -0:00:20.800,0:00:24.240 -going to get the chance to - -0:00:22.080,0:00:25.279 -actually tell you more about the project - -0:00:24.240,0:00:28.480 -that I'm maintaining - -0:00:25.279,0:00:30.560 -which is called org rome - -0:00:28.480,0:00:32.320 -so even if I it would have had a better - -0:00:30.560,0:00:33.840 -impact if I'd - -0:00:32.320,0:00:35.520 -didn't scroll the page but you know - -0:00:33.840,0:00:37.120 -sadly I'm out of tea - -0:00:35.520,0:00:39.600 -it's getting late in europe and I'm - -0:00:37.120,0:00:43.360 -starting to get tired - -0:00:39.600,0:00:46.160 -so what I'm gonna do during this talk - -0:00:43.360,0:00:48.079 -is just to do real survey for people who - -0:00:46.160,0:00:50.480 -do not know what orgrom is about - -0:00:48.079,0:00:52.320 -some of you might might have you know - -0:00:50.480,0:00:54.879 -whilst browsing reddit - -0:00:52.320,0:00:56.480 -found a topic about orgrom and thought - -0:00:54.879,0:00:57.199 -to yourself oh that looks interesting - -0:00:56.480,0:00:59.680 -but - -0:00:57.199,0:01:01.039 -you know I have my own workflow and I - -0:00:59.680,0:01:03.199 -get it don't need to change anything - -0:01:01.039,0:01:05.680 -about it you know I'm completely fine - -0:01:03.199,0:01:07.520 -using my very very large file or I'm - -0:01:05.680,0:01:10.960 -completely fine having my - -0:01:07.520,0:01:14.560 -database of notes which is I've been - -0:01:10.960,0:01:17.759 -accruing for like 10 20 30 years or so - -0:01:14.560,0:01:20.080 -so what I want to do during this talk - -0:01:17.759,0:01:20.960 -is both to present to you what orgrom is - -0:01:20.080,0:01:23.439 -about - -0:01:20.960,0:01:24.000 -if you are in this group of people who - -0:01:23.439,0:01:25.600 -do not - -0:01:24.000,0:01:27.520 -know what algorithm is about but would - -0:01:25.600,0:01:30.560 -like to know more but - -0:01:27.520,0:01:33.360 -also for people who have close to no - -0:01:30.560,0:01:35.040 -experience with Emacs and org mode and - -0:01:33.360,0:01:36.880 -was just found their way you know they - -0:01:35.040,0:01:39.840 -wanted to find the system to - -0:01:36.880,0:01:41.439 -write their notes basically and you know - -0:01:39.840,0:01:42.960 -they discovered this little tool which - -0:01:41.439,0:01:44.479 -is called orgrome - -0:01:42.960,0:01:46.240 -and they'd like to know more about this - -0:01:44.479,0:01:49.360 -so I've got 13 - -0:01:46.240,0:01:53.360 -minutes to convince you to use hologram - -0:01:49.360,0:01:56.799 -so if we go in a very broad strokes - -0:01:53.360,0:01:59.759 -what is orgram orgrom - -0:01:56.799,0:02:00.320 -is a way for you to manage backlinks - -0:01:59.759,0:02:03.439 -inside - -0:02:00.320,0:02:07.040 -old mode and the keyword - -0:02:03.439,0:02:10.080 -in what I've just said is links now - -0:02:07.040,0:02:12.879 -there is a principle behind orgrom - -0:02:10.080,0:02:14.239 -which is called the zettelgasten method - -0:02:12.879,0:02:15.440 -which you can see written right there - -0:02:14.239,0:02:18.000 -it's a german word - -0:02:15.440,0:02:19.280 -which means a slit box if you remember - -0:02:18.000,0:02:22.080 -in old libraries - -0:02:19.280,0:02:23.440 -you had actually I believe if I scroll I - -0:02:22.080,0:02:26.640 -should have an example of this - -0:02:23.440,0:02:28.879 -yes so this is a slip box basically in - -0:02:26.640,0:02:30.560 -all libraries you used to have all the - -0:02:28.879,0:02:31.599 -references to the books that the library - -0:02:30.560,0:02:34.720 -used to have - -0:02:31.599,0:02:36.080 -inside those boxes and they're called - -0:02:34.720,0:02:38.480 -slim boxes because you can - -0:02:36.080,0:02:41.200 -insert stuff into the boxes and you can - -0:02:38.480,0:02:44.720 -remove stuff out of the boxes - -0:02:41.200,0:02:48.000 -now basically if I try - -0:02:44.720,0:02:49.360 -to summarize as simply as I may what the - -0:02:48.000,0:02:52.800 -zettel cast method - -0:02:49.360,0:02:56.560 -is about it's about having a way - -0:02:52.800,0:02:59.920 -to work with your notes which considers - -0:02:56.560,0:03:02.000 -elements of knowledge as atoms - -0:02:59.920,0:03:04.159 -so as something that is individual like - -0:03:02.000,0:03:06.640 -a single file - -0:03:04.159,0:03:07.440 -and you consider that in order to build - -0:03:06.640,0:03:10.560 -knowledge - -0:03:07.440,0:03:11.120 -you have to combine atoms together so - -0:03:10.560,0:03:14.720 -that - -0:03:11.120,0:03:17.519 -when you have one atom another atom - -0:03:14.720,0:03:18.879 -if you link them together you have a - -0:03:17.519,0:03:22.000 -complex - -0:03:18.879,0:03:24.000 -thought or a complex molecule - -0:03:22.000,0:03:25.360 -okay don't quote me on the chemistry by - -0:03:24.000,0:03:26.879 -the way I shall remind you I'm an - -0:03:25.360,0:03:28.239 -english major I have no idea what I'm - -0:03:26.879,0:03:31.360 -talking about - -0:03:28.239,0:03:32.000 -so how does it work as far as a - -0:03:31.360,0:03:35.280 -note-taking - -0:03:32.000,0:03:37.599 -system is concerned and to do so - -0:03:35.280,0:03:39.760 -I'm just going to switch really quickly - -0:03:37.599,0:03:43.040 -to my Emacs if I - -0:03:39.760,0:03:44.959 -may so I'm just going to screenshot - -0:03:43.040,0:03:47.840 -onto my mac just give me a second to get - -0:03:44.959,0:03:52.080 -the windows all right - -0:03:47.840,0:03:54.720 -okay it's loading up oh no - -0:03:52.080,0:03:56.000 -I think firefox has crashed again okay - -0:03:54.720,0:03:58.840 -so you're gonna have to give me a second - -0:03:56.000,0:04:01.680 -I need to figure this out - -0:03:58.840,0:04:03.120 -okay so everything is frozen right now - -0:04:01.680,0:04:04.720 -just to tell you so you're gonna have to - -0:04:03.120,0:04:06.159 -deal with my lovely voice - -0:04:04.720,0:04:07.920 -uh I mean can you confirm that if I - -0:04:06.159,0:04:09.840 -switch to a new ttr you can still hear - -0:04:07.920,0:04:12.959 -me - -0:04:09.840,0:04:14.879 -so can you still hear me now - -0:04:12.959,0:04:16.479 -okay so I'm gonna have probably to kill - -0:04:14.879,0:04:18.000 -firefox and log in again - -0:04:16.479,0:04:19.600 -so I'm sorry it's gonna cost us two - -0:04:18.000,0:04:20.560 -minutes but I'm gonna try to be as fast - -0:04:19.600,0:04:28.560 -as I can okay - -0:04:20.560,0:04:31.040 -okay no problem thanks - -0:04:28.560,0:04:31.040 -all right - -0:04:35.199,0:04:39.280 -I guess no event is a good one without - -0:04:37.520,0:04:42.800 -one or two technical difficulties - -0:04:39.280,0:04:45.360 -so I guess this is our share of - -0:04:42.800,0:04:57.840 -technical difficulties this year - -0:04:45.360,0:04:57.840 -no problem - -0:05:04.800,0:05:08.160 -all right guess who's back it's not - -0:05:06.320,0:05:10.800 -britney it's just me sadly so you're - -0:05:08.160,0:05:12.880 -gonna have to make do with me - -0:05:10.800,0:05:15.520 -welcome back well thank you I'm just - -0:05:12.880,0:05:18.320 -gonna turn back on the camera if I may - -0:05:15.520,0:05:18.320 -all righty - -0:05:19.919,0:05:23.520 -and I'm going to make myself a presenter - -0:05:22.400,0:05:26.160 -and I'm going to - -0:05:23.520,0:05:26.880 -share my screen with you sleep box - -0:05:26.160,0:05:29.360 -testing - -0:05:26.880,0:05:29.360 -hello - -0:05:29.919,0:05:34.160 -so if my calculations are correct you - -0:05:32.720,0:05:34.800 -should be able to see my monitor right - -0:05:34.160,0:05:38.160 -now - -0:05:34.800,0:05:39.919 -um yep but not your webcam feed - -0:05:38.160,0:05:42.320 -not my webcam feed okay so I'm going to - -0:05:39.919,0:05:42.320 -stop it - -0:05:42.800,0:05:46.000 -sorry for the little delay folks you - -0:05:44.720,0:05:49.039 -know it's uh - -0:05:46.000,0:05:52.320 -the show must go on can you see it now - -0:05:49.039,0:05:58.000 -um not yet still not - -0:05:52.320,0:05:58.000 -damn it can I stop it okay so I'm gonna - -0:06:00.080,0:06:07.840 -yeah maybe try like sharing a webcam - -0:06:04.840,0:06:07.840 -first - -0:06:32.960,0:06:37.759 -all right I'm back now so I'm going to - -0:06:36.319,0:06:39.550 -share my webcam first - -0:06:37.759,0:06:43.440 -okay - -0:06:39.550,0:06:46.560 -[Music] - -0:06:43.440,0:06:49.360 -all righty so can you confirm whenever - -0:06:46.560,0:06:52.880 -you've got my webcam working - -0:06:49.360,0:06:55.919 -let's see I don't see it yet - -0:06:52.880,0:06:57.120 -unfortunately oh it's loading up yeah - -0:06:55.919,0:06:59.680 -it's coming up - -0:06:57.120,0:07:01.199 -yep I can see it awesome all right okay - -0:06:59.680,0:07:02.880 -we're back on track I've got still eight - -0:07:01.199,0:07:04.160 -minutes left to do so I might have to - -0:07:02.880,0:07:06.000 -have a couple of minutes to my talk if - -0:07:04.160,0:07:07.599 -you don't mind and shave off some - -0:07:06.000,0:07:10.800 -questions - -0:07:07.599,0:07:13.759 -okay do you want to share okay yeah - -0:07:10.800,0:07:14.639 -I'm on my way too all right all right so - -0:07:13.759,0:07:16.240 -please forget - -0:07:14.639,0:07:18.000 -whatever whichever technical - -0:07:16.240,0:07:18.479 -difficulties we might have have had for - -0:07:18.000,0:07:20.240 -the last - -0:07:18.479,0:07:22.080 -three four minutes but we're back on - -0:07:20.240,0:07:24.960 -track now so - -0:07:22.080,0:07:26.639 -uh orgrom what is it and how does it - -0:07:24.960,0:07:28.720 -work so I was telling you all about - -0:07:26.639,0:07:30.720 -atoms and I was telling you about links - -0:07:28.720,0:07:32.800 -but how does it work concretely - -0:07:30.720,0:07:33.840 -so right now what you're seeing on your - -0:07:32.800,0:07:37.199 -screens - -0:07:33.840,0:07:38.800 -is a slip box which is what we the fancy - -0:07:37.199,0:07:39.520 -word that we use to designate your - -0:07:38.800,0:07:41.039 -folder - -0:07:39.520,0:07:43.280 -where all your notes are going to be - -0:07:41.039,0:07:44.000 -living so you have here and I hope you - -0:07:43.280,0:07:47.039 -can see my - -0:07:44.000,0:07:48.199 -uh cursor yes you can so we have a file - -0:07:47.039,0:07:51.120 -which is called - -0:07:48.199,0:07:52.960 -index.org and the good thing is - -0:07:51.120,0:07:54.240 -as you might have garnered by the fact - -0:07:52.960,0:07:57.039 -that it finishes by - -0:07:54.240,0:07:57.599 -that org is that it is just an old mod - -0:07:57.039,0:08:00.800 -file - -0:07:57.599,0:08:03.520 -so I can create a heading - -0:08:00.800,0:08:05.280 -I can create another heading and - -0:08:03.520,0:08:05.599 -everything works as you would expect it - -0:08:05.280,0:08:08.879 -to - -0:08:05.599,0:08:10.400 -it is completely it's just an awkward - -0:08:08.879,0:08:13.759 -file at the end of the day - -0:08:10.400,0:08:15.840 -so now what can we do with this - -0:08:13.759,0:08:16.800 -now I've told you about links and you do - -0:08:15.840,0:08:19.520 -know that - -0:08:16.800,0:08:20.080 -org mode has links so what we're going - -0:08:19.520,0:08:22.479 -to do - -0:08:20.080,0:08:23.440 -is that we're going to create a new file - -0:08:22.479,0:08:26.240 -so we're going to go back - -0:08:23.440,0:08:28.000 -to our directory and what I'm going to - -0:08:26.240,0:08:28.879 -do is that we have a special commands - -0:08:28.000,0:08:31.199 -actually let me just - -0:08:28.879,0:08:32.240 -show you my command I might help you a - -0:08:31.199,0:08:35.360 -little bit - -0:08:32.240,0:08:36.479 -see what I'm doing uh wait which is the - -0:08:35.360,0:08:39.680 -buffer - -0:08:36.479,0:08:41.039 -uh log mode yes exlog so now on the - -0:08:39.680,0:08:43.120 -right side of the monitor you'll be able - -0:08:41.039,0:08:45.040 -to see the command that I'm using - -0:08:43.120,0:08:46.640 -if you don't mind in order to have as - -0:08:45.040,0:08:48.480 -much realistic as possible I'm going to - -0:08:46.640,0:08:50.720 -make it a little bit shorter - -0:08:48.480,0:08:52.320 -smaller I should say is it not too small - -0:08:50.720,0:08:54.720 -yeah I believe it's good - -0:08:52.320,0:08:55.760 -so what I'm going to do is I'm going to - -0:08:54.720,0:08:57.920 -run a command - -0:08:55.760,0:08:59.200 -in orgrome which allows me to create a - -0:08:57.920,0:09:02.320 -new note - -0:08:59.200,0:09:04.720 -so I'm going to use my keybinding which - -0:09:02.320,0:09:06.800 -is not this one definitely - -0:09:04.720,0:09:08.000 -and I'm going to create a new file which - -0:09:06.800,0:09:09.839 -is in a - -0:09:08.000,0:09:11.680 -great tradition of examples in - -0:09:09.839,0:09:15.519 -programming I'm going to call - -0:09:11.680,0:09:17.600 -foo right so at the bottom - -0:09:15.519,0:09:18.720 -in the bottom buffer I should say you - -0:09:17.600,0:09:21.760 -are seeing the file - -0:09:18.720,0:09:22.720 -foo which is as you can see here a - -0:09:21.760,0:09:24.640 -capture buffer - -0:09:22.720,0:09:25.839 -just like you would have in blog mode - -0:09:24.640,0:09:28.560 -now what I'm going to do - -0:09:25.839,0:09:29.200 -is that I'm going to validate this file - -0:09:28.560,0:09:32.560 -and now - -0:09:29.200,0:09:36.240 -you see that we are in the file foo - -0:09:32.560,0:09:39.440 -and the good thing is that I can start - -0:09:36.240,0:09:42.160 -writing without having to worry - -0:09:39.440,0:09:43.760 -about anything else and I was thinking I - -0:09:42.160,0:09:46.160 -was going to say to say that I'm - -0:09:43.760,0:09:47.680 -showing off about my typing skills but I - -0:09:46.160,0:09:50.959 -did make mistakes so - -0:09:47.680,0:09:53.760 -well nobody's perfect right so now we do - -0:09:50.959,0:09:55.519 -have this view file and we're going to - -0:09:53.760,0:09:56.800 -go back to the index so let's go back to - -0:09:55.519,0:09:58.560 -the directory - -0:09:56.800,0:10:00.000 -we're going to refresh the file as you - -0:09:58.560,0:10:00.560 -can see we have a file which is called - -0:10:00.000,0:10:03.360 -foo - -0:10:00.560,0:10:04.399 -and we have the index so now what I'm - -0:10:03.360,0:10:06.480 -going to do - -0:10:04.399,0:10:07.760 -is that I'm going to insert a link to - -0:10:06.480,0:10:09.920 -this file - -0:10:07.760,0:10:11.360 -so we're going to run another orgrim - -0:10:09.920,0:10:14.160 -command which you can see here - -0:10:11.360,0:10:15.279 -orgrim inset and I'm going to insert a - -0:10:14.160,0:10:17.279 -link to the file - -0:10:15.279,0:10:18.959 -foo and as you can see it has now - -0:10:17.279,0:10:21.920 -appeared now what I'm going to do - -0:10:18.959,0:10:23.040 -I'm going to save the file and now I'm - -0:10:21.920,0:10:24.480 -going to show you - -0:10:23.040,0:10:26.720 -the little thing I told you about - -0:10:24.480,0:10:27.680 -backlinks before so I'm afraid I'm going - -0:10:26.720,0:10:29.680 -to have to hide - -0:10:27.680,0:10:30.880 -the commands for now but don't worry - -0:10:29.680,0:10:33.760 -I'll be back - -0:10:30.880,0:10:34.320 -and I'm going to show you the side - -0:10:33.760,0:10:35.839 -buffer - -0:10:34.320,0:10:38.079 -so it is the buffer that you see on the - -0:10:35.839,0:10:40.000 -right side of your screen - -0:10:38.079,0:10:42.560 -and right now it's telling you that - -0:10:40.000,0:10:45.440 -index does not have any backlink - -0:10:42.560,0:10:46.320 -which is normal but if we follow the - -0:10:45.440,0:10:49.200 -link - -0:10:46.320,0:10:50.560 -fu now you see something different on - -0:10:49.200,0:10:52.160 -the right side so as you can see on the - -0:10:50.560,0:10:53.360 -left side we're back insta inside the - -0:10:52.160,0:10:55.600 -file foo - -0:10:53.360,0:10:56.560 -but on the right side we have something - -0:10:55.600,0:11:00.160 -showing up - -0:10:56.560,0:11:03.519 -one backlink in the file index - -0:11:00.160,0:11:04.399 -in under the heading heading you have - -0:11:03.519,0:11:07.680 -the file - -0:11:04.399,0:11:08.720 -sorry the link foo and you can just open - -0:11:07.680,0:11:10.720 -the link - -0:11:08.720,0:11:12.640 -and you will be brought exactly where it - -0:11:10.720,0:11:16.240 -is so - -0:11:12.640,0:11:17.600 -okay so that was one thing now just - -0:11:16.240,0:11:19.360 -to make sure that you've understood - -0:11:17.600,0:11:20.320 -properly I'm going to go back to the - -0:11:19.360,0:11:23.920 -index - -0:11:20.320,0:11:25.440 -I'm going to create a second file - -0:11:23.920,0:11:27.680 -so now I'm going to use a command that - -0:11:25.440,0:11:30.800 -is slightly different so let me just uh - -0:11:27.680,0:11:32.480 -show you the commands on the right - -0:11:30.800,0:11:33.839 -I'm going to run the command orgrim - -0:11:32.480,0:11:37.519 -insert and I'm going to - -0:11:33.839,0:11:39.600 -end to enter a file which is called bar - -0:11:37.519,0:11:41.440 -so again at the bottom you can see that - -0:11:39.600,0:11:45.920 -I have a new file bar - -0:11:41.440,0:11:49.760 -I'm going to validate this file - -0:11:45.920,0:11:52.959 -okay I'm going to save index.org - -0:11:49.760,0:11:54.320 -and now if we go in bar and if I show - -0:11:52.959,0:11:55.920 -you - -0:11:54.320,0:11:58.240 -the links on the side you can see that - -0:11:55.920,0:12:00.480 -exactly the same we have a link - -0:11:58.240,0:12:02.639 -now just to make the pictures complete - -0:12:00.480,0:12:05.200 -inside the file bar I'm going to insert - -0:12:02.639,0:12:06.959 -a link to foo I'm going to save I'm - -0:12:05.200,0:12:07.920 -going to go to the file foo and now on - -0:12:06.959,0:12:11.120 -the right side - -0:12:07.920,0:12:13.839 -you can see that we have two backlinks - -0:12:11.120,0:12:14.720 -now you're gonna tell me yeah thank you - -0:12:13.839,0:12:17.760 -leo but - -0:12:14.720,0:12:20.320 -what's the point well the thing is - -0:12:17.760,0:12:22.160 -it might sound it might seem very simple - -0:12:20.320,0:12:24.160 -but I've just shown you - -0:12:22.160,0:12:26.160 -but programmatically it's a little hard - -0:12:24.160,0:12:28.000 -to do like we have to - -0:12:26.160,0:12:30.079 -look into your files to make sure that - -0:12:28.000,0:12:32.240 -every time you link your file - -0:12:30.079,0:12:34.079 -somewhere else we need to track - -0:12:32.240,0:12:37.920 -everything down - -0:12:34.079,0:12:39.519 -and now as simple as orgrum might be - -0:12:37.920,0:12:42.240 -looking to you - -0:12:39.519,0:12:43.279 -the thing is what we try to do with - -0:12:42.240,0:12:45.920 -orgrum - -0:12:43.279,0:12:46.399 -is to make sure that your collection of - -0:12:45.920,0:12:50.320 -notes - -0:12:46.399,0:12:54.079 -remains consistent whatever we do - -0:12:50.320,0:12:56.880 -an example for instance like right now - -0:12:54.079,0:12:58.000 -I've told you about a file named foo and - -0:12:56.880,0:13:01.120 -the file name - -0:12:58.000,0:13:03.920 -bar let's say that for whatever reason - -0:13:01.120,0:13:04.720 -you decide to rename your file foo to - -0:13:03.920,0:13:08.079 -something - -0:13:04.720,0:13:11.040 -very original let's just say bar - -0:13:08.079,0:13:12.320 -so we actually have a way in Emacs in - -0:13:11.040,0:13:14.560 -orgrim I should say - -0:13:12.320,0:13:15.680 -when you modify the title at the top of - -0:13:14.560,0:13:18.880 -the file - -0:13:15.680,0:13:20.320 -so we get foo I've modified it with baz - -0:13:18.880,0:13:22.000 -you can see at the bottom that right now - -0:13:20.320,0:13:22.519 -we haven't saved and we are still in the - -0:13:22.000,0:13:26.079 -file - -0:13:22.519,0:13:29.360 -fu.org I'm going to save - -0:13:26.079,0:13:32.560 -and now what you see is - -0:13:29.360,0:13:35.360 -a new name for the file but you may ask - -0:13:32.560,0:13:36.880 -wait a second in the other file we had a - -0:13:35.360,0:13:38.880 -link to this file - -0:13:36.880,0:13:40.560 -does it mean that it's broken does it - -0:13:38.880,0:13:43.440 -means does it mean sorry - -0:13:40.560,0:13:43.920 -that we cannot access the file anymore - -0:13:43.440,0:13:46.959 -but - -0:13:43.920,0:13:48.000 -when we go there beginning to go in the - -0:13:46.959,0:13:50.399 -index - -0:13:48.000,0:13:52.079 -so obviously the actual description of - -0:13:50.399,0:13:54.320 -the link hasn't been updated - -0:13:52.079,0:13:55.680 -but if I show you what goes on under the - -0:13:54.320,0:13:57.440 -hood by showing you - -0:13:55.680,0:14:00.000 -what is fontify what is behind the - -0:13:57.440,0:14:02.320 -content of the link - -0:14:00.000,0:14:04.079 -actually it didn't work and that's why - -0:14:02.320,0:14:04.639 -you never present live folks because - -0:14:04.079,0:14:05.920 -otherwise you're - -0:14:04.639,0:14:08.880 -just going to show problems with the - -0:14:05.920,0:14:12.079 -software and that's not good - -0:14:08.880,0:14:15.120 -so something must have gone on obviously - -0:14:12.079,0:14:17.120 -but generally speaking the file should - -0:14:15.120,0:14:18.959 -have been updated - -0:14:17.120,0:14:21.279 -damn I'm showing you bugging my software - -0:14:18.959,0:14:25.040 -that's not very professional now is it - -0:14:21.279,0:14:28.079 -basically to come back to the main id - -0:14:25.040,0:14:28.880 -what we try to do with orgrom is to make - -0:14:28.079,0:14:32.639 -sure that - -0:14:28.880,0:14:35.279 -everything remains consistent we - -0:14:32.639,0:14:37.360 -really much love the system of - -0:14:35.279,0:14:38.720 -organization that is behind this little - -0:14:37.360,0:14:40.240 -castle method - -0:14:38.720,0:14:41.600 -now I was going at this point of the - -0:14:40.240,0:14:42.639 -presentation basically I wanted to go - -0:14:41.600,0:14:45.199 -back to firefox - -0:14:42.639,0:14:46.880 -and show you more stuff but it's likely - -0:14:45.199,0:14:48.959 -that it's going to crash again - -0:14:46.880,0:14:50.240 -so I'm not going to tempt the devil and - -0:14:48.959,0:14:51.680 -I'm just going to continue talking to - -0:14:50.240,0:14:54.800 -you like that - -0:14:51.680,0:14:58.160 -so the zettelkasten method - -0:14:54.800,0:15:01.839 -is a very organic way - -0:14:58.160,0:15:04.959 -to write notes and if you think - -0:15:01.839,0:15:06.639 -I I believe as all mode users - -0:15:04.959,0:15:08.000 -we share quite a lot of features and I'm - -0:15:06.639,0:15:09.600 -out of time I'm just going to take one - -0:15:08.000,0:15:12.320 -more minute to answer this question - -0:15:09.600,0:15:14.560 -that I'm asking myself anyway but if - -0:15:12.320,0:15:16.079 -you're anything like me - -0:15:14.560,0:15:18.240 -you've you've been through many - -0:15:16.079,0:15:18.959 -iterations of your workflow inside of - -0:15:18.240,0:15:20.959 -mode - -0:15:18.959,0:15:22.959 -do I keep all my professional stuff - -0:15:20.959,0:15:24.399 -under one heading or do I create a - -0:15:22.959,0:15:25.920 -separate file for this - -0:15:24.399,0:15:28.000 -you know those types of questions on - -0:15:25.920,0:15:30.639 -which you could ponder for - -0:15:28.000,0:15:31.360 -many many hours at night generally when - -0:15:30.639,0:15:34.560 -you have a - -0:15:31.360,0:15:36.959 -tight deadline to be following but - -0:15:34.560,0:15:38.240 -what I've discovered by using orgrim for - -0:15:36.959,0:15:40.720 -taking notes about - -0:15:38.240,0:15:41.360 -my academic projects or by taking notes - -0:15:40.720,0:15:44.880 -on - -0:15:41.360,0:15:47.440 -you know anything worth writing about - -0:15:44.880,0:15:49.199 -is that not having to worry about the - -0:15:47.440,0:15:52.399 -structure if you files - -0:15:49.199,0:15:56.079 -just having to worry about atoms - -0:15:52.399,0:15:58.480 -and links it does wonder - -0:15:56.079,0:16:00.639 -for the way you think about problems it - -0:15:58.480,0:16:04.800 -does wonder about your creativity - -0:16:00.639,0:16:07.519 -and it does wonder about your ability to - -0:16:04.800,0:16:08.800 -take your thoughts put them on a paper - -0:16:07.519,0:16:10.399 -and generally you know during this - -0:16:08.800,0:16:13.120 -process you realize oh maybe I do not - -0:16:10.399,0:16:16.079 -know this concept as well as I should - -0:16:13.120,0:16:16.800 -but I've never had a system which - -0:16:16.079,0:16:19.839 -brought me - -0:16:16.800,0:16:21.440 -as much serendipity as this system - -0:16:19.839,0:16:24.880 -and for those who don't know serendipity - -0:16:21.440,0:16:28.800 -the ability to come up with novel ideas - -0:16:24.880,0:16:32.240 -on the spot contextually so - -0:16:28.800,0:16:34.959 -this was just a little primer on what - -0:16:32.240,0:16:36.000 -orgrom and the zettelkasten is about in - -0:16:34.959,0:16:38.000 -about - -0:16:36.000,0:16:39.680 -20 minutes I'll be giving you a talk - -0:16:38.000,0:16:40.800 -about the technical aspects of orgrim - -0:16:39.680,0:16:43.040 -which I'm certain - -0:16:40.800,0:16:44.160 -some of you will be very interested in - -0:16:43.040,0:16:46.160 -and - -0:16:44.160,0:16:48.560 -otherwise I do have a youtube channel - -0:16:46.160,0:16:50.720 -where I try to - -0:16:48.560,0:16:52.079 -record videos where I explain to you - -0:16:50.720,0:16:53.839 -what the org - -0:16:52.079,0:16:55.600 -what organ is about what the method is - -0:16:53.839,0:16:57.040 -about and - -0:16:55.600,0:16:58.720 -and I'll just finish on this I'm two - -0:16:57.040,0:17:02.399 -minutes extra time sorry - -0:16:58.720,0:17:04.079 -but um we do know that a lot of people - -0:17:02.399,0:17:04.959 -are interested into orgrim I mentioned - -0:17:04.079,0:17:06.160 -at the very beginning of the - -0:17:04.959,0:17:09.360 -presentation - -0:17:06.160,0:17:10.640 -that a lot of people discovered Emacs - -0:17:09.360,0:17:14.640 -and orgrom - -0:17:10.640,0:17:18.400 -and old mode even through orgrom - -0:17:14.640,0:17:20.959 -and we feel that we have a duty to - -0:17:18.400,0:17:22.720 -introduce those people this new pool of - -0:17:20.959,0:17:25.439 -people most of whom are - -0:17:22.720,0:17:27.600 -academics into the world of Emacs and - -0:17:25.439,0:17:30.240 -into the water free software - -0:17:27.600,0:17:32.240 -and right now the thing is we're not - -0:17:30.240,0:17:34.080 -doing a particularly good job at writing - -0:17:32.240,0:17:36.160 -manuals I'm just going to try - -0:17:34.080,0:17:37.360 -to stop sharing my screen because I'm - -0:17:36.160,0:17:40.240 -nearly to the end - -0:17:37.360,0:17:41.919 -and just try sharing my firefox windows - -0:17:40.240,0:17:43.120 -if it allows me no it doesn't allow me - -0:17:41.919,0:17:44.160 -which is very good that's why I won't - -0:17:43.120,0:17:47.200 -have to - -0:17:44.160,0:17:50.080 -to screw things up but - -0:17:47.200,0:17:50.880 -uh we know that our manual is not fully - -0:17:50.080,0:17:53.760 -up to date - -0:17:50.880,0:17:54.480 -but believe me one of the key focus - -0:17:53.760,0:17:56.960 -right now - -0:17:54.480,0:17:57.840 -is making sure that within two to three - -0:17:56.960,0:17:59.679 -months - -0:17:57.840,0:18:02.559 -we have a good tutorial for people to - -0:17:59.679,0:18:03.840 -join and we have good videos for people - -0:18:02.559,0:18:04.640 -to get introduced to the topics we're - -0:18:03.840,0:18:06.320 -covering - -0:18:04.640,0:18:07.679 -and that's me done so thank you so much - -0:18:06.320,0:18:09.840 -for listening and now I'll be taking - -0:18:07.679,0:18:12.880 -some questions - -0:18:09.840,0:18:17.679 -thank you very much leo oh thank you - -0:18:12.880,0:18:19.440 -cheers we have I think about two minutes - -0:18:17.679,0:18:20.880 -four questions and I see a lot of them - -0:18:19.440,0:18:23.120 -on the pad - -0:18:20.880,0:18:24.320 -would you take them sure so yep I'm - -0:18:23.120,0:18:27.600 -scrolling I'm scrolling - -0:18:24.320,0:18:30.000 -uh getting things done that's aldrich uh - -0:18:27.600,0:18:31.679 -still scrolling okay olgram oh wow okay - -0:18:30.000,0:18:33.600 -so we do have quite a lot of questions - -0:18:31.679,0:18:34.799 -so please excuse me if I'm answering - -0:18:33.600,0:18:35.760 -your questions really fast but I just - -0:18:34.799,0:18:38.080 -want to make sure that I cover - -0:18:35.760,0:18:40.240 -as much ground as possible so what is - -0:18:38.080,0:18:41.039 -the functionality of all chrome unlinked - -0:18:40.240,0:18:43.200 -references - -0:18:41.039,0:18:45.200 -so basically when you have a file that - -0:18:43.200,0:18:48.000 -is not linked anywhere - -0:18:45.200,0:18:49.520 -this function allows you to see uh let's - -0:18:48.000,0:18:51.200 -say we have a file Emacs - -0:18:49.520,0:18:53.200 -and we've talked about Emacs in another - -0:18:51.200,0:18:57.440 -note but we haven't created a link - -0:18:53.200,0:18:59.520 -what this command do is that it - -0:18:57.440,0:19:00.720 -looks into your folder for every mention - -0:18:59.520,0:19:03.840 -of Emacs that is not - -0:19:00.720,0:19:05.039 -linked to the note Emacs and it prints - -0:19:03.840,0:19:06.480 -all the results in the buffer so that - -0:19:05.039,0:19:07.840 -you know okay I've talked about Emacs - -0:19:06.480,0:19:10.480 -here but I didn't create a link - -0:19:07.840,0:19:11.840 -do I want to create a link that's it so - -0:19:10.480,0:19:12.480 -is it possible to use the backlinks - -0:19:11.840,0:19:15.039 -features - -0:19:12.480,0:19:16.400 -in regular old buffers right now no it - -0:19:15.039,0:19:18.080 -is not possible we are - -0:19:16.400,0:19:20.240 -having a very controlled environment - -0:19:18.080,0:19:21.280 -which is I told you about this clipbox - -0:19:20.240,0:19:22.799 -folder before - -0:19:21.280,0:19:24.400 -this is where we keep all the nodes and - -0:19:22.799,0:19:26.080 -the reason why we do this will be more - -0:19:24.400,0:19:27.360 -evident when I go through the technical - -0:19:26.080,0:19:30.720 -presentation - -0:19:27.360,0:19:32.080 -but uh it's because of optimization - -0:19:30.720,0:19:33.760 -so I'll get back to you on that - -0:19:32.080,0:19:35.440 -afterwards um - -0:19:33.760,0:19:37.039 -do you make all group database - -0:19:35.440,0:19:39.760 -accessible across computers - -0:19:37.039,0:19:41.760 -uh no I do not because I'm only using my - -0:19:39.760,0:19:44.559 -laptop but plenty of people have had - -0:19:41.760,0:19:47.039 -a lot of success doing so either by - -0:19:44.559,0:19:47.679 -sharing the files via a sync thing or by - -0:19:47.039,0:19:49.760 -any other - -0:19:47.679,0:19:52.400 -method we have a section in a manual - -0:19:49.760,0:19:53.760 -specifying how to do this uh how do you - -0:19:52.400,0:19:54.880 -discover the tags links to add to your - -0:19:53.760,0:19:56.160 -new algorithm note - -0:19:54.880,0:19:57.679 -there is something that I didn't tell - -0:19:56.160,0:19:58.240 -you about which is called orgrim server - -0:19:57.679,0:20:01.679 -which is a - -0:19:58.240,0:20:04.320 -magnificent way to uh access - -0:20:01.679,0:20:05.360 -visually the nodes that you have in your - -0:20:04.320,0:20:07.840 -in your system - -0:20:05.360,0:20:08.799 -you'll have to go to the orgrom.com - -0:20:07.840,0:20:10.640 -website - -0:20:08.799,0:20:12.080 -and please go on our github page and we - -0:20:10.640,0:20:14.640 -show everything and - -0:20:12.080,0:20:16.000 -um I hope what I've told you has excited - -0:20:14.640,0:20:18.000 -you so please go - -0:20:16.000,0:20:20.080 -uh maybe one more question two more - -0:20:18.000,0:20:21.679 -questions just to make sure uh is it - -0:20:20.080,0:20:23.039 -possible to seamlessly link to other - -0:20:21.679,0:20:23.919 -notes with syntax instead of a - -0:20:23.039,0:20:25.840 -keybinding - -0:20:23.919,0:20:27.120 -yes we are working on this this is a - -0:20:25.840,0:20:28.880 -huge project that we're doing with - -0:20:27.120,0:20:30.960 -orgrim which is called uh - -0:20:28.880,0:20:32.880 -link ux and we're trying to do something - -0:20:30.960,0:20:34.559 -which is very close to rome research - -0:20:32.880,0:20:36.880 -which is the software we're using for - -0:20:34.559,0:20:39.200 -inspiration for orgrom - -0:20:36.880,0:20:41.280 -and uh yes there's there are going to be - -0:20:39.200,0:20:42.640 -ways to do this in the future I'm going - -0:20:41.280,0:20:45.280 -to give you a window of - -0:20:42.640,0:20:46.320 -maybe three to four months and one last - -0:20:45.280,0:20:48.480 -question - -0:20:46.320,0:20:49.440 -uh good on you thank you well thank you - -0:20:48.480,0:20:51.039 -for for this - -0:20:49.440,0:20:53.200 -is there an easy way to export several - -0:20:51.039,0:20:56.960 -selected nodes to say a lattice file - -0:20:53.200,0:20:59.840 -latex yes uh I mean it's old mode - -0:20:56.960,0:21:00.480 -at the very core it is org mode so you - -0:20:59.840,0:21:02.559 -know you don't - -0:21:00.480,0:21:04.000 -if you want to export to latex file you - -0:21:02.559,0:21:06.320 -can you just use the - -0:21:04.000,0:21:08.320 -aux latex library which you can access - -0:21:06.320,0:21:11.760 -by pressing ctrl c ctrl - -0:21:08.320,0:21:12.480 -e for export all right is it uh I - -0:21:11.760,0:21:13.919 -believe I'm - -0:21:12.480,0:21:16.880 -it's all the time I had I mean can you - -0:21:13.919,0:21:19.039 -confirm this - -0:21:16.880,0:21:20.240 -okay so if you have more questions don't - -0:21:19.039,0:21:23.679 -worry I'll be in chat - -0:21:20.240,0:21:26.799 -I'll be answering them uh I'm also on on - -0:21:23.679,0:21:28.159 -all the platforms we advertise on on - -0:21:26.799,0:21:29.280 -orgram if you want to reach me I'm - -0:21:28.159,0:21:31.919 -really easy to reach - -0:21:29.280,0:21:32.559 -our gita page is always open so thank - -0:21:31.919,0:21:35.520 -you all for - -0:21:32.559,0:21:37.440 -all your questions and all your energy - -0:21:35.520,0:21:38.640 -about orgrim it is very exciting for me - -0:21:37.440,0:21:42.000 -to to see all this - -0:21:38.640,0:21:44.080 -but right now I'll be ending off the - -0:21:42.000,0:21:45.840 -microphone I should say to nura who is - -0:21:44.080,0:21:48.480 -going to talk to you about the - -0:21:45.840,0:21:50.080 -academic way to use orgrom and I'll be - -0:21:48.480,0:21:53.760 -back afterwards with the technical talk - -0:21:50.080,0:21:57.760 -okay thank you thank you very much leo - -0:21:53.760,0: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.sbv b/2020/subtitles/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan-autogen.sbv deleted file mode 100644 index c48f061b..00000000 --- a/2020/subtitles/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan-autogen.sbv +++ /dev/null @@ -1,1794 +0,0 @@ -0:00:00.320,0:00:03.040 -good afternoon or good evening everyone - -0:00:02.639,0:00:05.440 -uh - -0:00:03.040,0:00:07.759 -today my talk is going to be on org mode - -0:00:05.440,0:00:10.559 -and or group for skulls and researchers - -0:00:07.759,0:00:12.639 -leo has talked about like the overall - -0:00:10.559,0:00:15.120 -picture of orgrim and or - -0:00:12.639,0:00:16.240 -uh bibtex or groundbreak tech I will be - -0:00:15.120,0:00:19.199 -talking more about - -0:00:16.240,0:00:20.320 -the research process itself using these - -0:00:19.199,0:00:22.400 -tools - -0:00:20.320,0:00:25.039 -all right so just to introduce that the - -0:00:22.400,0:00:28.080 -research process is really messy - -0:00:25.039,0:00:31.039 -um you're always working in like - -0:00:28.080,0:00:32.960 -piecemeal tasks and things move around - -0:00:31.039,0:00:35.280 -all the time and so - -0:00:32.960,0:00:36.880 -there needs to be a system where you can - -0:00:35.280,0:00:39.360 -organize all these tasks - -0:00:36.880,0:00:41.760 -all these ideas in a way that is - -0:00:39.360,0:00:44.239 -flexible and effective - -0:00:41.760,0:00:44.960 -so my motivation is that research is - -0:00:44.239,0:00:47.120 -hard and - -0:00:44.960,0:00:49.600 -writing about it is even more difficult - -0:00:47.120,0:00:51.120 -and my goal is to add some structure to - -0:00:49.600,0:00:52.800 -this whole madness - -0:00:51.120,0:00:54.480 -so here's a list of some of the stuff - -0:00:52.800,0:00:57.199 -that I've been using since I first - -0:00:54.480,0:01:00.160 -learned about Emacs in 2019 - -0:00:57.199,0:01:02.000 -and what I've what I've found useful um - -0:01:00.160,0:01:05.199 -during my res uh like um - -0:01:02.000,0:01:07.920 -within my research process all right so - -0:01:05.199,0:01:10.400 -I've organized org mode for researchers - -0:01:07.920,0:01:12.400 -and scholars within the writing process - -0:01:10.400,0:01:14.320 -into three modules first there's like - -0:01:12.400,0:01:15.759 -the planning aspect of it - -0:01:14.320,0:01:17.680 -then you've got the writing and the - -0:01:15.759,0:01:18.320 -reference management which I will join - -0:01:17.680,0:01:20.560 -together - -0:01:18.320,0:01:21.920 -by looking at the example of doing your - -0:01:20.560,0:01:24.720 -literature review - -0:01:21.920,0:01:26.479 -all right so when we're talking about - -0:01:24.720,0:01:27.360 -planning we're talking about either task - -0:01:26.479,0:01:30.880 -management or - -0:01:27.360,0:01:31.600 -time management with task management - -0:01:30.880,0:01:33.840 -you've got - -0:01:31.600,0:01:36.159 -org modes to do's and tags and - -0:01:33.840,0:01:38.479 -categories these are really powerful - -0:01:36.159,0:01:41.600 -tools that you could use - -0:01:38.479,0:01:44.799 -um in your org files to just um - -0:01:41.600,0:01:47.040 -uh like organize your tasks and - -0:01:44.799,0:01:49.040 -your appointments so there are different - -0:01:47.040,0:01:50.960 -types of to-do's that you can either set - -0:01:49.040,0:01:52.799 -globally in your init file or they can - -0:01:50.960,0:01:55.200 -be file buffer specific - -0:01:52.799,0:01:56.079 -so that means based on context based on - -0:01:55.200,0:01:57.759 -the type of - -0:01:56.079,0:01:59.280 -manuscript you're working on whether - -0:01:57.759,0:02:02.240 -it's like a literate programming - -0:01:59.280,0:02:03.759 -report or your actual thesis slash - -0:02:02.240,0:02:05.840 -dissertation - -0:02:03.759,0:02:07.759 -um also these to-do's are either created - -0:02:05.840,0:02:11.440 -as a set tree like think of them as - -0:02:07.759,0:02:14.800 -headings and sections if you use latex - -0:02:11.440,0:02:15.360 -or inline text which are like org inline - -0:02:14.800,0:02:17.760 -tasks I - -0:02:15.360,0:02:19.120 -like organ line tasks because like I can - -0:02:17.760,0:02:21.520 -add - -0:02:19.120,0:02:22.879 -to do's between two paragraphs and that - -0:02:21.520,0:02:25.360 -way it doesn't show up - -0:02:22.879,0:02:27.280 -in the table of contents when I export - -0:02:25.360,0:02:30.879 -into pdf or html or - -0:02:27.280,0:02:34.319 -anything else all right so this is an - -0:02:30.879,0:02:37.360 -example of buffer specific to do's - -0:02:34.319,0:02:39.120 -and and this is example of like a little - -0:02:37.360,0:02:40.800 -programming report that I was working on - -0:02:39.120,0:02:43.200 -where I was like dealing with - -0:02:40.800,0:02:44.080 -data and like analysis and all of that - -0:02:43.200,0:02:47.519 -stuff and so - -0:02:44.080,0:02:49.440 -I needed um context specific to do's to - -0:02:47.519,0:02:52.080 -use them within this buffer - -0:02:49.440,0:02:54.319 -um and that's how I would organize it - -0:02:52.080,0:02:57.200 -and there's also also another example - -0:02:54.319,0:02:57.920 -of an org inline task where you could - -0:02:57.200,0:03:01.360 -see it - -0:02:57.920,0:03:03.040 -in the middle between the two headings - -0:03:01.360,0:03:04.959 -that way it wouldn't show up in the - -0:03:03.040,0:03:06.480 -table of contents and it would look like - -0:03:04.959,0:03:09.519 -nature within the - -0:03:06.480,0:03:11.920 -text when you export it - -0:03:09.519,0:03:13.280 -oh but I also added a tag of no export - -0:03:11.920,0:03:16.400 -so it won't show up at all - -0:03:13.280,0:03:19.360 -when I export it into like either pdf - -0:03:16.400,0:03:21.599 -which I use all the time all right so - -0:03:19.360,0:03:24.159 -another useful tool - -0:03:21.599,0:03:25.200 -um for the research and just like - -0:03:24.159,0:03:27.920 -general planning - -0:03:25.200,0:03:29.120 -is the org capture um when I first - -0:03:27.920,0:03:32.080 -started with Emacs - -0:03:29.120,0:03:34.239 -actually it was for org agenda and I - -0:03:32.080,0:03:35.360 -went crazy with my capture template I - -0:03:34.239,0:03:37.599 -created a template for - -0:03:35.360,0:03:38.640 -everything um because I was just so - -0:03:37.599,0:03:40.720 -excited - -0:03:38.640,0:03:42.400 -but with time I was using less and less - -0:03:40.720,0:03:46.319 -of them so I kept taking them out - -0:03:42.400,0:03:48.239 -and now this is my simplified um - -0:03:46.319,0:03:49.599 -capture templates that I use either for - -0:03:48.239,0:03:52.159 -a general to do - -0:03:49.599,0:03:54.159 -um for a regular appointment a fleeting - -0:03:52.159,0:03:55.200 -note research tasks because like those - -0:03:54.159,0:03:56.959 -are what I focus on - -0:03:55.200,0:03:58.720 -like my bread and butter and then - -0:03:56.959,0:04:00.879 -finally with meetings which I find - -0:03:58.720,0:04:01.680 -sometimes I don't use it as much because - -0:04:00.879,0:04:03.519 -I would just like - -0:04:01.680,0:04:04.879 -have the org file ready instead of - -0:04:03.519,0:04:07.920 -needing to capture - -0:04:04.879,0:04:11.439 -you know open a capture template - -0:04:07.920,0:04:12.400 -right or agenda um that's how I got into - -0:04:11.439,0:04:15.439 -Emacs - -0:04:12.400,0:04:16.799 -I needed to um organize my life and I - -0:04:15.439,0:04:19.199 -found Emacs and - -0:04:16.799,0:04:20.479 -it's been great ever since um it - -0:04:19.199,0:04:22.720 -populates all your to-do's and - -0:04:20.479,0:04:25.280 -appointments into a singular view so the - -0:04:22.720,0:04:29.120 -default view I think it's a weak view - -0:04:25.280,0:04:31.919 -however I use org super agenda love this - -0:04:29.120,0:04:34.160 -um package and I set up my agenda as a - -0:04:31.919,0:04:37.360 -daily view with just appointments - -0:04:34.160,0:04:38.720 -deadlines and a habit tracker um and - -0:04:37.360,0:04:40.639 -a side note you guys I'm still - -0:04:38.720,0:04:42.320 -struggling with organizing the perfect - -0:04:40.639,0:04:45.360 -agenda so it's a process - -0:04:42.320,0:04:47.919 -and take it easy all right - -0:04:45.360,0:04:50.320 -so this is just an overview of my daily - -0:04:47.919,0:04:52.800 -agenda as you can see they're just like - -0:04:50.320,0:04:55.520 -appointments that I import from gmail - -0:04:52.800,0:04:57.919 -using org gcal - -0:04:55.520,0:04:58.880 -a simple habit tracker of like daily - -0:04:57.919,0:05:00.960 -free writing - -0:04:58.880,0:05:02.800 -as you can see there are a lot of times - -0:05:00.960,0:05:05.199 -where I'm skipping and the asterisk is - -0:05:02.800,0:05:08.479 -the one where I've completed that day - -0:05:05.199,0:05:10.080 -so you know it's a process and then just - -0:05:08.479,0:05:12.639 -like regular deadlines - -0:05:10.080,0:05:14.000 -so what happens is that I have other - -0:05:12.639,0:05:17.120 -to-do's that I have - -0:05:14.000,0:05:17.919 -not scheduled or not added a deadline - -0:05:17.120,0:05:20.560 -but they're just - -0:05:17.919,0:05:22.320 -tasks that keep piling up when I first - -0:05:20.560,0:05:24.880 -started with Emacs and org agenda - -0:05:22.320,0:05:26.880 -I had everything in there and it got - -0:05:24.880,0:05:29.680 -overwhelming and then I decided no - -0:05:26.880,0:05:30.800 -I'm not gonna even let them show up so - -0:05:29.680,0:05:33.120 -what I would do - -0:05:30.800,0:05:34.479 -at the beginning of each week or the - -0:05:33.120,0:05:36.800 -night before - -0:05:34.479,0:05:38.000 -um I would sit down look at all my to - -0:05:36.800,0:05:40.720 -to-do's that I have - -0:05:38.000,0:05:42.639 -not assigned yet to a deadline or a - -0:05:40.720,0:05:45.360 -schedule or just a simple - -0:05:42.639,0:05:46.320 -timestamp um and I would organize them - -0:05:45.360,0:05:49.520 -throughout the week - -0:05:46.320,0:05:51.680 -so here's an example of what I did - -0:05:49.520,0:05:53.039 -so on that wednesday from my gmail I had - -0:05:51.680,0:05:55.600 -all these appointments but - -0:05:53.039,0:05:56.560 -one of them is I have a writing group - -0:05:55.600,0:05:58.400 -session - -0:05:56.560,0:05:59.759 -and so I looked at my tasks and I - -0:05:58.400,0:06:02.639 -thought okay then I will just - -0:05:59.759,0:06:03.520 -assign um like for example my emac - -0:06:02.639,0:06:06.319 -slides - -0:06:03.520,0:06:07.280 -or the framework diagram into that - -0:06:06.319,0:06:09.600 -writing session - -0:06:07.280,0:06:10.800 -and all I did was just add an active - -0:06:09.600,0:06:12.960 -timestamp - -0:06:10.800,0:06:14.000 -that is all I needed to do and it went - -0:06:12.960,0:06:17.120 -straight into my - -0:06:14.000,0:06:20.080 -appointment now if I miss that - -0:06:17.120,0:06:21.520 -it won't show up on the next day so if - -0:06:20.080,0:06:24.639 -you put in a deadline - -0:06:21.520,0:06:26.560 -it will show up as an overdue but if you - -0:06:24.639,0:06:29.280 -have no deadline or schedule it will not - -0:06:26.560,0:06:32.960 -show up in your daily org agenda - -0:06:29.280,0:06:35.680 -so just a star - -0:06:32.960,0:06:37.520 -all right another way of accessing your - -0:06:35.680,0:06:40.880 -to do's is that if it's - -0:06:37.520,0:06:42.160 -um file specific org file specific - -0:06:40.880,0:06:44.160 -buffer specific - -0:06:42.160,0:06:46.400 -and so like when we talked about like - -0:06:44.160,0:06:47.680 -whether to have a big ass org file or - -0:06:46.400,0:06:50.720 -like tiny files - -0:06:47.680,0:06:54.560 -it all depends and this isn't the the - -0:06:50.720,0:06:55.759 -um you know the way this depends - -0:06:54.560,0:06:58.400 -because if you're working on like a - -0:06:55.759,0:06:59.680 -dissertation um it's a huge manuscript - -0:06:58.400,0:07:02.880 -you need to like work - -0:06:59.680,0:07:05.759 -on that org file all the time um - -0:07:02.880,0:07:07.680 -then yes it might do should be in that - -0:07:05.759,0:07:08.000 -file specifically because every time if - -0:07:07.680,0:07:09.680 -I'm - -0:07:08.000,0:07:12.479 -if I'm visiting this org file all the - -0:07:09.680,0:07:15.520 -time I should be able to just look at my - -0:07:12.479,0:07:18.639 -tasks from uh within that buffer - -0:07:15.520,0:07:21.599 -and so I use org sidebar to - -0:07:18.639,0:07:22.960 -keep all these specific uh to do's - -0:07:21.599,0:07:26.560 -within that org file - -0:07:22.960,0:07:28.400 -I find it helpful okay - -0:07:26.560,0:07:29.759 -now that we're going into the writing - -0:07:28.400,0:07:33.039 -and reference management - -0:07:29.759,0:07:35.840 -we'll call it a literature review um - -0:07:33.039,0:07:36.639 -and this is something I've built as a - -0:07:35.840,0:07:40.240 -schema - -0:07:36.639,0:07:43.759 -I think that it works for now - -0:07:40.240,0:07:45.919 -um and it requires one outside pack - -0:07:43.759,0:07:47.680 -of outside software which is zotero what - -0:07:45.919,0:07:48.720 -I use it's an open source reference - -0:07:47.680,0:07:51.759 -management - -0:07:48.720,0:07:53.599 -software um it's great - -0:07:51.759,0:07:55.120 -but the things to keep in mind is that I - -0:07:53.599,0:07:58.319 -use two um - -0:07:55.120,0:08:01.039 -plugins that is really needed for when - -0:07:58.319,0:08:03.840 -we work with orgrim bibtex and orgrim - -0:08:01.039,0:08:06.160 -and org mode um and the zap file so - -0:08:03.840,0:08:07.039 -better bibtex organizes your reference - -0:08:06.160,0:08:10.560 -keys - -0:08:07.039,0:08:13.360 -um in um in a way like in a fashion that - -0:08:10.560,0:08:14.240 -works for you so for me all my reference - -0:08:13.360,0:08:17.280 -keys are like - -0:08:14.240,0:08:21.120 -last author and gear um and with zap - -0:08:17.280,0:08:22.319 -file I um I let it like rename all the - -0:08:21.120,0:08:24.400 -pdf files - -0:08:22.319,0:08:26.000 -the same way that I have for my bit of - -0:08:24.400,0:08:29.360 -my bib keys which is like - -0:08:26.000,0:08:33.440 -last name of author and year all right - -0:08:29.360,0:08:37.120 -once you export your entire - -0:08:33.440,0:08:39.440 -library as a bib file then you can work - -0:08:37.120,0:08:42.880 -on it within org mode and Emacs - -0:08:39.440,0:08:45.040 -using um the following packages - -0:08:42.880,0:08:47.839 -all right so with orgrim bibtex it - -0:08:45.040,0:08:49.519 -creates an org file for each bib entry - -0:08:47.839,0:08:52.240 -and you have the option of like - -0:08:49.519,0:08:54.880 -templating and doing other stuff with it - -0:08:52.240,0:08:56.240 -and then finally there's like this orb - -0:08:54.880,0:08:58.800 -pdf scraper - -0:08:56.240,0:09:00.240 -I've used it briefly but I think the - -0:08:58.800,0:09:02.880 -potential - -0:09:00.240,0:09:05.920 -with or pdf scraper is if you're gonna - -0:09:02.880,0:09:08.320 -do a bibliometric study or like a - -0:09:05.920,0:09:10.000 -systematic literature view there's - -0:09:08.320,0:09:10.959 -something there but I have to look - -0:09:10.000,0:09:14.399 -through it - -0:09:10.959,0:09:16.880 -anyway so once you create your you know - -0:09:14.399,0:09:18.160 -your reference file of reference x and - -0:09:16.880,0:09:20.240 -you're writing your notes - -0:09:18.160,0:09:22.399 -you can either go like with going - -0:09:20.240,0:09:24.080 -through org mode you're writing - -0:09:22.399,0:09:26.080 -your ideas you're writing your notes - -0:09:24.080,0:09:27.839 -you're assigning tasks - -0:09:26.080,0:09:30.480 -and then there's org transclusion which - -0:09:27.839,0:09:32.240 -I will mention briefly at the end - -0:09:30.480,0:09:35.360 -and ways to extract if you're going to - -0:09:32.240,0:09:36.640 -go through the orgrom - -0:09:35.360,0:09:38.720 -things that you're going to use within - -0:09:36.640,0:09:40.000 -orgrom it's a great way to build your - -0:09:38.720,0:09:42.880 -database you start making the - -0:09:40.000,0:09:44.959 -connections and you can visualize your - -0:09:42.880,0:09:46.240 -notes and like how these references are - -0:09:44.959,0:09:48.839 -linked to each other - -0:09:46.240,0:09:50.240 -through the organ server or or ground - -0:09:48.839,0:09:53.120 -graph - -0:09:50.240,0:09:53.680 -all right this is just notes for later - -0:09:53.120,0:09:56.240 -okay - -0:09:53.680,0:09:57.360 -so this is an example of like an orgram - -0:09:56.240,0:09:59.279 -file that I have - -0:09:57.360,0:10:01.760 -for example if I'm working on adaptation - -0:09:59.279,0:10:02.560 -policy I have these hyperlinks that are - -0:10:01.760,0:10:04.959 -linked to other - -0:10:02.560,0:10:06.640 -concepts and ideas such as either - -0:10:04.959,0:10:08.720 -climate security - -0:10:06.640,0:10:10.560 -um changing global environment so on and - -0:10:08.720,0:10:13.920 -so forth and the backlinks - -0:10:10.560,0:10:15.839 -are other references that talk about - -0:10:13.920,0:10:17.680 -this specific concept - -0:10:15.839,0:10:19.920 -so this is really helpful and then when - -0:10:17.680,0:10:22.160 -you visualize it the picture on the left - -0:10:19.920,0:10:24.160 -which I'm sure looks really small - -0:10:22.160,0:10:25.680 -um you can see the connections that it's - -0:10:24.160,0:10:28.160 -making with other - -0:10:25.680,0:10:29.760 -references so of course this is just - -0:10:28.160,0:10:32.720 -like a buffer - -0:10:29.760,0:10:34.560 -network when you look at the entire - -0:10:32.720,0:10:38.000 -database network it's it's - -0:10:34.560,0:10:41.680 -it's growing okay - -0:10:38.000,0:10:44.079 -so going into organ bidtech - -0:10:41.680,0:10:46.000 -so it utilizes a combination of the or - -0:10:44.079,0:10:46.880 -graph package helmbik tech candidate - -0:10:46.000,0:10:50.079 -completion - -0:10:46.880,0:10:51.440 -and it works with orgrom functionalities - -0:10:50.079,0:10:54.880 -and - -0:10:51.440,0:10:57.440 -other good stuff this is an example - -0:10:54.880,0:10:58.720 -of my orgrim bibtex file all right so - -0:10:57.440,0:11:01.200 -I've created - -0:10:58.720,0:11:02.320 -um the template which I pretty much use - -0:11:01.200,0:11:05.920 -what leo - -0:11:02.320,0:11:08.640 -has uh produced like in his um - -0:11:05.920,0:11:10.160 -tutorial so I think it's it's great it - -0:11:08.640,0:11:12.880 -works well for me - -0:11:10.160,0:11:14.480 -um and what it does is that it works - -0:11:12.880,0:11:17.519 -with your bib file - -0:11:14.480,0:11:19.519 -so if you're in your bib file you have a - -0:11:17.519,0:11:21.040 -sub entry that's called keywords and - -0:11:19.519,0:11:23.120 -usually that's within - -0:11:21.040,0:11:24.560 -a journal article the author would - -0:11:23.120,0:11:27.519 -specify these - -0:11:24.560,0:11:28.160 -keywords um when it gets imported into - -0:11:27.519,0:11:30.399 -zotero - -0:11:28.160,0:11:32.399 -it extracts those keywords and then it - -0:11:30.399,0:11:34.959 -gets populated as an org file - -0:11:32.399,0:11:36.959 -with orgrim bibtex so I always start - -0:11:34.959,0:11:38.560 -with the meta information first and then - -0:11:36.959,0:11:42.480 -I would write my notes - -0:11:38.560,0:11:45.760 -after that this is an example though - -0:11:42.480,0:11:49.120 -for reference of a physical book so - -0:11:45.760,0:11:51.519 -I don't have a pdf file for it um - -0:11:49.120,0:11:53.920 -so what I've figured out like a new idea - -0:11:51.519,0:11:55.760 -for it so if I'm writing notes on it - -0:11:53.920,0:11:57.279 -I would create a property that says - -0:11:55.760,0:11:58.959 -pages um - -0:11:57.279,0:12:00.639 -that way it's easier for you when you go - -0:11:58.959,0:12:02.720 -back to citing - -0:12:00.639,0:12:04.720 -um certain ideas or something that you - -0:12:02.720,0:12:07.839 -have the pages prepared there - -0:12:04.720,0:12:11.279 -it's easier that way okay - -0:12:07.839,0:12:13.040 -org noter which is something I - -0:12:11.279,0:12:14.880 -use a lot especially with journal - -0:12:13.040,0:12:15.600 -articles that have pdfs and stuff like - -0:12:14.880,0:12:19.120 -that - -0:12:15.600,0:12:22.720 -they're really helpful if you are gonna - -0:12:19.120,0:12:23.760 -if you've just started using um Emacs - -0:12:22.720,0:12:26.959 -and orgrim - -0:12:23.760,0:12:29.519 -and you have all these pdfs that have - -0:12:26.959,0:12:30.079 -all the annotations and highlighting and - -0:12:29.519,0:12:32.639 -the - -0:12:30.079,0:12:33.200 -all that stuff with org noter you can - -0:12:32.639,0:12:36.720 -just - -0:12:33.200,0:12:39.519 -use the org note or create skeleton - -0:12:36.720,0:12:41.200 -uh command and it will populate all your - -0:12:39.519,0:12:43.760 -notes that have already been - -0:12:41.200,0:12:44.800 -um entered within the pdf file if you're - -0:12:43.760,0:12:48.160 -using an outside - -0:12:44.800,0:12:52.560 -software and creates them like as a neat - -0:12:48.160,0:12:55.920 -org file I I highly recommend - -0:12:52.560,0:12:57.920 -finally org transclusion um - -0:12:55.920,0:13:01.040 -I think this is still in its beta phase - -0:12:57.920,0:13:02.720 -but I've been enjoying it so far - -0:13:01.040,0:13:04.800 -um I'm guessing people know what - -0:13:02.720,0:13:06.480 -translation mean which is sort of like - -0:13:04.800,0:13:09.600 -copy pasting text from - -0:13:06.480,0:13:11.839 -one org file to another this is helpful - -0:13:09.600,0:13:12.959 -I I think I I peeked at a question that - -0:13:11.839,0:13:16.320 -was talking about like - -0:13:12.959,0:13:18.320 -you know linking um to other org files - -0:13:16.320,0:13:20.320 -I think org transclusion could really - -0:13:18.320,0:13:24.399 -work okay it's - -0:13:20.320,0:13:27.760 -equivalent to the include - -0:13:24.399,0:13:29.519 -function within org mode um but I think - -0:13:27.760,0:13:32.560 -so like if you have other files - -0:13:29.519,0:13:34.800 -that you know which region that you - -0:13:32.560,0:13:36.079 -need in another file you could use the - -0:13:34.800,0:13:38.160 -include but with - -0:13:36.079,0:13:39.440 -org transclusion it's great I mean you - -0:13:38.160,0:13:42.720 -just have - -0:13:39.440,0:13:43.360 -um you're just linking one part to the - -0:13:42.720,0:13:45.760 -other - -0:13:43.360,0:13:47.760 -sort of like not refiling but you know - -0:13:45.760,0:13:49.680 -hyperlinking - -0:13:47.760,0:13:51.120 -so this is an example of what org - -0:13:49.680,0:13:53.680 -transclusion looks like - -0:13:51.120,0:13:54.720 -um so the highlighted problem statement - -0:13:53.680,0:13:57.760 -is from another - -0:13:54.720,0:13:58.240 -org file and then what I would do is - -0:13:57.760,0:13:59.760 -just like - -0:13:58.240,0:14:01.440 -link it to there and there was like a - -0:13:59.760,0:14:05.440 -transclusion command - -0:14:01.440,0:14:08.399 -I wish I made another screenshot of it - -0:14:05.440,0:14:09.120 -and so when you invoke org transclusion - -0:14:08.399,0:14:12.079 -mode - -0:14:09.120,0:14:12.480 -it turns um it prints it out like that - -0:14:12.079,0:14:15.120 -so - -0:14:12.480,0:14:16.560 -it's in view mode and then when you want - -0:14:15.120,0:14:18.480 -to edit it will take you back to that - -0:14:16.560,0:14:21.839 -buffer and you can edit the text - -0:14:18.480,0:14:22.720 -however you want all right so thank you - -0:14:21.839,0:14:26.000 -so much - -0:14:22.720,0:14:29.120 -um I wanted to leave room for questions - -0:14:26.000,0:14:32.560 -but special thanks to all the folks that - -0:14:29.120,0:14:33.440 -work on orgrom or ground bibtex orgrim - -0:14:32.560,0:14:36.320 -server or - -0:14:33.440,0:14:38.240 -transclusion and of course alpha papo on - -0:14:36.320,0:14:42.560 -or super agenda and org sidebar - -0:14:38.240,0:14:42.560 -that's how I got into Emacs thank you - -0:14:43.440,0:14:47.120 -all right and uh well thank you so yeah - -0:14:45.600,0:14:49.120 -this time I'll be the one asking the - -0:14:47.120,0:14:51.360 -question and not I'm in so - -0:14:49.120,0:14:53.120 -I'm feeling filling big shoes right now - -0:14:51.360,0:14:54.880 -so you'll have to bear with me folks - -0:14:53.120,0:14:56.240 -so thank you so much noora for your - -0:14:54.880,0:14:57.279 -presentation that is incredibly - -0:14:56.240,0:14:58.959 -interesting - -0:14:57.279,0:15:00.800 -so would you mind if I fed you questions - -0:14:58.959,0:15:04.000 -from the charts yeah - -0:15:00.800,0:15:06.160 -go ahead okay so the first one I I've - -0:15:04.000,0:15:07.920 -picked on my end was did you try using - -0:15:06.160,0:15:10.560 -ebib instead of zotero - -0:15:07.920,0:15:12.079 -and if so is it better than zotero in - -0:15:10.560,0:15:14.880 -some ways - -0:15:12.079,0:15:15.680 -I no I have not used eb I've only used - -0:15:14.880,0:15:18.560 -mendeley - -0:15:15.680,0:15:20.320 -and then they got bought by el savior - -0:15:18.560,0:15:23.040 -and so like I was like okay I'm done - -0:15:20.320,0:15:25.120 -I'm going to zotero um there are a lot - -0:15:23.040,0:15:26.240 -of plugins with zotero that you can play - -0:15:25.120,0:15:28.320 -around with - -0:15:26.240,0:15:30.480 -so I can't speak for ebit but definitely - -0:15:28.320,0:15:32.079 -zotero it's been a good experience so - -0:15:30.480,0:15:34.880 -far - -0:15:32.079,0:15:35.360 -yes same I also I also do research on - -0:15:34.880,0:15:38.079 -the site - -0:15:35.360,0:15:39.360 -as I told you english major and yeah I - -0:15:38.079,0:15:41.839 -also do zotero - -0:15:39.360,0:15:43.759 -some people have been using uh a - -0:15:41.839,0:15:44.160 -connector between zotero and Emacs which - -0:15:43.759,0:15:46.000 -has - -0:15:44.160,0:15:47.360 -they've had great success with them but - -0:15:46.000,0:15:50.480 -personally I haven't touched - -0:15:47.360,0:15:52.240 -touched it already so yeah - -0:15:50.480,0:15:53.920 -oh go ahead sorry all right so far I - -0:15:52.240,0:15:54.880 -don't have any problems with zotero but - -0:15:53.920,0:15:56.320 -maybe if I - -0:15:54.880,0:15:58.320 -run into something I might check out - -0:15:56.320,0:16:00.240 -ebay in the future - -0:15:58.320,0:16:01.680 -yeah definitely I think zotero is a very - -0:16:00.240,0:16:02.560 -solid project and you know the fact that - -0:16:01.680,0:16:04.959 -it's being used - -0:16:02.560,0:16:06.560 -by people outside of Emacs also ensures - -0:16:04.959,0:16:07.680 -that there's quite a lot of packing - -0:16:06.560,0:16:09.759 -behind the software - -0:16:07.680,0:16:11.759 -which is reassuring when your livelihood - -0:16:09.759,0:16:13.519 -depends on your research - -0:16:11.759,0:16:15.600 -right and then I think one more thing - -0:16:13.519,0:16:17.519 -with zotero is that you can create - -0:16:15.600,0:16:18.079 -groups so if you're in a collaborative - -0:16:17.519,0:16:20.160 -project - -0:16:18.079,0:16:22.320 -you can create a reference you know a - -0:16:20.160,0:16:23.759 -library just for your group and I think - -0:16:22.320,0:16:25.279 -that could help because like I - -0:16:23.759,0:16:27.600 -I'm going to be in a project next - -0:16:25.279,0:16:29.839 -semester that requires that - -0:16:27.600,0:16:31.600 -yeah definitely I believe the ability to - -0:16:29.839,0:16:33.839 -have folders inside zotero - -0:16:31.600,0:16:35.360 -makes it incredibly useful to manage - -0:16:33.839,0:16:37.440 -your different projects concurrent - -0:16:35.360,0:16:39.279 -projects - -0:16:37.440,0:16:41.279 -so moving on to the questions do you - -0:16:39.279,0:16:43.440 -have any suggestion on what subjects or - -0:16:41.279,0:16:46.560 -things should be tags or separate organ - -0:16:43.440,0:16:50.320 -files for cross-linking - -0:16:46.560,0:16:52.720 -right um so so far now like I'm having - -0:16:50.320,0:16:55.360 -trouble with like should I be combining - -0:16:52.720,0:16:55.839 -certain concepts together as one like - -0:16:55.360,0:16:59.360 -this is - -0:16:55.839,0:17:00.959 -where the the thought process you know - -0:16:59.360,0:17:02.959 -starts coming to fruit is that when you - -0:17:00.959,0:17:04.880 -start you know combining - -0:17:02.959,0:17:06.480 -ideas together so you won't need a - -0:17:04.880,0:17:09.199 -specific tag - -0:17:06.480,0:17:11.280 -and another one that are like similar in - -0:17:09.199,0:17:12.720 -ideas - -0:17:11.280,0:17:14.799 -I'm not sure if that answers the - -0:17:12.720,0:17:15.919 -question but like so far I've been using - -0:17:14.799,0:17:17.919 -the orgrum - -0:17:15.919,0:17:19.039 -you know the default way which is like - -0:17:17.919,0:17:22.160 -many small - -0:17:19.039,0:17:24.400 -um files and then just - -0:17:22.160,0:17:26.319 -linking them to my like either if I have - -0:17:24.400,0:17:26.959 -a report to write or if I have a like - -0:17:26.319,0:17:32.240 -you know - -0:17:26.959,0:17:35.360 -essay to write - -0:17:32.240,0:17:37.760 -I think you're muted - -0:17:35.360,0:17:38.400 -q and I just I did two stupid things the - -0:17:37.760,0:17:40.640 -first one - -0:17:38.400,0:17:42.320 -was filling up my water the second one - -0:17:40.640,0:17:43.760 -was peeking without actually turning on - -0:17:42.320,0:17:45.760 -my microphone - -0:17:43.760,0:17:47.760 -so let's just hope that nothing is going - -0:17:45.760,0:17:48.320 -to fry in the near vicinity of me right - -0:17:47.760,0:17:49.840 -now - -0:17:48.320,0:17:51.440 -but uh yeah I believe you've answered - -0:17:49.840,0:17:53.200 -the question so don't worry about it I'm - -0:17:51.440,0:17:55.280 -slightly wet right now which is not a - -0:17:53.200,0:17:57.280 -very agreeable feeling but we'll have to - -0:17:55.280,0:17:59.360 -carry on I suppose - -0:17:57.280,0:18:01.600 -another question is there a place where - -0:17:59.360,0:18:04.320 -people are collaborating on research - -0:18:01.600,0:18:06.160 -about Emacs so do you want to try to - -0:18:04.320,0:18:08.559 -take this one - -0:18:06.160,0:18:10.559 -um I don't know but I'm definitely - -0:18:08.559,0:18:12.480 -interested in the user experience of - -0:18:10.559,0:18:14.720 -Emacs so - -0:18:12.480,0:18:16.400 -if anyone wants to work on that I'm - -0:18:14.720,0:18:18.320 -happy - -0:18:16.400,0:18:19.760 -well you do have a a pretty good - -0:18:18.320,0:18:22.080 -candidate in front of you if I - -0:18:19.760,0:18:22.960 -should say so myself I'm incredibly - -0:18:22.080,0:18:25.039 -interested about - -0:18:22.960,0:18:26.960 -um the ability to do research in Emacs - -0:18:25.039,0:18:30.480 -and about the ability to - -0:18:26.960,0:18:32.480 -um preach the floss way - -0:18:30.480,0:18:34.080 -to academia and to the academe - -0:18:32.480,0:18:35.280 -especially because I believe there's - -0:18:34.080,0:18:38.240 -really something - -0:18:35.280,0:18:39.919 -great to be done sorry I'm just looking - -0:18:38.240,0:18:41.840 -at the puddle of water on the side which - -0:18:39.919,0:18:45.039 -is slightly oozing my way - -0:18:41.840,0:18:46.880 -which is not a very good feeling really - -0:18:45.039,0:18:48.320 -but yeah I believe I believe some work - -0:18:46.880,0:18:50.000 -could be done and if people are - -0:18:48.320,0:18:52.320 -interested in the chat right now - -0:18:50.000,0:18:53.440 -I mean do get in touch with us both - -0:18:52.320,0:18:56.480 -neuron and I - -0:18:53.440,0:18:57.280 -are on our slack channel yes I know - -0:18:56.480,0:19:00.080 -slack - -0:18:57.280,0:19:01.919 -the corporate hive mind that it's like - -0:19:00.080,0:19:02.720 -but we've decided with orgrim to use - -0:19:01.919,0:19:05.520 -slack - -0:19:02.720,0:19:06.880 -but you can find us very easily and uh - -0:19:05.520,0:19:07.360 -if you want to talk about these topics - -0:19:06.880,0:19:08.720 -yes - -0:19:07.360,0:19:10.720 -by all means do and we'll be very - -0:19:08.720,0:19:12.640 -interested to answer your questions - -0:19:10.720,0:19:15.520 -so I have a question here says like how - -0:19:12.640,0:19:18.640 -does the view for time blocking works - -0:19:15.520,0:19:22.000 -um I use org super agenda so - -0:19:18.640,0:19:23.200 -um what happens is that my active - -0:19:22.000,0:19:26.960 -timestamps are - -0:19:23.200,0:19:29.200 -only in my gmail or file - -0:19:26.960,0:19:30.080 -so if you use org gcal you have to - -0:19:29.200,0:19:32.559 -specify - -0:19:30.080,0:19:34.320 -a certain org file and when it you know - -0:19:32.559,0:19:35.679 -imports them it imports them as like - -0:19:34.320,0:19:38.400 -active - -0:19:35.679,0:19:40.480 -timestamps and I make sure whenever I - -0:19:38.400,0:19:42.480 -create a to-do or even a research task - -0:19:40.480,0:19:45.039 -that it doesn't have a time stamp on it - -0:19:42.480,0:19:48.480 -because what I want to do is go back - -0:19:45.039,0:19:50.160 -and then move around um these tags - -0:19:48.480,0:19:51.919 -according to my you know either weekly - -0:19:50.160,0:19:52.960 -schedule or monthly or however long you - -0:19:51.919,0:19:56.480 -want to do it - -0:19:52.960,0:19:59.679 -um so yeah only active timestamps or - -0:19:56.480,0:20:03.280 -deadlines um appear in your time grid - -0:19:59.679,0:20:05.440 -so that could work um that's very good - -0:20:03.280,0:20:06.320 -just just to uh interject for a second - -0:20:05.440,0:20:07.840 -about this - -0:20:06.320,0:20:10.720 -you know with orgrim right now we're - -0:20:07.840,0:20:13.039 -mostly uh focused on optimization - -0:20:10.720,0:20:14.720 -but we're hoping to move on to ux very - -0:20:13.039,0:20:16.720 -soon so all those matters about - -0:20:14.720,0:20:18.159 -you know having to do's in your files it - -0:20:16.720,0:20:20.000 -is something that we've been thinking - -0:20:18.159,0:20:20.880 -about with jethro kwan who is my main - -0:20:20.000,0:20:23.280 -commentator - -0:20:20.880,0:20:24.480 -or grow and we'll be working on this in - -0:20:23.280,0:20:26.080 -the coming months so don't worry too - -0:20:24.480,0:20:29.760 -much about it and stay tuned - -0:20:26.080,0:20:33.200 -yeah um so I've got the ebib - -0:20:29.760,0:20:34.080 -and what else um what subjects I think - -0:20:33.200,0:20:35.919 -okay - -0:20:34.080,0:20:37.120 -what is this question have you seen the - -0:20:35.919,0:20:40.400 -project papi's - -0:20:37.120,0:20:41.280 -I'm not sure what oh it's a zotero - -0:20:40.400,0:20:43.840 -alternative okay - -0:20:41.280,0:20:45.919 -I'll look into it thank you I don't know - -0:20:43.840,0:20:49.600 -I don't know about it either so - -0:20:45.919,0:20:53.200 -please look into it and let me know yeah - -0:20:49.600,0:20:55.679 -um have we covered all the questions - -0:20:53.200,0:20:56.880 -I believe we have and we have about - -0:20:55.679,0:20:58.880 -two-minute leeway - -0:20:56.880,0:21:00.240 -for me to move into the next talk so - -0:20:58.880,0:21:01.760 -we're right on time - -0:21:00.240,0:21:04.159 -all right thank you so much really - -0:21:01.760,0:21:05.440 -appreciate it and good luck everyone - -0:21:04.159,0:21:07.600 -well thank you and thank you so much for - -0:21:05.440,0:21:08.400 -coming and uh doing allowing me not to - -0:21:07.600,0:21:11.440 -be the only one - -0:21:08.400,0:21:14.559 -talking about all room today sounds good - -0:21:11.440,0:21:16.799 -all right thank you both very much - -0:21:14.559,0:21:16.799 -yes - diff --git a/2020/subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier-autogen.sbv b/2020/subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier-autogen.sbv deleted file mode 100644 index a133b61d..00000000 --- a/2020/subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier-autogen.sbv +++ /dev/null @@ -1,1803 +0,0 @@ -0:00:00.000,0:00:03.760 -at the end we are right on time so I'm - -0:00:02.399,0:00:04.319 -sorry if you have a lot of questions - -0:00:03.760,0:00:06.960 -before - -0:00:04.319,0:00:08.559 -you had some so many questions and I - -0:00:06.960,0:00:10.080 -couldn't answer all of them and I'm - -0:00:08.559,0:00:11.599 -really happy about it but I'm also - -0:00:10.080,0:00:12.719 -really sad that I don't have enough time - -0:00:11.599,0:00:15.040 -to do so - -0:00:12.719,0:00:17.119 -so I'm gonna try to do a better job this - -0:00:15.040,0:00:20.240 -time of leaving you a little more time - -0:00:17.119,0:00:22.960 -for the questions so just before - -0:00:20.240,0:00:24.400 -a little addendum because I did screw up - -0:00:22.960,0:00:27.439 -in the previous presentation - -0:00:24.400,0:00:28.800 -you remember I tried to rename the file - -0:00:27.439,0:00:31.599 -and it didn't work - -0:00:28.800,0:00:32.559 -well it turns out uh I had two file name - -0:00:31.599,0:00:34.480 -baz so - -0:00:32.559,0:00:36.000 -my software works great thank you very - -0:00:34.480,0:00:38.800 -much uh - -0:00:36.000,0:00:40.239 -all right so now what I'm gonna do - -0:00:38.800,0:00:43.040 -during this presentation - -0:00:40.239,0:00:44.399 -is that I'm going to oops I didn't stop - -0:00:43.040,0:00:47.520 -my timer just give me - -0:00:44.399,0:00:50.719 -a little second and let's subtract - -0:00:47.520,0:00:52.239 -one minute okay good so - -0:00:50.719,0:00:54.079 -what I'm going to do right now it's a - -0:00:52.239,0:00:56.879 -little different from the previous - -0:00:54.079,0:00:58.239 -talk I've gave you and different even - -0:00:56.879,0:01:00.480 -from what nura gave you - -0:00:58.239,0:01:02.399 -there's like uh scaling the mountain as - -0:01:00.480,0:01:03.359 -far as difficulty is concerned and on - -0:01:02.399,0:01:04.879 -this one - -0:01:03.359,0:01:06.799 -I will be telling you about the - -0:01:04.879,0:01:09.360 -technical aspects of orgrim - -0:01:06.799,0:01:11.119 -because you know I've been telling you - -0:01:09.360,0:01:13.119 -about the general philosophy - -0:01:11.119,0:01:14.560 -of the notes and the general philosophy - -0:01:13.119,0:01:16.159 -of organization - -0:01:14.560,0:01:18.479 -but right now I really want to get into - -0:01:16.159,0:01:22.640 -the nitty gritty about or grow - -0:01:18.479,0:01:25.759 -so if we go in the git repository - -0:01:22.640,0:01:27.920 -this at the very core is all grown and - -0:01:25.759,0:01:28.960 -for some of you who have no experience - -0:01:27.920,0:01:31.280 -whatsoever - -0:01:28.960,0:01:32.880 -uh developing stuff or programming or - -0:01:31.280,0:01:36.000 -anything along those lines - -0:01:32.880,0:01:36.720 -this is how all the development around - -0:01:36.000,0:01:40.000 -the world - -0:01:36.720,0:01:42.159 -is working you have a repository a - -0:01:40.000,0:01:44.399 -git repository where you have all the - -0:01:42.159,0:01:46.399 -files all the libraries you're using - -0:01:44.399,0:01:48.720 -all the programs all the commands - -0:01:46.399,0:01:52.240 -everything is inside your files - -0:01:48.720,0:01:53.759 -and in a way this is the organ project - -0:01:52.240,0:01:55.600 -you can see that we have many files we - -0:01:53.759,0:01:57.040 -have organ buffer capture compat - -0:01:55.600,0:02:00.399 -completion dailies - -0:01:57.040,0:02:02.000 -etc etc so - -0:02:00.399,0:02:04.079 -before we dive a little deeper I just - -0:02:02.000,0:02:04.640 -want to give you a lay of the land so to - -0:02:04.079,0:02:08.160 -speak to - -0:02:04.640,0:02:11.680 -to know where we're heading so - -0:02:08.160,0:02:15.599 -orgro is built on top of old mode - -0:02:11.680,0:02:17.760 -and org mode gives us plenty of tools - -0:02:15.599,0:02:18.800 -to play around with the files I'm moving - -0:02:17.760,0:02:20.080 -the glass I'm - -0:02:18.800,0:02:21.360 -I'm starting to move my hands a little - -0:02:20.080,0:02:22.959 -bit you know when I get excited about - -0:02:21.360,0:02:26.640 -something I move my hand - -0:02:22.959,0:02:29.360 -and then that stuff happens so - -0:02:26.640,0:02:31.360 -in all chrome we have org mode and - -0:02:29.360,0:02:33.360 -augment gives us plenty of tools which - -0:02:31.360,0:02:36.560 -are incredibly useful - -0:02:33.360,0:02:37.440 -for writing stuff so you know we already - -0:02:36.560,0:02:39.440 -have the links - -0:02:37.440,0:02:40.560 -we already have the hierarchy which is - -0:02:39.440,0:02:43.360 -given by having - -0:02:40.560,0:02:43.760 -trees within trees within trees we have - -0:02:43.360,0:02:45.760 -uh - -0:02:43.760,0:02:48.000 -quote blocks we have babel blocks we - -0:02:45.760,0:02:49.680 -have so much stuff we have an arsenal of - -0:02:48.000,0:02:53.519 -tools that have been developed - -0:02:49.680,0:02:56.640 -for the last 15 years and - -0:02:53.519,0:02:59.760 -when you think about it all chrome just - -0:02:56.640,0:03:01.360 -wants to create backlinks but it sounds - -0:02:59.760,0:03:02.239 -something very simple but the problem is - -0:03:01.360,0:03:05.519 -that we need - -0:03:02.239,0:03:06.400 -to play nicely with all of those - -0:03:05.519,0:03:09.360 -intricate - -0:03:06.400,0:03:10.879 -pieces and the fact is it takes quite a - -0:03:09.360,0:03:11.440 -lot of expertise to be able to do so - -0:03:10.879,0:03:14.400 -because - -0:03:11.440,0:03:15.200 -if right now we are in the brain of all - -0:03:14.400,0:03:18.959 -grow - -0:03:15.200,0:03:21.599 -but if I show you the brain of org mode - -0:03:18.959,0:03:23.280 -so this is the brain of org mode and it - -0:03:21.599,0:03:25.519 -looks very simple like this because I - -0:03:23.280,0:03:28.000 -haven't entered the less folder - -0:03:25.519,0:03:29.120 -but I'm just going to enter it I'm going - -0:03:28.000,0:03:32.000 -to - -0:03:29.120,0:03:32.959 -zoom out a little bit don't worry if you - -0:03:32.000,0:03:35.519 -don't see everything - -0:03:32.959,0:03:37.519 -but I just want you to get a fear the - -0:03:35.519,0:03:41.280 -sheer feel of magnitude - -0:03:37.519,0:03:42.640 -that is um org mode so right now we are - -0:03:41.280,0:03:43.760 -in a very small size what I'm gonna do - -0:03:42.640,0:03:47.519 -I'm going to skip - -0:03:43.760,0:03:51.040 -one page okay one two - -0:03:47.519,0:03:52.319 -three we have let's just check how many - -0:03:51.040,0:03:54.640 -lines we have - -0:03:52.319,0:03:56.480 -okay let me just revert to a fairly - -0:03:54.640,0:03:58.560 -readable side - -0:03:56.480,0:03:59.599 -at the bottom you can see that we have - -0:03:58.560,0:04:00.959 -oh it's not showing because it's a - -0:03:59.599,0:04:03.840 -little small okay I'm just going to - -0:04:00.959,0:04:06.959 -resize the window a little bit - -0:04:03.840,0:04:08.720 -it's not showing up give me a second I - -0:04:06.959,0:04:10.159 -can't see how many lines I have okay so - -0:04:08.720,0:04:11.840 -let's do it to get away - -0:04:10.159,0:04:14.000 -I'm going to go back at the beginning of - -0:04:11.840,0:04:16.160 -the buffer and we're going to count - -0:04:14.000,0:04:17.840 -how many lines we have so the bottom in - -0:04:16.160,0:04:18.880 -a midi buffer and the mini buffer is - -0:04:17.840,0:04:22.320 -this area - -0:04:18.880,0:04:25.919 -we have 377 lines - -0:04:22.320,0:04:29.759 -which means 377 - -0:04:25.919,0:04:31.520 -libraries within org mode and mind you - -0:04:29.759,0:04:32.960 -that's not counting all the modules that - -0:04:31.520,0:04:36.240 -we have on the side which - -0:04:32.960,0:04:37.360 -come on top of volt mode now when you - -0:04:36.240,0:04:40.639 -try to think - -0:04:37.360,0:04:44.400 -about something so elemental - -0:04:40.639,0:04:45.520 -as links you have to think about how to - -0:04:44.400,0:04:48.560 -play well - -0:04:45.520,0:04:50.000 -with every single one of these modules - -0:04:48.560,0:04:53.759 -now obviously not - -0:04:50.000,0:04:56.080 -the 370 370. sometimes you know - -0:04:53.759,0:04:57.680 -one module it's not going to do anything - -0:04:56.080,0:04:58.639 -like I'm not sure op car could be doing - -0:04:57.680,0:05:00.080 -anything with it - -0:04:58.639,0:05:03.039 -but it's something that we have to keep - -0:05:00.080,0:05:04.720 -in mind and so - -0:05:03.039,0:05:07.520 -really early on when we started - -0:05:04.720,0:05:10.080 -developing all grown with jethro kwan my - -0:05:07.520,0:05:10.639 -co-maintainer you know we had this idea - -0:05:10.080,0:05:13.520 -that - -0:05:10.639,0:05:14.639 -we wanted to develop something that was - -0:05:13.520,0:05:18.240 -optimized - -0:05:14.639,0:05:20.160 -something that would you know scale very - -0:05:18.240,0:05:21.600 -nicely whether or not you had - -0:05:20.160,0:05:24.560 -you know something that would work as - -0:05:21.600,0:05:27.680 -fast if you had 10 files - -0:05:24.560,0:05:30.880 -or if you had 100 files or if you had - -0:05:27.680,0:05:32.080 -10 000 files and maybe more so the - -0:05:30.880,0:05:34.400 -problem when you do this - -0:05:32.080,0:05:36.320 -and I'm doing some callbacks to the talk - -0:05:34.400,0:05:41.280 -I gave you earlier today about - -0:05:36.320,0:05:44.800 -few small few big files this is many - -0:05:41.280,0:05:45.919 -I got confused few big files versus many - -0:05:44.800,0:05:49.280 -small files - -0:05:45.919,0:05:51.600 -the problem with this is that we need to - -0:05:49.280,0:05:53.680 -think about optimization from the get go - -0:05:51.600,0:05:54.800 -and so one of the decision we took when - -0:05:53.680,0:05:59.199 -we got started - -0:05:54.800,0:06:02.479 -with orgrum is that if I go in my - -0:05:59.199,0:06:04.240 -test repository so that's the one in - -0:06:02.479,0:06:08.000 -which we were right before - -0:06:04.240,0:06:11.600 -we have a file which is called orgrumdb - -0:06:08.000,0:06:14.160 -now if I open it it's not it's a - -0:06:11.600,0:06:15.120 -little garbage because uh it's a binary - -0:06:14.160,0:06:18.560 -but what we have - -0:06:15.120,0:06:21.919 -is a database with which we communicate - -0:06:18.560,0:06:25.120 -via sorry it's an sql database - -0:06:21.919,0:06:28.479 -and what this allows us to do - -0:06:25.120,0:06:31.919 -is we store all the information we need - -0:06:28.479,0:06:34.720 -inside this sql database which allows us - -0:06:31.919,0:06:35.360 -to speed up a lot of the operations that - -0:06:34.720,0:06:37.840 -are - -0:06:35.360,0:06:38.479 -necessary for the functioning of our - -0:06:37.840,0:06:40.240 -ground - -0:06:38.479,0:06:41.759 -so for instance if I go back to the - -0:06:40.240,0:06:43.440 -index file that I had before - -0:06:41.759,0:06:45.680 -let's just go back to who actually this - -0:06:43.440,0:06:47.919 -way you'll see a little more on the side - -0:06:45.680,0:06:48.720 -so you see that on the side we have - -0:06:47.919,0:06:50.319 -whoops - -0:06:48.720,0:06:51.759 -two links I'm not going to click on them - -0:06:50.319,0:06:53.199 -otherwise I'm going to open them but we - -0:06:51.759,0:06:56.319 -have two links - -0:06:53.199,0:06:58.240 -now there are many implementations of - -0:06:56.319,0:07:00.800 -the zettol casten method inside - -0:06:58.240,0:07:02.400 -Emacs and inside and with old mode but - -0:07:00.800,0:07:04.639 -what we've decided to do - -0:07:02.400,0:07:05.520 -is that every time you have a link so if - -0:07:04.639,0:07:08.479 -we go to - -0:07:05.520,0:07:09.120 -the index again here at point we have - -0:07:08.479,0:07:12.400 -the link - -0:07:09.120,0:07:14.160 -foo every time we create a link we - -0:07:12.400,0:07:16.800 -update our database - -0:07:14.160,0:07:17.919 -to say okay so we have a link in the - -0:07:16.800,0:07:21.080 -file - -0:07:17.919,0:07:24.319 -index which is leading to the file - -0:07:21.080,0:07:27.840 -fu.org and it is situated - -0:07:24.319,0:07:29.840 -under the heading a heading and - -0:07:27.840,0:07:31.440 -if you check the site buffer you see - -0:07:29.840,0:07:33.120 -that all this all these information - -0:07:31.440,0:07:36.720 -which I just highlighted to you - -0:07:33.120,0:07:36.720 -are present right here - -0:07:42.639,0:07:46.400 -oh well sorry I forgot this thank you - -0:07:45.599,0:07:50.879 -okay - -0:07:46.400,0:07:53.039 -so let's see log okay I'm going to split - -0:07:50.879,0:07:54.960 -actually I'm going to split like this - -0:07:53.039,0:07:56.960 -I'm going to go back there - -0:07:54.960,0:07:58.720 -the problem is that I can't show my - -0:07:56.960,0:08:02.080 -keystrokes at the same time as a machine - -0:07:58.720,0:08:03.599 -I'm showing the site buffer so I'll - -0:08:02.080,0:08:05.199 -keep it right now for your own - -0:08:03.599,0:08:07.039 -discretion anyway getting back to the - -0:08:05.199,0:08:10.160 -talk - -0:08:07.039,0:08:12.720 -so the thing is we have this - -0:08:10.160,0:08:13.520 -sql database and the goal is to keep it - -0:08:12.720,0:08:16.400 -optimized - -0:08:13.520,0:08:17.039 -now why is it better optimized than just - -0:08:16.400,0:08:20.960 -using - -0:08:17.039,0:08:23.520 -orgrom sorry just using default org mode - -0:08:20.960,0:08:24.080 -so in my talk about many big files - -0:08:23.520,0:08:26.879 -versus - -0:08:24.080,0:08:28.080 -a few I keep getting you know you got - -0:08:26.879,0:08:29.120 -what I was saying I'm not going to - -0:08:28.080,0:08:32.240 -repeat it - -0:08:29.120,0:08:35.200 -by the way it is uh 10 to 10. - -0:08:32.240,0:08:36.399 -I'm starting really to be tired now so - -0:08:35.200,0:08:39.279 -uh moving on to - -0:08:36.399,0:08:40.800 -um what did I want to show you so it was - -0:08:39.279,0:08:44.959 -almost yes all the elements - -0:08:40.800,0:08:47.200 -so what I'm going to do I'm going to - -0:08:44.959,0:08:48.399 -see I believe it's org element pass - -0:08:47.200,0:08:51.040 -buffer - -0:08:48.399,0:08:51.920 -so I was telling you about all elements - -0:08:51.040,0:08:53.600 -before - -0:08:51.920,0:08:55.760 -and the main command sorry the main - -0:08:53.600,0:08:58.560 -function that is used by org element - -0:08:55.760,0:08:59.760 -is pass buffer what it does and you can - -0:08:58.560,0:09:01.040 -see the dock string is that it - -0:08:59.760,0:09:03.279 -recursively passed - -0:09:01.040,0:09:04.959 -the buffer and return structure - -0:09:03.279,0:09:06.320 -structure being all the information that - -0:09:04.959,0:09:07.680 -we have in this buffer - -0:09:06.320,0:09:09.600 -so just to show you a little more we're - -0:09:07.680,0:09:10.880 -going to move into a scratch buffer - -0:09:09.600,0:09:12.800 -and what we're going to do is that we're - -0:09:10.880,0:09:16.320 -going to write this command - -0:09:12.800,0:09:17.760 -pass buffer and we're going to check the - -0:09:16.320,0:09:19.600 -output of this command - -0:09:17.760,0:09:22.000 -oh sorry not this one we're going to go - -0:09:19.600,0:09:23.680 -in the index so the index file you have - -0:09:22.000,0:09:25.120 -a title you have a heading you have a - -0:09:23.680,0:09:26.880 -link etc etc - -0:09:25.120,0:09:28.560 -so what I'm going to do I'm going to - -0:09:26.880,0:09:30.800 -evaluate this text - -0:09:28.560,0:09:32.560 -and now at the bottom in the midi buffer - -0:09:30.800,0:09:36.160 -in the mini buffer sorry - -0:09:32.560,0:09:37.600 -you see an ast an abstract - -0:09:36.160,0:09:39.839 -obviously don't remember what the s - -0:09:37.600,0:09:42.720 -stands for semantic - -0:09:39.839,0:09:43.519 -huh interesting anyway a representation - -0:09:42.720,0:09:45.279 -of the data - -0:09:43.519,0:09:47.600 -in a way that is exploitable by a - -0:09:45.279,0:09:49.839 -machine now what I'm going to do - -0:09:47.600,0:09:52.000 -syntax thank you so what I'm going to do - -0:09:49.839,0:09:54.480 -I'm going to paste it inside the buffer - -0:09:52.000,0:09:56.399 -in a way that is humanly readable and - -0:09:54.480,0:09:58.800 -you can see that we have plenty of - -0:09:56.399,0:10:00.560 -information we have a section which - -0:09:58.800,0:10:05.040 -starts at the char - -0:10:00.560,0:10:07.040 -1 which ends at the character 45 - -0:10:05.040,0:10:08.240 -we have the content so he makes scratch - -0:10:07.040,0:10:10.240 -oh actually no - -0:10:08.240,0:10:11.279 -never mind I did something wrong I run - -0:10:10.240,0:10:13.040 -it in the wrong buffer - -0:10:11.279,0:10:14.399 -so actually what I'm going to do we're - -0:10:13.040,0:10:17.519 -going to run this command - -0:10:14.399,0:10:21.120 -with the selected window next - -0:10:17.519,0:10:23.760 -window okay that's a bit of live - -0:10:21.120,0:10:24.640 -elise writing for you right now okay so - -0:10:23.760,0:10:26.240 -now if I - -0:10:24.640,0:10:28.480 -evaluate this and paste the content of - -0:10:26.240,0:10:31.600 -the buffer - -0:10:28.480,0:10:32.399 -it is doing its bidding so now what we - -0:10:31.600,0:10:34.959 -have - -0:10:32.399,0:10:36.720 -we have a section we have the keyword - -0:10:34.959,0:10:38.160 -title which you see right here you have - -0:10:36.720,0:10:39.920 -the value - -0:10:38.160,0:10:41.360 -if we scroll down a little bit we have a - -0:10:39.920,0:10:42.480 -heading which is right here we have the - -0:10:41.360,0:10:44.800 -contents - -0:10:42.480,0:10:46.320 -which should be yes the content is not - -0:10:44.800,0:10:48.079 -listed exactly here but you have a - -0:10:46.320,0:10:50.640 -paragraph which is this - -0:10:48.079,0:10:51.200 -and then you have a link etc etc it is - -0:10:50.640,0:10:53.839 -all - -0:10:51.200,0:10:54.640 -uh parenthesis if you're not used to - -0:10:53.839,0:10:56.320 -e-list - -0:10:54.640,0:10:58.640 -like right now I've selected only the - -0:10:56.320,0:11:00.399 -content of the parenthesis link - -0:10:58.640,0:11:01.680 -I can move like this etcetera etcetera - -0:11:00.399,0:11:03.760 -I'm not it's not a needle - -0:11:01.680,0:11:05.279 -lessons that I'm doing right now but - -0:11:03.760,0:11:08.399 -basically - -0:11:05.279,0:11:09.120 -if we were to use the default tooling of - -0:11:08.399,0:11:10.880 -orgrom - -0:11:09.120,0:11:12.480 -org mode sorry I keep getting too - -0:11:10.880,0:11:14.240 -confused sorry for that - -0:11:12.480,0:11:16.399 -uh it would be extremely slow to do what - -0:11:14.240,0:11:19.760 -we're doing some people - -0:11:16.399,0:11:22.240 -are doing so some implementations of the - -0:11:19.760,0:11:23.040 -zettelkassen method inside Emacs have - -0:11:22.240,0:11:26.480 -opted - -0:11:23.040,0:11:27.360 -for this method but the problem is that - -0:11:26.480,0:11:30.160 -we think - -0:11:27.360,0:11:30.560 -that it scales poorly now some other - -0:11:30.160,0:11:33.920 -people - -0:11:30.560,0:11:35.600 -have decided to not do with a database - -0:11:33.920,0:11:37.200 -and what they do is that they use a tool - -0:11:35.600,0:11:38.800 -which is called rip grep - -0:11:37.200,0:11:41.279 -you might know grep which is a tool that - -0:11:38.800,0:11:43.440 -allows you to search - -0:11:41.279,0:11:46.560 -a file the content of a file for a line - -0:11:43.440,0:11:49.680 -so for instance if we open v term here - -0:11:46.560,0:11:51.839 -uh let's see so I've opened the term I - -0:11:49.680,0:11:54.399 -am in this repository what I'm going to - -0:11:51.839,0:11:58.000 -do is that I'm going to - -0:11:54.399,0:12:00.480 -load the content of the file uh - -0:11:58.000,0:12:02.480 -how am I going to do this oh um I need - -0:12:00.480,0:12:06.160 -to move to bash - -0:12:02.480,0:12:08.000 -let's do crap - -0:12:06.160,0:12:09.519 -for the line which links do we did we - -0:12:08.000,0:12:11.600 -have grep foo - -0:12:09.519,0:12:13.760 -inside the file is it three I can - -0:12:11.600,0:12:16.880 -remember okay let's do this - -0:12:13.760,0:12:16.880 -am I working no - -0:12:18.079,0:12:22.800 -let's go for four why is it eight - -0:12:21.279,0:12:24.320 -ah damn it oh you know what I'm just - -0:12:22.800,0:12:28.240 -going to copy the name - -0:12:24.320,0:12:33.279 -up there we go no - -0:12:28.240,0:12:33.279 -ah problem with live presentation always - -0:12:33.680,0:12:36.720 -you know what I'm struggling so I'm - -0:12:34.800,0:12:38.560 -going to drop this point anyway - -0:12:36.720,0:12:40.000 -so grep is a simple tool that allows you - -0:12:38.560,0:12:42.480 -to search the content of a file but - -0:12:40.000,0:12:44.160 -rig grep is a solution that is written - -0:12:42.480,0:12:45.920 -in rust and which is supposed to be - -0:12:44.160,0:12:48.880 -well not supposed which is far more - -0:12:45.920,0:12:50.639 -capable now - -0:12:48.880,0:12:52.320 -I'd like to talk to you about the future - -0:12:50.639,0:12:54.720 -of orgrim right now I've told you about - -0:12:52.320,0:12:58.399 -the general concept which is about using - -0:12:54.720,0:13:01.519 -uh this sql database and about - -0:12:58.399,0:13:03.279 -playing nicely with old mode but - -0:13:01.519,0:13:05.200 -we think that there's something great - -0:13:03.279,0:13:08.320 -that we can do about orgrim - -0:13:05.200,0:13:10.320 -now I've been talking with the a lot of - -0:13:08.320,0:13:10.880 -people who are behind org mode and you - -0:13:10.320,0:13:14.000 -know - -0:13:10.880,0:13:16.880 -they've told us do you think that - -0:13:14.000,0:13:18.320 -orgrom could have something to bring to - -0:13:16.880,0:13:20.160 -old mode let's say - -0:13:18.320,0:13:21.600 -backlinks is there something that we - -0:13:20.160,0:13:25.600 -could be doing to - -0:13:21.600,0:13:27.200 -import backlinks into old mode and - -0:13:25.600,0:13:29.200 -we thought about it with jethro and the - -0:13:27.200,0:13:30.800 -problem is uh - -0:13:29.200,0:13:32.720 -we've always tried to have an - -0:13:30.800,0:13:35.360 -experimental ground a very - -0:13:32.720,0:13:36.320 -uh can a very isolated portion of your - -0:13:35.360,0:13:37.920 -system - -0:13:36.320,0:13:40.320 -where we could track backlinks and - -0:13:37.920,0:13:42.320 -that's why we use um - -0:13:40.320,0:13:44.880 -a slipbox directory so that we only - -0:13:42.320,0:13:47.040 -track backlinks in one specific place - -0:13:44.880,0:13:48.639 -but now because there seems to be so - -0:13:47.040,0:13:50.079 -much interest about the method and we - -0:13:48.639,0:13:52.480 -have so much backing - -0:13:50.079,0:13:53.120 -on uh you know on github we have like - -0:13:52.480,0:13:56.399 -200 - -0:13:53.120,0:13:59.760 -2 600 stars which is mind-boggling to us - -0:13:56.399,0:14:02.399 -because we have so much success but - -0:13:59.760,0:14:03.360 -we have plenty of ideas about the future - -0:14:02.399,0:14:06.000 -one of the key - -0:14:03.360,0:14:08.480 -parts of development being the writing - -0:14:06.000,0:14:09.680 -of an external parser for orgrim - -0:14:08.480,0:14:11.839 -so I've been telling you about org - -0:14:09.680,0:14:15.279 -element org elements runs - -0:14:11.839,0:14:19.519 -inside Emacs but what if - -0:14:15.279,0:14:23.600 -we wrote a background process - -0:14:19.519,0:14:25.760 -that could read a file an augment file - -0:14:23.600,0:14:27.440 -extract the same type of data that you - -0:14:25.760,0:14:30.240 -see on your screen right now - -0:14:27.440,0:14:30.959 -so that we could use to update a - -0:14:30.240,0:14:33.279 -database - -0:14:30.959,0:14:34.959 -so that we could use to compute the - -0:14:33.279,0:14:37.360 -links so that we could use it - -0:14:34.959,0:14:39.519 -to show you know orgrim server all the - -0:14:37.360,0:14:41.360 -connections between your nodes - -0:14:39.519,0:14:44.320 -now there is a path of improvement here - -0:14:41.360,0:14:47.360 -that is extremely important to us - -0:14:44.320,0:14:48.639 -but you know that's the technical aspect - -0:14:47.360,0:14:50.079 -and I'm out of time I'm just going to - -0:14:48.639,0:14:51.360 -take one more minute to finish on this - -0:14:50.079,0:14:54.560 -point - -0:14:51.360,0:14:57.680 -but we believe - -0:14:54.560,0:14:58.399 -that orgrim has the potential to be a - -0:14:57.680,0:15:00.639 -think tank - -0:14:58.399,0:15:01.920 -in a way for org mode and the way we - -0:15:00.639,0:15:04.079 -think about - -0:15:01.920,0:15:06.079 -note-taking in general I've stressed a - -0:15:04.079,0:15:10.240 -great deal in my first presentation - -0:15:06.079,0:15:12.480 -sorry the one I did before neura that - -0:15:10.240,0:15:14.639 -all chrome is really great as a way to - -0:15:12.480,0:15:17.600 -think organically about knowledge - -0:15:14.639,0:15:19.279 -and honestly we kind of want to put the - -0:15:17.600,0:15:22.079 -theory into practice with orgrim - -0:15:19.279,0:15:23.440 -we are holding something which has the - -0:15:22.079,0:15:25.120 -potential to be - -0:15:23.440,0:15:27.279 -a great factor of innovation for the - -0:15:25.120,0:15:29.600 -future whether it be or org mode - -0:15:27.279,0:15:31.440 -or even for software in general you know - -0:15:29.600,0:15:34.880 -the way to think about - -0:15:31.440,0:15:37.440 -build nodes of knowledge in a way - -0:15:34.880,0:15:38.240 -and the way to represent all those ids - -0:15:37.440,0:15:40.560 -with the graph - -0:15:38.240,0:15:41.600 -the way to basically have a note-taking - -0:15:40.560,0:15:43.360 -system that - -0:15:41.600,0:15:45.839 -corresponds to the research that - -0:15:43.360,0:15:49.120 -corresponds to the way you think - -0:15:45.839,0:15:51.839 -so yeah I believe we are - -0:15:49.120,0:15:53.519 -really excited about this and if you - -0:15:51.839,0:15:55.360 -want to keep track of the development of - -0:15:53.519,0:15:57.600 -all chrome - -0:15:55.360,0:15:59.279 -I on my youtube channel which is already - -0:15:57.600,0:16:02.639 -linked a little earlier - -0:15:59.279,0:16:04.240 -inside this present inside the pad sorry - -0:16:02.639,0:16:06.079 -I do have a youtube channel where I try - -0:16:04.240,0:16:09.519 -to present novelties - -0:16:06.079,0:16:11.519 -or the new stuff inside um orgrim - -0:16:09.519,0:16:13.360 -but I also be recording videos about the - -0:16:11.519,0:16:15.519 -technical aspects about the direction - -0:16:13.360,0:16:18.000 -that we're taking with orgrim - -0:16:15.519,0:16:18.560 -and if you want to talk with us we are - -0:16:18.000,0:16:22.160 -always - -0:16:18.560,0:16:23.680 -available either on isc channel orgrom - -0:16:22.160,0:16:25.279 -I believe there's a dash between org and - -0:16:23.680,0:16:27.279 -rome but also - -0:16:25.279,0:16:29.440 -on the discourse and I'll be putting all - -0:16:27.279,0:16:31.199 -the links inside the conversation - -0:16:29.440,0:16:32.880 -and that's me done so thank you for - -0:16:31.199,0:16:34.560 -listening and now I'll be taking - -0:16:32.880,0:16:37.360 -three minutes of questions so as to be - -0:16:34.560,0:16:39.920 -right on time - -0:16:37.360,0:16:41.120 -mini thanks for your awesome talk leo - -0:16:39.920,0:16:43.040 -thank you - -0:16:41.120,0:16:44.959 -so I'm just refreshing the page and I'm - -0:16:43.040,0:16:49.279 -going to scroll down to my - -0:16:44.959,0:16:49.279 -talk if I can find the right section - -0:16:49.600,0:16:52.720 -let me just scroll a little bit - -0:16:53.120,0:16:57.120 -uh reproducible Emacs no I think it's - -0:16:55.600,0:16:59.279 -slower - -0:16:57.120,0:17:00.639 -god we have so many questions so at the - -0:16:59.279,0:17:01.120 -same time I'm pissed because I can't - -0:17:00.639,0:17:02.639 -find it - -0:17:01.120,0:17:05.360 -but I'm really really impressed by the - -0:17:02.639,0:17:07.760 -number of questions that we had oh yeah - -0:17:05.360,0:17:08.260 -um which is about I think about line 600 - -0:17:07.760,0:17:09.919 -or so - -0:17:08.260,0:17:13.199 -[Music] - -0:17:09.919,0:17:16.400 -yes got it splendid - -0:17:13.199,0:17:18.160 -so um the questions so why not run a - -0:17:16.400,0:17:19.919 -background Emacs for passing instead of - -0:17:18.160,0:17:22.559 -implementing a new parser - -0:17:19.919,0:17:24.480 -so I believe we've had this question uh - -0:17:22.559,0:17:27.600 -I was giving a similar talk - -0:17:24.480,0:17:31.679 -earlier this week and this week - -0:17:27.600,0:17:33.280 -I'm not french this week sorry and - -0:17:31.679,0:17:35.679 -someone asked me this question and the - -0:17:33.280,0:17:38.320 -thing is running a background Emacs - -0:17:35.679,0:17:40.400 -process you know it sounds great - -0:17:38.320,0:17:41.760 -but it's also very limited because all - -0:17:40.400,0:17:45.520 -the problems we have - -0:17:41.760,0:17:48.160 -about concurrency about threads in Emacs - -0:17:45.520,0:17:49.200 -well yes we can forward all our calls to - -0:17:48.160,0:17:51.760 -background Emacs - -0:17:49.200,0:17:52.240 -just like uh you know when you export a - -0:17:51.760,0:17:56.400 -file - -0:17:52.240,0:17:57.840 -with uh um sorry - -0:17:56.400,0:17:58.799 -I mean could you mute microphone when - -0:17:57.840,0:18:01.520 -you're speaking it's a little hard for - -0:17:58.799,0:18:03.600 -me to concentrate - -0:18:01.520,0:18:04.640 -that's fine don't worry you are now uh - -0:18:03.600,0:18:06.960 -so um - -0:18:04.640,0:18:07.679 -dammit where was I I'm sorry the - -0:18:06.960,0:18:09.280 -question yes - -0:18:07.679,0:18:11.840 -so basically forwarding all the - -0:18:09.280,0:18:13.039 -questions uh sorry all our queries to uh - -0:18:11.840,0:18:16.000 -background Emacs - -0:18:13.039,0:18:17.960 -that is what uh org export is doing like - -0:18:16.000,0:18:20.799 -you have the ability to - -0:18:17.960,0:18:22.080 -asynchronously export latex documents - -0:18:20.799,0:18:24.480 -odt documents from - -0:18:22.080,0:18:26.000 -org mode and it uses a very minimal - -0:18:24.480,0:18:28.240 -version of Emacs to do that but the - -0:18:26.000,0:18:30.320 -problem is that we think that it's not - -0:18:28.240,0:18:33.039 -going to scale as well as a true - -0:18:30.320,0:18:34.480 -genuine background process and since we - -0:18:33.039,0:18:36.000 -have been talking a lot - -0:18:34.480,0:18:38.160 -as far as the old mode development is - -0:18:36.000,0:18:40.640 -concerned about - -0:18:38.160,0:18:41.760 -writing a proper parser writing a proper - -0:18:40.640,0:18:43.440 -documentation - -0:18:41.760,0:18:46.000 -for the passing of old mode file and - -0:18:43.440,0:18:48.400 -writing a proper document standard - -0:18:46.000,0:18:50.000 -that says okay this is how the old mode - -0:18:48.400,0:18:52.000 -format works you know to - -0:18:50.000,0:18:55.120 -basically have a way to not fall into - -0:18:52.000,0:18:56.559 -the traps of markdown which has many - -0:18:55.120,0:18:58.480 -many standards - -0:18:56.559,0:19:00.000 -we need to think about this and we - -0:18:58.480,0:19:01.360 -believe that all grown has - -0:19:00.000,0:19:03.120 -the ability to think about these - -0:19:01.360,0:19:04.640 -questions and as a - -0:19:03.120,0:19:06.400 -as a person I'm also really interested - -0:19:04.640,0:19:07.840 -about this so - -0:19:06.400,0:19:10.160 -I can take the question I mean so don't - -0:19:07.840,0:19:11.760 -worry about feeding them to me so how - -0:19:10.160,0:19:13.679 -often does the - -0:19:11.760,0:19:14.799 -db index get updated in order to contain - -0:19:13.679,0:19:17.360 -changes within the - -0:19:14.799,0:19:19.440 -files so we have two ways either we - -0:19:17.360,0:19:22.160 -update as soon as you save a file - -0:19:19.440,0:19:23.600 -or we have a timer which is an idle - -0:19:22.160,0:19:25.600 -timer which waits okay - -0:19:23.600,0:19:26.960 -the user has not imputed inputted - -0:19:25.600,0:19:29.360 -anything in the last - -0:19:26.960,0:19:30.080 -five seconds so it's time to queue a - -0:19:29.360,0:19:33.039 -database - -0:19:30.080,0:19:33.919 -passing a rebuild of the data not a an - -0:19:33.039,0:19:37.120 -incrementation - -0:19:33.919,0:19:38.799 -of the database I should say so - -0:19:37.120,0:19:40.320 -did you ever think of uh I believe I - -0:19:38.799,0:19:42.240 -have one more one more minutes and then - -0:19:40.320,0:19:43.440 -I'll hand it to the other folks - -0:19:42.240,0:19:45.440 -do you ever think of opening up or - -0:19:43.440,0:19:47.200 -designing the sqldb as a general all - -0:19:45.440,0:19:48.160 -speed up tool outside of orgrom so that - -0:19:47.200,0:19:49.919 -other libraries - -0:19:48.160,0:19:51.679 -that do execute complex queries are able - -0:19:49.919,0:19:52.960 -to use it well - -0:19:51.679,0:19:54.640 -a lot of people have been working on - -0:19:52.960,0:19:56.480 -this and I believe alpha papa has been - -0:19:54.640,0:19:57.679 -thinking quite a lot about this you know - -0:19:56.480,0:20:01.120 -all ql - -0:19:57.679,0:20:03.679 -is the ql stands for language - -0:20:01.120,0:20:04.720 -and I I can't remember now what's uh - -0:20:03.679,0:20:08.080 -what's the backend - -0:20:04.720,0:20:10.080 -is for all ql but the idea is relatively - -0:20:08.080,0:20:13.039 -relatively the same you know it's about - -0:20:10.080,0:20:14.880 -finding ways to optimize the way we - -0:20:13.039,0:20:16.640 -store the data about an old mode file - -0:20:14.880,0:20:20.400 -and how we retrieve it - -0:20:16.640,0:20:22.159 -and sql for us seems to seem to be a - -0:20:20.400,0:20:24.240 -good idea now obviously - -0:20:22.159,0:20:26.080 -maybe we could do something about old - -0:20:24.240,0:20:27.360 -mode but the problem is I think a - -0:20:26.080,0:20:30.799 -background process - -0:20:27.360,0:20:32.960 -is not necessarily um in - -0:20:30.799,0:20:34.000 -the core mentality of old mode but it's - -0:20:32.960,0:20:36.080 -definitely a - -0:20:34.000,0:20:37.679 -something that we could suggest uh when - -0:20:36.080,0:20:40.960 -we are a little more mature because well - -0:20:37.679,0:20:41.679 -orgrom was started last february and so - -0:20:40.960,0:20:44.480 -it's a fairly - -0:20:41.679,0:20:45.840 -young project in a way so uh I see - -0:20:44.480,0:20:48.400 -plenty more questions but - -0:20:45.840,0:20:50.559 -I'm out of time folks so I'm not sure uh - -0:20:48.400,0:20:52.559 -the other speaker is probably ready - -0:20:50.559,0:20:54.000 -so what I'll do is I'll probably try to - -0:20:52.559,0:20:55.360 -answer your questions when I get the - -0:20:54.000,0:20:58.960 -time inside the pad - -0:20:55.360,0:21:01.039 -but feel free to ping me on isc - -0:20:58.960,0:21:02.320 -or on the different channels we have - -0:21:01.039,0:21:04.000 -foreground and - -0:21:02.320,0:21:05.520 -I answer them with you know as much - -0:21:04.000,0:21:07.600 -energy as I can gather - -0:21:05.520,0:21:08.880 -all right thank you so much you are now - -0:21:07.600,0:21:11.760 -unmuted - -0:21:08.880,0:21:13.120 -thank you again very much leo and that - -0:21:11.760,0:21:14.000 -was me done for today so you'll see me - -0:21:13.120,0:21:15.840 -at the end but I'm - -0:21:14.000,0:21:17.840 -officially done and I am free of - -0:21:15.840,0:21:22.640 -thoughts I can focus on - -0:21:17.840,0:21:27.760 -sleeping probably awesome - -0:21:22.640,0: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.sbv b/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.sbv deleted file mode 100644 index 23334b94..00000000 --- a/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.sbv +++ /dev/null @@ -1,708 +0,0 @@ -0:00:01.120,0:00:04.560 -hi my name is brett gillio - -0:00:03.120,0:00:05.920 -and today I'll be sharing a project that - -0:00:04.560,0:00:07.520 -several people and I've been working on - -0:00:05.920,0:00:08.480 -for the past few months called org - -0:00:07.520,0:00:10.559 -webbery - -0:00:08.480,0:00:12.240 -the essential idea behind org webbering - -0:00:10.559,0:00:13.679 -is to take the power of creating a - -0:00:12.240,0:00:15.360 -website with org mode - -0:00:13.679,0:00:17.520 -and its built-in features to control - -0:00:15.360,0:00:19.119 -html and xml output - -0:00:17.520,0:00:22.080 -and utilize it to share blogs git - -0:00:19.119,0:00:22.640 -commits or other rss or atom static feed - -0:00:22.080,0:00:25.920 -content - -0:00:22.640,0:00:28.560 -to share directly with your audiences - -0:00:25.920,0:00:30.000 -my website is created entirely using org - -0:00:28.560,0:00:31.679 -mode and I love the amount of - -0:00:30.000,0:00:34.079 -flexibility it offers me while keeping - -0:00:31.679,0:00:35.920 -everything quite simple - -0:00:34.079,0:00:37.600 -I am able to put information about - -0:00:35.920,0:00:40.079 -myself a blog - -0:00:37.600,0:00:42.879 -and my org web ring tool directly on on - -0:00:40.079,0:00:44.640 -the home page using symbol org syntax - -0:00:42.879,0:00:46.239 -as you can see I am currently displaying - -0:00:44.640,0:00:48.239 -three posts on my website - -0:00:46.239,0:00:49.840 -the first is the geeksday announcement - -0:00:48.239,0:00:51.039 -the second is a quarterly financial - -0:00:49.840,0:00:52.320 -update from sourcehut - -0:00:51.039,0:00:54.480 -and the third is a post from - -0:00:52.320,0:00:55.120 -drewdevault's blog drew devault by the - -0:00:54.480,0:00:57.680 -way - -0:00:55.120,0:00:59.039 -his open ring is what helped inspire - -0:00:57.680,0:01:01.359 -what is today or - -0:00:59.039,0:01:03.440 -web ring all this information is - -0:01:01.359,0:01:05.360 -gathered using a sort of manifest file - -0:01:03.440,0:01:07.040 -that org web ring will use to acquire - -0:01:05.360,0:01:07.760 -and place the information in the correct - -0:01:07.040,0:01:10.000 -format - -0:01:07.760,0:01:10.799 -according to your specification - -0:01:10.000,0:01:11.840 -additionally - -0:01:10.799,0:01:14.159 -you can see that the geeksday - -0:01:11.840,0:01:16.000 -announcement is post is pinned - -0:01:14.159,0:01:17.200 -stylization is likewise controlled by - -0:01:16.000,0:01:18.960 -using css - -0:01:17.200,0:01:20.720 -you can add nice subtle color changes on - -0:01:18.960,0:01:23.759 -mouse hover or control the size of the - -0:01:20.720,0:01:26.080 -flexboxes all using standard css - -0:01:23.759,0:01:28.320 -let's examine a simple scenario of using - -0:01:26.080,0:01:30.400 -org webroom - -0:01:28.320,0:01:32.000 -after you have org webbing installed - -0:01:30.400,0:01:33.759 -you'll be able to create a manifest file - -0:01:32.000,0:01:35.680 -that looks something like this - -0:01:33.759,0:01:37.840 -this particular manifest file is an - -0:01:35.680,0:01:39.520 -example offered in the repository under - -0:01:37.840,0:01:41.200 -the assets directory - -0:01:39.520,0:01:42.640 -please feel free to utilize them as a - -0:01:41.200,0:01:44.399 -starting point if you are interested in - -0:01:42.640,0:01:46.320 -using org web ring - -0:01:44.399,0:01:48.640 -as you can see here we are able to place - -0:01:46.320,0:01:50.479 -an rss or atom feed in this file and - -0:01:48.640,0:01:51.920 -specify information about the feed we - -0:01:50.479,0:01:54.640 -wish to produce - -0:01:51.920,0:01:56.159 -for example the total number of items - -0:01:54.640,0:01:57.439 -and the total number of entries per - -0:01:56.159,0:01:59.439 -source item - -0:01:57.439,0:02:00.960 -additionally you're able to filter posts - -0:01:59.439,0:02:02.079 -you feel would not be relevant to your - -0:02:00.960,0:02:04.079 -web ring - -0:02:02.079,0:02:09.840 -we can take this example file and run - -0:02:04.079,0:02:09.840 -the dispatch and see the result - -0:02:13.120,0:02:17.760 -the web ring displays a proper summary - -0:02:15.280,0:02:19.599 -set to a character limit you can specify - -0:02:17.760,0:02:21.520 -additionally all the links in the web - -0:02:19.599,0:02:22.560 -ring are navigable and will open in a - -0:02:21.520,0:02:24.239 -new tab - -0:02:22.560,0:02:25.920 -that way if someone wishes to view the - -0:02:24.239,0:02:30.319 -content they simply need to - -0:02:25.920,0:02:32.879 -click on the title or their source name - -0:02:30.319,0:02:34.800 -now this particular example is not - -0:02:32.879,0:02:37.120 -stylized because we have not given the - -0:02:34.800,0:02:38.720 -website a css file to reference - -0:02:37.120,0:02:40.319 -let's examine what is happening from - -0:02:38.720,0:02:43.040 -behind the scenes a little bit - -0:02:40.319,0:02:43.360 -from inside of the org mode file let's - -0:02:43.040,0:02:46.959 -run - -0:02:43.360,0:02:46.959 -the org web ring function - -0:02:48.800,0:02:54.239 -as you can see it takes that xml file - -0:02:51.280,0:02:56.080 -and processes it into the correct html - -0:02:54.239,0:02:58.080 -you will then be able to embed this org - -0:02:56.080,0:03:00.080 -function into another org file to be - -0:02:58.080,0:03:02.840 -able to display it on your website - -0:03:00.080,0:03:05.440 -pretty neat let's look at an at another - -0:03:02.840,0:03:07.360 -example - -0:03:05.440,0:03:09.519 -on my website we have an example of - -0:03:07.360,0:03:10.800 -using org webbring to reply to another - -0:03:09.519,0:03:12.480 -blog post - -0:03:10.800,0:03:14.640 -what I have here is a post from drew to - -0:03:12.480,0:03:16.239 -vault's blog it is showcased clearly at - -0:03:14.640,0:03:19.040 -the top as a single entry - -0:03:16.239,0:03:20.800 -and you can see it is pinned the pinning - -0:03:19.040,0:03:22.400 -functionality ensures that this post is - -0:03:20.800,0:03:23.120 -moved to the front of the hypothetical - -0:03:22.400,0:03:25.760 -web ring - -0:03:23.120,0:03:27.599 -and guaranteeing its visibility this is - -0:03:25.760,0:03:29.840 -then coupled with a few changes such as - -0:03:27.599,0:03:31.120 -disabling the generation time - -0:03:29.840,0:03:33.280 -which would not be relevant to the - -0:03:31.120,0:03:34.000 -readers and a change of the text in the - -0:03:33.280,0:03:37.040 -header - -0:03:34.000,0:03:39.599 -to demonstrate is indeed used as a reply - -0:03:37.040,0:03:42.319 -an example of this is also provided in - -0:03:39.599,0:03:44.799 -the assets directory - -0:03:42.319,0:03:45.519 -last we can use org webbring as a blog - -0:03:44.799,0:03:47.599 -planet - -0:03:45.519,0:03:49.360 -which is one of my favorites this takes - -0:03:47.599,0:03:51.120 -after the emax life planet which I - -0:03:49.360,0:03:53.200 -believe is moderated by sasha - -0:03:51.120,0:03:54.720 -and others as well as the haskell and - -0:03:53.200,0:03:56.959 -ocamoplanets - -0:03:54.720,0:03:58.879 -a planet for the uninitiated is a - -0:03:56.959,0:04:00.159 -curated form of content sharing about a - -0:03:58.879,0:04:02.400 -set of topics - -0:04:00.159,0:04:03.439 -the max life haskell and ocampo planets - -0:04:02.400,0:04:05.920 -as their names imply - -0:04:03.439,0:04:07.200 -cover Emacs haskell and ocampo blogs - -0:04:05.920,0:04:09.680 -respectively - -0:04:07.200,0:04:11.360 -likewise my planet covers programming - -0:04:09.680,0:04:12.239 -language theory and category theory - -0:04:11.360,0:04:13.920 -primarily - -0:04:12.239,0:04:15.840 -it works in essentially the same way as - -0:04:13.920,0:04:17.519 -the org web ring you provide it with a - -0:04:15.840,0:04:20.000 -list of feeds that get parsed - -0:04:17.519,0:04:21.919 -however unlike the web ring the planet - -0:04:20.000,0:04:23.040 -function has no limits on the number of - -0:04:21.919,0:04:24.639 -entries per source - -0:04:23.040,0:04:27.600 -and the display number of posts is - -0:04:24.639,0:04:29.759 -increased significantly - -0:04:27.600,0:04:30.720 -the syndicates or sources have their - -0:04:29.759,0:04:32.639 -feeds shown - -0:04:30.720,0:04:33.759 -visibly to users who may wish to fetch - -0:04:32.639,0:04:35.440 -them - -0:04:33.759,0:04:37.040 -a planet is typically meant to be a - -0:04:35.440,0:04:38.639 -standalone page and not something you - -0:04:37.040,0:04:39.440 -would embed in another page like a web - -0:04:38.639,0:04:41.680 -ring - -0:04:39.440,0:04:43.600 -all this is provided under a single file - -0:04:41.680,0:04:45.280 -in the org web ring package as the code - -0:04:43.600,0:04:48.240 -reuse is quite high - -0:04:45.280,0:04:49.840 -aside from my own website we can view - -0:04:48.240,0:04:52.400 -the org web ring being used in neat - -0:04:49.840,0:04:54.320 -context with varying stylizations - -0:04:52.400,0:04:57.680 -here's a nice example from mikhail - -0:04:54.320,0:05:00.000 -kirilov at w96k.ru - -0:04:57.680,0:05:00.960 -featuring a four symmetrical flexbox - -0:05:00.000,0:05:02.720 -layout - -0:05:00.960,0:05:04.720 -an appropriate russian language timing - -0:05:02.720,0:05:07.360 -coding which can be also set in the org - -0:05:04.720,0:05:09.600 -web ring manifest - -0:05:07.360,0:05:10.400 -another is an example from camilo mesa - -0:05:09.600,0:05:13.280 -gayete - -0:05:10.400,0:05:14.320 -using ox hugo with org webring and - -0:05:13.280,0:05:15.840 -likewise correct - -0:05:14.320,0:05:17.680 -features the correct spanish time - -0:05:15.840,0:05:22.240 -encoding - -0:05:17.680,0:05:24.400 -last my other website workircd.org - -0:05:22.240,0:05:26.560 -shows the web ring being used in - -0:05:24.400,0:05:27.440 -combination with ocamo's tool link - -0:05:26.560,0:05:31.440 -supalt - -0:05:27.440,0:05:31.440 -to fetch git logs for that project - -0:05:32.800,0:05:36.320 -you may obtain org web ring directly - -0:05:34.639,0:05:37.039 -from source hut and add it to your load - -0:05:36.320,0:05:39.639 -path - -0:05:37.039,0:05:40.800 -additionally you will need to obtain - -0:05:39.639,0:05:43.280 -xmlgen.el - -0:05:40.800,0:05:44.960 -which is unfortunately not yet on alpha - -0:05:43.280,0:05:46.800 -although I have been trying to get this - -0:05:44.960,0:05:49.840 -rectified so I do not have to rewrite - -0:05:46.800,0:05:51.759 -org web brings xml to html parser - -0:05:49.840,0:05:54.000 -or if you're one of the cool kids using - -0:05:51.759,0:06:06.319 -my favorite package manager gnu geeks - -0:05:54.000,0:06:08.800 -you can obtain it like so - -0:06:06.319,0:06:09.840 -all of the documentation for org web - -0:06:08.800,0:06:12.000 -ring is available - -0:06:09.840,0:06:13.840 -on the sourceup website or in the readme - -0:06:12.000,0:06:15.039 -file after you check it out from the get - -0:06:13.840,0:06:17.360 -tree - -0:06:15.039,0:06:18.240 -there are so many ways to customize org - -0:06:17.360,0:06:20.880 -web ring - -0:06:18.240,0:06:21.520 -as there are just as many variables as - -0:06:20.880,0:06:24.319 -there are - -0:06:21.520,0:06:25.759 -parts and components to org web ring for - -0:06:24.319,0:06:27.759 -you to change - -0:06:25.759,0:06:31.520 -all of this is able to be done simply - -0:06:27.759,0:06:31.520 -from that same manifest file - -0:06:31.600,0:06:35.759 -now taking a moment to examine some of - -0:06:33.919,0:06:37.840 -the org web ring code - -0:06:35.759,0:06:40.160 -you can see it is all done in the same - -0:06:37.840,0:06:43.120 -e-lisp that everybody else is used to - -0:06:40.160,0:06:43.919 -now admittedly my e-lisp is not as - -0:06:43.120,0:06:47.120 -strong as - -0:06:43.919,0:06:50.479 -probably somebody else's so if you are - -0:06:47.120,0:06:53.280 -an e-lisp ninja please feel free to - -0:06:50.479,0:06:54.880 -send a contribution or a patch and tell - -0:06:53.280,0:06:57.039 -me what I'm doing wrong - -0:06:54.880,0:06:58.639 -it's I am not going to be offended by - -0:06:57.039,0:06:59.360 -that at all I would love to see this - -0:06:58.639,0:07:02.560 -code to - -0:06:59.360,0:07:04.160 -improve otherwise I don't think it's - -0:07:02.560,0:07:06.800 -half bad - -0:07:04.160,0:07:08.880 -considering that my experience with - -0:07:06.800,0:07:11.280 -lisps is usually in scheme - -0:07:08.880,0:07:13.680 -me moving from scheme to e-lisp was not - -0:07:11.280,0:07:17.120 -all that hard - -0:07:13.680,0:07:20.880 -taking the syntax apart - -0:07:17.120,0:07:24.240 -we're able to see that we can - -0:07:20.880,0:07:27.680 -fetch urls which are then parsed and - -0:07:24.240,0:07:28.479 -filtered sorted and then kind of reverse - -0:07:27.680,0:07:32.960 -sorted - -0:07:28.479,0:07:34.639 -rather to get you to the web ring result - -0:07:32.960,0:07:37.840 -all of this is then passed through - -0:07:34.639,0:07:40.639 -different parts of the xmlgen.el - -0:07:37.840,0:07:43.360 -functions which gets you that html that - -0:07:40.639,0:07:43.360 -you saw earlier - -0:07:43.520,0:07:47.440 -org webbring is fully free software - -0:07:45.599,0:07:49.280 -distributed under the gnu general public - -0:07:47.440,0:07:52.000 -license versions three or later - -0:07:49.280,0:07:53.120 -at your option I love accepting patches - -0:07:52.000,0:07:54.319 -and collaborating - -0:07:53.120,0:07:56.720 -I hope you will consider using - -0:07:54.319,0:07:59.759 -orawebring you can contact me on - -0:07:56.720,0:08:01.520 -freenode oftc or many other ioc irc - -0:07:59.759,0:08:05.120 -networks at brettgillio - -0:08:01.520,0:08:07.759 -or email me at brettgee gnu.org - -0:08:05.120,0:08:08.720 -thanks so much to amin bendali and the - -0:08:07.759,0:08:11.120 -Emacs cough - -0:08:08.720,0:08:13.840 -organizers and to you the audience - -0:08:11.120,0:08:13.840 -thanks - diff --git a/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.sbv b/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.sbv deleted file mode 100644 index 83a99db6..00000000 --- a/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.sbv +++ /dev/null @@ -1,1605 +0,0 @@ -0:00:00.480,0:00:04.319 -uh well good evening again uh I think I - -0:00:02.879,0:00:07.359 -have a little time here - -0:00:04.319,0:00:09.120 -uh to talk about macros uh is there - -0:00:07.359,0:00:09.440 -still room in our in our schedule for - -0:00:09.120,0:00:11.440 -that - -0:00:09.440,0:00:12.559 -or should I just kind of jump to some of - -0:00:11.440,0:00:15.920 -my thoughts on the day - -0:00:12.559,0:00:17.039 -you are now unmuted um pretty sure we - -0:00:15.920,0:00:19.439 -have some time - -0:00:17.039,0:00:20.720 -all right great yeah go for it well I'll - -0:00:19.439,0:00:22.640 -just drive into my pre - -0:00:20.720,0:00:24.720 -prepared thing to hear that yeah - -0:00:22.640,0:00:28.400 -actually you're right on time so - -0:00:24.720,0:00:31.199 -oh what an amazing thing I I just uh - -0:00:28.400,0:00:33.040 -you know I have been trying to do what I - -0:00:31.199,0:00:36.239 -I've got a big thank you planet to get - -0:00:33.040,0:00:39.200 -at the end but let me just say I uh - -0:00:36.239,0:00:42.160 -it's it's been really cool to watch the - -0:00:39.200,0:00:46.000 -way that people work together - -0:00:42.160,0:00:46.800 -absolutely it's this whole event today - -0:00:46.000,0:00:50.879 -has been - -0:00:46.800,0:00:53.120 -nothing but awesome and uh no less like - -0:00:50.879,0:00:54.719 -no little part thanks to all of the help - -0:00:53.120,0:00:59.120 -from all of you guys - -0:00:54.719,0:01:02.399 -and um everyone oh yeah it's awesome - -0:00:59.120,0:01:03.520 -um yeah with that all just um shut up - -0:01:02.399,0:01:06.479 -for now and uh - -0:01:03.520,0:01:09.840 -take it away corwin you know how to make - -0:01:06.479,0:01:12.799 -make that the default and good old cemex - -0:01:09.840,0:01:14.880 -all right so I'm gonna try to continue - -0:01:12.799,0:01:16.960 -my theme from the previous talk I'm a - -0:01:14.880,0:01:20.240 -longtime Emacs user but I'm - -0:01:16.960,0:01:22.880 -a pretty new person - -0:01:20.240,0:01:24.960 -to trying to really understand what's - -0:01:22.880,0:01:28.240 -going on within Emacs and make - -0:01:24.960,0:01:30.960 -my customizations to it uh simple for - -0:01:28.240,0:01:33.280 -what I tend to just think of will work - -0:01:30.960,0:01:36.240 -and maybe that's that's that's a nice - -0:01:33.280,0:01:40.479 -bow to put on that earlier talk - -0:01:36.240,0:01:43.759 -so uh whoops - -0:01:40.479,0:01:47.759 -uh let's see here now it's ctrl x - -0:01:43.759,0:01:47.759 -alt I that's right - -0:01:48.159,0:01:52.000 -and let's try that again okay good - -0:01:52.960,0:01:58.000 -so demoing is fun uh but I - -0:01:56.000,0:01:59.759 -will save most of that for tomorrow - -0:01:58.000,0:02:03.040 -where my - -0:01:59.759,0:02:04.799 -dear friend and co-collaborator in - -0:02:03.040,0:02:07.119 -bringing you the dungeon mode project - -0:02:04.799,0:02:08.720 -which is uh sort of - -0:02:07.119,0:02:10.800 -the exciting thing that we we hope - -0:02:08.720,0:02:14.480 -you'll be interested in - -0:02:10.800,0:02:15.680 -um I think gets a little more of a - -0:02:14.480,0:02:19.360 -reveal - -0:02:15.680,0:02:22.640 -uh tonight I'll just uh close saying - -0:02:19.360,0:02:24.319 -um a few things about the process of - -0:02:22.640,0:02:25.680 -making it and continuing my theme of - -0:02:24.319,0:02:28.720 -community - -0:02:25.680,0:02:29.760 -uh first of all a specific and upfront - -0:02:28.720,0:02:33.120 -shout out - -0:02:29.760,0:02:36.239 -to tv's wasa masa who - -0:02:33.120,0:02:38.720 -um absolutely shaped and guided this - -0:02:36.239,0:02:40.080 -this program I I may have taken out a - -0:02:38.720,0:02:43.599 -slide with your name on it but - -0:02:40.080,0:02:46.720 -thank you um - -0:02:43.599,0:02:47.120 -so when we think about Emacs macros and - -0:02:46.720,0:02:50.239 -the - -0:02:47.120,0:02:53.280 -power that they give us - -0:02:50.239,0:02:54.720 -I think about them the the - -0:02:53.280,0:02:56.400 -you know I think about them as a really - -0:02:54.720,0:03:00.239 -deep rabbit hole they confuse - -0:02:56.400,0:03:02.480 -people a lot and so to try to center - -0:03:00.239,0:03:03.599 -myself on that I remember first that - -0:03:02.480,0:03:05.840 -they're - -0:03:03.599,0:03:08.239 -they're going to be talking to us about - -0:03:05.840,0:03:08.239 -code - -0:03:09.599,0:03:13.519 -uh excuse me I realize I hadn't set my - -0:03:12.080,0:03:18.000 -timer - -0:03:13.519,0:03:21.680 -here we are - -0:03:18.000,0:03:22.239 -um so a simple macro syntax is going to - -0:03:21.680,0:03:25.920 -generate - -0:03:22.239,0:03:27.760 -something that is implicitly confusing - -0:03:25.920,0:03:28.720 -to somebody that knows the syntax of - -0:03:27.760,0:03:31.200 -emax lisp - -0:03:28.720,0:03:32.000 -well we see something like this and a - -0:03:31.200,0:03:36.239 -veteran I - -0:03:32.000,0:03:39.760 -says that x isn't quoted what's going on - -0:03:36.239,0:03:39.760 -but it can be hard to miss - -0:03:39.840,0:03:44.640 -um a lot of the functions as we'll talk - -0:03:43.040,0:03:46.640 -about in a moment that are built into - -0:03:44.640,0:03:48.959 -Emacs - -0:03:46.640,0:03:50.480 -really are macros so a lot of Emacs - -0:03:48.959,0:03:53.040 -features work this way - -0:03:50.480,0:03:54.640 -it might be scary but we have to look at - -0:03:53.040,0:03:57.760 -it closely if we really want to get - -0:03:54.640,0:03:57.760 -friendly with Emacs - -0:03:58.400,0:04:03.920 -um let's just jump right into deaf macro - -0:04:01.439,0:04:04.720 -which is which is our key entry point - -0:04:03.920,0:04:08.560 -and the - -0:04:04.720,0:04:12.000 -notes from this talk include the link um - -0:04:08.560,0:04:14.640 -to that uh which which definitely - -0:04:12.000,0:04:16.000 -uh read through a couple of times and - -0:04:14.640,0:04:19.440 -that may take you through - -0:04:16.000,0:04:23.440 -into the cldf macro which adds - -0:04:19.440,0:04:26.840 -the common list lisp extensions - -0:04:23.440,0:04:30.560 -and uh definitely - -0:04:26.840,0:04:31.759 -uh challenging uh I've struggled there - -0:04:30.560,0:04:34.800 -as we'll take a look at in - -0:04:31.759,0:04:36.400 -in a moment um - -0:04:34.800,0:04:38.320 -so I haven't played too much with cl - -0:04:36.400,0:04:42.160 -maclet perhaps success in - -0:04:38.320,0:04:44.320 -in that uh keyword space and figuring - -0:04:42.160,0:04:46.000 -out what the right balance is there - -0:04:44.320,0:04:47.680 -what will give me the confidence to try - -0:04:46.000,0:04:51.600 -some more lexical - -0:04:47.680,0:04:51.600 -uh macros - -0:04:51.680,0:04:55.440 -let me also briefly introduce the comma - -0:04:53.919,0:04:58.479 -and back quote if you - -0:04:55.440,0:05:00.080 -have uh allowed your eyes to cross when - -0:04:58.479,0:05:03.600 -you see these and that's not - -0:05:00.080,0:05:06.080 -uh a shameful shameful thing it's - -0:05:03.600,0:05:08.160 -confusing and we should be - -0:05:06.080,0:05:09.520 -alerting each other when we when we - -0:05:08.160,0:05:11.199 -stick macros in - -0:05:09.520,0:05:12.960 -often by putting them in different - -0:05:11.199,0:05:14.160 -different library spaces for complicated - -0:05:12.960,0:05:17.520 -projects - -0:05:14.160,0:05:19.520 -or um otherwise sort of warning people - -0:05:17.520,0:05:21.919 -that this is not an interactive function - -0:05:19.520,0:05:22.639 -if you get away with using it like one - -0:05:21.919,0:05:25.840 -um - -0:05:22.639,0:05:25.840 -to watch your back - -0:05:26.000,0:05:32.800 -the uh - -0:05:29.440,0:05:35.840 -the manual itself talks about macros - -0:05:32.800,0:05:39.039 -as being a way of evaluating - -0:05:35.840,0:05:41.520 -you know as as being um - -0:05:39.039,0:05:42.800 -an evaluator that will take our amex - -0:05:41.520,0:05:44.800 -lisp expression - -0:05:42.800,0:05:47.590 -and the set of forms that kind of that - -0:05:44.800,0:05:48.960 -will feed to it our code - -0:05:47.590,0:05:51.120 -[Music] - -0:05:48.960,0:05:52.000 -but it also provides us with this - -0:05:51.120,0:05:55.039 -concept of an - -0:05:52.000,0:05:56.639 -environment and and and that's really - -0:05:55.039,0:05:58.240 -where the power - -0:05:56.639,0:06:00.080 -comes in through that we can have - -0:05:58.240,0:06:03.199 -lexical variables and - -0:06:00.080,0:06:06.400 -um think about uh bring in some of the - -0:06:03.199,0:06:09.759 -capabilities that - -0:06:06.400,0:06:13.840 -um can be harder to reach with - -0:06:09.759,0:06:14.800 -a a a pure declarative statement that - -0:06:13.840,0:06:18.000 -doesn't allow - -0:06:14.800,0:06:21.440 -for uh - -0:06:18.000,0:06:27.360 -top level - -0:06:21.440,0:06:27.360 -um asynchronous asynchronicity - -0:06:28.639,0:06:33.520 -uh I'm gonna basically - -0:06:31.950,0:06:35.759 -[Music] - -0:06:33.520,0:06:36.880 -ignore the bike compilation phase for - -0:06:35.759,0:06:38.639 -this talk - -0:06:36.880,0:06:39.919 -uh in order to have any prayer of - -0:06:38.639,0:06:43.600 -getting through it in the - -0:06:39.919,0:06:48.319 -remaining nine or 11 minutes or whatever - -0:06:43.600,0:06:50.160 -uh but - -0:06:48.319,0:06:52.240 -suffice it to say it that's a scary - -0:06:50.160,0:06:54.160 -space and that's that's that's really - -0:06:52.240,0:06:57.199 -the thing that you want to start - -0:06:54.160,0:07:02.160 -learning about as you think about taking - -0:06:57.199,0:07:05.919 -taking macros on uh in earnest - -0:07:02.160,0:07:07.440 -the um coming back to the comma syntax - -0:07:05.919,0:07:09.759 -then - -0:07:07.440,0:07:12.479 -having having given ourselves sort of a - -0:07:09.759,0:07:14.479 -working definition for the Emacs lisp - -0:07:12.479,0:07:15.840 -runtime environment then we can say that - -0:07:14.479,0:07:20.880 -macros are going to - -0:07:15.840,0:07:20.880 -inject code back into that stream - -0:07:21.120,0:07:28.479 -whereas back quote is going to - -0:07:25.280,0:07:31.919 -uh going to give code back - -0:07:28.479,0:07:34.560 -to the to the stream or interject sorry - -0:07:31.919,0:07:35.360 -it's going to interject uh back into the - -0:07:34.560,0:07:39.840 -stream - -0:07:35.360,0:07:43.280 -uh sort of uh an exclamatory excuse me - -0:07:39.840,0:07:46.720 -I'd like to uh - -0:07:43.280,0:07:48.639 -have a value here and we can take that - -0:07:46.720,0:07:52.560 -value from the environment as it exists - -0:07:48.639,0:07:52.560 -when our macro is evaluated - -0:07:54.160,0:07:57.280 -back quote on the other hand takes the - -0:07:56.639,0:08:00.560 -result - -0:07:57.280,0:08:02.400 -from that and uh - -0:08:00.560,0:08:04.319 -and returns it back to the stream for - -0:08:02.400,0:08:05.680 -evaluation at the processing level that - -0:08:04.319,0:08:08.720 -invoked us - -0:08:05.680,0:08:10.960 -so in other words perhaps back up to - -0:08:08.720,0:08:14.080 -a top level eval expression where our - -0:08:10.960,0:08:14.080 -macro is invoked - -0:08:16.720,0:08:22.560 -uh wrong way so um - -0:08:20.080,0:08:23.759 -with what's I'm going to briefly bring - -0:08:22.560,0:08:27.120 -you back to the game - -0:08:23.759,0:08:30.240 -for just a moment - -0:08:27.120,0:08:32.479 -um I won't - -0:08:30.240,0:08:33.599 -I won't has I won't linger on this slide - -0:08:32.479,0:08:37.039 -but but - -0:08:33.599,0:08:40.080 -briefly uh this is a - -0:08:37.039,0:08:43.599 -roll paper role-playing pen - -0:08:40.080,0:08:46.320 -and pencil uh physical dice - -0:08:43.599,0:08:48.080 -tradition that dates back a long time - -0:08:46.320,0:08:51.279 -from a technology perspective - -0:08:48.080,0:08:54.640 -it's it's old in the same way that uh - -0:08:51.279,0:08:56.959 -other tools uh that I like are - -0:08:54.640,0:08:56.959 -old - -0:08:58.560,0:09:02.560 -uh it's simple to understand and I can - -0:09:00.560,0:09:04.160 -communicate a lot with it with a simple - -0:09:02.560,0:09:09.120 -amount of you know typing or - -0:09:04.160,0:09:12.399 -scribbling something on a piece of paper - -0:09:09.120,0:09:15.519 -it has a complicated problem space um - -0:09:12.399,0:09:18.560 -of its own again I don't want to - -0:09:15.519,0:09:21.680 -get too much into the game here but - -0:09:18.560,0:09:23.360 -uh in this in this talk for the last - -0:09:21.680,0:09:26.640 -five minutes I'll focus - -0:09:23.360,0:09:29.920 -on the process that we took to to - -0:09:26.640,0:09:31.120 -automate uh getting data out of the org - -0:09:29.920,0:09:32.720 -mode tables which - -0:09:31.120,0:09:36.000 -eventually as we'll talk about more - -0:09:32.720,0:09:39.279 -tomorrow are used to draw - -0:09:36.000,0:09:39.279 -game maps and other things - -0:09:39.440,0:09:45.279 -um here I talk about kind of why we did - -0:09:42.240,0:09:49.360 -that I'm going to skip briefly past that - -0:09:45.279,0:09:51.920 -and say instead that at a high level - -0:09:49.360,0:09:53.519 -it's it's symbolic informatics we're - -0:09:51.920,0:09:58.080 -giving a symbolic name - -0:09:53.519,0:10:00.320 -to a tile set and then - -0:09:58.080,0:10:00.320 -uh - -0:10:02.000,0:10:05.360 -and then assigning that tile set some - -0:10:04.000,0:10:06.000 -some characteristics like physical - -0:10:05.360,0:10:08.399 -speeds - -0:10:06.000,0:10:09.279 -screen space a variable that we might - -0:10:08.399,0:10:12.800 -want to swap in - -0:10:09.279,0:10:15.200 -and so forth uh and - -0:10:12.800,0:10:16.160 -you know our project rests heavily on on - -0:10:15.200,0:10:19.839 -org mode and - -0:10:16.160,0:10:19.839 -it's it's fundamental capabilities - -0:10:21.040,0:10:24.959 -so the the code I'm going to show here - -0:10:24.000,0:10:28.320 -is - -0:10:24.959,0:10:31.360 -uh is - -0:10:28.320,0:10:33.040 -is focused around sort of a a sticky - -0:10:31.360,0:10:35.600 -problem space in in the information - -0:10:33.040,0:10:39.120 -technology and I'm I'm a professional - -0:10:35.600,0:10:41.120 -uh uh software engineer turned uh - -0:10:39.120,0:10:45.120 -technology architect I support - -0:10:41.120,0:10:47.600 -the websites for a recognizable - -0:10:45.120,0:10:49.680 -financial services brand that I don't - -0:10:47.600,0:10:50.720 -identify just so I don't accidentally - -0:10:49.680,0:10:54.399 -end up - -0:10:50.720,0:10:55.600 -uh inadvertently misrepresenting my firm - -0:10:54.399,0:10:57.760 -in some financial - -0:10:55.600,0:11:00.480 -uh perspective if I let some other - -0:10:57.760,0:11:01.760 -companies slip at certain let some other - -0:11:00.480,0:11:05.839 -companies slip - -0:11:01.760,0:11:05.839 -name slip or my own it's certainly no - -0:11:06.560,0:11:10.560 -representation of an opinion other than - -0:11:08.160,0:11:10.560 -my own - -0:11:11.279,0:11:17.109 -the um - -0:11:13.980,0:11:17.109 -[Music] - -0:11:18.800,0:11:26.240 -so etl has to do with moving data around - -0:11:22.720,0:11:29.200 -we we have the idea of of - -0:11:26.240,0:11:30.560 -a pipeline where we'll be able to verify - -0:11:29.200,0:11:32.480 -certain assumptions not - -0:11:30.560,0:11:33.600 -nominally about data quality but it - -0:11:32.480,0:11:36.000 -could be about anything - -0:11:33.600,0:11:37.279 -before the pipeline starts okay we've - -0:11:36.000,0:11:38.560 -got a state where we think it should - -0:11:37.279,0:11:41.920 -work if we run it - -0:11:38.560,0:11:44.160 -we have uh some extraction where we'll - -0:11:41.920,0:11:45.040 -get our sources and we may have the the - -0:11:44.160,0:11:47.920 -opportunity to - -0:11:45.040,0:11:48.720 -uh make some assertions there and in the - -0:11:47.920,0:11:51.360 -transform - -0:11:48.720,0:11:52.720 -stage as well as the load things get a - -0:11:51.360,0:11:54.079 -little dicer - -0:11:52.720,0:11:55.360 -to the point where we come out of the - -0:11:54.079,0:11:57.040 -load stage and we should have some - -0:11:55.360,0:11:58.480 -really solid assertions again that we - -0:11:57.040,0:11:59.680 -can even go back and compare to the - -0:11:58.480,0:12:02.639 -extract stage - -0:11:59.680,0:12:04.959 -and from this we have the rudimentaries - -0:12:02.639,0:12:08.399 -of a data quality practice - -0:12:04.959,0:12:09.360 -uh in this case we have a number of org - -0:12:08.399,0:12:12.639 -mode files that will all - -0:12:09.360,0:12:16.720 -be distributed across a - -0:12:12.639,0:12:18.959 -number of players uh computers - -0:12:16.720,0:12:20.320 -so we might not want to update every - -0:12:18.959,0:12:22.720 -part of every buffer - -0:12:20.320,0:12:24.560 -I think it's a complicated problem space - -0:12:22.720,0:12:27.839 -and so we tried to take - -0:12:24.560,0:12:31.120 -a long-term view of - -0:12:27.839,0:12:32.160 -the solution that we needed um so I'll - -0:12:31.120,0:12:35.760 -go ahead - -0:12:32.160,0:12:37.839 -and open up the fun function - -0:12:35.760,0:12:41.680 -that well let's let's actually start - -0:12:37.839,0:12:45.040 -with the one that's pretty easy to read - -0:12:41.680,0:12:46.800 -and uh I'm gonna go ahead and just crank - -0:12:45.040,0:12:51.600 -it up huge - -0:12:46.800,0:12:51.600 -in case anybody's watching in 480. - -0:12:51.680,0:12:58.560 -um so this this program is not - -0:12:56.480,0:13:01.120 -a work of art it's a simple - -0:12:58.560,0:13:05.440 -implementation of the idea that a list - -0:13:01.120,0:13:08.160 -an a list of functions that return - -0:13:05.440,0:13:10.399 -maybe some data maybe some data and an - -0:13:08.160,0:13:13.040 -entry back into that a list - -0:13:10.399,0:13:15.680 -um can be done quite extensively with - -0:13:13.040,0:13:17.760 -very few lines of code - -0:13:15.680,0:13:19.600 -neither is it an especially tight or - -0:13:17.760,0:13:22.000 -thrifty implementation - -0:13:19.600,0:13:22.800 -it's just trying to get the job done - -0:13:22.000,0:13:26.160 -with a doc - -0:13:22.800,0:13:30.880 -statement for everything at the heart - -0:13:26.160,0:13:32.480 -um we see a call to this macro called dm - -0:13:30.880,0:13:35.360 -coalesce hash and that's what I'd like - -0:13:32.480,0:13:37.680 -to focus in on you can see I think - -0:13:35.360,0:13:38.800 -that something on unpleasant is - -0:13:37.680,0:13:42.480 -happening here - -0:13:38.800,0:13:46.560 -I've got an eval in um - -0:13:42.480,0:13:49.519 -what is I will share a a - -0:13:46.560,0:13:49.920 -fairly central function that that that - -0:13:49.519,0:13:52.160 -that - -0:13:49.920,0:13:53.920 -those implementing this etl pattern are - -0:13:52.160,0:13:56.639 -welcome to - -0:13:53.920,0:13:57.680 -derive from that is this is a default - -0:13:56.639,0:13:59.680 -transform - -0:13:57.680,0:14:00.959 -that you can get when loading certain - -0:13:59.680,0:14:04.560 -kinds of - -0:14:00.959,0:14:06.399 -uh orgmo tables that have been uh - -0:14:04.560,0:14:09.120 -properly adorned and again we'll get - -0:14:06.399,0:14:11.440 -into that all tomorrow - -0:14:09.120,0:14:13.760 -so keep an eye on time couple minutes - -0:14:11.440,0:14:15.360 -left let's look at the macro itself and - -0:14:13.760,0:14:19.040 -I have a slide on this but let's go - -0:14:15.360,0:14:19.040 -ahead and risk getting off page - -0:14:24.639,0:14:28.959 -oh boy here we go so this is my - -0:14:27.199,0:14:31.920 -utilities bucket - -0:14:28.959,0:14:34.000 -it has such basic features as give me a - -0:14:31.920,0:14:36.000 -hash table with some defaults I'll think - -0:14:34.000,0:14:38.320 -about that later - -0:14:36.000,0:14:38.320 -and - -0:14:39.680,0:14:47.600 -and add to list um a special version - -0:14:44.720,0:14:49.360 -that enables us to be a little cavalier - -0:14:47.600,0:14:50.480 -in experimenting with a-list versus - -0:14:49.360,0:14:52.800 -hashes versus p - -0:14:50.480,0:14:54.399 -lists we've made a right mess for - -0:14:52.800,0:14:55.279 -ourselves in the proof of concept area - -0:14:54.399,0:14:58.560 -and it's ripe - -0:14:55.279,0:15:00.240 -for someone to write a white paper about - -0:14:58.560,0:15:03.360 -when to prefer these things - -0:15:00.240,0:15:03.360 -and fix - -0:15:04.800,0:15:10.720 -the merge a list uh - -0:15:08.000,0:15:12.959 -same work here let's get let's get down - -0:15:10.720,0:15:16.000 -to business - -0:15:12.959,0:15:18.560 -this function has quite a this a macro - -0:15:16.000,0:15:20.720 -has quite a doc string and I think I - -0:15:18.560,0:15:22.240 -mentioned earlier that I got myself into - -0:15:20.720,0:15:23.519 -trouble with the keyword properties you - -0:15:22.240,0:15:27.839 -can see that we have - -0:15:23.519,0:15:32.240 -not only quite a number of them but - -0:15:27.839,0:15:32.880 -a lot of a lot of default values many of - -0:15:32.240,0:15:36.000 -which - -0:15:32.880,0:15:37.680 -may be relying on the - -0:15:36.000,0:15:40.000 -values that are passed in here this is - -0:15:37.680,0:15:44.000 -complicated and as it turns out - -0:15:40.000,0:15:46.079 -um I wasn't brave enough in most cases - -0:15:44.000,0:15:47.279 -to try to write a lambda that could - -0:15:46.079,0:15:49.680 -understand and - -0:15:47.279,0:15:50.399 -replace uh its own local variable I just - -0:15:49.680,0:15:53.519 -didn't - -0:15:50.399,0:15:54.800 -it didn't save me enough time this was - -0:15:53.519,0:15:56.800 -really easy - -0:15:54.800,0:15:58.240 -to read and write and understand as I - -0:15:56.800,0:16:01.440 -thought through my problem - -0:15:58.240,0:16:03.360 -but now as I use it I I've lost a little - -0:16:01.440,0:16:04.079 -ground maybe with this and I'm not even - -0:16:03.360,0:16:07.279 -sure - -0:16:04.079,0:16:08.079 -I like what I got from uh the many - -0:16:07.279,0:16:10.560 -keyword - -0:16:08.079,0:16:11.920 -properties when it and we can look - -0:16:10.560,0:16:17.120 -perhaps if we have - -0:16:11.920,0:16:17.120 -the time at what that looks like in uh - -0:16:17.340,0:16:22.720 -[Music] - -0:16:19.920,0:16:24.480 -oh all right I have to separately - -0:16:22.720,0:16:27.519 -dismiss and restart that - -0:16:24.480,0:16:29.600 -um so that so that's just about my time - -0:16:27.519,0:16:31.920 -uh and being respectful of that I want - -0:16:29.600,0:16:35.519 -to invite presenters to just jump in at - -0:16:31.920,0:16:38.079 -any of the many large pauses I leave - -0:16:35.519,0:16:40.160 -uh as I'll just leave up the doc string - -0:16:38.079,0:16:43.279 -for a moment and maybe split the screen - -0:16:40.160,0:16:43.279 -and pull open an item - -0:16:45.199,0:16:50.720 -you are now unmuted uh thank you very - -0:16:48.720,0:16:53.839 -much for your talk corwin - -0:16:50.720,0:16:55.279 -um I think you still have like uh - -0:16:53.839,0:16:57.680 -maybe three or four more minutes if you - -0:16:55.279,0:17:01.040 -want to quickly wrap up - -0:16:57.680,0:17:02.160 -okay so three or four more minutes I can - -0:17:01.040,0:17:05.439 -easily spend - -0:17:02.160,0:17:07.280 -on thank yous - -0:17:05.439,0:17:08.270 -I might switch to that if there aren't - -0:17:07.280,0:17:10.160 -questions on the path - -0:17:08.270,0:17:12.559 -[Music] - -0:17:10.160,0:17:14.079 -um would you like me to pull up the pad - -0:17:12.559,0:17:17.199 -or are you looking at it - -0:17:14.079,0:17:21.839 -I am I bookmarked it I am - -0:17:17.199,0:17:21.839 -pulling the tab and I'll bring it in - -0:17:30.840,0:17:33.840 -okay - -0:17:34.960,0:17:41.520 -all right this is the wrong ether pad - -0:17:38.799,0:17:41.520 -thanks for the link - -0:17:44.480,0:17:50.640 -all right um so I think I'm looking for - -0:17:48.000,0:17:50.640 -macros - -0:17:54.880,0:18:01.679 -uh okay key message sure so the - -0:17:58.400,0:18:02.960 -the key message is that it's um it's a - -0:18:01.679,0:18:06.240 -jungle out there - -0:18:02.960,0:18:08.559 -macros along with any other design can - -0:18:06.240,0:18:11.919 -leave you in a position - -0:18:08.559,0:18:13.600 -where you have a nice api and I can show - -0:18:11.919,0:18:14.960 -you other examples you can find them in - -0:18:13.600,0:18:18.480 -the dungeon mode source - -0:18:14.960,0:18:21.600 -of many many other places where I use - -0:18:18.480,0:18:23.840 -this exact same formula quickly - -0:18:21.600,0:18:26.960 -sketching out how a character sheet - -0:18:23.840,0:18:28.480 -or another big data set needs to - -0:18:26.960,0:18:29.600 -needs to figure out what tables are - -0:18:28.480,0:18:30.720 -going to be interesting from the - -0:18:29.600,0:18:34.400 -collection of files - -0:18:30.720,0:18:38.880 -and then load up the tile set and - -0:18:34.400,0:18:41.600 -the uh layout file from that - -0:18:38.880,0:18:43.280 -and I mean it works this the project is - -0:18:41.600,0:18:44.799 -moving forward with this I have the - -0:18:43.280,0:18:46.720 -flexibility that I need - -0:18:44.799,0:18:48.640 -but here I am evaling my own code to - -0:18:46.720,0:18:52.400 -make darn sure even if I get by - -0:18:48.640,0:18:55.440 -by compiled uh this macro doesn't uh - -0:18:52.400,0:18:58.160 -does get evaluated in the user's real - -0:18:55.440,0:18:58.880 -run time clearly a design fail so that - -0:18:58.160,0:19:00.880 -would be - -0:18:58.880,0:19:02.400 -the key point of my talk is is to - -0:19:00.880,0:19:05.600 -present this design - -0:19:02.400,0:19:08.320 -fail and uh thank - -0:19:05.600,0:19:09.520 -um thank the community but especially - -0:19:08.320,0:19:12.160 -wasa masa - -0:19:09.520,0:19:13.280 -for for some patience and let me add at - -0:19:12.160,0:19:15.200 -this moment that - -0:19:13.280,0:19:16.799 -uh he was so frustrated with me they - -0:19:15.200,0:19:17.360 -were sort of frustrated with me I think - -0:19:16.799,0:19:20.400 -I - -0:19:17.360,0:19:24.240 -didn't qualify pronouns um - -0:19:20.400,0:19:26.640 -with um - -0:19:24.240,0:19:28.160 -with doing this the the first the this - -0:19:26.640,0:19:29.919 -was one of our first interactions and - -0:19:28.160,0:19:34.240 -the feedback was - -0:19:29.919,0:19:36.640 -why is this a macro full stop - -0:19:34.240,0:19:38.320 -and uh that's a great message actually - -0:19:36.640,0:19:40.160 -and I and I hope that - -0:19:38.320,0:19:42.720 -uh maybe this can encourage further - -0:19:40.160,0:19:44.160 -talks across the subject about - -0:19:42.720,0:19:46.720 -you know hey wait a minute macros are - -0:19:44.160,0:19:48.559 -really fantastic as I hope I made - -0:19:46.720,0:19:51.039 -clear you can do a tremendous amount - -0:19:48.559,0:19:52.320 -about uh with them and we rely on them - -0:19:51.039,0:19:55.200 -for - -0:19:52.320,0:19:56.480 -almost all the fun goodies um from you - -0:19:55.200,0:19:58.880 -know defund - -0:19:56.480,0:19:58.880 -secu - -0:20:02.159,0:20:05.440 -um I want to get to my my thank yous let - -0:20:04.960,0:20:08.559 -me just - -0:20:05.440,0:20:08.559 -peek back at the pad - -0:20:18.840,0:20:22.080 -oh - -0:20:20.000,0:20:23.760 -well that was actually a scratch buffer - -0:20:22.080,0:20:24.720 -so I'll have to sort of read it cold off - -0:20:23.760,0:20:27.039 -my notes - -0:20:24.720,0:20:27.039 -um - -0:20:27.919,0:20:31.600 -but also but I'll switch to I'll also - -0:20:30.320,0:20:34.320 -I'll say a couple of thank yous if you - -0:20:31.600,0:20:36.080 -don't mind - -0:20:34.320,0:20:38.400 -in addition to the big thank you that I - -0:20:36.080,0:20:39.360 -hope was implied by my shout out to wasa - -0:20:38.400,0:20:42.720 -masa - -0:20:39.360,0:20:46.640 -um I also want to thank you amen for - -0:20:42.720,0:20:51.360 -um your kindness in extending - -0:20:46.640,0:20:54.320 -to the project as well as to me the - -0:20:51.360,0:20:55.440 -the chance to present here and and and - -0:20:54.320,0:20:56.799 -you've you've also - -0:20:55.440,0:20:59.360 -just done a lot of great stuff for our - -0:20:56.799,0:21:02.080 -project thank you very much for that and - -0:20:59.360,0:21:02.080 -sasha - -0:21:13.120,0:21:17.200 -I'll get there um thank you so much for - -0:21:15.919,0:21:18.320 -the inspiration that you are to our - -0:21:17.200,0:21:22.400 -whole community - -0:21:18.320,0:21:25.600 -I also want to thank the presenters - -0:21:22.400,0:21:27.600 -um for just being so flexible and - -0:21:25.600,0:21:29.120 -uh nagging back through the whole thing - -0:21:27.600,0:21:30.960 -and especially to leo - -0:21:29.120,0:21:32.159 -who has done so much to drive the show - -0:21:30.960,0:21:35.520 -today - -0:21:32.159,0:21:37.840 -um I - -0:21:35.520,0:21:38.960 -this is a fractious tent at times and - -0:21:37.840,0:21:41.360 -sometimes - -0:21:38.960,0:21:43.039 -it is indeed a little bit of a circus - -0:21:41.360,0:21:45.520 -but I - -0:21:43.039,0:21:46.880 -am learning so much so fast I'm just - -0:21:45.520,0:21:50.320 -inspired by how much - -0:21:46.880,0:21:53.120 -Emacs can teach us thank you - -0:21:50.320,0:21:54.960 -uh corbin for your kind words and you - -0:21:53.120,0:21:56.000 -know about me of course but all about - -0:21:54.960,0:21:59.760 -you know all of us - -0:21:56.000,0:22:02.400 -and the conference and you know indeed - -0:21:59.760,0:22:04.159 -thanks to everyone who's helped uh - -0:22:02.400,0:22:05.840 -including the speakers of course - -0:22:04.159,0:22:08.960 -without whom you know a maxcom really - -0:22:05.840,0:22:10.640 -wouldn't have been a EmacsConf - -0:22:08.960,0:22:12.080 -and you know it's been a pleasure - -0:22:10.640,0:22:15.520 -knowing you and working with - -0:22:12.080,0:22:17.360 -you um I guess um from afar for the most - -0:22:15.520,0:22:18.960 -part on dungeon mode like helping - -0:22:17.360,0:22:20.720 -helping with like small things here and - -0:22:18.960,0:22:22.320 -there but um - -0:22:20.720,0:22:23.840 -yeah it's been my pleasure and it's - -0:22:22.320,0:22:25.840 -great to have you and - -0:22:23.840,0:22:26.880 -um everyone else you know part of the - -0:22:25.840,0:22:29.440 -community and - -0:22:26.880,0:22:30.559 -for me to be part of the community it's - -0:22:29.440,0:22:33.039 -been a lot of fun - -0:22:30.559,0:22:33.039 -thank you - -0:22:33.679,0:22:38.000 -it's it's it's it's an honor and I don't - -0:22:36.080,0:22:38.720 -use that word an awful lot because I - -0:22:38.000,0:22:41.760 -sort of - -0:22:38.720,0:22:44.320 -sort of smirk at it but um gets us in a - -0:22:41.760,0:22:47.360 -lot of trouble honor does but - -0:22:44.320,0:22:48.840 -this will be a sure time to use it thank - -0:22:47.360,0:22:51.840 -you - -0:22:48.840,0: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.sbv b/2020/subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.sbv deleted file mode 100644 index 62287278..00000000 --- a/2020/subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.sbv +++ /dev/null @@ -1,3300 +0,0 @@ -0:00:00.080,0:00:03.439 -hi my name is eduardo x I'm this person - -0:00:02.639,0:00:06.240 -here - -0:00:03.439,0:00:07.120 -and the title of this talk is on why - -0:00:06.240,0:00:09.519 -most of - -0:00:07.120,0:00:11.599 -most of the best features in ev look - -0:00:09.519,0:00:13.759 -like five minute hacks - -0:00:11.599,0:00:15.280 -and this is a presentation at the max - -0:00:13.759,0:00:21.920 -conf 2020 - -0:00:15.280,0:00:21.920 -happening in november 22 28 and 29 2020 - -0:00:23.199,0:00:27.680 -so this is part one of the presentation - -0:00:25.519,0:00:29.840 -and here I'm going to explain some - -0:00:27.680,0:00:31.039 -some ideas that are prerequisites for - -0:00:29.840,0:00:32.320 -understanding the rest of the - -0:00:31.039,0:00:35.440 -presentation - -0:00:32.320,0:00:35.760 -the three main keys of ev are matay meta - -0:00:35.440,0:00:37.920 -k - -0:00:35.760,0:00:41.520 -and mata j and I'm going to start by - -0:00:37.920,0:00:41.520 -explaining metae and meta k - -0:00:42.079,0:00:46.800 -metae is used to follow hyperlink and - -0:00:44.960,0:00:49.680 -technically it is - -0:00:46.800,0:00:50.879 -essentially just a ctrl e to move to the - -0:00:49.680,0:00:54.320 -end of the line and then - -0:00:50.879,0:00:58.960 -a ctrl x control e to execute this the - -0:00:54.320,0:01:00.879 -sext before point at the end of the line - -0:00:58.960,0:01:03.120 -and the thing is that a max comes with - -0:01:00.879,0:01:05.040 -many functions that can be used as sex - -0:01:03.120,0:01:07.040 -hyperlinks - -0:01:05.040,0:01:09.040 -we can consider that they point to - -0:01:07.040,0:01:09.520 -somewhere I'm going to refer to that as - -0:01:09.040,0:01:11.920 -the - -0:01:09.520,0:01:12.960 -target of the hyperlink and if we - -0:01:11.920,0:01:15.759 -execute this - -0:01:12.960,0:01:17.119 -sex paper links would go to that target - -0:01:15.759,0:01:20.000 -for example this one - -0:01:17.119,0:01:22.720 -is a hyperlink that points to a buffer - -0:01:20.000,0:01:25.040 -with demand paid for cat - -0:01:22.720,0:01:27.040 -and usually but not always after - -0:01:25.040,0:01:29.840 -following the hyperlink we can go back - -0:01:27.040,0:01:30.720 -by just skilling the the current buffer - -0:01:29.840,0:01:34.400 -that the hyperlink - -0:01:30.720,0:01:38.000 -created the target of the hyperlink - -0:01:34.400,0:01:41.360 -but this example here is badly behaved - -0:01:38.000,0:01:43.360 -if we execute it it creates a new frame - -0:01:41.360,0:01:44.640 -and to go back to the previous situation - -0:01:43.360,0:01:50.079 -we have to either - -0:01:44.640,0:01:50.079 -click here or type ctrl x50 - -0:01:52.840,0:01:57.520 -uh - -0:01:54.880,0:02:00.640 -so here are some examples of sex - -0:01:57.520,0:02:03.600 -hyperlinks using standard max functions - -0:02:00.640,0:02:04.880 -this third one is uh badly behaved in a - -0:02:03.600,0:02:08.879 -different way - -0:02:04.880,0:02:09.840 -if executed we the target is created in - -0:02:08.879,0:02:13.840 -the same window - -0:02:09.840,0:02:16.000 -as we are now but it also shows a lot of - -0:02:13.840,0:02:20.840 -garbage here in the aqua area so - -0:02:16.000,0:02:23.280 -the the current frame becomes a bit - -0:02:20.840,0:02:26.160 -messy - -0:02:23.280,0:02:28.319 -and well one of the first things that I - -0:02:26.160,0:02:30.720 -did when I was creating av - -0:02:28.319,0:02:31.680 -many many years ago was that I created - -0:02:30.720,0:02:34.840 -variants - -0:02:31.680,0:02:36.640 -of all these functions that were better - -0:02:34.840,0:02:38.640 -behaved - -0:02:36.640,0:02:40.480 -and they were better behaved in two - -0:02:38.640,0:02:43.040 -senses the obvious one - -0:02:40.480,0:02:43.680 -was that they they all created the - -0:02:43.040,0:02:45.840 -target - -0:02:43.680,0:02:48.720 -in the same window as before so I could - -0:02:45.840,0:02:51.040 -go back by just typing meta k - -0:02:48.720,0:02:52.879 -which is essentially just killed this - -0:02:51.040,0:02:55.200 -buffer - -0:02:52.879,0:02:56.480 -and well but I also implemented - -0:02:55.200,0:02:59.040 -something extra that - -0:02:56.480,0:02:59.840 -are the post back lists for example for - -0:02:59.040,0:03:03.599 -example these - -0:02:59.840,0:03:06.080 -extra arguments here are a postback list - -0:03:03.599,0:03:09.599 -and this extra arguments specify - -0:03:06.080,0:03:13.040 -position and the target buffer - -0:03:09.599,0:03:16.720 -and in this example this this spot - -0:03:13.040,0:03:18.239 -spec list means starting from the from - -0:03:16.720,0:03:20.560 -the beginning of the buffer - -0:03:18.239,0:03:22.239 -search for the first occurrence of this - -0:03:20.560,0:03:24.159 -string - -0:03:22.239,0:03:25.519 -after that after the beginning of the - -0:03:24.159,0:03:28.159 -buffer and then - -0:03:25.519,0:03:29.120 -search for the first occurrence of this - -0:03:28.159,0:03:33.760 -string - -0:03:29.120,0:03:36.560 -after that - -0:03:33.760,0:03:38.799 -eev also defines some hyperlinks that do - -0:03:36.560,0:03:41.280 -not create new buffers - -0:03:38.799,0:03:41.840 -uh here is the first example if I - -0:03:41.280,0:03:45.920 -execute - -0:03:41.840,0:03:46.959 -this one this one is a hyperlink to the - -0:03:45.920,0:03:50.720 -to the result - -0:03:46.959,0:03:52.959 -of running this show comment date uh - -0:03:50.720,0:03:55.040 -but instead of showing the result in the - -0:03:52.959,0:03:58.959 -new buffer the result is shown - -0:03:55.040,0:04:01.840 -here so if execute to this type link - -0:03:58.959,0:04:04.239 -the result of date the output of data is - -0:04:01.840,0:04:06.640 -shown in the echo area and if executed - -0:04:04.239,0:04:06.640 -again - -0:04:07.120,0:04:11.519 -it shows the result again and the result - -0:04:09.519,0:04:15.200 -changes every second - -0:04:11.519,0:04:18.720 -and if so this is a variant - -0:04:15.200,0:04:21.840 -of fine sh - -0:04:18.720,0:04:24.960 -uh find sh0 is the variant that - -0:04:21.840,0:04:28.080 -just shows the output in the echo area - -0:04:24.960,0:04:31.120 -and find sh shows the output in - -0:04:28.080,0:04:31.120 -a new buffer - -0:04:31.759,0:04:37.520 -and here is an example of a hyperlink - -0:04:35.919,0:04:40.000 -that - -0:04:37.520,0:04:41.280 -calls an external program if execute - -0:04:40.000,0:04:43.759 -this - -0:04:41.280,0:04:46.639 -it it calls google chrome to open a - -0:04:43.759,0:04:51.520 -certain url - -0:04:46.639,0:04:55.280 -here it is let's go back to mx - -0:04:51.520,0:04:58.479 -if execute this happening here - -0:04:55.280,0:04:58.880 -it invokes my favorite pdf viewer which - -0:04:58.479,0:05:02.560 -is - -0:04:58.880,0:05:07.440 -xpdf it makes xpdf - -0:05:02.560,0:05:07.440 -open this pdf page it is pdf - -0:05:07.759,0:05:15.199 -in this page and this other arguments - -0:05:10.880,0:05:19.120 -are ignored let me show how it works - -0:05:15.199,0:05:20.160 -here it is this is a an accept from a - -0:05:19.120,0:05:22.639 -book - -0:05:20.160,0:05:23.199 -so page 3 and the pdf corresponds to - -0:05:22.639,0:05:26.400 -page - -0:05:23.199,0:05:29.360 -113 in the book and - -0:05:26.400,0:05:31.759 -this variant here of the hyperlink above - -0:05:29.360,0:05:34.560 -it opens the pdf in a different way - -0:05:31.759,0:05:36.479 -it runs a program called pdf to text on - -0:05:34.560,0:05:39.600 -this pdf here - -0:05:36.479,0:05:42.880 -and max takes the output of - -0:05:39.600,0:05:46.080 -run epd after text on this pdf here - -0:05:42.880,0:05:47.280 -and displays it in a buffer and now this - -0:05:46.080,0:05:50.000 -postback list - -0:05:47.280,0:05:51.280 -is interpreted in a different way this - -0:05:50.000,0:05:54.400 -thing is interpreted - -0:05:51.280,0:05:54.800 -as a as a number of a page and a max - -0:05:54.400,0:05:57.520 -goes - -0:05:54.800,0:05:58.240 -to page three by counting form feeds in - -0:05:57.520,0:06:01.440 -the - -0:05:58.240,0:06:03.039 -converted version of the pdf and then it - -0:06:01.440,0:06:06.319 -searches for this string - -0:06:03.039,0:06:08.479 -and in this three so let's execute this - -0:06:06.319,0:06:10.800 -to see what happens - -0:06:08.479,0:06:13.280 -here it is I opened the same page as - -0:06:10.800,0:06:13.280 -before - -0:06:14.800,0:06:20.720 -it starts with lecture one so - -0:06:18.400,0:06:24.720 -the other hyperlink searched for this - -0:06:20.720,0:06:24.720 -string and for this string here - -0:06:25.520,0:06:30.400 -uh and this thing here is a hyperlink to - -0:06:28.160,0:06:32.720 -video - -0:06:30.400,0:06:34.560 -and when I executed it's going to open - -0:06:32.720,0:06:37.759 -this video here - -0:06:34.560,0:06:41.199 -at this time this time stamp let's see - -0:06:37.759,0:06:46.840 -one two three one - -0:06:41.199,0:06:49.440 -two three that's the way to do - -0:06:46.840,0:06:52.560 -it - -0:06:49.440,0:06:53.680 -and also some hyperlinks that that I - -0:06:52.560,0:06:56.479 -defined - -0:06:53.680,0:06:58.160 -uh they don't work like like usual - -0:06:56.479,0:07:01.440 -hyperlinks they work more - -0:06:58.160,0:07:05.759 -like browser buttons - -0:07:01.440,0:07:05.759 -these buttons that appear in web pages - -0:07:06.240,0:07:11.360 -in the sense that these buttons usually - -0:07:09.120,0:07:13.280 -don't open a new page they usually - -0:07:11.360,0:07:14.960 -just do something to change the current - -0:07:13.280,0:07:18.160 -page - -0:07:14.960,0:07:18.880 -if I execute this the action of this - -0:07:18.160,0:07:22.240 -function - -0:07:18.880,0:07:24.800 -eek is to uh - -0:07:22.240,0:07:25.919 -it interprets this string as a series of - -0:07:24.800,0:07:28.840 -keys and it - -0:07:25.919,0:07:30.319 -acts as if the user had typed all these - -0:07:28.840,0:07:33.680 -keys so - -0:07:30.319,0:07:34.400 -if executed I get a hello in the next - -0:07:33.680,0:07:36.639 -line - -0:07:34.400,0:07:39.440 -if executed again I get another hello - -0:07:36.639,0:07:44.319 -another hello hello hello etc etc - -0:07:39.440,0:07:47.840 -let me undo this mess oops - -0:07:44.319,0:07:51.440 -and here is another kind of button - -0:07:47.840,0:07:54.879 -that defines a new function if I execute - -0:07:51.440,0:07:55.759 -this sex here at this moment though is - -0:07:54.879,0:07:57.919 -not defined - -0:07:55.759,0:08:00.000 -and if I execute this mx is going to - -0:07:57.919,0:08:03.599 -show me a message saying - -0:08:00.000,0:08:05.840 -uh symbols function cell is not defined - -0:08:03.599,0:08:09.520 -something like this - -0:08:05.840,0:08:12.960 -but if I execute the defund - -0:08:09.520,0:08:16.479 -this the action of this function o here - -0:08:12.960,0:08:18.960 -is to run this which opens a certain - -0:08:16.479,0:08:21.840 -directory - -0:08:18.960,0:08:23.039 -let me go back and here is another - -0:08:21.840,0:08:25.840 -button that defines - -0:08:23.039,0:08:26.479 -several functions at the same time if I - -0:08:25.840,0:08:28.879 -execute - -0:08:26.479,0:08:28.879 -this - -0:08:32.320,0:08:36.719 -note that the the result of executing - -0:08:35.599,0:08:38.640 -this expression - -0:08:36.719,0:08:40.080 -is the name of one of the functions that - -0:08:38.640,0:08:42.800 -it defined - -0:08:40.080,0:08:43.360 -that is this one here and let me explain - -0:08:42.800,0:08:46.959 -the - -0:08:43.360,0:08:48.800 -these examples uh one of the functions - -0:08:46.959,0:08:51.839 -that this thing here defined - -0:08:48.800,0:08:54.640 -is called find or git file where - -0:08:51.839,0:08:55.040 -this or gate in the middle of its name - -0:08:54.640,0:08:59.600 -is - -0:08:55.040,0:09:02.640 -exactly this first argument to code cd - -0:08:59.600,0:09:03.120 -and the action of running find or get - -0:09:02.640,0:09:06.399 -file - -0:09:03.120,0:09:09.680 -on a string like this is that - -0:09:06.399,0:09:13.360 -find or get file takes the string - -0:09:09.680,0:09:15.600 -and prepends this string to it - -0:09:13.360,0:09:17.920 -this one here which is the second - -0:09:15.600,0:09:21.760 -argument to called cd - -0:09:17.920,0:09:25.600 -and then it executes find flying - -0:09:21.760,0:09:25.600 -on the result which is this one - -0:09:25.680,0:09:28.800 -and fine flying is my variant of find - -0:09:28.320,0:09:32.080 -file - -0:09:28.800,0:09:36.880 -that supports both spec lists - -0:09:32.080,0:09:39.600 -and this function here that I'm - -0:09:36.880,0:09:41.200 -referring to as a button it also defines - -0:09:39.600,0:09:44.880 -a function called - -0:09:41.200,0:09:46.080 -find audit node here where the or gate - -0:09:44.880,0:09:50.320 -is the same string - -0:09:46.080,0:09:54.160 -as here and this function opens a node - -0:09:50.320,0:09:57.920 -of of an info manual this one - -0:09:54.160,0:10:00.080 -this text here opens this node in the - -0:09:57.920,0:10:03.519 -org manual - -0:10:00.080,0:10:06.800 -it is equivalent to this text here - -0:10:03.519,0:10:08.720 -so in the passage from this line to this - -0:10:06.800,0:10:11.920 -line we prepended - -0:10:08.720,0:10:15.040 -to the node name the name of the manual - -0:10:11.920,0:10:18.160 -here and find node is my variant - -0:10:15.040,0:10:20.399 -of this standard mx function here - -0:10:18.160,0:10:23.200 -but find node also supports post - -0:10:20.399,0:10:23.200 -backlists - -0:10:23.519,0:10:28.640 -eevee also defines some functions that - -0:10:26.640,0:10:30.800 -define shorter hyperlinks to pdfs and - -0:10:28.640,0:10:32.880 -videos - -0:10:30.800,0:10:34.720 -remember that this thing here is a - -0:10:32.880,0:10:37.120 -shorter hyperlink to a - -0:10:34.720,0:10:39.040 -to a file and this thing here is a - -0:10:37.120,0:10:43.200 -shorter hyperlink to a node and - -0:10:39.040,0:10:46.079 -in an mx menu in an info manual - -0:10:43.200,0:10:47.279 -uh if we run this thing here this code - -0:10:46.079,0:10:50.240 -pdf page - -0:10:47.279,0:10:52.880 -this acts like a button that defines a - -0:10:50.240,0:10:56.399 -certain function - -0:10:52.880,0:10:59.040 -and this string this other sex - -0:10:56.399,0:11:00.240 -here defines another function the first - -0:10:59.040,0:11:03.040 -one defines - -0:11:00.240,0:11:05.360 -the function find funcspivac page and - -0:11:03.040,0:11:09.279 -the second one defines the function find - -0:11:05.360,0:11:12.240 -from text when we run the - -0:11:09.279,0:11:13.440 -file when we run findfoxpivotpage it - -0:11:12.240,0:11:17.600 -opens - -0:11:13.440,0:11:20.640 -this pdf here the name is - -0:11:17.600,0:11:23.839 -quite long uh - -0:11:20.640,0:11:26.079 -this example opens this pdf at page 8 - -0:11:23.839,0:11:28.000 -and searches for the string contents - -0:11:26.079,0:11:31.279 -oops sorry in this case - -0:11:28.000,0:11:33.519 -in this case it just ignores this string - -0:11:31.279,0:11:37.360 -here it only considers - -0:11:33.519,0:11:42.640 -the number of the page let's try - -0:11:37.360,0:11:45.200 -ah we got - -0:11:42.640,0:11:46.880 -here it is uh the contents of a book - -0:11:45.200,0:11:50.800 -that is freely - -0:11:46.880,0:11:51.760 -available uh here is another page of the - -0:11:50.800,0:11:55.040 -book - -0:11:51.760,0:11:55.519 -and if we execute the this happening - -0:11:55.040,0:11:58.399 -here - -0:11:55.519,0:11:59.920 -find funk's pivot text it converts the - -0:11:58.399,0:12:03.040 -pdf to text - -0:11:59.920,0:12:05.040 -and it searches for the page eight - -0:12:03.040,0:12:08.079 -in it and then for the string this - -0:12:05.040,0:12:11.839 -string here in page eight - -0:12:08.079,0:12:11.839 -it takes a few seconds - -0:12:12.240,0:12:20.320 -here it is so this is the - -0:12:16.160,0:12:25.040 -ascii version of this contents page - -0:12:20.320,0:12:28.800 -here uh note that this block here - -0:12:25.040,0:12:31.680 -is a kind of an index to that book - -0:12:28.800,0:12:33.600 -uh I have the full index somewhere but - -0:12:31.680,0:12:34.959 -it's very long so I just copied a few - -0:12:33.600,0:12:38.959 -lines here - -0:12:34.959,0:12:42.160 -uh so this is a link to the to set - -0:12:38.959,0:12:45.360 -section one chapter one this is the - -0:12:42.160,0:12:48.959 -section 1.1 - -0:12:45.360,0:12:53.839 -section 1.1.1 and so on - -0:12:48.959,0:12:53.839 -and here is a link to the index - -0:12:54.000,0:13:02.800 -and here is a part of my index - -0:12:58.079,0:13:03.279 -of positions in the video that we just - -0:13:02.800,0:13:05.760 -saw - -0:13:03.279,0:13:07.360 -that I think that are especially - -0:13:05.760,0:13:10.639 -relevant - -0:13:07.360,0:13:12.399 -uh so this I believe - -0:13:10.639,0:13:14.160 -hyperlink is a kind of a button that - -0:13:12.399,0:13:18.560 -defines this function here - -0:13:14.160,0:13:18.560 -find punch and punch into the video - -0:13:18.839,0:13:21.839 -uh - -0:13:27.600,0:13:33.360 -and we can also use this for video - -0:13:31.440,0:13:37.200 -tutorials for example - -0:13:33.360,0:13:40.639 -this is a very good tutorial on on magic - -0:13:37.200,0:13:40.639 -if we execute this - -0:13:40.880,0:13:44.800 -then these functions are going to be - -0:13:42.560,0:13:48.399 -defined and these functions open - -0:13:44.800,0:13:50.079 -this tutorial on magic - -0:13:48.399,0:13:51.839 -these are some of the positions in the - -0:13:50.079,0:13:53.920 -tutorial that I found especially - -0:13:51.839,0:13:55.600 -especially relevant this is a very dense - -0:13:53.920,0:13:56.480 -tutorial I had to take notes of - -0:13:55.600,0:13:59.040 -everything - -0:13:56.480,0:14:00.800 -and I had to watch everything things - -0:13:59.040,0:14:03.440 -several times - -0:14:00.800,0:14:06.480 -and for example this is a link to the - -0:14:03.440,0:14:09.600 -position in the tutorial that explains - -0:14:06.480,0:14:12.880 -uh how in space - -0:14:09.600,0:14:17.600 -space max magic magic - -0:14:12.880,0:14:20.480 -interprets space gs magic status - -0:14:17.600,0:14:22.320 -let's see beginners space gs to initiate - -0:14:20.480,0:14:25.600 -magic's git status - -0:14:22.320,0:14:28.800 -uh you can also do that's it - -0:14:25.600,0:14:32.160 -and here are some examples that I - -0:14:28.800,0:14:34.240 -took from somewhere else the video - -0:14:32.160,0:14:38.800 -tutorials from - -0:14:34.240,0:14:38.800 -ralph koenig about org mode - -0:14:43.519,0:14:47.440 -now let me show how the functions that - -0:14:45.519,0:14:48.720 -define this router hyperlinks are - -0:14:47.440,0:14:51.199 -implemented - -0:14:48.720,0:14:52.480 -the standard ways in max to define - -0:14:51.199,0:14:55.760 -functions that define - -0:14:52.480,0:14:58.320 -other functions would be with macros uh - -0:14:55.760,0:14:59.040 -let's see an example this is a standard - -0:14:58.320,0:15:01.540 -function that - -0:14:59.040,0:15:02.959 -defines new functions - -0:15:01.540,0:15:06.959 -[Music] - -0:15:02.959,0:15:09.040 -and if we execute it one of the res - -0:15:06.959,0:15:10.160 -its result is the last function that it - -0:15:09.040,0:15:13.839 -defined which is - -0:15:10.160,0:15:13.839 -e-grief which is here - -0:15:13.920,0:15:19.360 -it's implemented as a macro we can - -0:15:16.959,0:15:20.880 -look at the result of macro expand which - -0:15:19.360,0:15:23.519 -is going to show - -0:15:20.880,0:15:25.519 -show us the result of of this of the - -0:15:23.519,0:15:28.000 -expansion of this - -0:15:25.519,0:15:28.959 -instead of expanding and executing it - -0:15:28.000,0:15:33.199 -just - -0:15:28.959,0:15:36.000 -expands and shows us the result - -0:15:33.199,0:15:37.600 -here the result is a bit messy is too - -0:15:36.000,0:15:40.959 -big for - -0:15:37.600,0:15:44.240 -humans to understand but we can run - -0:15:40.959,0:15:47.519 -this or this text here that takes that - -0:15:44.240,0:15:50.959 -that result and pretty prints it - -0:15:47.519,0:15:54.000 -so this is the pretty printed version of - -0:15:50.959,0:15:57.600 -uh this macro here - -0:15:54.000,0:16:01.120 -we can see that it defines - -0:15:57.600,0:16:04.399 -several functions here - -0:16:01.120,0:16:04.399 -for example this one - -0:16:06.399,0:16:09.920 -and this just as a curiosity is a link - -0:16:09.360,0:16:13.839 -to - -0:16:09.920,0:16:16.880 -the definition of cld struct - -0:16:13.839,0:16:19.199 -and note that the code is huge uh - -0:16:16.880,0:16:20.079 -well it's very well commented but it's - -0:16:19.199,0:16:23.759 -it has - -0:16:20.079,0:16:26.959 -lots of special cases it has uh - -0:16:23.759,0:16:27.920 -it supports lots of constructions and so - -0:16:26.959,0:16:30.639 -it's huge and - -0:16:27.920,0:16:33.360 -it's very difficult to understand I mean - -0:16:30.639,0:16:35.040 -I found it very difficult to understand - -0:16:33.360,0:16:37.759 -and here's a link to document the - -0:16:35.040,0:16:42.000 -documentation of cld struct - -0:16:37.759,0:16:46.000 -here in the manual for - -0:16:42.000,0:16:50.480 -cl which is a kind of support for some - -0:16:46.000,0:16:53.600 -features of common lisp in the max - -0:16:50.480,0:16:54.639 -so let's compare this standard way of - -0:16:53.600,0:16:56.560 -defining - -0:16:54.639,0:16:58.320 -functions that define new functions - -0:16:56.560,0:17:01.680 -which is with macros - -0:16:58.320,0:17:04.160 -with this I'm going to use a slogan - -0:17:01.680,0:17:06.319 -repeatedly the slogan is I am a very bad - -0:17:04.160,0:17:08.880 -programmer - -0:17:06.319,0:17:10.640 -I'm a very bad programmer so when I was - -0:17:08.880,0:17:12.240 -trying to create functions that would - -0:17:10.640,0:17:14.480 -define new functions - -0:17:12.240,0:17:16.400 -I found it easier to generally generate - -0:17:14.480,0:17:20.559 -this code as text - -0:17:16.400,0:17:23.199 -and then run read and eval in it - -0:17:20.559,0:17:24.640 -the code cd that we saw in the previous - -0:17:23.199,0:17:28.079 -section - -0:17:24.640,0:17:29.039 -we can see the the code that it produces - -0:17:28.079,0:17:31.039 -by - -0:17:29.039,0:17:33.280 -making a copy of this line and - -0:17:31.039,0:17:34.480 -prepending this string here to the name - -0:17:33.280,0:17:36.720 -of the function - -0:17:34.480,0:17:38.400 -so instead of running code cd we run - -0:17:36.720,0:17:41.280 -find code cd - -0:17:38.400,0:17:44.400 -and it creates a new temporary buffer - -0:17:41.280,0:17:47.760 -with the code that - -0:17:44.400,0:17:50.320 -code cd would execute - -0:17:47.760,0:17:53.919 -so it's a series of the fonts and a few - -0:17:50.320,0:17:53.919 -set cues and so on - -0:17:54.080,0:17:59.120 -and this thing is implemented mostly as - -0:17:57.600,0:18:02.160 -a template - -0:17:59.120,0:18:04.160 -uh the lola the - -0:18:02.160,0:18:06.240 -there's an inner function called ee - -0:18:04.160,0:18:08.799 -called cd base that receives just - -0:18:06.240,0:18:10.640 -these two arguments and it says - -0:18:08.799,0:18:14.320 -essentially just runs the function - -0:18:10.640,0:18:16.480 -e template zero on the string here and - -0:18:14.320,0:18:18.559 -the things between curly braces are - -0:18:16.480,0:18:22.559 -substituted by the values - -0:18:18.559,0:18:22.559 -of these arguments here - -0:18:23.600,0:18:28.480 -there's one part of the tutorial here - -0:18:25.919,0:18:31.039 -that explains all these things - -0:18:28.480,0:18:32.559 -uh except for the rationale for some - -0:18:31.039,0:18:35.360 -design decisions - -0:18:32.559,0:18:37.280 -and those design decisions are one of - -0:18:35.360,0:18:37.760 -the many motivations for this talk but - -0:18:37.280,0:18:39.679 -um - -0:18:37.760,0:18:42.640 -we are I'm only going to explain these - -0:18:39.679,0:18:46.799 -things in detail at the end - -0:18:42.640,0:18:46.799 -which is kind of so on - -0:18:48.480,0:18:51.600 -in the beginning I said that the three - -0:18:50.320,0:18:56.000 -main keys of av - -0:18:51.600,0:19:00.080 -are meta e meta k and meta j - -0:18:56.000,0:19:01.520 -let's see now what met what meta j does - -0:19:00.080,0:19:04.640 -uh but I need to start with some - -0:19:01.520,0:19:06.559 -motivation uh the motivation is that we - -0:19:04.640,0:19:08.240 -can define commands with very short - -0:19:06.559,0:19:10.160 -names and actually I became kind of - -0:19:08.240,0:19:13.200 -addicted to that - -0:19:10.160,0:19:15.600 -this is an example of the fund that - -0:19:13.200,0:19:18.000 -defines a comment with a very short name - -0:19:15.600,0:19:21.200 -its name is just one letter e - -0:19:18.000,0:19:21.520 -and I can invoke you invoke it with meta - -0:19:21.200,0:19:24.720 -x - -0:19:21.520,0:19:27.360 -e if I type meta xp - -0:19:24.720,0:19:30.000 -now it opens a latex file that I'm - -0:19:27.360,0:19:30.000 -working on - -0:19:31.130,0:19:35.200 -[Music] - -0:19:32.559,0:19:37.120 -and I create most of my latex files - -0:19:35.200,0:19:39.200 -using - -0:19:37.120,0:19:40.559 -template template-based functions like - -0:19:39.200,0:19:43.760 -the the - -0:19:40.559,0:19:46.559 -implementation of code cd above and - -0:19:43.760,0:19:49.280 -this template-based functions create - -0:19:46.559,0:19:51.280 -files with extension.tag - -0:19:49.280,0:19:53.919 -that start with a series of the fonts - -0:19:51.280,0:19:56.240 -and comments for example - -0:19:53.919,0:19:58.320 -let's look at this example here if I - -0:19:56.240,0:19:59.440 -execute find the attack links with this - -0:19:58.320,0:20:02.159 -argument - -0:19:59.440,0:20:03.440 -uh it's going it's going to do several - -0:20:02.159,0:20:06.880 -things for creating a - -0:20:03.440,0:20:08.320 -file called slash tmp slash forward - -0:20:06.880,0:20:11.200 -attack - -0:20:08.320,0:20:12.400 -and the header of that file is going to - -0:20:11.200,0:20:16.080 -be this - -0:20:12.400,0:20:19.280 -which starts with two and with three - -0:20:16.080,0:20:21.919 -the fonts with functions with very short - -0:20:19.280,0:20:26.240 -names and comments - -0:20:21.919,0:20:26.240 -let's compare with the situation here - -0:20:27.520,0:20:34.640 -in my file 2020 favorite conventions.tag - -0:20:32.799,0:20:37.039 -I have this header here in which I - -0:20:34.640,0:20:39.360 -define six functions with very short - -0:20:37.039,0:20:41.919 -names - -0:20:39.360,0:20:44.799 -and in this case here that is even - -0:20:41.919,0:20:48.000 -explained in the tutorial - -0:20:44.799,0:20:51.520 -this we have mnemonics for - -0:20:48.000,0:20:54.799 -these short names here and c is compile - -0:20:51.520,0:20:57.760 -d is display I mean display the pdf - -0:20:54.799,0:20:58.159 -and e is added in the sense of make a - -0:20:57.760,0:21:02.320 -max - -0:20:58.159,0:21:05.039 -visit that file - -0:21:02.320,0:21:06.480 -okay now I can explain what is meta j - -0:21:05.039,0:21:08.880 -itself - -0:21:06.480,0:21:09.600 -uh we just saw comments with very short - -0:21:08.880,0:21:12.320 -names - -0:21:09.600,0:21:14.840 -and the idea is behind meta j is that we - -0:21:12.320,0:21:16.480 -can define comments with very short - -0:21:14.840,0:21:19.679 -numbers - -0:21:16.480,0:21:22.559 -let me explain this uh - -0:21:19.679,0:21:23.039 -the short explanation for what meta j - -0:21:22.559,0:21:25.360 -does - -0:21:23.039,0:21:27.039 -is that it jumps to set certain - -0:21:25.360,0:21:29.760 -predefined places - -0:21:27.039,0:21:30.799 -in particular a meta j without a numeric - -0:21:29.760,0:21:33.280 -argument - -0:21:30.799,0:21:34.080 -takes us to a buffer with with the basic - -0:21:33.280,0:21:37.679 -help - -0:21:34.080,0:21:39.760 -and a list of the current age of targets - -0:21:37.679,0:21:41.520 -and this is something that is a bit - -0:21:39.760,0:21:44.559 -simpler to understand - -0:21:41.520,0:21:47.919 -if we type meta five meta j - -0:21:44.559,0:21:51.120 -then meta j runs this sex - -0:21:47.919,0:21:55.440 -here that is associated to - -0:21:51.120,0:21:59.039 -the argument five I say that the target - -0:21:55.440,0:22:01.520 -for the argument five is this one - -0:21:59.039,0:22:03.760 -and if the argument is true then the - -0:22:01.520,0:22:07.039 -target associated to the to the true - -0:22:03.760,0:22:09.600 -is this sex here that opens - -0:22:07.039,0:22:10.240 -well this one opens the main tutorial vv - -0:22:09.600,0:22:13.679 -and this one - -0:22:10.240,0:22:15.679 -opens another tutorial - -0:22:13.679,0:22:20.480 -this is a link to one of the tutorials - -0:22:15.679,0:22:22.559 -of ev to the part that explains meta j - -0:22:20.480,0:22:24.559 -I've copied the the main part of the - -0:22:22.559,0:22:28.159 -text here - -0:22:24.559,0:22:31.360 -the header the header that meta j shows - -0:22:28.159,0:22:33.919 -let me show it very quickly here - -0:22:31.360,0:22:36.320 -here is their header and here is their - -0:22:33.919,0:22:39.039 -rest - -0:22:36.320,0:22:40.000 -the header is very beginner friendly and - -0:22:39.039,0:22:42.159 -if you're a beginner - -0:22:40.000,0:22:44.559 -who only knows how to use meta e to - -0:22:42.159,0:22:46.799 -execute and met - -0:22:44.559,0:22:48.240 -this should be okay and meta k to go - -0:22:46.799,0:22:52.320 -back - -0:22:48.240,0:22:55.840 -then you can and should use that header - -0:22:52.320,0:22:55.840 -I mean this header here - -0:22:56.720,0:23:00.799 -as your main starting point and every - -0:22:59.360,0:23:03.679 -time that you feel lost - -0:23:00.799,0:23:04.799 -you can type meta j and to go back to - -0:23:03.679,0:23:07.039 -that header - -0:23:04.799,0:23:08.000 -and you can use its links to navigate to - -0:23:07.039,0:23:11.360 -the documentation - -0:23:08.000,0:23:14.799 -for max nav let me explain that - -0:23:11.360,0:23:15.679 -uh this header here has several ellis - -0:23:14.799,0:23:19.039 -hyperlinks - -0:23:15.679,0:23:22.400 -one here one here - -0:23:19.039,0:23:25.760 -one here one here and so on - -0:23:22.400,0:23:29.280 -uh these ones are links to the - -0:23:25.760,0:23:30.880 -to the intros which are the tutorials - -0:23:29.280,0:23:32.480 -find if you quick enter in the main - -0:23:30.880,0:23:35.760 -tutorial and find ev - -0:23:32.480,0:23:36.720 -keys intro is a kind of tutorial that is - -0:23:35.760,0:23:39.520 -an index of - -0:23:36.720,0:23:39.520 -the main keys - -0:23:40.000,0:23:43.279 -and after that we have an explanation of - -0:23:42.559,0:23:46.799 -what some - -0:23:43.279,0:23:50.240 -numeric prefixes do so if we type - -0:23:46.799,0:23:53.200 -met one method j the effect of that is - -0:23:50.240,0:23:54.640 -exactly the same as executing this and - -0:23:53.200,0:23:58.080 -we can execute this - -0:23:54.640,0:23:58.080 -with meta e also - -0:24:00.159,0:24:06.960 -meta tube meta j runs this sex and - -0:24:03.679,0:24:10.559 -I can also execute it with meta e - -0:24:06.960,0:24:14.240 -here it is it's this uh - -0:24:10.559,0:24:18.400 -intro this uh - -0:24:14.240,0:24:22.960 -sandbox tutorial and - -0:24:18.400,0:24:22.960 -here is another sandbox tutorial - -0:24:24.640,0:24:28.720 -let me go back and then the - -0:24:27.039,0:24:30.880 -documentation says that - -0:24:28.720,0:24:31.760 -that header the header that is beginner - -0:24:30.880,0:24:33.679 -friendly - -0:24:31.760,0:24:35.520 -is followed by a section that is very - -0:24:33.679,0:24:37.600 -beginner unfriendly - -0:24:35.520,0:24:40.240 -that contains a series of the fonts like - -0:24:37.600,0:24:40.240 -these ones - -0:24:40.400,0:24:44.640 -here the last line of the header is this - -0:24:43.440,0:24:46.720 -comment here - -0:24:44.640,0:24:48.559 -and then we have several defense like - -0:24:46.720,0:24:51.440 -this - -0:24:48.559,0:24:53.840 -let me explain how these things work - -0:24:51.440,0:24:57.360 -technically what happens when we type - -0:24:53.840,0:24:57.840 -meta j without any arguments is that it - -0:24:57.360,0:25:00.960 -runs - -0:24:57.840,0:25:04.640 -eu jump with argument neil and then - -0:25:00.960,0:25:06.480 -this runs 5 e jumps - -0:25:04.640,0:25:08.000 -when I run meta j with a numeric - -0:25:06.480,0:25:11.120 -argument for example - -0:25:08.000,0:25:14.400 -with argument 5 it runs a jump - -0:25:11.120,0:25:17.679 -5 and e jump five - -0:25:14.400,0:25:20.400 -uh concatenates this five one - -0:25:17.679,0:25:21.679 -to make a name of a function this - -0:25:20.400,0:25:24.320 -function here - -0:25:21.679,0:25:24.720 -and it executes this function e jump - -0:25:24.320,0:25:28.880 -five - -0:25:24.720,0:25:31.919 -you jump uh dash five - -0:25:28.880,0:25:35.520 -and eu jump dash five is - -0:25:31.919,0:25:39.360 -executes find ev equity intro - -0:25:35.520,0:25:41.440 -if I execute just meta j - -0:25:39.360,0:25:43.919 -the section that shows the current age - -0:25:41.440,0:25:47.120 -on targets - -0:25:43.919,0:25:48.159 -has a line for e job five this is that - -0:25:47.120,0:25:52.159 -is exactly the - -0:25:48.159,0:25:52.159 -thing that I was explaining before - -0:25:52.400,0:25:59.520 -so we can use meta j to navigate the - -0:25:54.840,0:26:03.440 -tutorials and we can copy the links - -0:25:59.520,0:26:06.799 -sorry we can copy links to the to - -0:26:03.440,0:26:06.799 -tutorials to our notes - -0:26:07.919,0:26:14.880 -oh sorry this has some typos - -0:26:11.840,0:26:18.080 -for example if I execute this - -0:26:14.880,0:26:20.640 -I go to a section of this tutorial here - -0:26:18.080,0:26:24.320 -that explains the main keys of ev - -0:26:20.640,0:26:26.240 -and these things are hyperlinks I can - -0:26:24.320,0:26:27.440 -mark a hyperlink like this it is just - -0:26:26.240,0:26:30.559 -plain text and I - -0:26:27.440,0:26:31.760 -can copy it to my notes and the idea is - -0:26:30.559,0:26:33.520 -that every time - -0:26:31.760,0:26:35.520 -every time that I find something that is - -0:26:33.520,0:26:36.240 -interesting I can create a hyperlink to - -0:26:35.520,0:26:38.720 -it - -0:26:36.240,0:26:40.799 -and I can put these links in my notes so - -0:26:38.720,0:26:42.960 -I can navigate back - -0:26:40.799,0:26:45.360 -to all the interesting positions very - -0:26:42.960,0:26:45.360 -quickly - -0:26:48.799,0:26:54.080 -okay next feature if we type meta - -0:26:51.760,0:26:57.039 -uppercase j - -0:26:54.080,0:26:57.039 -uh then - -0:26:57.600,0:27:03.679 -this this is a function that transforms - -0:27:00.080,0:27:06.080 -the current line in a certain way - -0:27:03.679,0:27:07.360 -let me give an example let me isolate - -0:27:06.080,0:27:09.919 -this and let me create - -0:27:07.360,0:27:11.039 -duplicate this line to to make clear - -0:27:09.919,0:27:14.240 -what happens - -0:27:11.039,0:27:16.880 -if I type meta uppercase j here - -0:27:14.240,0:27:17.440 -this line here becomes the fund for a - -0:27:16.880,0:27:21.200 -jump - -0:27:17.440,0:27:24.799 -6 and the target of this e-jump - -0:27:21.200,0:27:28.399 -is exactly this sex here - -0:27:24.799,0:27:28.399 -let me undo this mess - -0:27:28.559,0:27:32.840 -and if the first word in the line is not - -0:27:31.360,0:27:36.240 -a number for example - -0:27:32.840,0:27:39.039 -here let me do the same thing - -0:27:36.240,0:27:41.200 -duplicate the line and type meta - -0:27:39.039,0:27:44.240 -uppercase j - -0:27:41.200,0:27:45.600 -then mat uppercase j converts that to a - -0:27:44.240,0:27:49.440 -defund that defines - -0:27:45.600,0:27:52.720 -a function with a very short name - -0:27:49.440,0:27:56.720 -and this function with a very short name - -0:27:52.720,0:27:59.360 -opens this file here in the directory - -0:27:56.720,0:28:01.360 -with the copy of the the git repository - -0:27:59.360,0:28:04.880 -for org mode - -0:28:01.360,0:28:04.880 -let me undo the mass again - -0:28:05.360,0:28:07.760 -oops - -0:28:09.120,0:28:11.679 -that's it - -0:28:14.640,0:28:21.279 -meta uppercase j is a - -0:28:17.760,0:28:24.559 -particular case of of something that - -0:28:21.279,0:28:25.279 -I use a lot in eevee I have if he has - -0:28:24.559,0:28:28.799 -lots of - -0:28:25.279,0:28:31.780 -comments that sorry key sequences - -0:28:28.799,0:28:33.200 -that are like meta uppercase letter and - -0:28:31.780,0:28:35.279 -[Music] - -0:28:33.200,0:28:37.279 -almost all of them operate on the - -0:28:35.279,0:28:38.880 -current line and transform the current - -0:28:37.279,0:28:42.000 -line in certain way - -0:28:38.880,0:28:45.360 -for example this is a file name - -0:28:42.000,0:28:48.640 -and if I type meta uppercase f here - -0:28:45.360,0:28:50.000 -it becomes a link to that file this is - -0:28:48.640,0:28:53.600 -the name of a month page - -0:28:50.000,0:28:55.760 -and if I type meta uppercase m here - -0:28:53.600,0:28:58.080 -it converts that to the link to a month - -0:28:55.760,0:29:01.679 -page and this is a shell command - -0:28:58.080,0:29:04.960 -and if I type meta uppercase s here - -0:29:01.679,0:29:08.720 -it converts that to a link to a - -0:29:04.960,0:29:11.919 -to find fan shell - -0:29:08.720,0:29:12.960 -and until a few years ago these - -0:29:11.919,0:29:16.159 -functions - -0:29:12.960,0:29:18.080 -with matter uppercase letter were half - -0:29:16.159,0:29:18.880 -of my main ways of creating sex - -0:29:18.080,0:29:21.039 -hyperlinks - -0:29:18.880,0:29:22.399 -with few key strokes in the beginning of - -0:29:21.039,0:29:25.600 -course I had to create my - -0:29:22.399,0:29:28.640 -sex pipelines by typing each character - -0:29:25.600,0:29:31.520 -but uh after some time and decided that - -0:29:28.640,0:29:34.559 -I needed something more efficient - -0:29:31.520,0:29:34.960 -so this is end of part one of the two of - -0:29:34.559,0:29:37.760 -the - -0:29:34.960,0:29:37.760 -presentation - -0:29:38.480,0:29:41.760 -so this is part two of the presentation - -0:29:40.640,0:29:44.320 -and the main theme - -0:29:41.760,0:29:46.320 -here is the standard describe key - -0:29:44.320,0:29:49.200 -function that comes with the max - -0:29:46.320,0:29:50.960 -and my variant of it the thing is that - -0:29:49.200,0:29:53.120 -the standard described key in max - -0:29:50.960,0:29:55.600 -is user friendly but it is hacker - -0:29:53.120,0:29:58.559 -unfriendly well I felt so - -0:29:55.600,0:30:00.799 -and when I tried to complement it by by - -0:29:58.559,0:30:03.120 -writing a hacker friendly version of it - -0:30:00.799,0:30:03.919 -that produced the sex hyperlinks that I - -0:30:03.120,0:30:05.440 -needed - -0:30:03.919,0:30:07.039 -I got something that I found really - -0:30:05.440,0:30:09.679 -lovely and - -0:30:07.039,0:30:12.480 -several of the main designs design - -0:30:09.679,0:30:14.320 -decisions of eev can be seen there - -0:30:12.480,0:30:15.520 -but when I showed my variants to other - -0:30:14.320,0:30:17.760 -people they hated it - -0:30:15.520,0:30:19.360 -they felt that it was totally against - -0:30:17.760,0:30:23.440 -their notions of - -0:30:19.360,0:30:25.760 -user friendliness - -0:30:23.440,0:30:26.799 -okay so let's see the standard describe - -0:30:25.760,0:30:30.159 -key if I run - -0:30:26.799,0:30:32.399 -this hyperlink here I get - -0:30:30.159,0:30:34.399 -this the result of running the scribe - -0:30:32.399,0:30:36.399 -key on the key down - -0:30:34.399,0:30:38.080 -and this is a big buffer with some - -0:30:36.399,0:30:41.360 -things in italics - -0:30:38.080,0:30:43.120 -and some hyperlinks here these - -0:30:41.360,0:30:43.679 -hyperlinks are standard in the sense - -0:30:43.120,0:30:46.240 -that - -0:30:43.679,0:30:47.760 -the targets are not visible and they are - -0:30:46.240,0:30:50.799 -implemented using - -0:30:47.760,0:30:51.200 -buttons in a max lisp this section of - -0:30:50.799,0:30:53.919 -the - -0:30:51.200,0:30:56.240 -mx list manual describes how buttons - -0:30:53.919,0:30:56.240 -work - -0:30:56.799,0:31:03.440 -and the the source code is - -0:31:00.640,0:31:04.240 -quite difficult I mean when I was - -0:31:03.440,0:31:06.559 -starting to - -0:31:04.240,0:31:07.600 -to try to decipher this when I was a - -0:31:06.559,0:31:11.200 -beginner - -0:31:07.600,0:31:12.320 -using max 19.34 I felt that this - -0:31:11.200,0:31:15.519 -described key was - -0:31:12.320,0:31:20.080 -very difficult to understand uh - -0:31:15.519,0:31:22.640 -and I felt that the the designers the - -0:31:20.080,0:31:23.679 -the people who wrote it were sacrificing - -0:31:22.640,0:31:26.159 -too much of the - -0:31:23.679,0:31:30.000 -hacker friendliness that I was expecting - -0:31:26.159,0:31:30.000 -from it to make it beginner friendly - -0:31:31.279,0:31:34.799 -let me explain what are the the problems - -0:31:33.600,0:31:36.559 -with the standard - -0:31:34.799,0:31:38.640 -the describe key if we think that - -0:31:36.559,0:31:41.600 -hyperlinks are things like this - -0:31:38.640,0:31:43.600 -with the target and the text then in the - -0:31:41.600,0:31:47.120 -button hyperlinks of describe key - -0:31:43.600,0:31:49.120 -this three bad things happen first - -0:31:47.120,0:31:51.200 -it is hard to extract the target from - -0:31:49.120,0:31:52.000 -the hyperlink second it is hard to - -0:31:51.200,0:31:54.480 -recreate - -0:31:52.000,0:31:55.440 -a list of code that would go to that - -0:31:54.480,0:31:57.519 -target - -0:31:55.440,0:31:59.840 -and third it is hard to copy the full - -0:31:57.519,0:32:00.640 -hyperlink including the targets to other - -0:31:59.840,0:32:04.399 -buffers - -0:32:00.640,0:32:04.399 -I only knew how to copy the text - -0:32:04.960,0:32:09.039 -when I was trying to decipher what - -0:32:07.279,0:32:11.679 -described key was doing - -0:32:09.039,0:32:12.159 -I created lots of hyperlinks like this - -0:32:11.679,0:32:14.960 -to - -0:32:12.159,0:32:16.159 -inspect the text properties and things - -0:32:14.960,0:32:18.480 -like that - -0:32:16.159,0:32:20.000 -for example in the description of the - -0:32:18.480,0:32:23.600 -key down - -0:32:20.000,0:32:26.559 -here we have a button that points to - -0:32:23.600,0:32:26.559 -simple dotel - -0:32:26.799,0:32:31.600 -the text of that button is simple.l this - -0:32:29.679,0:32:34.320 -hyperlinks goes to the - -0:32:31.600,0:32:35.519 -to the middle of this button hyperlink - -0:32:34.320,0:32:39.120 -here - -0:32:35.519,0:32:41.919 -uh this hyperlink here - -0:32:39.120,0:32:43.279 -goes to the middle of the button of this - -0:32:41.919,0:32:46.240 -button hyperlink - -0:32:43.279,0:32:47.679 -and then inspects its text properties - -0:32:46.240,0:32:51.679 -and then goes to - -0:32:47.679,0:32:53.679 -this section here of the description - -0:32:51.679,0:32:56.159 -so this is a high level description of - -0:32:53.679,0:32:58.000 -the text properties - -0:32:56.159,0:33:00.000 -I mean the text properties that make it - -0:32:58.000,0:33:02.480 -a button and this is a - -0:33:00.000,0:33:04.320 -lower level description of the these - -0:33:02.480,0:33:08.000 -text properties - -0:33:04.320,0:33:11.440 -and the button that points to - -0:33:08.000,0:33:11.919 -forward line sorry the the button that - -0:33:11.440,0:33:14.399 -whose - -0:33:11.919,0:33:16.480 -text is forward line this one is - -0:33:14.399,0:33:19.039 -slightly different - -0:33:16.480,0:33:21.200 -this hyperlink here goes to the middle - -0:33:19.039,0:33:24.559 -of that button - -0:33:21.200,0:33:25.760 -and this hyperlink goes to the mid to - -0:33:24.559,0:33:28.559 -the middle of that button - -0:33:25.760,0:33:29.360 -inspects its text properties and go to - -0:33:28.559,0:33:32.559 -the section - -0:33:29.360,0:33:35.760 -of this button of this help - -0:33:32.559,0:33:36.399 -uh buffer here that describe the the - -0:33:35.760,0:33:39.120 -button - -0:33:36.399,0:33:41.679 -and the lower level view of the text - -0:33:39.120,0:33:45.519 -properties - -0:33:41.679,0:33:47.519 -so I started to with things like this - -0:33:45.519,0:33:50.159 -to understand what these buttons were - -0:33:47.519,0:33:50.960 -doing and I was able to figure out how - -0:33:50.159,0:33:53.120 -these things are - -0:33:50.960,0:33:55.519 -implemented and describe key and then - -0:33:53.120,0:33:57.760 -similar help functions in max - -0:33:55.519,0:34:00.000 -and I discovered that one of the main - -0:33:57.760,0:34:01.360 -lower level functions that a max used - -0:34:00.000,0:34:04.080 -for this - -0:34:01.360,0:34:05.279 -is a function called find function no - -0:34:04.080,0:34:08.240 -select - -0:34:05.279,0:34:09.929 -if I run find function no select on next - -0:34:08.240,0:34:11.200 -line - -0:34:09.929,0:34:14.240 -[Music] - -0:34:11.200,0:34:18.079 -it returns a pair - -0:34:14.240,0:34:20.560 -a cons made of a buffer and a position - -0:34:18.079,0:34:21.679 -so I created functions that would that - -0:34:20.560,0:34:24.320 -would - -0:34:21.679,0:34:25.119 -uh follow this that would open that - -0:34:24.320,0:34:28.320 -buffer - -0:34:25.119,0:34:29.679 -in that position and then this is a - -0:34:28.320,0:34:31.679 -postback list - -0:34:29.679,0:34:33.919 -so we could go to these positions and - -0:34:31.679,0:34:36.000 -then search for this string and another - -0:34:33.919,0:34:40.320 -string and another string and so on - -0:34:36.000,0:34:41.040 -so this goes to the definition of find a - -0:34:40.320,0:34:44.159 -function - -0:34:41.040,0:34:47.919 -and then to a to a string - -0:34:44.159,0:34:49.040 -after it and I use these things to - -0:34:47.919,0:34:51.839 -implement my own - -0:34:49.040,0:34:52.960 -functions that pointed to the same the - -0:34:51.839,0:34:55.440 -same targets - -0:34:52.960,0:34:57.679 -as the button hyperlinks and describe - -0:34:55.440,0:34:57.679 -key - -0:35:00.240,0:35:05.599 -again let me show the comparison this is - -0:35:03.200,0:35:10.480 -the standard describe key - -0:35:05.599,0:35:13.839 -here and this is my variant - -0:35:10.480,0:35:17.680 -uh it creates a buffer with links - -0:35:13.839,0:35:20.960 -with the list hyperlinks about this key - -0:35:17.680,0:35:22.960 -we get this so each one of these - -0:35:20.960,0:35:27.280 -functions is either a blank line - -0:35:22.960,0:35:27.280 -or a or an ellipse hyperlink - -0:35:28.720,0:35:32.880 -here is a slight variant of the of the - -0:35:31.760,0:35:35.920 -function - -0:35:32.880,0:35:38.079 -find e key links above in this variant - -0:35:35.920,0:35:39.280 -the argument is a string that has to be - -0:35:38.079,0:35:42.400 -processed by - -0:35:39.280,0:35:45.280 -read cbd macro to convert it to the - -0:35:42.400,0:35:48.160 -lower level format - -0:35:45.280,0:35:49.040 -and note that these functions here that - -0:35:48.160,0:35:51.440 -I wrote - -0:35:49.040,0:35:53.599 -they display temporary buffers with no - -0:35:51.440,0:35:57.359 -help at all - -0:35:53.599,0:35:58.560 -uh to be honest there's a link to a - -0:35:57.359,0:36:01.680 -tutorial here but - -0:35:58.560,0:36:03.200 -this is a recent edition so let's ignore - -0:36:01.680,0:36:06.640 -this - -0:36:03.200,0:36:08.320 -uh they they display temporary buffers - -0:36:06.640,0:36:09.520 -with no help at all just lots of - -0:36:08.320,0:36:11.599 -hyperlinks - -0:36:09.520,0:36:13.359 -and these hyperlinks can be they are - -0:36:11.599,0:36:15.040 -very hacker friendly in the sense that - -0:36:13.359,0:36:17.520 -they can be followed with - -0:36:15.040,0:36:19.920 -metae they can be copied to other - -0:36:17.520,0:36:23.680 -buffers because they are plain text - -0:36:19.920,0:36:26.240 -because they are just sex - -0:36:23.680,0:36:28.000 -and they can be inspected in the sense - -0:36:26.240,0:36:31.280 -that - -0:36:28.000,0:36:31.280 -for example here - -0:36:32.400,0:36:35.520 -we have a hyperlink to a function that - -0:36:34.079,0:36:37.599 -we - -0:36:35.520,0:36:39.200 -it may be difficult to figure out what - -0:36:37.599,0:36:42.320 -this function does - -0:36:39.200,0:36:45.839 -but we can go to that position and then - -0:36:42.320,0:36:48.240 -type ctrl h f to see the descript - -0:36:45.839,0:36:52.400 -description of this function - -0:36:48.240,0:36:53.890 -and here is a hyperlink to - -0:36:52.400,0:36:56.000 -the does that - -0:36:53.890,0:36:59.920 -[Music] - -0:36:56.000,0:36:59.920 -in my syntax say - -0:37:00.160,0:37:04.480 -and this list of hyperlinks were - -0:37:02.800,0:37:08.000 -generated by - -0:37:04.480,0:37:11.119 -this code here that just just uh - -0:37:08.000,0:37:14.320 -used a back quote to to generate - -0:37:11.119,0:37:14.320 -lists of sex - -0:37:14.640,0:37:21.040 -and I I felt that this function here - -0:37:18.240,0:37:22.160 -uh that just generated this list was - -0:37:21.040,0:37:24.960 -very easy to understand - -0:37:22.160,0:37:28.480 -and to modify so this was hacker - -0:37:24.960,0:37:31.599 -friendly in the way that I wanted - -0:37:28.480,0:37:34.079 -and so I started using this - -0:37:31.599,0:37:36.800 -and this idea of using buffers with sex - -0:37:34.079,0:37:38.720 -fiber links and no help violated - -0:37:36.800,0:37:40.079 -all the notions of user friendliness - -0:37:38.720,0:37:42.000 -that I knew so I was - -0:37:40.079,0:37:46.160 -exploring some something new at that - -0:37:42.000,0:37:49.359 -time and this is the end of part two - -0:37:46.160,0:37:52.240 -part three of this presentation is uh - -0:37:49.359,0:37:54.800 -about the killer features of ev or why - -0:37:52.240,0:37:57.920 -everybody should use av or at least have - -0:37:54.800,0:37:59.280 -eev installed even if they think the tv - -0:37:57.920,0:38:01.440 -is too weird - -0:37:59.280,0:38:03.440 -so this is a very quick listing eevee - -0:38:01.440,0:38:04.240 -has lease hyperlinks which are super - -0:38:03.440,0:38:06.560 -nice - -0:38:04.240,0:38:07.599 -it comes with lots of tutorials the main - -0:38:06.560,0:38:10.800 -one here - -0:38:07.599,0:38:14.079 -explains all the main features - -0:38:10.800,0:38:15.040 -uh there's also a tutorial with that's - -0:38:14.079,0:38:18.079 -an index of - -0:38:15.040,0:38:21.680 -all the other tutorials here - -0:38:18.079,0:38:24.079 -many many many tutorials uh if we forget - -0:38:21.680,0:38:27.280 -everything we can just type meta j - -0:38:24.079,0:38:28.880 -and remember that this this part here is - -0:38:27.280,0:38:30.839 -beginner friendly and the rest is - -0:38:28.880,0:38:32.960 -beginner - -0:38:30.839,0:38:38.079 -unfriendly - -0:38:32.960,0:38:38.079 -there's a tutorial on max list here - -0:38:38.320,0:38:44.640 -it mainly explains how to understand - -0:38:41.920,0:38:46.320 -a lisp code which is much easier than - -0:38:44.640,0:38:47.040 -it's much easier to understand the lisp - -0:38:46.320,0:38:48.800 -code and - -0:38:47.040,0:38:50.160 -then to understand how to program in a - -0:38:48.800,0:38:53.440 -lisp and - -0:38:50.160,0:38:55.920 -most people are only going to need this - -0:38:53.440,0:38:58.240 -uh ev is very easy to install it's in - -0:38:55.920,0:39:00.560 -helper so we just need to do - -0:38:58.240,0:39:03.440 -this thing here and it's very - -0:39:00.560,0:39:03.440 -non-invasive - -0:39:03.520,0:39:08.000 -uh years ago several years ago it was a - -0:39:06.079,0:39:08.960 -very invasive package but then I changed - -0:39:08.000,0:39:13.520 -everything - -0:39:08.960,0:39:16.640 -now uh if we toggle ev mode on and off - -0:39:13.520,0:39:20.000 -what's going to happen is just that the - -0:39:16.640,0:39:21.599 -evk map key map becomes activated or - -0:39:20.000,0:39:24.720 -deactivated - -0:39:21.599,0:39:28.320 -and when we install the evita - -0:39:24.720,0:39:28.640 -I mean when we require the only things - -0:39:28.320,0:39:32.640 -that - -0:39:28.640,0:39:34.480 -happens globally distance here - -0:39:32.640,0:39:36.240 -several functions and variables become - -0:39:34.480,0:39:40.079 -defined all of them have - -0:39:36.240,0:39:43.040 -standard prefixes except for one - -0:39:40.079,0:39:44.480 -three characters are changed in the - -0:39:43.040,0:39:48.640 -standard display table - -0:39:44.480,0:39:52.079 -to make them appear as colored glyphs - -0:39:48.640,0:39:54.160 -the red star and two and the open - -0:39:52.079,0:39:57.839 -double angle brackets and the closed - -0:39:54.160,0:39:57.839 -double angle brackets - -0:39:58.160,0:40:04.560 -and two environment variables are set - -0:40:01.359,0:40:07.599 -and this is a trivial technicality - -0:40:04.560,0:40:10.160 -we just run a def advice - -0:40:07.599,0:40:10.800 -around one function that that is used by - -0:40:10.160,0:40:14.240 -man - -0:40:10.800,0:40:16.720 -justice also - -0:40:14.240,0:40:18.400 -eevee has a very high discoverability - -0:40:16.720,0:40:21.839 -factor - -0:40:18.400,0:40:25.200 -and there's a way to create a very easy - -0:40:21.839,0:40:27.760 -way to create a hyperlink to here - -0:40:25.200,0:40:29.760 -uh I do not have time to show this now - -0:40:27.760,0:40:32.960 -but for example if I'm - -0:40:29.760,0:40:34.480 -here in a tutorial and I think that that - -0:40:32.960,0:40:36.240 -this - -0:40:34.480,0:40:39.520 -section is something interesting and I - -0:40:36.240,0:40:41.200 -want to create a hyperlink to it - -0:40:39.520,0:40:43.040 -I just have to type a certain key - -0:40:41.200,0:40:46.800 -sequence here - -0:40:43.040,0:40:50.400 -and here I got a hyperlink that I can - -0:40:46.800,0:40:52.260 -copy to my notes and this hyperlink goes - -0:40:50.400,0:40:58.240 -to that section - -0:40:52.260,0:41:00.720 -[Music] - -0:40:58.240,0:41:02.319 -we have hyperlinks that point to - -0:41:00.720,0:41:05.839 -specific positions in - -0:41:02.319,0:41:09.119 -pdf documents and nvidia files here - -0:41:05.839,0:41:09.680 -this one opens a pdf and displays it - -0:41:09.119,0:41:13.920 -this one - -0:41:09.680,0:41:16.720 -opens a pdf and converts it to text - -0:41:13.920,0:41:18.400 -and this one opens the video in a - -0:41:16.720,0:41:20.480 -certain position - -0:41:18.400,0:41:22.079 -and we also have a way to control - -0:41:20.480,0:41:25.280 -shell-like programs - -0:41:22.079,0:41:27.440 -uh in my presentation of the last year I - -0:41:25.280,0:41:29.520 -spent one third of the presentation - -0:41:27.440,0:41:31.839 -explaining this and I think that I gave - -0:41:29.520,0:41:35.680 -a very good demonstration there - -0:41:31.839,0:41:38.800 -the demonstration is here - -0:41:35.680,0:41:41.839 -we can go to the web page and go to - -0:41:38.800,0:41:45.440 -this section of the web page - -0:41:41.839,0:41:45.440 -and start by this point - -0:41:47.680,0:41:54.079 -and here we have an explanation and so - -0:41:51.440,0:41:54.079 -on whatever - -0:41:55.920,0:41:59.200 -and I've already mentioned this before - -0:41:58.720,0:42:01.119 -uh - -0:41:59.200,0:42:02.240 -eevee comes with a very nice elise - -0:42:01.119,0:42:04.240 -tutorial - -0:42:02.240,0:42:05.599 -so that's it this is the end of part - -0:42:04.240,0:42:07.359 -three - -0:42:05.599,0:42:09.839 -so this is the last part of my - -0:42:07.359,0:42:10.160 -presentation and it's about the title of - -0:42:09.839,0:42:11.839 -the - -0:42:10.160,0:42:13.599 -the presentation I called the - -0:42:11.839,0:42:16.560 -presentation why - -0:42:13.599,0:42:16.960 -most of the best features in eevee look - -0:42:16.560,0:42:20.480 -like - -0:42:16.960,0:42:20.960 -like five minute hacks uh I've already - -0:42:20.480,0:42:23.920 -run off - -0:42:20.960,0:42:24.800 -out of time so I have to to skip this - -0:42:23.920,0:42:28.720 -first - -0:42:24.800,0:42:31.280 -part here in which I describe how I - -0:42:28.720,0:42:33.440 -was exposed to several different notions - -0:42:31.280,0:42:35.920 -of user friendliness - -0:42:33.440,0:42:37.119 -and how the one that really blew my mind - -0:42:35.920,0:42:41.680 -was the one in - -0:42:37.119,0:42:44.160 -in a certain uh fought environment - -0:42:41.680,0:42:46.560 -uh and let me make the long long story - -0:42:44.160,0:42:49.280 -very very short - -0:42:46.560,0:42:49.680 -uh in all this process I switched from - -0:42:49.280,0:42:52.079 -from - -0:42:49.680,0:42:52.960 -the belief that the user was always - -0:42:52.079,0:42:55.359 -someone else - -0:42:52.960,0:42:57.040 -someone external and that that I always - -0:42:55.359,0:43:00.079 -had to write my programs for - -0:42:57.040,0:43:02.240 -this external user I switched - -0:43:00.079,0:43:03.200 -from from that to the belief that I am - -0:43:02.240,0:43:05.839 -the user - -0:43:03.200,0:43:07.040 -and I can play with the interface that I - -0:43:05.839,0:43:10.079 -want I can - -0:43:07.040,0:43:12.079 -write programs which that - -0:43:10.079,0:43:14.240 -that only I am going to understand I can - -0:43:12.079,0:43:16.079 -experiment with hundreds of interfaces - -0:43:14.240,0:43:18.720 -and then select the best ones - -0:43:16.079,0:43:20.960 -and document them and then share them - -0:43:18.720,0:43:23.520 -with other people - -0:43:20.960,0:43:24.720 -who are also experimenting with - -0:43:23.520,0:43:28.880 -interfaces in their - -0:43:24.720,0:43:31.119 -own ways and so eevee has - -0:43:28.880,0:43:33.440 -lots of things that are user-friendly in - -0:43:31.119,0:43:34.880 -these unusual ways that I've explained - -0:43:33.440,0:43:37.760 -before - -0:43:34.880,0:43:40.319 -and uh and if we disconsider that this - -0:43:37.760,0:43:44.079 -notion of user friendliness is valid - -0:43:40.319,0:43:45.119 -then this implement these things that av - -0:43:44.079,0:43:47.280 -implement they are - -0:43:45.119,0:43:48.800 -user friendly and hacker friendly at the - -0:43:47.280,0:43:51.119 -same time - -0:43:48.800,0:43:51.920 -and let me show one example this is one - -0:43:51.119,0:43:54.640 -this is - -0:43:51.920,0:43:56.640 -one that really took me one only five - -0:43:54.640,0:43:59.599 -minutes to implement - -0:43:56.640,0:44:00.640 -uh at one point a few months ago I - -0:43:59.599,0:44:04.240 -discovered - -0:44:00.640,0:44:05.599 -that sasha chewer's weekly posts about - -0:44:04.240,0:44:08.800 -the max news - -0:44:05.599,0:44:11.440 -had uh were also being posted to a - -0:44:08.800,0:44:14.800 -mailing list that is stored at - -0:44:11.440,0:44:16.319 -lists.we know.org and it's called max - -0:44:14.800,0:44:19.280 -dungeons - -0:44:16.319,0:44:19.760 -uh and I just and I found a way to - -0:44:19.280,0:44:25.440 -create - -0:44:19.760,0:44:28.400 -the links to to the posts in both places - -0:44:25.440,0:44:30.640 -but I had to use a template for that so - -0:44:28.400,0:44:32.560 -what we are seeing here now - -0:44:30.640,0:44:36.640 -is a template with the the default - -0:44:32.560,0:44:39.359 -values so this means that we have not uh - -0:44:36.640,0:44:40.720 -set the year correctly we have not set - -0:44:39.359,0:44:44.240 -the month correctly - -0:44:40.720,0:44:44.720 -or the day correctly but if we run this - -0:44:44.240,0:44:48.960 -text - -0:44:44.720,0:44:53.359 -here uh let me do something else before - -0:44:48.960,0:44:57.280 -if we run this text here - -0:44:53.359,0:45:00.240 -which we change some of these - -0:44:57.280,0:45:00.240 -entries in the - -0:45:00.880,0:45:05.200 -in the template and we get these links - -0:45:04.400,0:45:09.119 -here - -0:45:05.200,0:45:12.160 -they all work for example this one opens - -0:45:09.119,0:45:12.800 -uh the blog post in in session sasha - -0:45:12.160,0:45:16.000 -chewers - -0:45:12.800,0:45:21.280 -site and this one - -0:45:16.000,0:45:23.440 -opens it in the mailing list - -0:45:21.280,0:45:25.760 -and sometimes I want the org source of - -0:45:23.440,0:45:27.280 -that and the easiest way to get the word - -0:45:25.760,0:45:30.480 -source is to - -0:45:27.280,0:45:31.680 -look at this link here that has an - -0:45:30.480,0:45:35.040 -attachment - -0:45:31.680,0:45:38.560 -and if I take this - -0:45:35.040,0:45:42.319 -link here and I take this - -0:45:38.560,0:45:44.480 -stem that points to to the attachment - -0:45:42.319,0:45:45.440 -and I put it here and I generate this - -0:45:44.480,0:45:49.119 -page again - -0:45:45.440,0:45:50.000 -with all this data then I get a script - -0:45:49.119,0:45:53.359 -here - -0:45:50.000,0:45:54.640 -that downloads let me switch to a - -0:45:53.359,0:45:58.160 -smaller font - -0:45:54.640,0:46:00.960 -it downloads this attachment - -0:45:58.160,0:46:01.599 -and it renames that attachment to - -0:46:00.960,0:46:06.000 -something - -0:46:01.599,0:46:10.720 -dot slash nx news sorry some things - -0:46:06.000,0:46:15.119 -uh iphone mx news hyphen - -0:46:10.720,0:46:17.599 -something mxnews.org here - -0:46:15.119,0:46:18.400 -the file is already here already with - -0:46:17.599,0:46:21.359 -the right name - -0:46:18.400,0:46:22.079 -so I can open it with just this - -0:46:21.359,0:46:23.780 -hyperlink - -0:46:22.079,0:46:25.200 -let me go to the big font again - -0:46:23.780,0:46:28.079 -[Music] - -0:46:25.200,0:46:29.280 -and now I have the work source for that - -0:46:28.079,0:46:32.720 -hyperlink - -0:46:29.280,0:46:32.720 -sorry for that blog post - -0:46:33.839,0:46:40.960 -and so this one line thing - -0:46:37.040,0:46:43.920 -here is in a sense - -0:46:40.960,0:46:45.119 -a a to to this blog post in all its - -0:46:43.920,0:46:48.640 -formats - -0:46:45.119,0:46:52.000 -uh if I execute this I get links to - -0:46:48.640,0:46:54.400 -to all the places where it is posted - -0:46:52.000,0:46:56.000 -and I get a hype and I get a script to - -0:46:54.400,0:47:00.480 -download the local copy - -0:46:56.000,0:47:03.200 -of the org source of it and that's it - -0:47:00.480,0:47:04.480 -well I'm already out of time so let me - -0:47:03.200,0:47:10.079 -finish here - -0:47:04.480,0:47:10.079 -thanks bye - diff --git a/2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.sbv b/2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.sbv deleted file mode 100644 index 4ab5ce20..00000000 --- a/2020/subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.sbv +++ /dev/null @@ -1,2385 +0,0 @@ -0:00:01.680,0:00:07.359 -oh you are now muted - -0:00:04.080,0:00:09.840 -all right then well uh hello everyone - -0:00:07.359,0:00:11.519 -I hope uh you're all enjoying the Emacs - -0:00:09.840,0:00:14.480 -conf - -0:00:11.519,0:00:15.040 -my name is musa alhassi and I hope - -0:00:14.480,0:00:17.920 -you're - -0:00:15.040,0:00:19.840 -excited to learn about uh powering up - -0:00:17.920,0:00:22.880 -special blocks - -0:00:19.840,0:00:24.800 -um so let's let's first off uh find out - -0:00:22.880,0:00:27.920 -what these special blocks are and - -0:00:24.800,0:00:30.240 -and see what we can uh go from so - -0:00:27.920,0:00:32.719 -uh yesterday I saw a lot of cool talks - -0:00:30.240,0:00:33.200 -and uh people were chatting about how do - -0:00:32.719,0:00:35.520 -you - -0:00:33.200,0:00:37.200 -I know how should you present should you - -0:00:35.520,0:00:38.640 -do it this way or that way and - -0:00:37.200,0:00:41.120 -I thought maybe I should try a different - -0:00:38.640,0:00:42.239 -way uh but but I'm talking about special - -0:00:41.120,0:00:45.039 -blocks and if I - -0:00:42.239,0:00:47.039 -show you an emax then I have to export - -0:00:45.039,0:00:47.840 -the html so you can see what it looks - -0:00:47.039,0:00:50.800 -like - -0:00:47.840,0:00:51.920 -or export to a pdf so you can see what - -0:00:50.800,0:00:54.239 -it looks like - -0:00:51.920,0:00:56.399 -uh so I ended up writing an org reveal - -0:00:54.239,0:00:58.960 -and - -0:00:56.399,0:01:00.879 -joyously this this just works you can - -0:00:58.960,0:01:02.960 -you can just see things here - -0:01:00.879,0:01:04.559 -uh I was worried that I'd have to take - -0:01:02.960,0:01:07.600 -pictures and then you know - -0:01:04.559,0:01:09.760 -uh uh you know insert pings so that that - -0:01:07.600,0:01:12.159 -was a delight - -0:01:09.760,0:01:12.960 -okay uh so special blocks are these - -0:01:12.159,0:01:16.000 -things like - -0:01:12.960,0:01:17.280 -a center small quote uh that's what a - -0:01:16.000,0:01:19.360 -special block is - -0:01:17.280,0:01:20.720 -and with a bit of lisp we can we can - -0:01:19.360,0:01:23.200 -make special blocks - -0:01:20.720,0:01:24.799 -and link types right so uh using a - -0:01:23.200,0:01:26.720 -single interface - -0:01:24.799,0:01:27.840 -um and the interface is going to be - -0:01:26.720,0:01:29.439 -similar to one - -0:01:27.840,0:01:32.560 -many people are familiar with in - -0:01:29.439,0:01:35.840 -particular org babel's - -0:01:32.560,0:01:37.840 -source interface as well as using global - -0:01:35.840,0:01:39.680 -header arguments for link types - -0:01:37.840,0:01:41.200 -and the idea is to write it once and - -0:01:39.680,0:01:44.159 -generate many different kinds - -0:01:41.200,0:01:44.720 -right you write uh an org markup and you - -0:01:44.159,0:01:47.680 -can have - -0:01:44.720,0:01:48.560 -uh html you can have pdf and and - -0:01:47.680,0:01:51.840 -joyously - -0:01:48.560,0:01:53.600 -uh org reveal so that was uh that was an - -0:01:51.840,0:01:56.640 -unexpected delight - -0:01:53.600,0:01:57.840 -um so here is a few that you'll you'll - -0:01:56.640,0:02:01.759 -just see as we - -0:01:57.840,0:02:04.000 -uh in this presentation you know some uh - -0:02:01.759,0:02:05.040 -uh I won't show some of these uh link - -0:02:04.000,0:02:06.799 -only ones - -0:02:05.040,0:02:08.080 -but we'll see a few of these other ones - -0:02:06.799,0:02:09.920 -just to make the uh - -0:02:08.080,0:02:11.520 -presentation look nice so the - -0:02:09.920,0:02:14.000 -presentation is really going to - -0:02:11.520,0:02:15.120 -present these blocks and the mechanism - -0:02:14.000,0:02:18.400 -at the same time - -0:02:15.120,0:02:21.280 -so uh so this no no html was written - -0:02:18.400,0:02:22.000 -look ma no html just pure org mode and - -0:02:21.280,0:02:23.520 -and - -0:02:22.000,0:02:25.840 -you get all these beautiful boxes and - -0:02:23.520,0:02:27.680 -things okay - -0:02:25.840,0:02:29.120 -so the motivation for this is you know - -0:02:27.680,0:02:31.200 -what uh - -0:02:29.120,0:02:32.239 -you're you're online you run into a blog - -0:02:31.200,0:02:33.120 -and you see something you like and - -0:02:32.239,0:02:35.280 -you're like man - -0:02:33.120,0:02:36.640 -you know I wish I could uh you know - -0:02:35.280,0:02:39.519 -produce that - -0:02:36.640,0:02:40.160 -um uh but you you check in the author - -0:02:39.519,0:02:44.239 -wrote raw - -0:02:40.160,0:02:46.800 -html you know plus html everywhere - -0:02:44.239,0:02:47.840 -and uh that's that's you know gonna - -0:02:46.800,0:02:49.680 -obscure - -0:02:47.840,0:02:51.200 -your your real content it's going to be - -0:02:49.680,0:02:54.239 -surrounded by all this uh - -0:02:51.200,0:02:56.400 -styling information that's unfortunate - -0:02:54.239,0:02:58.959 -uh the author decides to use an org - -0:02:56.400,0:03:01.120 -macro all right a bit better - -0:02:58.959,0:03:03.360 -but then what if you decide hey I want - -0:03:01.120,0:03:06.000 -to make a - -0:03:03.360,0:03:07.840 -not pdf great and then the worst of all - -0:03:06.000,0:03:10.159 -the author doesn't give you the source - -0:03:07.840,0:03:10.879 -and then you have to view page source - -0:03:10.159,0:03:13.760 -and - -0:03:10.879,0:03:14.239 -learn cascading style sheets and and you - -0:03:13.760,0:03:16.159 -know - -0:03:14.239,0:03:18.080 -sit in a corner and cry decide to do - -0:03:16.159,0:03:20.959 -other things with your life - -0:03:18.080,0:03:22.640 -so uh we want to give you org users - -0:03:20.959,0:03:26.000 -numerous styles - -0:03:22.640,0:03:27.200 -and uh and an extensible mechanism to - -0:03:26.000,0:03:28.799 -add more of these - -0:03:27.200,0:03:31.200 -aesthetically pleasing styles you know - -0:03:28.799,0:03:34.720 -to have really nice things - -0:03:31.200,0:03:35.599 -look one way in the html and look almost - -0:03:34.720,0:03:39.120 -the same way - -0:03:35.599,0:03:41.680 -in the pdf and other uh back ends and - -0:03:39.120,0:03:42.159 -if by having these newer ones you know - -0:03:41.680,0:03:44.879 -people - -0:03:42.159,0:03:45.519 -might be encouraged to try making new - -0:03:44.879,0:03:47.920 -ones - -0:03:45.519,0:03:49.040 -especially when the interface is uh not - -0:03:47.920,0:03:54.080 -so difficult - -0:03:49.040,0:03:54.080 -uh that's the that's the aim okay - -0:03:54.159,0:03:59.120 -uh so let's let's have a a real story to - -0:03:57.360,0:04:02.319 -motivate this even more - -0:03:59.120,0:04:03.599 -um so here's three friends uh I hope I - -0:04:02.319,0:04:04.640 -don't butcher their names but these - -0:04:03.599,0:04:07.040 -friends are called - -0:04:04.640,0:04:08.720 -amin sasha and corwin and then they're - -0:04:07.040,0:04:12.080 -organizing a conference - -0:04:08.720,0:04:14.239 -uh EmacsConf 2020. - -0:04:12.080,0:04:16.479 -so sasha decides to write an org file - -0:04:14.239,0:04:19.199 -and and she would like some feedback - -0:04:16.479,0:04:19.840 -okay and and just uh make it clear - -0:04:19.199,0:04:22.960 -there's no - -0:04:19.840,0:04:27.199 -uh just how easy this looks - -0:04:22.960,0:04:27.199 -let's look at the source for this block - -0:04:27.280,0:04:30.720 -notice it's just the word green then a - -0:04:30.000,0:04:34.560 -colon - -0:04:30.720,0:04:37.759 -than amine uh so no - -0:04:34.560,0:04:38.479 -no div style coloring just just you know - -0:04:37.759,0:04:41.520 -green color - -0:04:38.479,0:04:43.600 -immune a very pleasant uh or markup - -0:04:41.520,0:04:44.960 -so that's that's quite nice put some - -0:04:43.600,0:04:47.840 -bold around it - -0:04:44.960,0:04:49.040 -not not too difficult so hopefully uh - -0:04:47.840,0:04:51.680 -this will be useful to - -0:04:49.040,0:04:52.240 -other people as well so what kind of - -0:04:51.680,0:04:56.639 -feedback - -0:04:52.240,0:04:59.120 -uh would sasha expect to get um so maybe - -0:04:56.639,0:04:59.680 -she would expect top level remarks - -0:04:59.120,0:05:01.759 -visible - -0:04:59.680,0:05:04.400 -in the export you know when she makes an - -0:05:01.759,0:05:07.840 -html she can see right there a big block - -0:05:04.400,0:05:09.840 -right maybe - -0:05:07.840,0:05:11.120 -amin will suggest to sasha please - -0:05:09.840,0:05:12.960 -replace this part - -0:05:11.120,0:05:14.639 -with this other part or replace this - -0:05:12.960,0:05:16.960 -word with this other word - -0:05:14.639,0:05:17.680 -right um this is not really possible - -0:05:16.960,0:05:21.919 -with raw - -0:05:17.680,0:05:24.000 -html or uh yeah or with even latex - -0:05:21.919,0:05:25.360 -you'd have to have multiple arguments - -0:05:24.000,0:05:27.840 -the first argument and then - -0:05:25.360,0:05:28.800 -the replacement argument and it's a bit - -0:05:27.840,0:05:30.960 -clunky - -0:05:28.800,0:05:32.080 -um but with our setup you just write - -0:05:30.960,0:05:34.479 -some text - -0:05:32.080,0:05:36.240 -write hashtag plus replace with and then - -0:05:34.479,0:05:39.440 -write more text and you're good to go - -0:05:36.240,0:05:40.720 -normal uh org markup um - -0:05:39.440,0:05:42.479 -everyone speaks different languages - -0:05:40.720,0:05:45.919 -maybe they want to use a - -0:05:42.479,0:05:48.000 -uh one word or they're arguing about - -0:05:45.919,0:05:49.759 -whether we talk about frames or windows - -0:05:48.000,0:05:50.560 -um so maybe they want to have some - -0:05:49.759,0:05:52.479 -translations - -0:05:50.560,0:05:55.360 -right so there's different kinds of - -0:05:52.479,0:05:59.360 -feedbacks uh let's let's take an example - -0:05:55.360,0:06:02.560 -uh look at what they are okay - -0:05:59.360,0:06:06.160 -uh so for example sasha might write - -0:06:02.560,0:06:08.319 -uh this org mode right here and uh - -0:06:06.160,0:06:09.759 -and then in her html exports you might - -0:06:08.319,0:06:12.080 -see this - -0:06:09.759,0:06:13.840 -and uh her feedback might look really - -0:06:12.080,0:06:14.560 -nicely from anyone who says you know - -0:06:13.840,0:06:16.639 -let's uh - -0:06:14.560,0:06:18.560 -let's do some lisp instead of uh - -0:06:16.639,0:06:20.960 -mathematics let's just do some list - -0:06:18.560,0:06:22.479 -and and corwin says you know let's let's - -0:06:20.960,0:06:25.120 -not be so silly - -0:06:22.479,0:06:27.360 -maybe let's just say 9 a.m and move on - -0:06:25.120,0:06:27.360 -okay - -0:06:28.080,0:06:33.039 -um so amin likes to export to pdf - -0:06:31.360,0:06:34.720 -and so he writes his top-level remarks - -0:06:33.039,0:06:37.600 -using latex that's how - -0:06:34.720,0:06:38.960 -so to get this uh square I mean please - -0:06:37.600,0:06:41.440 -change whatever - -0:06:38.960,0:06:43.120 -he might write like this hashtag you - -0:06:41.440,0:06:46.960 -know plus latex - -0:06:43.120,0:06:50.000 -hashtag plus latex right but then - -0:06:46.960,0:06:50.880 -sasha only exports to p to html uh for - -0:06:50.000,0:06:54.880 -example - -0:06:50.880,0:06:57.199 -um and uh so she doesn't look at the pdf - -0:06:54.880,0:06:58.560 -and she may not see his top-level - -0:06:57.199,0:06:59.440 -feedback you know with those nice - -0:06:58.560,0:07:02.160 -brackets and - -0:06:59.440,0:07:03.120 -and bold right and so she might think - -0:07:02.160,0:07:06.160 -everything's good - -0:07:03.120,0:07:09.039 -right and that can be a bit disastrous - -0:07:06.160,0:07:09.440 -um so maybe sasha will will then uh make - -0:07:09.039,0:07:13.199 -some - -0:07:09.440,0:07:16.160 -of her own feedback all right uh but - -0:07:13.199,0:07:16.560 -and to produce it she might write html - -0:07:16.160,0:07:20.639 -uh - -0:07:16.560,0:07:21.680 -um html commands hashtag plus html to - -0:07:20.639,0:07:24.240 -get that - -0:07:21.680,0:07:25.680 -uh but then amin will make a pdf and - -0:07:24.240,0:07:27.759 -this won't stick out - -0:07:25.680,0:07:30.160 -and then so he might think everything's - -0:07:27.759,0:07:33.520 -okay even even though it's not - -0:07:30.160,0:07:36.240 -um then corwin actually decides hey - -0:07:33.520,0:07:36.800 -uh let me read the exported result and - -0:07:36.240,0:07:38.319 -these - -0:07:36.800,0:07:39.919 -there's all those feedback from two - -0:07:38.319,0:07:42.080 -people who haven't uh - -0:07:39.919,0:07:43.840 -read anything because maybe they were in - -0:07:42.080,0:07:46.400 -a russian and didn't - -0:07:43.840,0:07:48.160 -see the top level feedback and so they - -0:07:46.400,0:07:50.000 -agree hey let's have a uniform org - -0:07:48.160,0:07:53.280 -interface that exports - -0:07:50.000,0:07:54.080 -to both html and pdf make both of us - -0:07:53.280,0:07:57.280 -happy - -0:07:54.080,0:07:58.160 -okay so they decide to use org special - -0:07:57.280,0:08:01.840 -blocks - -0:07:58.160,0:08:04.400 -right um and to set this up they need to - -0:08:01.840,0:08:04.879 -you know maybe read a little bit of lisp - -0:08:04.400,0:08:08.879 -hooks - -0:08:04.879,0:08:10.840 -advice macros to get all of this set up - -0:08:08.879,0:08:12.319 -and then they'll use org as the main - -0:08:10.840,0:08:14.400 -interface okay - -0:08:12.319,0:08:16.479 -it's a lot of work but it's worth it - -0:08:14.400,0:08:19.360 -right maybe - -0:08:16.479,0:08:19.759 -um but then corwin corbin's a bit tears - -0:08:19.360,0:08:22.960 -so - -0:08:19.759,0:08:24.800 -uh corwin maybe doesn't want to write - -0:08:22.960,0:08:26.080 -uh using blocks he thinks they're - -0:08:24.800,0:08:29.360 -overkill and - -0:08:26.080,0:08:31.840 -and sasha wants html and uh and - -0:08:29.360,0:08:32.560 -I mean wants pdf and corwin wants org - -0:08:31.840,0:08:34.240 -reveal - -0:08:32.560,0:08:36.320 -so now they have to reformat all their - -0:08:34.240,0:08:37.120 -code and then they need to use org link - -0:08:36.320,0:08:39.599 -types to - -0:08:37.120,0:08:41.519 -reduce the overkill all right so they - -0:08:39.599,0:08:44.000 -can try to avoid duplication by - -0:08:41.519,0:08:46.800 -factoring things out into self-contained - -0:08:44.000,0:08:50.320 -uh defined functions or defunds - -0:08:46.800,0:08:53.440 -um but now to set up or links - -0:08:50.320,0:08:54.399 -uh we'll have uh to learn a new - -0:08:53.440,0:08:57.040 -interface - -0:08:54.399,0:08:58.000 -org setup link um learn a little bit - -0:08:57.040,0:09:02.160 -about fonts - -0:08:58.000,0:09:05.040 -follow links exports handles - -0:09:02.160,0:09:06.800 -it's so much that's so much but but then - -0:09:05.040,0:09:08.399 -you know the friends they learn a lot - -0:09:06.800,0:09:11.120 -you know they learn about defund all - -0:09:08.399,0:09:12.480 -right so these these words are red - -0:09:11.120,0:09:14.320 -you get a little explanation I think - -0:09:12.480,0:09:16.720 -it's a bit too small for anyone to read - -0:09:14.320,0:09:18.000 -this is lisp documentation right for - -0:09:16.720,0:09:19.680 -defund - -0:09:18.000,0:09:21.600 -advice ad there's some list - -0:09:19.680,0:09:23.600 -documentation right - -0:09:21.600,0:09:25.279 -they learn about destructuring let's so - -0:09:23.600,0:09:26.959 -this is from the dash library - -0:09:25.279,0:09:28.800 -here's all that you know glorious - -0:09:26.959,0:09:29.360 -glorious documentation with examples - -0:09:28.800,0:09:31.680 -sorry - -0:09:29.360,0:09:33.760 -I like that they might make an ad-hoc - -0:09:31.680,0:09:36.000 -mechanism to simulate - -0:09:33.760,0:09:37.040 -arguments for special blocks so - -0:09:36.000,0:09:40.399 -something maybe called - -0:09:37.040,0:09:41.920 -extract arguments and then of course to - -0:09:40.399,0:09:42.480 -make new link types they have to learn - -0:09:41.920,0:09:45.120 -about - -0:09:42.480,0:09:46.480 -org link set parameters and then it's - -0:09:45.120,0:09:49.920 -numerous uh - -0:09:46.480,0:09:50.720 -bits and pieces all right so let's oh - -0:09:49.920,0:09:53.600 -let's uh - -0:09:50.720,0:09:55.040 -close all these ones down and and uh of - -0:09:53.600,0:09:56.080 -course they also need to be uh - -0:09:55.040,0:09:58.720 -comfortable with - -0:09:56.080,0:09:59.920 -uh loops and maps and matching and - -0:09:58.720,0:10:02.560 -string functions - -0:09:59.920,0:10:03.360 -so it's it's a bit of a pain it's a bit - -0:10:02.560,0:10:05.839 -of a pain - -0:10:03.360,0:10:06.560 -um so it's probably not worth it so - -0:10:05.839,0:10:09.360 -maybe I'll just - -0:10:06.560,0:10:10.320 -rush things quickly or do an ad hoc you - -0:10:09.360,0:10:13.680 -know - -0:10:10.320,0:10:15.920 -we have things to do right - -0:10:13.680,0:10:17.839 -so maybe maybe the squad wants to have a - -0:10:15.920,0:10:21.120 -modular - -0:10:17.839,0:10:23.040 -and unified interface so everyone's - -0:10:21.120,0:10:25.279 -comfortable with defunct to define a - -0:10:23.040,0:10:26.480 -function and they say you know what - -0:10:25.279,0:10:29.440 -it would be nice if we could just you - -0:10:26.480,0:10:32.959 -know define simultaneously - -0:10:29.440,0:10:34.880 -both a block and the link type right - -0:10:32.959,0:10:36.000 -and uh that way we have a single - -0:10:34.880,0:10:38.240 -interface - -0:10:36.000,0:10:39.040 -org mode for for these things and it - -0:10:38.240,0:10:42.079 -would be nice was - -0:10:39.040,0:10:43.680 -modular so if I defined a - -0:10:42.079,0:10:45.519 -one kind of block and you defined - -0:10:43.680,0:10:47.600 -another we could compose them - -0:10:45.519,0:10:49.360 -right and then get a you know a nice - -0:10:47.600,0:10:52.320 -bigger block like lego - -0:10:49.360,0:10:54.160 -that would be nice building box okay and - -0:10:52.320,0:10:56.240 -uh this is uh what we - -0:10:54.160,0:10:57.600 -have come up with called death block and - -0:10:56.240,0:11:00.240 -it also has a - -0:10:57.600,0:11:01.760 -long documentation string containing - -0:11:00.240,0:11:04.800 -examples and things - -0:11:01.760,0:11:08.320 -so that way you can try to be useful - -0:11:04.800,0:11:10.880 -okay um so let's let's look at a a - -0:11:08.320,0:11:12.800 -solution to these friends uh trilemma - -0:11:10.880,0:11:14.320 -all right so here's here's a way to - -0:11:12.800,0:11:17.040 -define a block - -0:11:14.320,0:11:19.200 -um it looks it's it doesn't look that - -0:11:17.040,0:11:22.320 -difficult but this is how they can - -0:11:19.200,0:11:25.920 -define a block for um - -0:11:22.320,0:11:27.680 -for uh their top-level feedback right - -0:11:25.920,0:11:28.959 -so let's let's look at the three main - -0:11:27.680,0:11:31.920 -parts together - -0:11:28.959,0:11:33.040 -it's not that uh difficult I hope just - -0:11:31.920,0:11:34.720 -six lines - -0:11:33.040,0:11:36.160 -and that's including a documentation - -0:11:34.720,0:11:39.440 -string and you know - -0:11:36.160,0:11:41.279 -uh new lines and things okay so in line - -0:11:39.440,0:11:42.000 -one we just define the block just like - -0:11:41.279,0:11:44.880 -you define - -0:11:42.000,0:11:46.399 -a function we define a block the flag - -0:11:44.880,0:11:49.680 -the block name is going to be called - -0:11:46.399,0:11:53.360 -feedback it has an author who - -0:11:49.680,0:11:56.160 -right the author has no default - -0:11:53.360,0:11:57.760 -value it has a color and the color has a - -0:11:56.160,0:12:00.560 -default value of red - -0:11:57.760,0:12:01.680 -okay so just just as when you define - -0:12:00.560,0:12:04.880 -functions they - -0:12:01.680,0:12:08.639 -they uh you start by uh define - -0:12:04.880,0:12:10.720 -or def block than the name some - -0:12:08.639,0:12:13.440 -mandatory argument and some optional - -0:12:10.720,0:12:15.760 -arguments okay - -0:12:13.440,0:12:18.480 -then the next stage is well and - -0:12:15.760,0:12:20.880 -definition a documentation you know - -0:12:18.480,0:12:22.880 -uh the people who use this which are - -0:12:20.880,0:12:25.519 -future you or future me you know - -0:12:22.880,0:12:27.839 -uh might want to know what this is all - -0:12:25.519,0:12:30.560 -right so let's get to document this - -0:12:27.839,0:12:32.079 -uh and uh for for corwin who might want - -0:12:30.560,0:12:34.560 -to use uh tooltips - -0:12:32.079,0:12:35.120 -uh when corwin writes feedback whatever - -0:12:34.560,0:12:37.120 -and - -0:12:35.120,0:12:38.639 -Emacs they'll see a nice little tooltip - -0:12:37.120,0:12:41.279 -and the tooltip will have - -0:12:38.639,0:12:43.279 -this uh documentation string right so - -0:12:41.279,0:12:45.200 -that'll be nice - -0:12:43.279,0:12:46.480 -okay and then here's the third part the - -0:12:45.200,0:12:49.440 -last three lines are - -0:12:46.480,0:12:49.680 -not not so difficult if the back end is - -0:12:49.440,0:12:52.800 -in - -0:12:49.680,0:12:55.360 -is html the backend is html - -0:12:52.800,0:12:57.440 -please use this template string - -0:12:55.360,0:13:00.639 -otherwise use the other string - -0:12:57.440,0:13:01.279 -okay and for each of these uh string - -0:13:00.639,0:13:03.600 -markers - -0:13:01.279,0:13:04.959 -please put in the color who wrote it and - -0:13:03.600,0:13:07.279 -then the contents - -0:13:04.959,0:13:08.160 -of the special block or the link type - -0:13:07.279,0:13:10.639 -okay - -0:13:08.160,0:13:11.600 -um so that's pretty neat not not so - -0:13:10.639,0:13:14.639 -difficult - -0:13:11.600,0:13:15.519 -so I thought that was kind of cool and - -0:13:14.639,0:13:18.480 -then notice it's - -0:13:15.519,0:13:19.519 -anaphoric it's it's a this this def - -0:13:18.480,0:13:21.760 -block - -0:13:19.519,0:13:22.560 -gives you two new names it gives you a - -0:13:21.760,0:13:25.120 -name called - -0:13:22.560,0:13:26.480 -uh contents and it gives you a name - -0:13:25.120,0:13:29.040 -called back end - -0:13:26.480,0:13:31.040 -right and so even if you're writing a - -0:13:29.040,0:13:32.560 -def block and you intend it to be used - -0:13:31.040,0:13:35.440 -only for links - -0:13:32.560,0:13:37.600 -uh like the uh these colors for example - -0:13:35.440,0:13:38.399 -uh these colors were defined using dev - -0:13:37.600,0:13:41.279 -block - -0:13:38.399,0:13:43.360 -uh and I used them as links right here - -0:13:41.279,0:13:44.880 -and you don't need to worry - -0:13:43.360,0:13:48.160 -where does the text come from in the - -0:13:44.880,0:13:48.959 -link you know if I say red colon bob uh - -0:13:48.160,0:13:50.720 -is it bob - -0:13:48.959,0:13:52.000 -or if I put a description is it the - -0:13:50.720,0:13:54.000 -description so - -0:13:52.000,0:13:56.720 -it's whatever is available will will - -0:13:54.000,0:13:59.199 -become uh the value of contents - -0:13:56.720,0:14:00.320 -and if you're really you know interested - -0:13:59.199,0:14:03.839 -and you want to do some - -0:14:00.320,0:14:04.959 -intricate stuff uh def block also gives - -0:14:03.839,0:14:08.160 -you something called - -0:14:04.959,0:14:09.360 -raw dash contents if you really want to - -0:14:08.160,0:14:11.920 -touch the raw - -0:14:09.360,0:14:12.639 -uh contents with all of the org markups - -0:14:11.920,0:14:16.000 -still there - -0:14:12.639,0:14:18.320 -okay so let's uh let's see - -0:14:16.000,0:14:19.440 -how uh everyone can uh communicate - -0:14:18.320,0:14:22.480 -amongst themselves - -0:14:19.440,0:14:26.000 -using this new interface okay so - -0:14:22.480,0:14:28.399 -uh uh sasha speculates and she how does - -0:14:26.000,0:14:31.440 -she speculate for her organ html - -0:14:28.399,0:14:34.800 -she might just write hey look at that no - -0:14:31.440,0:14:37.519 -no no html nice and and - -0:14:34.800,0:14:39.600 -amin wants to have some green and so he - -0:14:37.519,0:14:42.240 -just says hey here's some color green - -0:14:39.600,0:14:42.959 -and and uh there you go it looks almost - -0:14:42.240,0:14:46.560 -the same - -0:14:42.959,0:14:49.680 -right uh notice that the main argument - -0:14:46.560,0:14:52.480 -is right here def block took an author - -0:14:49.680,0:14:53.920 -and here's the author again and now the - -0:14:52.480,0:14:57.360 -optional argument - -0:14:53.920,0:14:58.000 -uses the org babel source interface you - -0:14:57.360,0:15:00.639 -just say - -0:14:58.000,0:15:01.440 -colon and then a key and then the - -0:15:00.639,0:15:05.040 -argument - -0:15:01.440,0:15:05.519 -quite quite nice and and corwin doesn't - -0:15:05.040,0:15:07.920 -want to - -0:15:05.519,0:15:09.760 -use blocks it's a bit of an overkill and - -0:15:07.920,0:15:12.959 -can just write a - -0:15:09.760,0:15:16.000 -a little um right - -0:15:12.959,0:15:17.440 -so the main argument is now the uh uh - -0:15:16.000,0:15:19.360 -the label of the link - -0:15:17.440,0:15:21.600 -all right and then the description of - -0:15:19.360,0:15:24.959 -the link is the contents - -0:15:21.600,0:15:25.680 -of uh of the feedback so that was quite - -0:15:24.959,0:15:28.079 -nice - -0:15:25.680,0:15:29.360 -so it looks like uh everyone uses the - -0:15:28.079,0:15:32.800 -same interface on the left - -0:15:29.360,0:15:34.480 -and can have varying uh outputs - -0:15:32.800,0:15:36.639 -and it looks I think it looks quite nice - -0:15:34.480,0:15:40.000 -and I hope you do too - -0:15:36.639,0:15:42.160 -um and there's a few more maybe - -0:15:40.000,0:15:43.920 -as you saw in some previous ones we had - -0:15:42.160,0:15:46.800 -text side beside side - -0:15:43.920,0:15:47.440 -right now um or we folded some regions - -0:15:46.800,0:15:49.360 -away - -0:15:47.440,0:15:50.959 -that was quite nice we put some things - -0:15:49.360,0:15:54.000 -in pretty boxes - -0:15:50.959,0:15:57.120 -um uh we had some spoilers at the very - -0:15:54.000,0:15:58.160 -beginning that we we uh hit some text uh - -0:15:57.120,0:15:59.600 -we demoed uh - -0:15:58.160,0:16:01.680 -some texts right you know here's some - -0:15:59.600,0:16:04.480 -org and here's what it looks like - -0:16:01.680,0:16:05.199 -um and and most importantly uh they they - -0:16:04.480,0:16:08.320 -compose - -0:16:05.199,0:16:12.639 -right there's uh uh there's a - -0:16:08.320,0:16:14.720 -a macro called uh uh thread block - -0:16:12.639,0:16:16.160 -uh thread block a thread block call and - -0:16:14.720,0:16:18.000 -it lets you thread the - -0:16:16.160,0:16:20.639 -the contents through a number of blocks - -0:16:18.000,0:16:22.480 -treating them as if they were functions - -0:16:20.639,0:16:23.680 -and so really you can think of a block - -0:16:22.480,0:16:26.560 -as a as a - -0:16:23.680,0:16:27.360 -as a string valued function so that's - -0:16:26.560,0:16:30.959 -pretty neat - -0:16:27.360,0:16:31.759 -I I think and uh thank you for listening - -0:16:30.959,0:16:34.320 -and uh - -0:16:31.759,0:16:34.880 -I I hope you've uh enjoyed this little - -0:16:34.320,0:16:37.600 -uh - -0:16:34.880,0:16:38.160 -happy fun time with uh with the Emacs - -0:16:37.600,0:16:40.720 -and friends - -0:16:38.160,0:16:41.759 -and uh I'll I'm I'll happy happily - -0:16:40.720,0:16:43.730 -answer questions - -0:16:41.759,0:16:45.360 -uh right now um - -0:16:43.730,0:16:48.160 -[Music] - -0:16:45.360,0:16:50.480 -so uh someone says why did you put - -0:16:48.160,0:16:53.600 -optional arguments in a separate list - -0:16:50.480,0:16:54.560 -rather than using cl style argument - -0:16:53.600,0:16:58.399 -lists - -0:16:54.560,0:17:01.680 -um so that's a very good question - -0:16:58.399,0:17:04.400 -and I will answer that by - -0:17:01.680,0:17:04.880 -showing you a more involved definition - -0:17:04.400,0:17:08.959 -of - -0:17:04.880,0:17:12.079 -feedback so let's look at a - -0:17:08.959,0:17:12.079 -a more involved one - -0:17:13.039,0:17:19.280 -right right here so for example - -0:17:16.079,0:17:21.760 -this one is called rural mark all right - -0:17:19.280,0:17:23.439 -and uh please let me know if my text is - -0:17:21.760,0:17:26.799 -not sufficiently big - -0:17:23.439,0:17:29.520 -so here is here is why uh we have - -0:17:26.799,0:17:30.720 -two arguments that takes two arguments - -0:17:29.520,0:17:33.360 -uh instead of one - -0:17:30.720,0:17:34.799 -for for its argument list right so you - -0:17:33.360,0:17:37.679 -you have def block - -0:17:34.799,0:17:38.400 -then you have the name right then you - -0:17:37.679,0:17:40.960 -have - -0:17:38.400,0:17:42.880 -the first uh argument list and the - -0:17:40.960,0:17:46.080 -second argument list - -0:17:42.880,0:17:49.280 -the first argument list uh takes the - -0:17:46.080,0:17:51.760 -takes the text right after the begin - -0:17:49.280,0:17:52.320 -right the text right after the begin is - -0:17:51.760,0:17:55.760 -the main - -0:17:52.320,0:17:57.039 -argument okay and then the remaining key - -0:17:55.760,0:18:00.320 -value pairs - -0:17:57.039,0:18:03.280 -are in the second argument list okay - -0:18:00.320,0:18:04.640 -now the reason we have two is because uh - -0:18:03.280,0:18:06.799 -in order to - -0:18:04.640,0:18:08.880 -streamline the interface to account for - -0:18:06.799,0:18:12.320 -both uh special blocks - -0:18:08.880,0:18:13.360 -and or link types uh what we do is we - -0:18:12.320,0:18:16.160 -say hey - -0:18:13.360,0:18:18.000 -uh in the first argument list uh you can - -0:18:16.160,0:18:21.039 -give a name to the first argument - -0:18:18.000,0:18:24.240 -give it a default value and anything - -0:18:21.039,0:18:27.760 -else you provide will become uh - -0:18:24.240,0:18:30.000 -uh part of the I'll co link - -0:18:27.760,0:18:32.000 -information so for example this link we - -0:18:30.000,0:18:34.799 -decided to make its face - -0:18:32.000,0:18:35.840 -angry red um you might want to give - -0:18:34.799,0:18:37.919 -other features to - -0:18:35.840,0:18:39.679 -links so we're trying to streamline the - -0:18:37.919,0:18:42.320 -interface for both - -0:18:39.679,0:18:42.880 -special blocks and org link types and we - -0:18:42.320,0:18:46.240 -thought - -0:18:42.880,0:18:49.840 -this way was quite nice um so - -0:18:46.240,0:18:52.480 -that was the main reason uh someone asks - -0:18:49.840,0:18:55.039 -uh so if if you uh if that's uh if you - -0:18:52.480,0:18:57.600 -need if you have follow-up please ask - -0:18:55.039,0:19:00.559 -someone asks do you intend to try to - -0:18:57.600,0:19:03.600 -upstream this amazing work into org - -0:19:00.559,0:19:04.559 -well I'm glad you like it I I don't know - -0:19:03.600,0:19:06.880 -how to upstream - -0:19:04.559,0:19:08.799 -but but I I will look into it and any - -0:19:06.880,0:19:11.840 -advice or guidance would be - -0:19:08.799,0:19:14.640 -much appreciated um you know - -0:19:11.840,0:19:17.120 -lisp is awesome and just as defunded as - -0:19:14.640,0:19:20.240 -a macro deathblock is a macro and then - -0:19:17.120,0:19:21.919 -source blocks are awesome and then now - -0:19:20.240,0:19:24.080 -maybe we can have arguments and special - -0:19:21.919,0:19:25.280 -blocks and motivate and encourage more - -0:19:24.080,0:19:28.799 -people to uh - -0:19:25.280,0:19:32.559 -to uh learn lisp right - -0:19:28.799,0:19:35.280 -so another person asks - -0:19:32.559,0:19:38.559 -um what is used to produce colorful - -0:19:35.280,0:19:40.400 -boxes around the cursor - -0:19:38.559,0:19:41.840 -I I'm not quite sure if you're asking - -0:19:40.400,0:19:42.559 -are you talking about my cursor right - -0:19:41.840,0:19:47.840 -here - -0:19:42.559,0:19:47.840 -or are you talking about in the slide um - -0:19:48.400,0:19:52.400 -so this this this cursor is some - -0:19:50.559,0:19:55.440 -application called - -0:19:52.400,0:19:57.679 -a stream brush that I had to purchase uh - -0:19:55.440,0:19:59.039 -unfortunately I could not find a a - -0:19:57.679,0:20:02.159 -suitable free one - -0:19:59.039,0:20:03.840 -um and the blocks I can demonstrate some - -0:20:02.159,0:20:05.679 -Emacs list but I can open up my Emacs if - -0:20:03.840,0:20:06.320 -people like and we can try some things - -0:20:05.679,0:20:09.440 -out - -0:20:06.320,0:20:12.480 -happy to do that uh - -0:20:09.440,0:20:14.880 -you're welcome uh someone asks - -0:20:12.480,0:20:15.520 -a side question about org reveal how do - -0:20:14.880,0:20:17.440 -you get - -0:20:15.520,0:20:19.120 -bespoke or multiple column layouts - -0:20:17.440,0:20:22.559 -without using html - -0:20:19.120,0:20:24.640 -ah excellent question that's what we do - -0:20:22.559,0:20:26.000 -that's that's what this uh project is - -0:20:24.640,0:20:28.960 -about so it's not - -0:20:26.000,0:20:29.440 -org reveal it's it's our fancy parallel - -0:20:28.960,0:20:32.240 -uh - -0:20:29.440,0:20:33.440 -uh block so we have this thing you say - -0:20:32.240,0:20:35.679 -begin parallel - -0:20:33.440,0:20:37.120 -you say how many columns you would like - -0:20:35.679,0:20:39.679 -uh do you want a bar - -0:20:37.120,0:20:40.960 -or not and then you write some text and - -0:20:39.679,0:20:42.480 -then you uh - -0:20:40.960,0:20:44.400 -you get some text and according with the - -0:20:42.480,0:20:47.520 -bar or not right so that's - -0:20:44.400,0:20:50.080 -that's how we achieve that in our slides - -0:20:47.520,0:20:52.559 -so I'm not uh I'm not quite sure where - -0:20:50.080,0:20:52.559 -this was - -0:20:52.880,0:20:55.919 -somewhere here I think - -0:20:59.520,0:21:03.840 -let me try to find this for you - -0:21:06.240,0:21:09.440 -I can't seem to find where the parallel - -0:21:08.320,0:21:12.159 -blocks were - -0:21:09.440,0:21:15.039 -apologies let's move on to the next - -0:21:12.159,0:21:17.760 -question I suppose - -0:21:15.039,0:21:18.400 -uh I'm pretty sure they're here ah there - -0:21:17.760,0:21:21.360 -they are - -0:21:18.400,0:21:22.640 -yes so these these uh were just - -0:21:21.360,0:21:25.440 -instances of using - -0:21:22.640,0:21:26.480 -uh the parallel block and it makes - -0:21:25.440,0:21:29.600 -things parallel - -0:21:26.480,0:21:33.360 -so that's quite nice um another person - -0:21:29.600,0:21:36.720 -asks uh yes - -0:21:33.360,0:21:37.840 -excellent um how does this relate to - -0:21:36.720,0:21:39.360 -banda pandoc - -0:21:37.840,0:21:40.960 -which is used for converting between - -0:21:39.360,0:21:43.919 -markup formats - -0:21:40.960,0:21:44.400 -so all we're doing is we're we're saying - -0:21:43.919,0:21:46.799 -hey - -0:21:44.400,0:21:47.679 -please write org because org is just - -0:21:46.799,0:21:50.400 -fantastic - -0:21:47.679,0:21:51.760 -and we love it and it's the dream and if - -0:21:50.400,0:21:55.039 -you would like to view things - -0:21:51.760,0:21:58.559 -in html or in org reveal or - -0:21:55.039,0:22:02.320 -in pdf that's up to the user so - -0:21:58.559,0:22:05.039 -here is a um oh - -0:22:02.320,0:22:06.080 -made it too small now so here is a an - -0:22:05.039,0:22:08.880 -example - -0:22:06.080,0:22:10.240 -so here's an uh how here's how parallel - -0:22:08.880,0:22:13.120 -is implemented - -0:22:10.240,0:22:14.320 -uh just as a quick example uh not too - -0:22:13.120,0:22:16.880 -long - -0:22:14.320,0:22:18.400 -uh about half of the implementation is - -0:22:16.880,0:22:20.720 -documentation so - -0:22:18.400,0:22:22.720 -uh hopefully that speaks for for how - -0:22:20.720,0:22:25.280 -useful this feature is - -0:22:22.720,0:22:28.080 -uh so we decide if there's a rule or not - -0:22:25.280,0:22:29.760 -um we look for the column break - -0:22:28.080,0:22:31.840 -and really here we're looking at the - -0:22:29.760,0:22:34.960 -back end if the back end is latex - -0:22:31.840,0:22:37.679 -uh please use this uh incantation with - -0:22:34.960,0:22:38.559 -multi columns mini pages what have you - -0:22:37.679,0:22:41.039 -and if the - -0:22:38.559,0:22:41.600 -back end is something else uh please uh - -0:22:41.039,0:22:44.960 -do this - -0:22:41.600,0:22:46.640 -uh div and style and uh other uh - -0:22:44.960,0:22:48.080 -gibberish that we don't really wanna - -0:22:46.640,0:22:51.760 -look at uh so - -0:22:48.080,0:22:55.280 -uh when you pandoc works from org - -0:22:51.760,0:22:58.080 -so it might not work directly since our - -0:22:55.280,0:22:59.679 -interface the way we set it up is when - -0:22:58.080,0:23:01.919 -you try to export - -0:22:59.679,0:23:03.039 -uh we hook in and we do a bunch of - -0:23:01.919,0:23:05.919 -pre-processing - -0:23:03.039,0:23:07.440 -so this this uh def block is a is a - -0:23:05.919,0:23:10.880 -string valued function - -0:23:07.440,0:23:13.919 -and so whenever we see these uh begin - -0:23:10.880,0:23:16.480 -parallel uh when you do an export - -0:23:13.919,0:23:16.960 -I tell Emacs hold up look for those - -0:23:16.480,0:23:19.360 -begin - -0:23:16.960,0:23:20.320 -parallels please oh you found them grab - -0:23:19.360,0:23:22.400 -that text - -0:23:20.320,0:23:24.080 -you grabbed it great now please apply - -0:23:22.400,0:23:27.120 -this person's uh function - -0:23:24.080,0:23:29.760 -onto that text and splice in the result - -0:23:27.120,0:23:30.400 -okay so so when you export uh we're - -0:23:29.760,0:23:33.600 -performing - -0:23:30.400,0:23:35.120 -arbitrary computations on your uh uh on - -0:23:33.600,0:23:38.799 -your text - -0:23:35.120,0:23:40.159 -so uh um some people might not find that - -0:23:38.799,0:23:43.039 -comforting to have - -0:23:40.159,0:23:45.039 -arbitrary uh computations happening so - -0:23:43.039,0:23:47.520 -in this article there's a few where - -0:23:45.039,0:23:48.320 -uh we change your text upon export we - -0:23:47.520,0:23:51.760 -translate it - -0:23:48.320,0:23:55.360 -we do other things to it um - -0:23:51.760,0:23:57.360 -so someone says uh if you export to - -0:23:55.360,0:23:58.640 -latex to pdf does that work well with - -0:23:57.360,0:24:00.320 -beamer as well - -0:23:58.640,0:24:02.080 -to create slides with columns for - -0:24:00.320,0:24:05.200 -example for uh - -0:24:02.080,0:24:08.000 -um so uh actually uh - -0:24:05.200,0:24:09.200 -so uh I I made a bunch of these changes - -0:24:08.000,0:24:12.320 -earlier this morning - -0:24:09.200,0:24:14.480 -and it just says latex right here um - -0:24:12.320,0:24:15.360 -so if you want to go to beamer I think - -0:24:14.480,0:24:18.240 -the back end for me - -0:24:15.360,0:24:18.960 -beamer is called well beamer so instead - -0:24:18.240,0:24:21.200 -of a - -0:24:18.960,0:24:22.000 -a p case what we would do is we would - -0:24:21.200,0:24:25.360 -say oh - -0:24:22.000,0:24:29.279 -if it's a latex or it's a beamer - -0:24:25.360,0:24:31.120 -then uh use this uh otherwise - -0:24:29.279,0:24:33.039 -it's not a latex it will simply default - -0:24:31.120,0:24:36.400 -to this one which could be - -0:24:33.039,0:24:39.679 -dangerous for your needs um I think it's - -0:24:36.400,0:24:41.279 -a bad practice to put a underscore but I - -0:24:39.679,0:24:43.679 -did it really quickly because I just - -0:24:41.279,0:24:46.559 -wanted to show you that it works fine in - -0:24:43.679,0:24:47.440 -org reveal contributions are more than - -0:24:46.559,0:24:51.039 -welcome - -0:24:47.440,0:24:52.240 -I I uh happily uh would love any - -0:24:51.039,0:24:56.080 -assistance - -0:24:52.240,0:24:58.640 -um and and I have a uh we have a - -0:24:56.080,0:25:00.159 -list a reference cheat sheet here to to - -0:24:58.640,0:25:02.000 -learn a little bit about lisp if you're - -0:25:00.159,0:25:04.640 -not comfortable or to - -0:25:02.000,0:25:06.400 -ask some questions lots of helpful - -0:25:04.640,0:25:09.440 -people - -0:25:06.400,0:25:11.679 -so there's another question that says uh - -0:25:09.440,0:25:13.120 -does typing in a block mess up with a - -0:25:11.679,0:25:15.679 -syntax highlighting - -0:25:13.120,0:25:17.279 -usually you use a single color inside an - -0:25:15.679,0:25:21.279 -example block for example - -0:25:17.279,0:25:25.279 -ah you found my crutch you found - -0:25:21.279,0:25:27.440 -my crutch um so I so there's - -0:25:25.279,0:25:29.760 -emax's is all encompassing and I'm not - -0:25:27.440,0:25:32.559 -quite sure how fonts work or are - -0:25:29.760,0:25:33.840 -you know I I learned enough to get by I - -0:25:32.559,0:25:37.440 -learned enough to get by - -0:25:33.840,0:25:39.760 -so let me um but here's - -0:25:37.440,0:25:40.799 -here's how links work they're they're a - -0:25:39.760,0:25:42.960 -bit complicated - -0:25:40.799,0:25:43.919 -this this is a bit scary I don't - -0:25:42.960,0:25:47.039 -recommend anyone - -0:25:43.919,0:25:49.840 -uh read it um - -0:25:47.039,0:25:50.559 -but uh actually let me open up an email - -0:25:49.840,0:25:53.600 -and you can - -0:25:50.559,0:25:54.799 -you can see what I see uh so here's an - -0:25:53.600,0:25:56.799 -Emacs - -0:25:54.799,0:25:58.400 -all right let's make that a bit bigger - -0:25:56.799,0:26:01.200 -uh let's change this - -0:25:58.400,0:26:01.919 -slightly nope that's worse there you go - -0:26:01.200,0:26:05.760 -so - -0:26:01.919,0:26:09.360 -here's here's some words um so here's - -0:26:05.760,0:26:12.000 -red hello um - -0:26:09.360,0:26:12.400 -but you're worried about uh preserving - -0:26:12.000,0:26:15.679 -uh - -0:26:12.400,0:26:18.480 -uh uh um quantification - -0:26:15.679,0:26:18.880 -so let's make an emax list block all - -0:26:18.480,0:26:22.840 -right - -0:26:18.880,0:26:27.520 -and let's say plus one two ah - -0:26:22.840,0:26:27.520 -where's the fun hello - -0:26:28.000,0:26:34.880 -um bye okay where's the coloring - -0:26:32.080,0:26:36.000 -if we if we zoom in on this on this - -0:26:34.880,0:26:39.200 -begin source block - -0:26:36.000,0:26:42.159 -if we zoom in you can see down here - -0:26:39.200,0:26:43.279 -uh we have our our coloring all right - -0:26:42.159,0:26:46.960 -when we zoom in - -0:26:43.279,0:26:50.080 -if we if we zoom out ah no coloring - -0:26:46.960,0:26:50.880 -zoom in coloring it's about ah no - -0:26:50.080,0:26:53.840 -coloring - -0:26:50.880,0:26:55.679 -let's take off these bad boys and oh - -0:26:53.840,0:26:59.360 -look my coloring's back - -0:26:55.679,0:27:02.320 -so um in a previous - -0:26:59.360,0:27:03.760 -uh iteration of the system I was able to - -0:27:02.320,0:27:06.400 -maintain coloring - -0:27:03.760,0:27:08.559 -uh in this new iteration I am not I - -0:27:06.400,0:27:11.039 -don't know how to do it I haven't uh - -0:27:08.559,0:27:13.279 -had the time to to implement it I spent - -0:27:11.039,0:27:17.279 -a lot of time writing this uh - -0:27:13.279,0:27:19.679 -48 page uh documentation uh with uh - -0:27:17.279,0:27:20.320 -with some fun examples to to to try to - -0:27:19.679,0:27:21.760 -help - -0:27:20.320,0:27:23.760 -people learn so but but I would - -0:27:21.760,0:27:26.240 -appreciate any help or guidance on - -0:27:23.760,0:27:28.000 -how to uh maintain the quantification I - -0:27:26.240,0:27:29.200 -I really would like to keep those colors - -0:27:28.000,0:27:31.840 -in - -0:27:29.200,0:27:32.640 -um musa we have time for maybe one more - -0:27:31.840,0:27:34.960 -question - -0:27:32.640,0:27:37.039 -um one or two more questions and then we - -0:27:34.960,0:27:39.120 -have to move on to the next talk - -0:27:37.039,0:27:40.799 -um but yeah you're more than welcome to - -0:27:39.120,0:27:42.559 -take continue taking the questions via - -0:27:40.799,0:27:45.760 -irc or the pad - -0:27:42.559,0:27:48.480 -okay thank you thank you - -0:27:45.760,0:27:48.880 -let's uh the final question we'll take - -0:27:48.480,0:27:52.320 -is - -0:27:48.880,0:27:54.399 -um should packages implement - -0:27:52.320,0:27:55.840 -interface to one specific format or - -0:27:54.399,0:27:57.279 -attempt to be conclusive to all the - -0:27:55.840,0:27:58.880 -potential output targets - -0:27:57.279,0:28:01.120 -I think you should just make them as you - -0:27:58.880,0:28:02.559 -go and you know add them as you need - -0:28:01.120,0:28:05.600 -them we'll make uh - -0:28:02.559,0:28:07.840 -help requests or things and uh - -0:28:05.600,0:28:09.279 -we can we can share recipes in this uh - -0:28:07.840,0:28:12.799 -document and then - -0:28:09.279,0:28:16.000 -try to add other uh techniques and then - -0:28:12.799,0:28:19.200 -and we can uh use these blocks as a - -0:28:16.000,0:28:22.240 -common uh interface for - -0:28:19.200,0:28:26.000 -for exporting to pdf and other things - -0:28:22.240,0:28:28.399 -and since someone asked here is a um - -0:28:26.000,0:28:30.159 -here is uh what a pdf looks like this is - -0:28:28.399,0:28:33.840 -the same pdf and - -0:28:30.159,0:28:34.960 -uh rendered uh just I made no effort to - -0:28:33.840,0:28:37.840 -make it look good - -0:28:34.960,0:28:38.559 -but it surprisingly does look good so so - -0:28:37.840,0:28:41.600 -uh that was - -0:28:38.559,0:28:44.320 -uh that was nice um that was a - -0:28:41.600,0:28:44.880 -terrible magenta but that is life uh - -0:28:44.320,0:28:47.279 -anyhow - -0:28:44.880,0:28:48.960 -I hope you all enjoyed this talk I hope - -0:28:47.279,0:28:51.679 -you will find um - -0:28:48.960,0:28:52.799 -death block uh useful to you it is - -0:28:51.679,0:28:54.960 -available on melbourne - -0:28:52.799,0:28:57.679 -uh in a rush to make it available for - -0:28:54.960,0:29:00.159 -EmacsConf 2020 some melba - -0:28:57.679,0:29:00.960 -guidelines may not have been in here too - -0:29:00.159,0:29:03.200 -please do not - -0:29:00.960,0:29:04.720 -hit me um and I hope everyone enjoys the - -0:29:03.200,0:29:08.559 -rest of the EmacsConf - -0:29:04.720,0: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.sbv b/2020/subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--questions--tuan-anh-nguyen-autogen.sbv deleted file mode 100644 index 866a383f..00000000 --- a/2020/subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--questions--tuan-anh-nguyen-autogen.sbv +++ /dev/null @@ -1,1086 +0,0 @@ -0:00:00.960,0:00:05.600 -uh okay so the first question is is uh - -0:00:03.679,0:00:08.000 -do you think that this package can be - -0:00:05.600,0:00:11.760 -included into Emacs or - -0:00:08.000,0:00:11.760 -uh empire uh - -0:00:12.320,0:00:18.560 -I think uh it most definitely can is - -0:00:15.360,0:00:21.760 -just a matter of paperwork but - -0:00:18.560,0:00:24.480 -the reason I initially wanted to make it - -0:00:21.760,0:00:25.039 -like a central package is that so that I - -0:00:24.480,0:00:28.720 -can - -0:00:25.039,0:00:31.920 -experiment with it more - -0:00:28.720,0:00:34.320 -like have more freedom to experiment but - -0:00:31.920,0:00:35.680 -eventually I think is a good candidate - -0:00:34.320,0:00:37.920 -for inclusion into - -0:00:35.680,0:00:37.920 -core - -0:00:38.800,0:00:42.640 -and because because currently not in - -0:00:41.200,0:00:44.480 -corey mass there are a couple of - -0:00:42.640,0:00:47.840 -problems with it - -0:00:44.480,0:00:50.960 -mostly in terms of performance - -0:00:47.840,0:00:53.280 -for example like anytime we want to - -0:00:50.960,0:00:54.160 -access the text in a buffer we need to - -0:00:53.280,0:00:57.360 -make - -0:00:54.160,0:01:00.480 -a copy of the text into a string - -0:00:57.360,0:01:03.520 -and then right after reading from that - -0:01:00.480,0:01:05.280 -text we need to free it right away and - -0:01:03.520,0:01:09.040 -that results in a lot of garbage - -0:01:05.280,0:01:11.920 -collection so it would be better - -0:01:09.040,0:01:12.240 -either the treasure could be included in - -0:01:11.920,0:01:15.680 -core - -0:01:12.240,0:01:16.799 -imax or dynamic dynamic model support - -0:01:15.680,0:01:19.439 -can be - -0:01:16.799,0:01:21.920 -augmented with direct text access - -0:01:19.439,0:01:21.920 -somehow - -0:01:24.080,0:01:27.200 -so the second question is will release - -0:01:26.400,0:01:30.320 -performance - -0:01:27.200,0:01:33.040 -be more competitive with cce max - -0:01:30.320,0:01:35.520 -enough so electricity in english is more - -0:01:33.040,0:01:35.520 -attractive - -0:01:35.670,0:01:43.439 -[Music] - -0:01:38.240,0:01:45.840 -I think it's possible but uh yeah - -0:01:43.439,0:01:46.799 -not sure about the amount of effort it - -0:01:45.840,0:01:52.000 -can be - -0:01:46.799,0:01:52.000 -multi-years effort and one thing that - -0:01:52.960,0:02:00.640 -even though gce max can make uh - -0:01:56.479,0:02:00.640 -it is fast enough there's - -0:02:00.719,0:02:05.280 -there's one thing that it uh cannot have - -0:02:03.119,0:02:09.679 -which is that because it's the lisp - -0:02:05.280,0:02:12.480 -it needs the garage collector so - -0:02:09.679,0:02:14.000 -we may experiment experience some kind - -0:02:12.480,0:02:17.360 -of - -0:02:14.000,0:02:19.920 -gcc post if we use live whereas the - -0:02:17.360,0:02:24.720 -currently transistor is written in c - -0:02:19.920,0:02:24.720 -so there's no such latency - -0:02:28.400,0:02:32.400 -the next question is do you think three - -0:02:31.040,0:02:36.080 -sister would be useful - -0:02:32.400,0:02:38.319 -for all buffers I can imagine it being - -0:02:36.080,0:02:39.599 -used to keep a post ast about an arc - -0:02:38.319,0:02:42.560 -buffer - -0:02:39.599,0:02:43.920 -light off element and update it in real - -0:02:42.560,0:02:46.239 -time - -0:02:43.920,0:02:47.760 -yeah actually this is a very interesting - -0:02:46.239,0:02:50.800 -idea - -0:02:47.760,0:02:53.760 -I saw someone started - -0:02:50.800,0:02:55.120 -resistor grammar for all already I don't - -0:02:53.760,0:02:58.159 -have a link right now but - -0:02:55.120,0:03:01.040 -I can look for it - -0:02:58.159,0:03:01.680 -I'll try looking for it and put the link - -0:03:01.040,0:03:05.840 -in - -0:03:01.680,0:03:05.840 -here later - -0:03:09.599,0:03:15.519 -yeah yes someone has written here the uh - -0:03:13.280,0:03:17.040 -and the biggest problem with uh right - -0:03:15.519,0:03:20.560 -now is that it doesn't have - -0:03:17.040,0:03:20.560 -formal grammar so - -0:03:21.360,0:03:24.400 -so the effort - -0:03:22.380,0:03:27.120 -[Applause] - -0:03:24.400,0:03:28.799 -be quite big I think but but once we - -0:03:27.120,0:03:31.519 -have that because the - -0:03:28.799,0:03:33.840 -tree sitter can be run on the web as - -0:03:31.519,0:03:33.840 -well - -0:03:34.239,0:03:38.080 -we can on the web and in many other - -0:03:37.440,0:03:40.720 -places - -0:03:38.080,0:03:41.840 -if we have a grammar for a traditional - -0:03:40.720,0:03:45.680 -grammar for all - -0:03:41.840,0:03:49.680 -we can bring off more - -0:03:45.680,0:03:52.000 -like everywhere that's a very cool - -0:03:49.680,0:03:52.000 -thought - -0:03:56.000,0:04:00.480 -next one is could this be used with - -0:03:58.080,0:04:03.200 -packages like smart parents that aim to - -0:04:00.480,0:04:07.120 -bring structural editing to - -0:04:03.200,0:04:11.360 -non-s expression based languages - -0:04:07.120,0:04:14.720 -yes that is actually one of the - -0:04:11.360,0:04:17.280 -intended use cases initially - -0:04:14.720,0:04:18.880 -it's definitely possible but it's just - -0:04:17.280,0:04:29.840 -that no one has - -0:04:18.880,0:04:29.840 -only started writing the integration yet - -0:04:37.199,0:04:41.919 -and next one - -0:04:40.639,0:04:45.040 -could you show the source that was - -0:04:41.919,0:04:48.479 -matched by the parser in the debug view - -0:04:45.040,0:04:53.440 -in addition to the grammar part matched - -0:04:48.479,0:04:53.440 -uh yeah that's actually um - -0:04:54.960,0:04:59.280 -on my to-do list but I haven't had time - -0:04:57.759,0:05:02.560 -for it yet - -0:04:59.280,0:05:06.560 -so uh if you go to the treesita - -0:05:02.560,0:05:08.800 -website it also has an - -0:05:06.560,0:05:11.840 -online playground where you can input - -0:05:08.800,0:05:11.840 -the code and see the - -0:05:12.000,0:05:16.000 -parse tree in real time and it's - -0:05:14.400,0:05:19.360 -actually - -0:05:16.000,0:05:22.840 -a lot more fancy than what we have in - -0:05:19.360,0:05:25.919 -imax currently so - -0:05:22.840,0:05:27.120 -yeah I just don't have time for it yes - -0:05:25.919,0:05:30.240 -so - -0:05:27.120,0:05:30.240 -some help here would be - -0:05:30.320,0:05:41.730 -very appreciated - -0:05:38.700,0:05:41.730 -[Music] - -0:05:49.919,0:05:54.240 -the next question is will it ever be - -0:05:52.000,0:05:55.280 -possible to write resetter grammars in a - -0:05:54.240,0:05:59.520 -lisp - -0:05:55.280,0:05:59.520 -or will javascript be required - -0:06:00.560,0:06:05.280 -yeah that is already answered in the - -0:06:02.800,0:06:07.600 -part so the - -0:06:05.280,0:06:08.639 -the transcript is actually just used as - -0:06:07.600,0:06:12.160 -a sort of - -0:06:08.639,0:06:14.639 -preprocessor so the - -0:06:12.160,0:06:15.680 -python generator actually works on the - -0:06:14.639,0:06:19.280 -on a json - -0:06:15.680,0:06:20.240 -structure so uh it's definitely possible - -0:06:19.280,0:06:24.240 -to replace - -0:06:20.240,0:06:24.240 -javascript with lists for this - -0:06:29.039,0:06:32.160 -how extensive will the compatibility - -0:06:31.280,0:06:35.360 -between - -0:06:32.160,0:06:35.840 -highlighting grammars for e-max and - -0:06:35.360,0:06:41.039 -those - -0:06:35.840,0:06:41.039 -for veeam nail view - -0:06:44.560,0:06:51.680 -so so right now the - -0:06:48.720,0:06:52.000 -nail vim and Emacs used a different set - -0:06:51.680,0:06:55.440 -of - -0:06:52.000,0:06:59.520 -the highlighting queries and - -0:06:55.440,0:07:03.039 -item probably uses another set of - -0:06:59.520,0:07:04.960 -patterns as well I think it makes sense - -0:07:03.039,0:07:07.680 -because - -0:07:04.960,0:07:08.479 -each editor has its own like existing - -0:07:07.680,0:07:11.919 -conventions - -0:07:08.479,0:07:15.599 -for syntax highlighting so - -0:07:11.919,0:07:18.560 -at least in the beginning I don't expect - -0:07:15.599,0:07:21.520 -there is any compatibility between - -0:07:18.560,0:07:21.520 -different editors - -0:07:21.599,0:07:26.639 -but I think in the long run it will be - -0:07:27.280,0:07:31.360 -would it better if there's some kind of - -0:07:29.520,0:07:34.880 -effort to - -0:07:31.360,0:07:37.440 -unify the at least provide the - -0:07:34.880,0:07:39.759 -most common patterns that should work - -0:07:37.440,0:07:39.759 -across - -0:07:42.840,0:07:45.840 -editors - -0:07:51.759,0:07:55.280 -next one is could there be a - -0:07:53.520,0:07:57.919 -standardized approach - -0:07:55.280,0:08:00.319 -to coding automatic refactoring in the - -0:07:57.919,0:08:00.319 -future - -0:08:01.039,0:08:04.160 -so that whichever language mode you're - -0:08:02.639,0:08:12.960 -using you could see many - -0:08:04.160,0:08:16.400 -available refactoring operations - -0:08:12.960,0:08:18.639 -I'm not sure about this because the - -0:08:16.400,0:08:18.639 -like - -0:08:19.919,0:08:23.840 -most of uh refactoring operations are - -0:08:22.240,0:08:26.960 -actually very - -0:08:23.840,0:08:28.720 -like highly specific to a language or at - -0:08:26.960,0:08:32.800 -least to class of - -0:08:28.720,0:08:32.800 -class of languages so - -0:08:33.599,0:08:40.719 -so so maybe it's not like uh one single - -0:08:37.839,0:08:41.519 -approach for all the languages but maybe - -0:08:40.719,0:08:43.760 -uh - -0:08:41.519,0:08:44.959 -one for object-oriented oriented - -0:08:43.760,0:08:49.920 -languages - -0:08:44.959,0:08:49.920 -one for lisp like language for example - -0:08:50.160,0:08:55.839 -maybe one for javascript and typestream - -0:09:02.959,0:09:07.519 -next question is uh I'm completely new - -0:09:05.360,0:09:10.160 -to trisita how do I use it - -0:09:07.519,0:09:11.519 -as an end user is there any easy example - -0:09:10.160,0:09:14.000 -config out there - -0:09:11.519,0:09:15.440 -the organizer otherwise that shows - -0:09:14.000,0:09:18.959 -standard usage - -0:09:15.440,0:09:18.959 -with whatever programming language - -0:09:18.960,0:09:23.920 -[Music] - -0:09:20.480,0:09:23.920 -yeah there's no um - -0:09:27.600,0:09:32.000 -uh actually that uh so the project has - -0:09:30.880,0:09:36.399 -the documentation - -0:09:32.000,0:09:40.720 -site but it's not very expensive yet - -0:09:36.399,0:09:44.000 -I think we need to add more examples - -0:09:40.720,0:09:44.000 -to the documentation - -0:09:48.720,0:09:53.519 -can language major mode authors start - -0:09:51.200,0:09:56.240 -taking advantage of this now - -0:09:53.519,0:09:57.279 -or is it intended to be used as a minor - -0:09:56.240,0:10:00.399 -mode - -0:09:57.279,0:10:01.600 -uh actually it's both so it's intended - -0:10:00.399,0:10:04.480 -to be used - -0:10:01.600,0:10:05.920 -as a minor mode but it's also intended - -0:10:04.480,0:10:09.839 -to - -0:10:05.920,0:10:13.519 -be depended on by the major mode - -0:10:09.839,0:10:13.920 -so basically it it wants to be a minor - -0:10:13.519,0:10:17.200 -mode - -0:10:13.920,0:10:19.839 -that is dependent on by the other - -0:10:17.200,0:10:19.839 -major modes - -0:10:21.839,0:10:29.279 -and by it here I mean the the base - -0:10:25.680,0:10:29.279 -minor mode tree system mode - -0:10:30.839,0:10:37.120 -so uh question - -0:10:34.079,0:10:40.160 -11 is it possible to use this - -0:10:37.120,0:10:43.360 -for refactoring tool - -0:10:40.160,0:10:46.720 -uh yeah but - -0:10:43.360,0:10:47.680 -um like for the kind of refactoring - -0:10:46.720,0:10:52.079 -inside uh - -0:10:47.680,0:10:52.079 -buffer it is uh - -0:10:52.640,0:10:57.040 -it's very doable right now but you need - -0:10:55.040,0:11:01.120 -to write some glue code - -0:10:57.040,0:11:04.000 -but for for the kind of more - -0:11:01.120,0:11:04.399 -extensive refactoring where you want to - -0:11:04.000,0:11:09.120 -touch - -0:11:04.399,0:11:09.120 -uh like all files in a project - -0:11:09.279,0:11:12.839 -there needs there needs to be some kind - -0:11:11.440,0:11:15.920 -of the project - -0:11:12.839,0:11:18.399 -and another project and uh - -0:11:15.920,0:11:19.200 -understanding of the language uh model - -0:11:18.399,0:11:21.120 -system - -0:11:19.200,0:11:22.560 -like how they are laid out in the file - -0:11:21.120,0:11:24.480 -system as well - -0:11:22.560,0:11:26.240 -and with that understanding that there - -0:11:24.480,0:11:29.920 -should be passing of - -0:11:26.240,0:11:30.480 -the files even files on the file system - -0:11:29.920,0:11:34.000 -that - -0:11:30.480,0:11:37.760 -are not yet loaded into Emacs - -0:11:34.000,0:11:40.320 -so that sounds like something more - -0:11:37.760,0:11:40.320 -a lot more - -0:11:41.040,0:11:44.560 -a lot more extensive - -0:11:46.320,0:11:50.000 -and it probably probably sounds like - -0:11:49.519,0:11:52.160 -something - -0:11:50.000,0:11:54.560 -something like an id in uh inside your - -0:11:52.160,0:11:57.839 -max already like a replacement for - -0:11:54.560,0:11:57.839 -for lsp - -0:12:07.360,0:12:11.440 -so next question is the that pop-up mx - -0:12:10.480,0:12:14.480 -window - -0:12:11.440,0:12:14.480 -how do you get that - -0:12:15.200,0:12:20.320 -is the custom hem code I wrote a long - -0:12:18.720,0:12:24.800 -time ago - -0:12:20.320,0:12:26.480 -but but right now the best way to - -0:12:24.800,0:12:29.440 -to have something like that is probably - -0:12:26.480,0:12:33.200 -the what is written here like uh - -0:12:29.440,0:12:39.839 -ham boss frame or iv spring - -0:12:33.200,0:12:43.680 -is a lot easier now - -0:12:39.839,0:12:46.320 -is there a folding mode for tree sitter - -0:12:43.680,0:12:48.079 -nowadays there's no folding mode for - -0:12:46.320,0:12:52.000 -three sitters yet - -0:12:48.079,0:12:54.880 -but uh - -0:12:52.000,0:12:58.720 -uh but I think it would better be better - -0:12:54.880,0:12:58.720 -if it's integrated with the - -0:12:59.440,0:13:03.120 -like current currently there are - -0:13:02.079,0:13:04.880 -multiple - -0:13:03.120,0:13:07.200 -I'm not sure they're moving forward - -0:13:04.880,0:13:10.240 -there are like code folding frameworks - -0:13:07.200,0:13:12.800 -inside imax already or some the - -0:13:10.240,0:13:13.920 -code showing packages like third party - -0:13:12.800,0:13:15.680 -packaging - -0:13:13.920,0:13:17.680 -and I think it's better to integrate - -0:13:15.680,0:13:20.000 -with these mods - -0:13:17.680,0:13:22.560 -rather than writing something new - -0:13:20.000,0:13:22.560 -entirely - -0:13:32.399,0:13:36.639 -are there any language major modes that - -0:13:34.800,0:13:40.079 -have integrated already - -0:13:36.639,0:13:42.800 -uh not yet - -0:13:40.079,0:13:43.440 -so the there was a proposed web assembly - -0:13:42.800,0:13:46.839 -mode - -0:13:43.440,0:13:50.000 -but it's a new major mode in terms of - -0:13:46.839,0:13:52.880 -existing major mode there is the - -0:13:50.000,0:13:52.880 -typescript mode - -0:13:53.279,0:13:57.519 -but they're only discussing about - -0:13:55.600,0:14:02.079 -integration - -0:13:57.519,0:14:04.639 -they're not integrated yet - -0:14:02.079,0:14:05.360 -I think I can try writing the - -0:14:04.639,0:14:09.199 -integration - -0:14:05.360,0:14:11.839 -sometimes next month - -0:14:09.199,0:14:12.720 -uh basically what they want right now is - -0:14:11.839,0:14:16.160 -the - -0:14:12.720,0:14:19.199 -syntax highlighting and handling - -0:14:16.160,0:14:22.959 -synthetic highlighting and - -0:14:19.199,0:14:27.760 -code indentation for tsx - -0:14:22.959,0:14:31.839 -which is the embedded react - -0:14:27.760,0:14:31.839 -syntax inside typescript - -0:14:32.160,0:14:40.000 -so it turns out passing these tests - -0:14:36.399,0:14:40.000 -is very troublesome so - -0:14:40.639,0:14:47.040 -so trees that would be a crystal would - -0:14:43.920,0:14:47.040 -be a lot of help there - -0:14:49.920,0:14:59.839 -is there any link to the slides yes - -0:14:53.279,0:14:59.839 -I'll post it in irc later - -0:14:59.920,0:15:04.240 -regarding imax integration we will - -0:15:01.920,0:15:05.440 -always need to be a foreign library or - -0:15:04.240,0:15:09.920 -can it be included - -0:15:05.440,0:15:09.920 -linked directly in compilation - -0:15:10.839,0:15:17.600 -uh if if this is about the - -0:15:14.480,0:15:21.839 -core library itself - -0:15:17.600,0:15:23.440 -then I think it's uh answered it in the - -0:15:21.839,0:15:27.440 -first question - -0:15:23.440,0:15:29.920 -right now is a right now it's a - -0:15:27.440,0:15:30.959 -dynamic model but in the long run it - -0:15:29.920,0:15:34.000 -will better if - -0:15:30.959,0:15:39.839 -it's included in core Emacs - -0:15:34.000,0:15:41.360 -for the language definitions themselves - -0:15:39.839,0:15:43.279 -it should be better if they are - -0:15:41.360,0:15:46.639 -distributed uh - -0:15:43.279,0:15:49.199 -separately like that right now so each - -0:15:46.639,0:15:49.680 -uh for each language there will be a - -0:15:49.199,0:15:52.639 -shared - -0:15:49.680,0:15:55.839 -library that will be loaded by the core - -0:15:52.639,0:15:55.839 -library at runtime - -0:16:00.480,0:16:04.240 -so the last question is the python mode - -0:16:02.480,0:16:06.160 -example is pretty good - -0:16:04.240,0:16:07.600 -is that something that one can use - -0:16:06.160,0:16:11.759 -already - -0:16:07.600,0:16:11.759 -yes I'm using it at work right now - -0:16:12.320,0:16:17.360 -I think that's all for that's all the - -0:16:14.639,0:16:17.360 -questions right - -0:16:19.199,0:16:27.839 -you are now unmuted yeah I think that's - -0:16:23.440,0:16:30.399 -all the questions on the pads so far um - -0:16:27.839,0:16:32.399 -so thank you but um there may be more - -0:16:30.399,0:16:36.639 -questions coming on irc - -0:16:32.399,0:16:39.680 -um I'll try to have a look - -0:16:36.639,0:16:40.560 -and we still have about 10 or 15 more - -0:16:39.680,0:16:43.600 -minutes so - -0:16:40.560,0:16:46.880 -um there's no rush to wrap up in case um - -0:16:43.600,0:16:46.880 -anyone has any more questions - -0:16:48.160,0:16:51.360 -uh yeah I just realized that uh I mixed - -0:16:50.880,0:16:54.959 -up the - -0:16:51.360,0:16:56.000 -video editing and I uh lost an entire - -0:16:54.959,0:17:00.880 -session on the - -0:16:56.000,0:17:00.880 -introduction to treesita oh - -0:17:01.120,0:17:05.839 -no worries - -0:17:06.640,0:17:20.079 -you are now muted - -0:17:18.079,0:17:21.679 -sounds like a perfect opportunity for - -0:17:20.079,0:17:24.000 -you to redo the introduction if you'd - -0:17:21.679,0:17:24.000 -like to - -0:17:24.640,0:17:30.000 -uh actually uh forgot a lot of that - -0:17:30.799,0:17:35.760 -and I'm with uh tired now so no I don't - -0:17:33.760,0:17:39.200 -think I can do it - -0:17:35.760,0:17:43.520 -it's uh 30 minutes until my bedtime - -0:17:39.200,0:17:46.640 -oh yeah yeah okay you are now unmuted - -0:17:43.520,0:17:50.480 -so in that case maybe we should - -0:17:46.640,0:17:54.240 -um we should let tona - -0:17:50.480,0:17:56.960 -get started going to bed and um and - -0:17:54.240,0:17:57.840 -I mean then I will figure out what to do - -0:17:56.960,0:17:59.360 -with the time - -0:17:57.840,0:18:02.160 -should we start the next talk early - -0:17:59.360,0:18:05.360 -since it's pre-recorded - -0:18:02.160,0:18:07.919 -um yeah we can do we can do that um - -0:18:05.360,0:18:09.919 -but um yeah tonight it you know right - -0:18:07.919,0:18:10.480 -now it's pretty late there um no worries - -0:18:09.919,0:18:12.720 -but - -0:18:10.480,0:18:13.520 -yeah if you know over the next few days - -0:18:12.720,0:18:16.559 -or weeks - -0:18:13.520,0:18:20.240 -if you would like to um you know - -0:18:16.559,0:18:22.080 -do a quick pre-recording or recording - -0:18:20.240,0:18:24.320 -to add the introduction and then stitch - -0:18:22.080,0:18:26.559 -it in with what you had already sent me - -0:18:24.320,0:18:30.160 -um by all means please do that and I - -0:18:26.559,0:18:33.760 -will upload the edited version - -0:18:30.160,0:18:33.760 -uh yeah yeah I'll try to do that - -0:18:34.880,0: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.sbv b/2020/subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--tuan-anh-nguyen-autogen.sbv deleted file mode 100644 index fb33267f..00000000 --- a/2020/subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--tuan-anh-nguyen-autogen.sbv +++ /dev/null @@ -1,1521 +0,0 @@ -0:00:01.520,0:00:07.200 -hello everyone my name is toniang - -0:00:04.400,0:00:09.280 -I've been using amax for about 10 years - -0:00:07.200,0:00:11.519 -today I'm going to talk about 360 - -0:00:09.280,0:00:13.759 -a new imax package that allows ems to - -0:00:11.519,0:00:17.840 -pass multiple programming languages - -0:00:13.759,0:00:21.840 -in real time - -0:00:17.840,0:00:23.359 -so what is the problem statement - -0:00:21.840,0:00:24.960 -in order to support programming - -0:00:23.359,0:00:25.760 -functionalities for a particular - -0:00:24.960,0:00:27.680 -language - -0:00:25.760,0:00:29.679 -a text editor needs to have some degree - -0:00:27.680,0:00:31.840 -of language understanding - -0:00:29.679,0:00:33.840 -traditionally text editors have relied - -0:00:31.840,0:00:34.960 -very heavily on regular expressions for - -0:00:33.840,0:00:38.320 -this - -0:00:34.960,0:00:39.280 -e-max is no different most language - -0:00:38.320,0:00:40.879 -major modes use - -0:00:39.280,0:00:42.960 -regular expressions for syntax - -0:00:40.879,0:00:46.239 -highlighting code navigation - -0:00:42.960,0:00:47.440 -folding indexing and so on regular - -0:00:46.239,0:00:50.559 -expressions are - -0:00:47.440,0:00:53.600 -problematic for a couple of reasons - -0:00:50.559,0:00:54.000 -they're slow and inaccurate they also - -0:00:53.600,0:00:56.800 -make - -0:00:54.000,0:00:57.440 -the code hard to read and write - -0:00:56.800,0:00:59.199 -sometimes - -0:00:57.440,0:01:01.199 -it's because the regular expressions - -0:00:59.199,0:01:04.000 -themselves are very hairy - -0:01:01.199,0:01:05.199 -and sometimes because they are just not - -0:01:04.000,0:01:07.840 -powerful enough - -0:01:05.199,0:01:11.200 -some helper code is usually needed to - -0:01:07.840,0:01:13.280 -pass more intricate language features - -0:01:11.200,0:01:16.159 -that also illustrates the core problem - -0:01:13.280,0:01:18.400 -with regular expressions - -0:01:16.159,0:01:21.119 -in that they are not powerful enough to - -0:01:18.400,0:01:22.640 -pass programming languages - -0:01:21.119,0:01:25.040 -an example feature that regular - -0:01:22.640,0:01:27.520 -expressions cannot handle very well - -0:01:25.040,0:01:28.320 -is string interpolation which is a very - -0:01:27.520,0:01:31.680 -common feature - -0:01:28.320,0:01:34.079 -in many modern programming languages - -0:01:31.680,0:01:35.840 -it would be much nicer if image somehow - -0:01:34.079,0:01:36.479 -had structural understanding of source - -0:01:35.840,0:01:39.439 -code - -0:01:36.479,0:01:39.439 -like ides do - -0:01:39.520,0:01:42.960 -there have been multiple efforts to - -0:01:41.119,0:01:45.280 -bring this kind of programming language - -0:01:42.960,0:01:47.119 -understanding into Emacs - -0:01:45.280,0:01:48.640 -there are language specific persons - -0:01:47.119,0:01:50.240 -written in elise - -0:01:48.640,0:01:52.320 -they can be thought of as the next - -0:01:50.240,0:01:54.960 -logical step of the glue code on top - -0:01:52.320,0:01:56.000 -of tribal expressions moving from - -0:01:54.960,0:01:58.079 -partial local - -0:01:56.000,0:01:59.840 -pattern recognition into a full-fledged - -0:01:58.079,0:02:01.439 -parser - -0:01:59.840,0:02:03.040 -the most prominent example of this - -0:02:01.439,0:02:06.159 -approach is probably the famous - -0:02:03.040,0:02:06.159 -js2 mode - -0:02:06.479,0:02:12.959 -however this approach has several issues - -0:02:10.080,0:02:13.680 -parsing is computationally expensive and - -0:02:12.959,0:02:16.800 -imagine - -0:02:13.680,0:02:18.400 -is not good at that kind of stuff - -0:02:16.800,0:02:20.840 -furthermore maintenance is very - -0:02:18.400,0:02:22.160 -troublesome in order to work on these - -0:02:20.840,0:02:23.599 -process - -0:02:22.160,0:02:25.599 -first you have to know at least well - -0:02:23.599,0:02:27.760 -enough and then you have to be - -0:02:25.599,0:02:30.319 -comfortable with writing a - -0:02:27.760,0:02:32.080 -recursive ascendant parser while - -0:02:30.319,0:02:34.000 -constantly keeping up with changes to - -0:02:32.080,0:02:36.879 -the language itself - -0:02:34.000,0:02:39.360 -which can be evolving very quickly like - -0:02:36.879,0:02:41.599 -javascript for example - -0:02:39.360,0:02:45.680 -together these constraints significantly - -0:02:41.599,0:02:47.760 -reduce the pull of potential maintenance - -0:02:45.680,0:02:49.680 -the biggest issue though in my opinion - -0:02:47.760,0:02:52.879 -is lack of the set of generic - -0:02:49.680,0:02:54.319 -and reusable apis this makes them very - -0:02:52.879,0:02:55.920 -hard to use - -0:02:54.319,0:02:57.920 -for minor modes that want to deal with - -0:02:55.920,0:02:59.920 -cross-cutting concerns across multiple - -0:02:57.920,0:03:01.760 -languages - -0:02:59.920,0:03:03.599 -the other approach which has been - -0:03:01.760,0:03:04.319 -gaining a lot of momentum in recent - -0:03:03.599,0:03:06.560 -years - -0:03:04.319,0:03:08.159 -is externalizing language understanding - -0:03:06.560,0:03:12.239 -to another process - -0:03:08.159,0:03:14.480 -also known as language server protocol - -0:03:12.239,0:03:16.560 -this second approach is actually a very - -0:03:14.480,0:03:18.400 -interesting one - -0:03:16.560,0:03:21.280 -my decoupling language understanding - -0:03:18.400,0:03:23.760 -from the editing facility itself - -0:03:21.280,0:03:25.120 -the usb servers can attract a lot more - -0:03:23.760,0:03:28.959 -contributors - -0:03:25.120,0:03:32.400 -which makes maintenance easier however - -0:03:28.959,0:03:34.720 -they also have several issues available - -0:03:32.400,0:03:36.000 -being a separate process they are - -0:03:34.720,0:03:39.920 -usually more resource - -0:03:36.000,0:03:42.159 -intensive and depending on the language - -0:03:39.920,0:03:44.640 -the usb server itself can bring with it - -0:03:42.159,0:03:47.680 -a host of additional dependencies - -0:03:44.640,0:03:50.560 -external to Emacs which may message to - -0:03:47.680,0:03:50.560 -install and manage - -0:03:50.640,0:03:55.120 -furthermore json over rpc has pretty - -0:03:53.760,0:03:57.840 -high latency - -0:03:55.120,0:04:00.879 -for one-off tasks like jumping to source - -0:03:57.840,0:04:03.040 -or on-demand completion is great - -0:04:00.879,0:04:06.000 -but for things like code highlighting - -0:04:03.040,0:04:08.319 -the latency is just too much - -0:04:06.000,0:04:10.480 -I was using rust and I was following the - -0:04:08.319,0:04:11.760 -community effort to improve its id - -0:04:10.480,0:04:13.680 -support - -0:04:11.760,0:04:15.760 -hoping to integrate some of that into - -0:04:13.680,0:04:17.600 -Emacs itself - -0:04:15.760,0:04:19.759 -then I heard someone from community - -0:04:17.600,0:04:23.280 -mention tree sitter - -0:04:19.759,0:04:23.280 -and I decided to check it out - -0:04:23.360,0:04:28.720 -basically trisita is an incremental - -0:04:25.520,0:04:31.000 -parsing library and a parser generator - -0:04:28.720,0:04:33.040 -it was introduced by the item editor in - -0:04:31.000,0:04:35.680 -2018 - -0:04:33.040,0:04:36.960 -besides item is also being integrated - -0:04:35.680,0:04:41.040 -into the neo-vim - -0:04:36.960,0:04:42.479 -editor and github is using it to power - -0:04:41.040,0:04:45.600 -their source code analysis and - -0:04:42.479,0:04:45.600 -navigation features - -0:04:45.840,0:04:49.199 -it is written in c and can be compiled - -0:04:48.639,0:04:53.120 -for all - -0:04:49.199,0:04:56.080 -major platforms it can even be compiled - -0:04:53.120,0:04:57.600 -to web assembly to run on the web that's - -0:04:56.080,0:05:00.400 -how github is using it - -0:04:57.600,0:05:00.400 -on their website - -0:05:00.800,0:05:05.840 -so why is trisita an interesting - -0:05:02.960,0:05:07.360 -solution to this problem - -0:05:05.840,0:05:10.000 -there are multiple features that make it - -0:05:07.360,0:05:12.400 -an attractive option - -0:05:10.000,0:05:13.680 -it is designed to be fast by being - -0:05:12.400,0:05:15.680 -incremental - -0:05:13.680,0:05:18.160 -the initial parts of a typical big fight - -0:05:15.680,0:05:20.240 -can take tens of milliseconds - -0:05:18.160,0:05:22.560 -while subsequent incremental processes - -0:05:20.240,0:05:24.720 -are sub milliseconds - -0:05:22.560,0:05:26.240 -it achieves this by using structural - -0:05:24.720,0:05:29.360 -sharing - -0:05:26.240,0:05:32.960 -meaning replacing only affected nodes - -0:05:29.360,0:05:36.000 -in the old tree when it needs to - -0:05:32.960,0:05:37.120 -also unlike lsp being in the same - -0:05:36.000,0:05:40.639 -process - -0:05:37.120,0:05:42.880 -it has much lower latency - -0:05:40.639,0:05:44.960 -secondly it provides a uniform - -0:05:42.880,0:05:47.039 -programming interface - -0:05:44.960,0:05:48.720 -the same data structures and functions - -0:05:47.039,0:05:50.400 -work on parse trees of different - -0:05:48.720,0:05:52.160 -languages - -0:05:50.400,0:05:54.160 -syntax knows of different languages - -0:05:52.160,0:05:57.360 -differ only by their types - -0:05:54.160,0:05:58.960 -and their possible child nodes this - -0:05:57.360,0:06:02.000 -is a big advantage over language - -0:05:58.960,0:06:02.000 -specific parcels - -0:06:02.240,0:06:06.880 -thirdly it's written in self-contained - -0:06:04.880,0:06:09.680 -embeddable c - -0:06:06.880,0:06:10.400 -as I mentioned previously it can even be - -0:06:09.680,0:06:13.759 -compiled - -0:06:10.400,0:06:15.199 -to webassembly this makes integrating it - -0:06:13.759,0:06:18.240 -into various editors - -0:06:15.199,0:06:21.840 -quite easy without having to install - -0:06:18.240,0:06:21.840 -any external dependencies - -0:06:22.880,0:06:28.000 -one thing that is not mentioned here is - -0:06:24.639,0:06:31.039 -that being a parcel generator - -0:06:28.000,0:06:34.880 -scrummers are declarative - -0:06:31.039,0:06:36.720 -together with being editor independent - -0:06:34.880,0:06:38.160 -this makes the pool of potential - -0:06:36.720,0:06:42.400 -contributors - -0:06:38.160,0:06:45.520 -much larger so I was convinced - -0:06:42.400,0:06:48.000 -that trisito is a good fit for Emacs - -0:06:45.520,0:06:48.720 -last year I started writing the bindings - -0:06:48.000,0:06:50.960 -using - -0:06:48.720,0:06:53.280 -dynamic model support introduced in imax - -0:06:50.960,0:06:55.360 -25. - -0:06:53.280,0:06:58.479 -dynamic module means there is platform - -0:06:55.360,0:07:00.560 -specific native code involved - -0:06:58.479,0:07:02.880 -but since they are pre-compiled binaries - -0:07:00.560,0:07:06.319 -for the three major platforms - -0:07:02.880,0:07:08.319 -it should work in most places currently - -0:07:06.319,0:07:09.440 -the core functionalities are in a pretty - -0:07:08.319,0:07:12.560 -good shape - -0:07:09.440,0:07:14.840 -syntax highlighting is working nicely - -0:07:12.560,0:07:16.080 -the whole thing is split into three - -0:07:14.840,0:07:17.759 -packages - -0:07:16.080,0:07:20.319 -tree sitter is the main package that - -0:07:17.759,0:07:22.800 -other packages should depend on - -0:07:20.319,0:07:24.000 -tree system lens is the language bundle - -0:07:22.800,0:07:27.199 -that includes support - -0:07:24.000,0:07:30.080 -for most common languages - -0:07:27.199,0:07:32.160 -and finally the core apis are in the - -0:07:30.080,0:07:36.160 -package tsc - -0:07:32.160,0:07:38.800 -which stands for trees the core - -0:07:36.160,0:07:41.919 -it is the implicit dependency of the - -0:07:38.800,0:07:41.919 -three-seater package - -0:07:43.520,0:07:47.520 -the main package includes the miner mode - -0:07:46.000,0:07:49.840 -3-seater mode - -0:07:47.520,0:07:52.560 -this provides the base for other major - -0:07:49.840,0:07:55.280 -or minor modes to build on - -0:07:52.560,0:07:55.840 -using image change tracking hooks it - -0:07:55.280,0:07:58.080 -enables - -0:07:55.840,0:08:00.800 -incremental parsing and provides a - -0:07:58.080,0:08:04.080 -syntax tree that is always up to date - -0:08:00.800,0:08:06.560 -after any edits in a buffer - -0:08:04.080,0:08:10.080 -there is also a basic debug mode that - -0:08:06.560,0:08:13.360 -shows the parse tree in another buffer - -0:08:10.080,0:08:15.759 -here is a quick demo - -0:08:13.360,0:08:17.520 -here I mean an empty python buffer with - -0:08:15.759,0:08:19.440 -three seater enabled - -0:08:17.520,0:08:26.560 -I'm going to turn on the debug mode to - -0:08:19.440,0:08:28.720 -see the parse tree - -0:08:26.560,0:08:30.639 -since the buffer is empty there is only - -0:08:28.720,0:08:33.279 -one node in the syntax tree the top - -0:08:30.639,0:08:41.839 -level module node - -0:08:33.279,0:08:41.839 -let's try typing some code - -0:09:11.040,0:09:14.640 -as you can see as I type into the python - -0:09:13.600,0:09:19.120 -buffer - -0:09:14.640,0:09:21.120 -the syntax tree updates in real time - -0:09:19.120,0:09:23.279 -the other minor mode included in the - -0:09:21.120,0:09:26.640 -main package is 3-seater - -0:09:23.279,0:09:28.480 -hl mode it overrides font-lock mode and - -0:09:26.640,0:09:31.839 -provides its own set of phases - -0:09:28.480,0:09:32.800 -and customization options it is query - -0:09:31.839,0:09:35.200 -driven - -0:09:32.800,0:09:36.240 -that means instead of regular - -0:09:35.200,0:09:38.720 -expressions - -0:09:36.240,0:09:40.320 -it uses a list like query language to - -0:09:38.720,0:09:43.760 -map syntax notes - -0:09:40.320,0:09:45.760 -to highlighting phrases I'm going to - -0:09:43.760,0:09:51.839 -open a python file with small snippets - -0:09:45.760,0:09:51.839 -that showcase syntax highlighting - -0:09:54.320,0:09:59.279 -so this is the default highlighting - -0:09:55.920,0:09:59.279 -provided by python mode - -0:10:00.880,0:10:04.640 -this is the highlighting enabled by tree - -0:10:02.839,0:10:07.680 -sitter - -0:10:04.640,0:10:11.680 -as you can see string interpolation - -0:10:07.680,0:10:15.440 -and decorators are highlighted correctly - -0:10:11.680,0:10:15.440 -function calls are also highlighted - -0:10:17.440,0:10:21.839 -you can also note that property - -0:10:20.240,0:10:24.640 -assessors - -0:10:21.839,0:10:27.200 -and property assignments are highlighted - -0:10:24.640,0:10:27.200 -differently - -0:10:27.440,0:10:30.880 -what I like the most about this is that - -0:10:29.360,0:10:32.640 -new bindings are consistently - -0:10:30.880,0:10:36.320 -highlighted - -0:10:32.640,0:10:39.760 -this included local variable - -0:10:36.320,0:10:42.480 -function parameters and property - -0:10:39.760,0:10:42.480 -mutations - -0:10:45.760,0:10:49.279 -before going through the three queries - -0:10:48.000,0:10:51.680 -and the syntax highlighting - -0:10:49.279,0:10:53.760 -customization options - -0:10:51.680,0:10:55.040 -let's take a brief look at the core data - -0:10:53.760,0:10:58.079 -structures and functions - -0:10:55.040,0:10:59.839 -that tree sitter provides - -0:10:58.079,0:11:02.240 -so parsing is done with the help of a - -0:10:59.839,0:11:04.160 -generic parser object - -0:11:02.240,0:11:06.000 -a single parser object can be used to - -0:11:04.160,0:11:08.320 -pass different languages - -0:11:06.000,0:11:09.279 -by sending different language objects to - -0:11:08.320,0:11:10.880 -it - -0:11:09.279,0:11:14.079 -the language objects themselves are - -0:11:10.880,0:11:16.079 -loaded from shared libraries - -0:11:14.079,0:11:17.360 -since three seater mode already handles - -0:11:16.079,0:11:19.440 -the parsing part - -0:11:17.360,0:11:20.800 -we will instead focus on the functions - -0:11:19.440,0:11:24.720 -that inspect nodes - -0:11:20.800,0:11:24.720 -and in the resulting path tree - -0:11:25.279,0:11:43.839 -we can ask tree sitter what is the - -0:11:27.200,0:11:43.839 -syntax node at point - -0:11:44.240,0:11:48.480 -uh is it an opaque object so this is not - -0:11:47.200,0:11:57.839 -very useful - -0:11:48.480,0:11:57.839 -we can instead ask what is its type - -0:12:03.760,0:12:08.959 -so his type is the symbol comparison - -0:12:06.560,0:12:11.600 -operator - -0:12:08.959,0:12:13.680 -trees there are two kinds of nodes - -0:12:11.600,0:12:15.519 -anonymous nodes and named nodes - -0:12:13.680,0:12:17.040 -anonymous nodes correspond to simple - -0:12:15.519,0:12:19.839 -grammar elements - -0:12:17.040,0:12:21.279 -like keywords operators punctuations and - -0:12:19.839,0:12:24.160 -so on - -0:12:21.279,0:12:25.920 -name nodes on the other hand grammar - -0:12:24.160,0:12:26.639 -elements that are interesting enough for - -0:12:25.920,0:12:30.320 -their own - -0:12:26.639,0:12:31.839 -to have a name like an identifier an - -0:12:30.320,0:12:35.200 -expression - -0:12:31.839,0:12:35.200 -or a function definition - -0:12:35.440,0:12:41.519 -name node types are symbols while - -0:12:37.760,0:12:41.519 -anonymous node types are strings - -0:12:42.639,0:12:49.519 -for example if we are on this - -0:12:46.320,0:12:49.519 -comparison operator - -0:12:49.760,0:12:53.839 -the node type should be a string - -0:12:55.920,0:12:58.959 -we can also get other information about - -0:12:57.920,0:13:07.839 -the node - -0:12:58.959,0:13:07.839 -for example what is this text - -0:13:09.680,0:13:35.839 -or where it is in the buffer - -0:13:20.800,0:13:35.839 -or what is its parent - -0:13:43.199,0:13:46.839 -there are many other apis to query or - -0:13:46.160,0:13:49.839 -not - -0:13:46.839,0:13:49.839 -properties - -0:13:52.639,0:13:58.240 -tree sitter allows searching for - -0:13:54.399,0:14:01.440 -structural patterns within a parse tree - -0:13:58.240,0:14:03.519 -it does so through a list like language - -0:14:01.440,0:14:04.639 -this language supports by the matching - -0:14:03.519,0:14:07.760 -by node types - -0:14:04.639,0:14:10.079 -field names and predicates - -0:14:07.760,0:14:12.639 -it also allows capturing nodes for - -0:14:10.079,0:14:17.839 -further processing - -0:14:12.639,0:14:17.839 -let's try to see some examples - -0:14:37.680,0:14:43.839 -so in this very simple query we just - -0:14:41.040,0:14:46.399 -try to highlight all the identifiers in - -0:14:43.839,0:14:46.399 -the buffer - -0:14:49.040,0:14:53.120 -this s side tells trisito to capture a - -0:14:51.920,0:14:55.839 -node - -0:14:53.120,0:14:57.360 -in the context of the query builder it's - -0:14:55.839,0:15:00.320 -not very important - -0:14:57.360,0:15:01.760 -but in normal highlighting query this - -0:15:00.320,0:15:05.920 -will determine - -0:15:01.760,0:15:05.920 -the face used to highlight the note - -0:15:06.639,0:15:10.320 -suppose we want to capture all the - -0:15:08.800,0:15:13.519 -function names - -0:15:10.320,0:15:27.839 -instead of just any identifier - -0:15:13.519,0:15:27.839 -you can improve the query like this - -0:15:29.440,0:15:32.639 -uh this will highlight the whole - -0:15:31.600,0:15:35.519 -definition - -0:15:32.639,0:15:36.399 -but we only want to capture the function - -0:15:35.519,0:15:39.600 -name - -0:15:36.399,0:15:42.800 -which means the identifier - -0:15:39.600,0:15:46.320 -here so we - -0:15:42.800,0:15:48.639 -move the capture to after the identifier - -0:15:46.320,0:15:48.639 -node - -0:15:49.600,0:15:52.959 -if we want to capture the class names as - -0:15:51.759,0:16:09.839 -well - -0:15:52.959,0:16:09.839 -we just add another pattern - -0:16:10.079,0:16:14.399 -let's look at a more practical example - -0:16:20.320,0:16:23.759 -here we can see that single quotes - -0:16:22.959,0:16:25.600 -strings and - -0:16:23.759,0:16:27.279 -double quotes screens are highlighted - -0:16:25.600,0:16:30.399 -the same - -0:16:27.279,0:16:33.440 -but in some places - -0:16:30.399,0:16:35.440 -because of some coding conventions - -0:16:33.440,0:16:37.279 -it may be desirable to highlight them - -0:16:35.440,0:16:39.680 -differently for example if - -0:16:37.279,0:16:40.880 -the string is single quoted we may want - -0:16:39.680,0:16:43.759 -to highlight it - -0:16:40.880,0:16:43.759 -as a constant - -0:16:44.399,0:16:47.600 -let's try to see whether we can - -0:16:46.160,0:16:51.839 -distinguish these - -0:16:47.600,0:16:51.839 -two cases - -0:16:56.240,0:17:00.160 -so here we get all the strings - -0:17:00.639,0:17:04.559 -if we want to see if it's single quotes - -0:17:04.079,0:17:07.520 -or - -0:17:04.559,0:17:07.520 -double quote strings - -0:17:08.799,0:17:12.480 -we can try looking at the first - -0:17:11.039,0:17:15.280 -character - -0:17:12.480,0:17:16.720 -of the string I mean the first character - -0:17:15.280,0:17:19.360 -of the note - -0:17:16.720,0:17:33.600 -to check whether it's a single quote or - -0:17:19.360,0:17:36.080 -a double quote - -0:17:33.600,0:17:36.799 -yeah so for that we use the three - -0:17:36.080,0:17:40.160 -setters - -0:17:36.799,0:17:43.360 -support for predicate in this case - -0:17:40.160,0:17:46.080 -we use a match predicate - -0:17:43.360,0:17:46.799 -to check whether the string where the - -0:17:46.080,0:17:50.320 -note - -0:17:46.799,0:17:51.280 -starts with a single quote and with this - -0:17:50.320,0:17:55.520 -pattern - -0:17:51.280,0:17:55.520 -we only capture the single quotes - -0:17:58.840,0:18:03.760 -strings - -0:18:00.400,0:18:07.760 -let's try to give it a different face - -0:18:03.760,0:18:07.760 -so we copy the pattern - -0:18:13.039,0:18:16.640 -and we add this pattern - -0:18:18.640,0:18:21.760 -pop item only - -0:18:25.120,0:18:31.440 -but we also want to give the - -0:18:28.400,0:18:36.320 -capture a different name - -0:18:31.440,0:18:36.320 -let's say we want to highlight it as a - -0:18:40.840,0:18:43.840 -keyword - -0:18:46.559,0:18:57.840 -and now if we refresh the buffer - -0:19:06.320,0:19:10.320 -we see that single quote strings are - -0:19:08.799,0:19:12.880 -highlighted as - -0:19:10.320,0:19:12.880 -keywords - -0:19:14.400,0:19:19.200 -the highlighting patterns can also be - -0:19:16.400,0:19:23.280 -set for a single project - -0:19:19.200,0:19:23.280 -using directory local variable - -0:19:23.440,0:19:30.000 -for example let's take a look at - -0:19:26.880,0:19:30.000 -ems source code - -0:19:35.760,0:19:43.760 -so in image c source there are a lot of - -0:19:40.400,0:19:47.679 -uses of these different macros - -0:19:43.760,0:19:50.400 -to define functions - -0:19:47.679,0:19:50.400 -and you can see - -0:19:51.200,0:19:55.760 -this is actually the function name but - -0:19:53.520,0:19:59.120 -it's highlighted as the - -0:19:55.760,0:20:03.679 -string so what we want - -0:19:59.120,0:20:07.600 -is to somehow recognize this pattern - -0:20:03.679,0:20:11.280 -and highlight it - -0:20:07.600,0:20:14.559 -as highlight this part - -0:20:11.280,0:20:17.679 -with the function phase instead - -0:20:14.559,0:20:20.240 -in order to do that - -0:20:17.679,0:20:21.760 -we put a pattern in this project - -0:20:20.240,0:20:24.880 -directory local - -0:20:21.760,0:20:24.880 -settings file - -0:20:31.760,0:20:37.760 -so we can put this button in the c - -0:20:34.799,0:20:37.760 -mode section - -0:20:40.159,0:20:50.480 -and now if we enable tree sitter - -0:20:48.000,0:20:52.720 -you can see that this is the highlighted - -0:20:50.480,0:20:52.720 -uh - -0:20:53.200,0:20:56.559 -as a normal function definition so this - -0:20:55.520,0:21:00.400 -is the function - -0:20:56.559,0:21:00.400 -face like we wanted - -0:21:01.200,0:21:06.080 -the pattern for this is actually pretty - -0:21:03.760,0:21:06.080 -simple - -0:21:07.200,0:21:09.919 -it's only - -0:21:10.720,0:21:17.440 -only this part so - -0:21:14.720,0:21:19.679 -if it's a function call where the name - -0:21:17.440,0:21:21.600 -of the function is different - -0:21:19.679,0:21:24.159 -then we highlight the different as a - -0:21:21.600,0:21:24.159 -keyword - -0:21:24.240,0:21:28.159 -and then the first string element we - -0:21:27.360,0:21:31.840 -highlighted - -0:21:28.159,0:21:31.840 -as a function name - -0:21:35.360,0:21:39.280 -since the language objects are actually - -0:21:37.679,0:21:40.799 -native code - -0:21:39.280,0:21:43.440 -they have to be compiled for each - -0:21:40.799,0:21:45.600 -platform that we want to support - -0:21:43.440,0:21:48.159 -this will become a big obstacle for - -0:21:45.600,0:21:50.240 -3-seater adoption - -0:21:48.159,0:21:52.960 -therefore I've created a language window - -0:21:50.240,0:21:54.960 -package 3-seater length - -0:21:52.960,0:21:56.320 -that takes care of pre-compiling the - -0:21:54.960,0:21:59.679 -grammars the - -0:21:56.320,0:22:01.600 -most common grammars for all three major - -0:21:59.679,0:22:04.080 -platforms - -0:22:01.600,0:22:05.360 -it also takes care of distributing these - -0:22:04.080,0:22:08.080 -binaries - -0:22:05.360,0:22:11.280 -and provides some highlighting queries - -0:22:08.080,0:22:11.280 -for some of the languages - -0:22:11.440,0:22:15.919 -it should be noted that this package - -0:22:13.760,0:22:19.520 -should be treated as a temporary - -0:22:15.919,0:22:19.520 -distribution mechanism only - -0:22:19.919,0:22:24.720 -to help with bootstrapping three-seaters - -0:22:22.240,0:22:27.760 -adoption - -0:22:24.720,0:22:29.760 -the plan is that eventually these files - -0:22:27.760,0:22:32.480 -should be provided by the language major - -0:22:29.760,0:22:35.120 -modes themselves - -0:22:32.480,0:22:36.320 -but in order to do that we need better - -0:22:35.120,0:22:40.240 -tooling - -0:22:36.320,0:22:42.559 -so we're not there yet - -0:22:40.240,0:22:43.280 -since the call already works reasonably - -0:22:42.559,0:22:44.640 -well - -0:22:43.280,0:22:46.320 -there are several areas that would - -0:22:44.640,0:22:48.960 -benefit from the community's - -0:22:46.320,0:22:48.960 -contribution - -0:22:49.120,0:22:52.640 -so three seaters upstream language - -0:22:51.520,0:22:54.400 -prepositories - -0:22:52.640,0:22:55.679 -already contain highlighting queries on - -0:22:54.400,0:22:58.480 -their own - -0:22:55.679,0:23:00.480 -however they are pretty basic and they - -0:22:58.480,0:23:02.559 -may not fit well with existing emax - -0:23:00.480,0:23:04.320 -conventions - -0:23:02.559,0:23:07.120 -therefore the language bundle has its - -0:23:04.320,0:23:10.559 -own set of highlighting queries - -0:23:07.120,0:23:11.600 -this requires maintenance until language - -0:23:10.559,0:23:13.760 -measurements adopt - -0:23:11.600,0:23:16.240 -three sitter and maintain the queries on - -0:23:13.760,0:23:16.240 -their own - -0:23:16.640,0:23:22.000 -the queries are actually quite easy to - -0:23:18.480,0:23:24.240 -write as you've already seen - -0:23:22.000,0:23:25.360 -you just need to be familiar with the - -0:23:24.240,0:23:30.000 -language - -0:23:25.360,0:23:32.880 -familiar enough to come up with sensible - -0:23:30.000,0:23:32.880 -highlighting patterns - -0:23:35.200,0:23:39.679 -and if you are a maintainer of a - -0:23:37.600,0:23:42.320 -language major mode - -0:23:39.679,0:23:43.360 -you may want to consider integrating - -0:23:42.320,0:23:46.960 -tree sitter into - -0:23:43.360,0:23:50.080 -your mode initially maybe as an - -0:23:46.960,0:23:53.279 -optional feature the integration is - -0:23:50.080,0:23:56.640 -actually pretty straightforward - -0:23:53.279,0:24:00.880 -especially for syntax highlighting - -0:23:56.640,0:24:00.880 -or alternatively - -0:24:01.520,0:24:04.640 -you can also try writing a new major - -0:24:03.760,0:24:08.000 -mode - -0:24:04.640,0:24:11.360 -from scratch that relies on tree sitter - -0:24:08.000,0:24:11.360 -from the very beginning - -0:24:12.559,0:24:19.679 -the code for such a major mode is - -0:24:16.320,0:24:23.200 -quite simple for example - -0:24:19.679,0:24:26.240 -this is the proposed - -0:24:23.200,0:24:30.720 -what mode for web assembly - -0:24:26.240,0:24:30.720 -the code is just - -0:24:31.039,0:24:37.120 -like one page of code not - -0:24:34.559,0:24:37.120 -not a lot - -0:24:39.520,0:24:46.559 -you can also try writing new minor modes - -0:24:42.720,0:24:50.080 -or writing integration packages - -0:24:46.559,0:24:50.880 -for example a lot of package a lot of - -0:24:50.080,0:24:54.559 -packages - -0:24:50.880,0:24:58.840 -may benefit from tree sitter integration - -0:24:54.559,0:25:01.840 -but no one has written the integration - -0:24:58.840,0:25:01.840 -yet - -0:25:02.960,0:25:06.720 -if you are interested in 3-seater you - -0:25:05.039,0:25:10.320 -can use these links to - -0:25:06.720,0:25:11.440 -learn more about it I think that's it - -0:25:10.320,0:25:18.159 -for me today - -0:25:11.440,0: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.sbv b/2020/subtitles/emacsconf-2020--25-traverse-complex-json-structures-with-live-feedback-counsel-jq--zen-monk-alain-m-lafon-autogen.sbv deleted file mode 100644 index 1c88545f..00000000 --- a/2020/subtitles/emacsconf-2020--25-traverse-complex-json-structures-with-live-feedback-counsel-jq--zen-monk-alain-m-lafon-autogen.sbv +++ /dev/null @@ -1,756 +0,0 @@ -0:00:00.799,0:00:05.520 -hello everyone and welcome to this short - -0:00:04.000,0:00:08.160 -lightning talk - -0:00:05.520,0:00:09.519 -traverse complex json structures with - -0:00:08.160,0:00:13.040 -live feedback - -0:00:09.519,0:00:18.000 -this is a pre-recorded talk and part of - -0:00:13.040,0:00:19.920 -the e-max conf 2020 schedule - -0:00:18.000,0:00:21.840 -this is what we're going to do I'll make - -0:00:19.920,0:00:22.320 -a quick introduction to the topic at - -0:00:21.840,0:00:23.920 -hand - -0:00:22.320,0:00:25.760 -I'll give you a demonstration of some - -0:00:23.920,0:00:29.199 -tools and then we'll leave you - -0:00:25.760,0:00:31.920 -with the links to set tools - -0:00:29.199,0:00:32.399 -before that just a little bit about me I - -0:00:31.920,0:00:36.079 -am the - -0:00:32.399,0:00:39.520 -ceo and co-founder of a company - -0:00:36.079,0:00:40.399 -based in the swiss mountains called 200 - -0:00:39.520,0:00:43.600 -okay - -0:00:40.399,0:00:46.160 -we are a product incubator and - -0:00:43.600,0:00:47.200 -service consultancy but we like to spend - -0:00:46.160,0:00:50.719 -most or at least - -0:00:47.200,0:00:52.719 -as much time as we can building free - -0:00:50.719,0:00:55.520 -software - -0:00:52.719,0:00:56.879 -I'm also an ordained zen monk and abbott - -0:00:55.520,0:01:00.160 -of the lambda zen temple - -0:00:56.879,0:01:01.359 -you can reach me anytime on questions - -0:01:00.160,0:01:05.860 -regarding Emacs - -0:01:01.359,0:01:07.200 -for example at ala at 200ok.ch - -0:01:05.860,0:01:09.600 -[Music] - -0:01:07.200,0:01:11.760 -but back to the topic at hand the - -0:01:09.600,0:01:13.680 -proposition is as following - -0:01:11.760,0:01:15.520 -most work on the computer is based on - -0:01:13.680,0:01:16.479 -either text processing or text - -0:01:15.520,0:01:19.920 -consumption - -0:01:16.479,0:01:20.880 -and very often the text which you need - -0:01:19.920,0:01:23.520 -to process - -0:01:20.880,0:01:24.560 -is in a structured format for example in - -0:01:23.520,0:01:26.640 -json - -0:01:24.560,0:01:28.560 -that might even be if your job is not - -0:01:26.640,0:01:30.400 -programming per se - -0:01:28.560,0:01:33.119 -and reading through such a bigger chunk - -0:01:30.400,0:01:36.479 -of json can be non-trivial however - -0:01:33.119,0:01:39.119 -while just reading and understanding it - -0:01:36.479,0:01:40.320 -will be essential to getting your job - -0:01:39.119,0:01:43.680 -done - -0:01:40.320,0:01:47.200 -so let's quickly check out an example - -0:01:43.680,0:01:50.560 -json file this is from the github api - -0:01:47.200,0:01:53.119 -where which is a request sorry the - -0:01:50.560,0:01:55.280 -response to a request for a specific - -0:01:53.119,0:01:58.560 -issue on the github api so let's - -0:01:55.280,0:01:58.560 -quickly check that one out - -0:01:58.799,0:02:03.280 -okay so here it is open and we can - -0:02:01.280,0:02:05.439 -already see that there is lots of stuff - -0:02:03.280,0:02:08.319 -going on here - -0:02:05.439,0:02:10.319 -it's uh 200 lines it's not going to be - -0:02:08.319,0:02:12.160 -very easy just just to find out what are - -0:02:10.319,0:02:13.920 -the top level things in here what are - -0:02:12.160,0:02:14.560 -the top level attributes of course I can - -0:02:13.920,0:02:16.480 -do this - -0:02:14.560,0:02:17.840 -and maybe it would by hand but that - -0:02:16.480,0:02:20.560 -doesn't scale - -0:02:17.840,0:02:22.560 -I can use cool Emacs facilities like the - -0:02:20.560,0:02:24.720 -height show mode and try to - -0:02:22.560,0:02:27.200 -fold all the things that are top level - -0:02:24.720,0:02:29.760 -but that also doesn't really scale - -0:02:27.200,0:02:32.000 -there must be a better way and of course - -0:02:29.760,0:02:34.959 -there is there is prior art - -0:02:32.000,0:02:36.080 -there is a tool called jq I'm going to - -0:02:34.959,0:02:39.120 -quote the usp - -0:02:36.080,0:02:42.959 -from their website jq is like - -0:02:39.120,0:02:44.720 -sed said for json data you can use it to - -0:02:42.959,0:02:46.720 -slice and filter and map - -0:02:44.720,0:02:47.840 -and transform structured data with the - -0:02:46.720,0:02:51.519 -same ease that - -0:02:47.840,0:02:53.920 -z awk grep and friends let you play with - -0:02:51.519,0:02:53.920 -text - -0:02:54.000,0:02:57.519 -let me give you a quick demonstration of - -0:02:56.160,0:02:59.680 -it by the way - -0:02:57.519,0:03:01.920 -it's written in portable c it has zero - -0:02:59.680,0:03:04.959 -runtime dependency so it's very easy - -0:03:01.920,0:03:09.040 -to get started with it and use it on - -0:03:04.959,0:03:12.800 -pretty much any unix-based - -0:03:09.040,0:03:16.159 -computer sorry no linux based computer - -0:03:12.800,0:03:19.599 -apologies okay so let's explore a - -0:03:16.159,0:03:21.120 -json file with it it's a command line - -0:03:19.599,0:03:24.640 -tool and it has a very - -0:03:21.120,0:03:26.799 -simple command line syntax so you - -0:03:24.640,0:03:27.840 -call the binary and then you give it a - -0:03:26.799,0:03:31.680 -query - -0:03:27.840,0:03:33.840 -and a file and then we'll return - -0:03:31.680,0:03:35.440 -its answer so for example if I want the - -0:03:33.840,0:03:38.319 -top level keys - -0:03:35.440,0:03:39.840 -I will just say jq keys the file and it - -0:03:38.319,0:03:42.319 -will return the keys - -0:03:39.840,0:03:43.519 -simple as that so let's check this out - -0:03:42.319,0:03:46.879 -in a real - -0:03:43.519,0:03:50.080 -shell here I am in eshel - -0:03:46.879,0:03:53.200 -let's run jq keys on the github - -0:03:50.080,0:03:56.959 -issue comment and we can see - -0:03:53.200,0:04:00.000 -that we have actually received a list - -0:03:56.959,0:04:02.000 -back here with the top level - -0:04:00.000,0:04:04.319 -things okay so this issue it looks very - -0:04:02.000,0:04:06.239 -very interesting so let's uh ask it to - -0:04:04.319,0:04:10.080 -give me more information on this - -0:04:06.239,0:04:11.360 -issue then it's hairy again that's a lot - -0:04:10.080,0:04:14.319 -of stuff - -0:04:11.360,0:04:17.759 -I mean lucky for for us we are in Emacs - -0:04:14.319,0:04:21.040 -here so we can use nice shortcuts we can - -0:04:17.759,0:04:22.000 -copy this we go can go in here just - -0:04:21.040,0:04:24.400 -select that - -0:04:22.000,0:04:25.600 -get that out or something like this but - -0:04:24.400,0:04:28.320 -still - -0:04:25.600,0:04:29.600 -this is not really it's not really the - -0:04:28.320,0:04:34.080 -best way - -0:04:29.600,0:04:36.639 -to do that right it gets kind of tedious - -0:04:34.080,0:04:37.680 -at this point the output can be - -0:04:36.639,0:04:39.360 -humongous - -0:04:37.680,0:04:42.479 -the shell is not really the best place - -0:04:39.360,0:04:43.600 -to read through such big output I mean e - -0:04:42.479,0:04:45.440 -shell is - -0:04:43.600,0:04:47.440 -probably one of the better shells for - -0:04:45.440,0:04:48.560 -this because it's just a regular Emacs - -0:04:47.440,0:04:51.199 -buffer but still - -0:04:48.560,0:04:52.720 -it's not really the best tool and I need - -0:04:51.199,0:04:55.280 -to repeat the command - -0:04:52.720,0:04:56.000 -all the time until I finally build the - -0:04:55.280,0:04:59.120 -right query - -0:04:56.000,0:05:02.080 -and all the time I use I lose my - -0:04:59.120,0:05:02.800 -focus I lose what I'm currently looking - -0:05:02.080,0:05:06.080 -at - -0:05:02.800,0:05:08.160 -I'm seeing the new result it would be so - -0:05:06.080,0:05:10.080 -much nicer to have live feedback - -0:05:08.160,0:05:11.600 -and when working with Emacs we're quite - -0:05:10.080,0:05:12.320 -used to that so there should be an - -0:05:11.600,0:05:15.120 -option - -0:05:12.320,0:05:17.759 -and of course there is it's Emacs right - -0:05:15.120,0:05:20.880 -so you can do anything - -0:05:17.759,0:05:22.960 -there is various good tools for - -0:05:20.880,0:05:26.000 -completion in Emacs - -0:05:22.960,0:05:29.039 -I used ivy for this - -0:05:26.000,0:05:31.840 -I'm going to code the usp for ivy - -0:05:29.039,0:05:32.639 -iv is a generic completion mechanism for - -0:05:31.840,0:05:34.639 -Emacs - -0:05:32.639,0:05:35.919 -while it operates similarly to other - -0:05:34.639,0:05:38.960 -completion schemes - -0:05:35.919,0:05:40.400 -such as icomplete mode iv aims to be - -0:05:38.960,0:05:43.120 -more efficient smaller - -0:05:40.400,0:05:45.199 -simpler and smoother to use yet highly - -0:05:43.120,0:05:47.840 -customizable - -0:05:45.199,0:05:49.440 -and that's true one of the cool things - -0:05:47.840,0:05:52.479 -of iv - -0:05:49.440,0:05:54.320 -compared to other completion mechanisms - -0:05:52.479,0:05:58.160 -in Emacs - -0:05:54.320,0:06:01.600 -is that it can be used on dynamic - -0:05:58.160,0:06:03.520 -data so usually completion works on a - -0:06:01.600,0:06:05.360 -static input for example you're in a - -0:06:03.520,0:06:08.800 -buffer a text buffer - -0:06:05.360,0:06:09.600 -and you use I search maybe with idle - -0:06:08.800,0:06:12.400 -mode - -0:06:09.600,0:06:13.360 -and you find your results that's all - -0:06:12.400,0:06:16.960 -nice - -0:06:13.360,0:06:19.840 -however if I - -0:06:16.960,0:06:20.720 -want to search on dynamic data that - -0:06:19.840,0:06:23.759 -doesn't work - -0:06:20.720,0:06:27.039 -so whenever I type in my query - -0:06:23.759,0:06:28.000 -for jq I actually need to call the jq - -0:06:27.039,0:06:30.160 -binary - -0:06:28.000,0:06:32.840 -and it will give a different result set - -0:06:30.160,0:06:36.319 -back so it's a really - -0:06:32.840,0:06:38.240 -dynamic mechanism that we need here it's - -0:06:36.319,0:06:41.440 -much more like a search engine - -0:06:38.240,0:06:42.560 -and ivy luckily has something built in - -0:06:41.440,0:06:46.000 -and it's called - -0:06:42.560,0:06:48.160 -console so I used council and jq - -0:06:46.000,0:06:49.199 -and combined them and build a new - -0:06:48.160,0:06:52.960 -package - -0:06:49.199,0:06:56.000 -with which we can use Emacs and jq - -0:06:52.960,0:06:58.800 -to have live feedback - -0:06:56.000,0:06:59.840 -it's very easy to use so you just call - -0:06:58.800,0:07:02.800 -console.jq - -0:06:59.840,0:07:04.319 -on a buffer containing json for example - -0:07:02.800,0:07:07.280 -the one we have here - -0:07:04.319,0:07:08.319 -let's call console.jq on it and we - -0:07:07.280,0:07:11.280 -already - -0:07:08.319,0:07:13.039 -get a default query the dot query which - -0:07:11.280,0:07:16.080 -just gives us - -0:07:13.039,0:07:17.280 -the same file but now we can change it - -0:07:16.080,0:07:19.039 -and for example - -0:07:17.280,0:07:21.039 -find all the keys in here and then we - -0:07:19.039,0:07:22.800 -see I had this issue this was the one - -0:07:21.039,0:07:24.639 -that we were interested in - -0:07:22.800,0:07:26.479 -so let's find more information on the - -0:07:24.639,0:07:28.800 -issue what - -0:07:26.479,0:07:31.680 -keys does it have actually have uh it - -0:07:28.800,0:07:34.800 -has assignees that that interests me - -0:07:31.680,0:07:37.039 -so let's check out the assignees in here - -0:07:34.800,0:07:39.759 -there's two of them but I'm only - -0:07:37.039,0:07:42.000 -interested in the first one - -0:07:39.759,0:07:43.599 -I'm making stuff up as I go here of - -0:07:42.000,0:07:46.000 -course - -0:07:43.599,0:07:47.039 -and whenever I hit enter I get a new - -0:07:46.000,0:07:50.160 -buffer - -0:07:47.039,0:07:53.520 -which just shows me this - -0:07:50.160,0:07:55.599 -particular result for the particular - -0:07:53.520,0:07:59.199 -query that I entered - -0:07:55.599,0:08:03.199 -so let me do that again we are in here - -0:07:59.199,0:08:05.840 -we are looking at a - -0:08:03.199,0:08:07.520 -json file this can be very very big - -0:08:05.840,0:08:09.520 -doesn't also need to be a file just - -0:08:07.520,0:08:12.160 -needs to be a buffer - -0:08:09.520,0:08:13.599 -you call console.jq on it and you can do - -0:08:12.160,0:08:16.479 -any kind of - -0:08:13.599,0:08:18.080 -query on it for example let's see if - -0:08:16.479,0:08:20.319 -there is a url here - -0:08:18.080,0:08:23.759 -yes there's a url let's see if there's a - -0:08:20.319,0:08:26.879 -repository here repository - -0:08:23.759,0:08:33.360 -no there isn't what was it called issue - -0:08:26.879,0:08:33.360 -keys repository url it was called okay - -0:08:33.440,0:08:40.240 -so let's see issue pause - -0:08:36.640,0:08:42.959 -url and then we see so - -0:08:40.240,0:08:44.159 -apparently this issue command is for a - -0:08:42.959,0:08:47.839 -repository called - -0:08:44.159,0:08:50.320 -organize I wonder what that might be - -0:08:47.839,0:08:52.640 -okay so that was a very short - -0:08:50.320,0:08:54.800 -introduction to console jq - -0:08:52.640,0:08:56.800 -you can see the timer here I only have - -0:08:54.800,0:08:57.440 -one minute left to go so I'm going to - -0:08:56.800,0:08:59.760 -leave - -0:08:57.440,0:09:01.519 -with a very very short introduction to - -0:08:59.760,0:09:05.040 -the console gq - -0:09:01.519,0:09:07.519 -code it's not even 60 lines - -0:09:05.040,0:09:09.600 -of e-lisp so building something like - -0:09:07.519,0:09:12.800 -this is very very easy - -0:09:09.600,0:09:14.560 -I would encourage you to go and read - -0:09:12.800,0:09:16.160 -through the code in your own time - -0:09:14.560,0:09:18.320 -if you're interested in building - -0:09:16.160,0:09:19.600 -something like this if you're interested - -0:09:18.320,0:09:22.720 -in just using - -0:09:19.600,0:09:24.320 -jq or you're done - -0:09:22.720,0:09:25.839 -these are the links to all the tools - -0:09:24.320,0:09:28.800 -console.jq of course - -0:09:25.839,0:09:29.519 -is readily available on melpah also - -0:09:28.800,0:09:32.959 -developed - -0:09:29.519,0:09:36.080 -under the agpl license on github - -0:09:32.959,0:09:37.839 -and disorganized thing by the way it's - -0:09:36.080,0:09:39.839 -orig mode for mobile and desktop - -0:09:37.839,0:09:42.399 -browsers also a great - -0:09:39.839,0:09:43.120 -free software tool maybe that interests - -0:09:42.399,0:09:46.240 -you - -0:09:43.120,0:09:48.800 -thank you for listening have great time - -0:09:46.240,0:09:49.360 -10 seconds left I am going to stop this - -0:09:48.800,0:09:53.920 -now - -0:09:49.360,0: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.sbv b/2020/subtitles/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--pierce-wang-autogen.sbv deleted file mode 100644 index eb7d745f..00000000 --- a/2020/subtitles/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--pierce-wang-autogen.sbv +++ /dev/null @@ -1,768 +0,0 @@ -0:00:01.360,0:00:05.520 -hello and welcome to my - -0:00:03.040,0:00:07.120 -Emacs conference lightning talk today - -0:00:05.520,0:00:09.840 -I'll be talking about - -0:00:07.120,0:00:13.360 -my journey into Emacs as a high schooler - -0:00:09.840,0:00:13.360 -and how it has changed my life - -0:00:14.400,0:00:19.520 -right so who am I I am a senior at - -0:00:17.359,0:00:22.800 -stanford online high school - -0:00:19.520,0:00:24.320 -and I am also a violinist - -0:00:22.800,0:00:26.960 -I started violin when I was two and a - -0:00:24.320,0:00:29.119 -half and I have been - -0:00:26.960,0:00:30.240 -keeping it up ever since violin is a - -0:00:29.119,0:00:33.360 -huge part of my life - -0:00:30.240,0:00:36.239 -and I am very much a musician at heart - -0:00:33.360,0:00:37.840 -I am also a somewhat capable programmer - -0:00:36.239,0:00:39.280 -I've done a lot of informal programming - -0:00:37.840,0:00:42.559 -in the past - -0:00:39.280,0:00:44.079 -and this year I'm taking my first ap - -0:00:42.559,0:00:47.440 -compsci course - -0:00:44.079,0:00:51.039 -in my high school and so - -0:00:47.440,0:00:54.239 -I've done a lot of side projects - -0:00:51.039,0:00:56.800 -mainly in python and some very short - -0:00:54.239,0:00:59.840 -scripts in e-lisp - -0:00:56.800,0:01:02.879 -and last but not least I am a tinker - -0:00:59.840,0:01:06.720 -I love to play around with things and - -0:01:02.879,0:01:10.240 -see what I can do better and just - -0:01:06.720,0:01:10.240 -have as much fun as possible - -0:01:10.880,0:01:14.479 -so how did I find Emacs - -0:01:15.040,0:01:18.880 -I discovered it actually through a talk - -0:01:17.600,0:01:21.360 -funnily enough - -0:01:18.880,0:01:23.520 -at a vim conference given by aaron - -0:01:21.360,0:01:25.840 -bieber - -0:01:23.520,0:01:28.320 -titled evil mode or how I learned to - -0:01:25.840,0:01:31.439 -stop worrying and love Emacs - -0:01:28.320,0:01:33.360 -I watched that talk a couple times over - -0:01:31.439,0:01:35.759 -just marveling at all the wonderful - -0:01:33.360,0:01:38.799 -things that he could do in Emacs - -0:01:35.759,0:01:41.680 -and being a previous vim user myself - -0:01:38.799,0:01:42.399 -I found it very enticing to be able to - -0:01:41.680,0:01:44.960 -have - -0:01:42.399,0:01:47.040 -the evil mode package and very quickly - -0:01:44.960,0:01:48.799 -switch to Emacs - -0:01:47.040,0:01:51.040 -at the time I was also in my sophomore - -0:01:48.799,0:01:54.640 -year and so - -0:01:51.040,0:01:56.320 -I had had sort of a note-taking system - -0:01:54.640,0:01:59.360 -in the past - -0:01:56.320,0:02:01.680 -but it was not good um and I needed a - -0:01:59.360,0:02:03.759 -more organized note-taking system - -0:02:01.680,0:02:04.960 -my parents had suggested paper for a - -0:02:03.759,0:02:08.160 -while and - -0:02:04.960,0:02:10.959 -there was the whole organization - -0:02:08.160,0:02:12.080 -part of that but that did not really - -0:02:10.959,0:02:14.000 -work out for me - -0:02:12.080,0:02:16.239 -and so I was trying to find this better - -0:02:14.000,0:02:19.440 -note-taking system - -0:02:16.239,0:02:22.239 -and it was very hard - -0:02:19.440,0:02:23.520 -I had two main criteria which I did not - -0:02:22.239,0:02:25.360 -define at the time - -0:02:23.520,0:02:26.640 -but I realized was really what I was - -0:02:25.360,0:02:28.720 -looking for - -0:02:26.640,0:02:30.959 -first of all it had to be flexible - -0:02:28.720,0:02:33.920 -enough and second of all it had - -0:02:30.959,0:02:34.959 -I had to have control over the data and - -0:02:33.920,0:02:37.519 -so - -0:02:34.959,0:02:39.680 -through this process I actually went - -0:02:37.519,0:02:42.640 -through a bunch of note-taking softwares - -0:02:39.680,0:02:44.080 -rather systematically I went through - -0:02:42.640,0:02:47.519 -google docs - -0:02:44.080,0:02:49.840 -which very much did not work out - -0:02:47.519,0:02:50.640 -I also went through evernote which also - -0:02:49.840,0:02:53.200 -was not - -0:02:50.640,0:02:55.200 -great for me and one note which I - -0:02:53.200,0:02:58.800 -settled on for a little while - -0:02:55.200,0:03:01.519 -but it did not meet these criteria - -0:02:58.800,0:03:02.159 -particularly the second one I had taken - -0:03:01.519,0:03:05.280 -some notes - -0:03:02.159,0:03:07.519 -and I wanted to export it and onenote - -0:03:05.280,0:03:12.000 -did not let me do that - -0:03:07.519,0:03:14.879 -it was pdf horribly organized pdf - -0:03:12.000,0:03:17.200 -and that's when I knew I needed some - -0:03:14.879,0:03:17.200 -change - -0:03:17.440,0:03:24.080 -so I discovered Emacs through this talk - -0:03:21.519,0:03:26.640 -and through the wonderful features of - -0:03:24.080,0:03:26.640 -org mode - -0:03:27.040,0:03:34.000 -this is my first journal entry in Emacs - -0:03:30.080,0:03:36.159 -I had been playing with it for one day - -0:03:34.000,0:03:38.159 -and I was on the org agenda and I - -0:03:36.159,0:03:40.720 -happened to press I - -0:03:38.159,0:03:41.599 -which for the Emacs combined is the - -0:03:40.720,0:03:45.440 -default for - -0:03:41.599,0:03:48.720 -diary entry and so I was very excited - -0:03:45.440,0:03:50.239 -um and I shouldn't stay on the slide too - -0:03:48.720,0:03:53.760 -long unless you read it - -0:03:50.239,0:03:57.200 -um so let's move on to the next one - -0:03:53.760,0:04:00.480 -um so the learning curve for me I think - -0:03:57.200,0:04:03.760 -particularly being an xbm user - -0:04:00.480,0:04:06.080 -evil mode made it very easy to switch - -0:04:03.760,0:04:07.439 -thankfully I there was the emax - -0:04:06.080,0:04:10.799 -reference sheet - -0:04:07.439,0:04:14.080 -and having evil mode to - -0:04:10.799,0:04:17.440 -switch between um - -0:04:14.080,0:04:17.919 -texts and whether it be editing a text - -0:04:17.440,0:04:20.560 -file - -0:04:17.919,0:04:21.600 -or going to other parts of just Emacs in - -0:04:20.560,0:04:24.800 -general - -0:04:21.600,0:04:26.840 -I think vim really helped with making me - -0:04:24.800,0:04:28.000 -feel comfortable within this new - -0:04:26.840,0:04:31.440 -environment - -0:04:28.000,0:04:31.919 -and so having that experience I also - -0:04:31.440,0:04:34.240 -wasn't - -0:04:31.919,0:04:36.320 -new to the keybind-based world I have - -0:04:34.240,0:04:40.160 -been very comfortable with computer - -0:04:36.320,0:04:43.520 -and the keyboard for most of my life - -0:04:40.160,0:04:45.520 -and so it was not a totally new - -0:04:43.520,0:04:47.440 -environment for me - -0:04:45.520,0:04:49.360 -I also spent a lot of time looking at - -0:04:47.440,0:04:53.040 -the Emacs reference sheet - -0:04:49.360,0:04:55.040 -just thinking about trying to find - -0:04:53.040,0:04:56.639 -all of the different functions if I - -0:04:55.040,0:04:59.680 -didn't know what something was - -0:04:56.639,0:05:01.199 -then I queried it in Emacs and then I - -0:04:59.680,0:05:03.759 -figured out what it was - -0:05:01.199,0:05:05.600 -and that was one of the best ways for me - -0:05:03.759,0:05:09.280 -to discover - -0:05:05.600,0:05:09.280 -all of the capabilities of Emacs - -0:05:09.360,0:05:12.800 -thirdly of course the self-documenting - -0:05:11.440,0:05:15.199 -feature - -0:05:12.800,0:05:17.120 -or nature of Emacs and narrowing - -0:05:15.199,0:05:20.479 -frameworks such as helm - -0:05:17.120,0:05:21.360 -really helped find things especially for - -0:05:20.479,0:05:25.919 -mx - -0:05:21.360,0:05:28.160 -for a while I was just - -0:05:25.919,0:05:29.520 -I would go about my day and if I pressed - -0:05:28.160,0:05:30.720 -to keep mine that I didn't know what it - -0:05:29.520,0:05:34.560 -did - -0:05:30.720,0:05:36.240 -I would do the losses and - -0:05:34.560,0:05:37.600 -see the list of key binds that I had - -0:05:36.240,0:05:40.400 -pressed and - -0:05:37.600,0:05:41.280 -tried to find that one and query the - -0:05:40.400,0:05:45.199 -function - -0:05:41.280,0:05:45.199 -and what not so - -0:05:45.280,0:05:51.759 -yeah and now we jump to now so - -0:05:49.120,0:05:53.280 -there there is at least one moment in - -0:05:51.759,0:05:55.600 -each day when I think - -0:05:53.280,0:05:57.680 -how would I live without umax - -0:05:55.600,0:05:59.120 -particularly now during my senior year - -0:05:57.680,0:06:02.720 -in high school - -0:05:59.120,0:06:05.520 -things are very busy with school violin - -0:06:02.720,0:06:06.400 -and other side projects it's pretty - -0:06:05.520,0:06:09.680 -crazy - -0:06:06.400,0:06:12.720 -and so Emacs - -0:06:09.680,0:06:14.479 -and org mode has really helped me stay - -0:06:12.720,0:06:16.960 -on track with everything - -0:06:14.479,0:06:18.840 -and the flexibility of these software is - -0:06:16.960,0:06:21.600 -being able to have things in different - -0:06:18.840,0:06:24.639 -files notes within the tasks - -0:06:21.600,0:06:25.840 -all of that stuff has been truly a - -0:06:24.639,0:06:28.400 -lifesaver - -0:06:25.840,0:06:31.199 -and so I think I can confidently say - -0:06:28.400,0:06:34.560 -that I have found Emacs to be - -0:06:31.199,0:06:34.560 -the perfect software for me - -0:06:35.280,0:06:42.240 -over the past two years of using Emacs - -0:06:38.639,0:06:45.039 -now it is about two years and two months - -0:06:42.240,0:06:46.160 -I have built a fairly well organized - -0:06:45.039,0:06:49.520 -2000 - -0:06:46.160,0:06:52.160 -plus line org literate config - -0:06:49.520,0:06:53.840 -and so I actually I started with an - -0:06:52.160,0:06:56.800 -e-lisp config - -0:06:53.840,0:06:57.919 -just the vanilla e-max with evil mode - -0:06:56.800,0:07:00.319 -and I built it up - -0:06:57.919,0:07:02.400 -from there eventually I switched to org - -0:07:00.319,0:07:05.840 -literate configs - -0:07:02.400,0:07:10.080 -and used that to organize the snippets - -0:07:05.840,0:07:14.000 -that I was putting in there and so - -0:07:10.080,0:07:16.639 -yeah this is really my workflow now - -0:07:14.000,0:07:18.960 -currently about 90 of everything I do on - -0:07:16.639,0:07:21.520 -my computer is in Emacs - -0:07:18.960,0:07:22.319 -the most notable things of course the - -0:07:21.520,0:07:26.000 -list is far - -0:07:22.319,0:07:28.160 -too long to put on one slide but I do a - -0:07:26.000,0:07:31.280 -lot of my programming in Emacs - -0:07:28.160,0:07:33.759 -mainly python and e-lisp - -0:07:31.280,0:07:35.199 -because of my ap comp sci class I have - -0:07:33.759,0:07:38.720 -to do java as well - -0:07:35.199,0:07:41.759 -and thank goodness Emacs has wonderful - -0:07:38.720,0:07:41.759 -support for that as well - -0:07:41.840,0:07:48.800 -also I do all of my school assignments - -0:07:45.840,0:07:50.400 -more or less in Emacs essay writing I do - -0:07:48.800,0:07:51.919 -an org mode and I have some template - -0:07:50.400,0:07:53.919 -files - -0:07:51.919,0:07:55.039 -template org files which I just include - -0:07:53.919,0:07:58.160 -at the top - -0:07:55.039,0:08:01.440 -and then I can export easily to latex - -0:07:58.160,0:08:04.400 -and a beautiful pdf - -0:08:01.440,0:08:05.840 -math physics same thing latex fragments - -0:08:04.400,0:08:09.599 -are a lifesaver - -0:08:05.840,0:08:13.199 -and also really pretty - -0:08:09.599,0:08:15.520 -and I take notes on basically everything - -0:08:13.199,0:08:16.319 -at first I had things separate and then - -0:08:15.520,0:08:19.360 -I started - -0:08:16.319,0:08:21.360 -sort of putting it all into onenotes.org - -0:08:19.360,0:08:24.000 -file or most of it into one - -0:08:21.360,0:08:24.960 -file and that has actually worked out - -0:08:24.000,0:08:26.479 -surprisingly well - -0:08:24.960,0:08:28.879 -especially with all the searching - -0:08:26.479,0:08:33.440 -features of agenda - -0:08:28.879,0:08:35.680 -and whatnot um and I also use mail - -0:08:33.440,0:08:37.680 -I recently made the switch probably - -0:08:35.680,0:08:40.479 -about one or two months ago - -0:08:37.680,0:08:40.959 -and it has been one of the best switches - -0:08:40.479,0:08:44.480 -I've - -0:08:40.959,0:08:46.320 -I've ever had especially given - -0:08:44.480,0:08:47.839 -connecting to tasks all of this - -0:08:46.320,0:08:50.640 -wonderful stuff - -0:08:47.839,0:08:54.160 -just putting even more in Emacs is - -0:08:50.640,0:08:57.680 -always a good thing I found - -0:08:54.160,0:08:59.760 -so reflecting back on my journey I think - -0:08:57.680,0:09:01.440 -one of the most important things was - -0:08:59.760,0:09:04.480 -just having a reason to use it - -0:09:01.440,0:09:06.080 -when I came to Emacs I had something - -0:09:04.480,0:09:09.600 -that I was looking for - -0:09:06.080,0:09:09.839 -and as soon as I found it I delved right - -0:09:09.600,0:09:12.720 -in - -0:09:09.839,0:09:14.480 -and I I started using it for that thing - -0:09:12.720,0:09:16.959 -and so I was sort of forced to - -0:09:14.480,0:09:19.279 -take the time to read the docs and - -0:09:16.959,0:09:22.399 -figure out what functions I needed - -0:09:19.279,0:09:25.839 -to function and how - -0:09:22.399,0:09:29.519 -I was going to put my workflow - -0:09:25.839,0:09:29.519 -and also of course the desire to tinker - -0:09:30.399,0:09:36.800 -and yeah so really what's next for me - -0:09:33.519,0:09:38.640 -is just wanting to become a more active - -0:09:36.800,0:09:40.640 -member of the Emacs community - -0:09:38.640,0:09:43.760 -I want to give back and I think this - -0:09:40.640,0:09:45.920 -talk is sort of the first step to that - -0:09:43.760,0:09:48.000 -being a more active part of this - -0:09:45.920,0:09:51.040 -community that has - -0:09:48.000,0:09:54.000 -indirectly perhaps um but just like - -0:09:51.040,0:09:55.839 -really helped me become a better and - -0:09:54.000,0:09:58.880 -more organized human being - -0:09:55.839,0:10:01.920 -um I have some package ideas that I'm - -0:09:58.880,0:10:05.839 -slowly working on and yeah I just hope - -0:10:01.920,0:10:05.839 -to spread the word - -0:10:05.920,0:10:09.360 -so thank you very much for listening to - -0:10:08.000,0:10:11.360 -my lightning talk - -0:10:09.360,0:10:12.480 -if you'd like to contact me here are - -0:10:11.360,0:10:15.279 -three modes of - -0:10:12.480,0:10:17.120 -or two modes of communication I will be - -0:10:15.279,0:10:20.079 -on irc more - -0:10:17.120,0:10:20.560 -soon and you can always email me if you - -0:10:20.079,0:10:23.200 -have - -0:10:20.560,0:10:23.680 -any questions you can also search me on - -0:10:23.200,0:10:26.399 -youtube - -0:10:23.680,0:10:26.800 -pierce wong violin thank you very much - -0:10:26.399,0:10:30.000 -and - -0:10:26.800,0:10:30.000 -I hope you enjoy the rest of the - -0:10:30.040,0: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.sbv b/2020/subtitles/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--questions--pierce-wang-autogen.sbv deleted file mode 100644 index eb7d745f..00000000 --- a/2020/subtitles/emacsconf-2020--26-emacs-as-a-highschooler-how-it-changed-my-life--questions--pierce-wang-autogen.sbv +++ /dev/null @@ -1,768 +0,0 @@ -0:00:01.360,0:00:05.520 -hello and welcome to my - -0:00:03.040,0:00:07.120 -Emacs conference lightning talk today - -0:00:05.520,0:00:09.840 -I'll be talking about - -0:00:07.120,0:00:13.360 -my journey into Emacs as a high schooler - -0:00:09.840,0:00:13.360 -and how it has changed my life - -0:00:14.400,0:00:19.520 -right so who am I I am a senior at - -0:00:17.359,0:00:22.800 -stanford online high school - -0:00:19.520,0:00:24.320 -and I am also a violinist - -0:00:22.800,0:00:26.960 -I started violin when I was two and a - -0:00:24.320,0:00:29.119 -half and I have been - -0:00:26.960,0:00:30.240 -keeping it up ever since violin is a - -0:00:29.119,0:00:33.360 -huge part of my life - -0:00:30.240,0:00:36.239 -and I am very much a musician at heart - -0:00:33.360,0:00:37.840 -I am also a somewhat capable programmer - -0:00:36.239,0:00:39.280 -I've done a lot of informal programming - -0:00:37.840,0:00:42.559 -in the past - -0:00:39.280,0:00:44.079 -and this year I'm taking my first ap - -0:00:42.559,0:00:47.440 -compsci course - -0:00:44.079,0:00:51.039 -in my high school and so - -0:00:47.440,0:00:54.239 -I've done a lot of side projects - -0:00:51.039,0:00:56.800 -mainly in python and some very short - -0:00:54.239,0:00:59.840 -scripts in e-lisp - -0:00:56.800,0:01:02.879 -and last but not least I am a tinker - -0:00:59.840,0:01:06.720 -I love to play around with things and - -0:01:02.879,0:01:10.240 -see what I can do better and just - -0:01:06.720,0:01:10.240 -have as much fun as possible - -0:01:10.880,0:01:14.479 -so how did I find Emacs - -0:01:15.040,0:01:18.880 -I discovered it actually through a talk - -0:01:17.600,0:01:21.360 -funnily enough - -0:01:18.880,0:01:23.520 -at a vim conference given by aaron - -0:01:21.360,0:01:25.840 -bieber - -0:01:23.520,0:01:28.320 -titled evil mode or how I learned to - -0:01:25.840,0:01:31.439 -stop worrying and love Emacs - -0:01:28.320,0:01:33.360 -I watched that talk a couple times over - -0:01:31.439,0:01:35.759 -just marveling at all the wonderful - -0:01:33.360,0:01:38.799 -things that he could do in Emacs - -0:01:35.759,0:01:41.680 -and being a previous vim user myself - -0:01:38.799,0:01:42.399 -I found it very enticing to be able to - -0:01:41.680,0:01:44.960 -have - -0:01:42.399,0:01:47.040 -the evil mode package and very quickly - -0:01:44.960,0:01:48.799 -switch to Emacs - -0:01:47.040,0:01:51.040 -at the time I was also in my sophomore - -0:01:48.799,0:01:54.640 -year and so - -0:01:51.040,0:01:56.320 -I had had sort of a note-taking system - -0:01:54.640,0:01:59.360 -in the past - -0:01:56.320,0:02:01.680 -but it was not good um and I needed a - -0:01:59.360,0:02:03.759 -more organized note-taking system - -0:02:01.680,0:02:04.960 -my parents had suggested paper for a - -0:02:03.759,0:02:08.160 -while and - -0:02:04.960,0:02:10.959 -there was the whole organization - -0:02:08.160,0:02:12.080 -part of that but that did not really - -0:02:10.959,0:02:14.000 -work out for me - -0:02:12.080,0:02:16.239 -and so I was trying to find this better - -0:02:14.000,0:02:19.440 -note-taking system - -0:02:16.239,0:02:22.239 -and it was very hard - -0:02:19.440,0:02:23.520 -I had two main criteria which I did not - -0:02:22.239,0:02:25.360 -define at the time - -0:02:23.520,0:02:26.640 -but I realized was really what I was - -0:02:25.360,0:02:28.720 -looking for - -0:02:26.640,0:02:30.959 -first of all it had to be flexible - -0:02:28.720,0:02:33.920 -enough and second of all it had - -0:02:30.959,0:02:34.959 -I had to have control over the data and - -0:02:33.920,0:02:37.519 -so - -0:02:34.959,0:02:39.680 -through this process I actually went - -0:02:37.519,0:02:42.640 -through a bunch of note-taking softwares - -0:02:39.680,0:02:44.080 -rather systematically I went through - -0:02:42.640,0:02:47.519 -google docs - -0:02:44.080,0:02:49.840 -which very much did not work out - -0:02:47.519,0:02:50.640 -I also went through evernote which also - -0:02:49.840,0:02:53.200 -was not - -0:02:50.640,0:02:55.200 -great for me and one note which I - -0:02:53.200,0:02:58.800 -settled on for a little while - -0:02:55.200,0:03:01.519 -but it did not meet these criteria - -0:02:58.800,0:03:02.159 -particularly the second one I had taken - -0:03:01.519,0:03:05.280 -some notes - -0:03:02.159,0:03:07.519 -and I wanted to export it and onenote - -0:03:05.280,0:03:12.000 -did not let me do that - -0:03:07.519,0:03:14.879 -it was pdf horribly organized pdf - -0:03:12.000,0:03:17.200 -and that's when I knew I needed some - -0:03:14.879,0:03:17.200 -change - -0:03:17.440,0:03:24.080 -so I discovered Emacs through this talk - -0:03:21.519,0:03:26.640 -and through the wonderful features of - -0:03:24.080,0:03:26.640 -org mode - -0:03:27.040,0:03:34.000 -this is my first journal entry in Emacs - -0:03:30.080,0:03:36.159 -I had been playing with it for one day - -0:03:34.000,0:03:38.159 -and I was on the org agenda and I - -0:03:36.159,0:03:40.720 -happened to press I - -0:03:38.159,0:03:41.599 -which for the Emacs combined is the - -0:03:40.720,0:03:45.440 -default for - -0:03:41.599,0:03:48.720 -diary entry and so I was very excited - -0:03:45.440,0:03:50.239 -um and I shouldn't stay on the slide too - -0:03:48.720,0:03:53.760 -long unless you read it - -0:03:50.239,0:03:57.200 -um so let's move on to the next one - -0:03:53.760,0:04:00.480 -um so the learning curve for me I think - -0:03:57.200,0:04:03.760 -particularly being an xbm user - -0:04:00.480,0:04:06.080 -evil mode made it very easy to switch - -0:04:03.760,0:04:07.439 -thankfully I there was the emax - -0:04:06.080,0:04:10.799 -reference sheet - -0:04:07.439,0:04:14.080 -and having evil mode to - -0:04:10.799,0:04:17.440 -switch between um - -0:04:14.080,0:04:17.919 -texts and whether it be editing a text - -0:04:17.440,0:04:20.560 -file - -0:04:17.919,0:04:21.600 -or going to other parts of just Emacs in - -0:04:20.560,0:04:24.800 -general - -0:04:21.600,0:04:26.840 -I think vim really helped with making me - -0:04:24.800,0:04:28.000 -feel comfortable within this new - -0:04:26.840,0:04:31.440 -environment - -0:04:28.000,0:04:31.919 -and so having that experience I also - -0:04:31.440,0:04:34.240 -wasn't - -0:04:31.919,0:04:36.320 -new to the keybind-based world I have - -0:04:34.240,0:04:40.160 -been very comfortable with computer - -0:04:36.320,0:04:43.520 -and the keyboard for most of my life - -0:04:40.160,0:04:45.520 -and so it was not a totally new - -0:04:43.520,0:04:47.440 -environment for me - -0:04:45.520,0:04:49.360 -I also spent a lot of time looking at - -0:04:47.440,0:04:53.040 -the Emacs reference sheet - -0:04:49.360,0:04:55.040 -just thinking about trying to find - -0:04:53.040,0:04:56.639 -all of the different functions if I - -0:04:55.040,0:04:59.680 -didn't know what something was - -0:04:56.639,0:05:01.199 -then I queried it in Emacs and then I - -0:04:59.680,0:05:03.759 -figured out what it was - -0:05:01.199,0:05:05.600 -and that was one of the best ways for me - -0:05:03.759,0:05:09.280 -to discover - -0:05:05.600,0:05:09.280 -all of the capabilities of Emacs - -0:05:09.360,0:05:12.800 -thirdly of course the self-documenting - -0:05:11.440,0:05:15.199 -feature - -0:05:12.800,0:05:17.120 -or nature of Emacs and narrowing - -0:05:15.199,0:05:20.479 -frameworks such as helm - -0:05:17.120,0:05:21.360 -really helped find things especially for - -0:05:20.479,0:05:25.919 -mx - -0:05:21.360,0:05:28.160 -for a while I was just - -0:05:25.919,0:05:29.520 -I would go about my day and if I pressed - -0:05:28.160,0:05:30.720 -to keep mine that I didn't know what it - -0:05:29.520,0:05:34.560 -did - -0:05:30.720,0:05:36.240 -I would do the losses and - -0:05:34.560,0:05:37.600 -see the list of key binds that I had - -0:05:36.240,0:05:40.400 -pressed and - -0:05:37.600,0:05:41.280 -tried to find that one and query the - -0:05:40.400,0:05:45.199 -function - -0:05:41.280,0:05:45.199 -and what not so - -0:05:45.280,0:05:51.759 -yeah and now we jump to now so - -0:05:49.120,0:05:53.280 -there there is at least one moment in - -0:05:51.759,0:05:55.600 -each day when I think - -0:05:53.280,0:05:57.680 -how would I live without umax - -0:05:55.600,0:05:59.120 -particularly now during my senior year - -0:05:57.680,0:06:02.720 -in high school - -0:05:59.120,0:06:05.520 -things are very busy with school violin - -0:06:02.720,0:06:06.400 -and other side projects it's pretty - -0:06:05.520,0:06:09.680 -crazy - -0:06:06.400,0:06:12.720 -and so Emacs - -0:06:09.680,0:06:14.479 -and org mode has really helped me stay - -0:06:12.720,0:06:16.960 -on track with everything - -0:06:14.479,0:06:18.840 -and the flexibility of these software is - -0:06:16.960,0:06:21.600 -being able to have things in different - -0:06:18.840,0:06:24.639 -files notes within the tasks - -0:06:21.600,0:06:25.840 -all of that stuff has been truly a - -0:06:24.639,0:06:28.400 -lifesaver - -0:06:25.840,0:06:31.199 -and so I think I can confidently say - -0:06:28.400,0:06:34.560 -that I have found Emacs to be - -0:06:31.199,0:06:34.560 -the perfect software for me - -0:06:35.280,0:06:42.240 -over the past two years of using Emacs - -0:06:38.639,0:06:45.039 -now it is about two years and two months - -0:06:42.240,0:06:46.160 -I have built a fairly well organized - -0:06:45.039,0:06:49.520 -2000 - -0:06:46.160,0:06:52.160 -plus line org literate config - -0:06:49.520,0:06:53.840 -and so I actually I started with an - -0:06:52.160,0:06:56.800 -e-lisp config - -0:06:53.840,0:06:57.919 -just the vanilla e-max with evil mode - -0:06:56.800,0:07:00.319 -and I built it up - -0:06:57.919,0:07:02.400 -from there eventually I switched to org - -0:07:00.319,0:07:05.840 -literate configs - -0:07:02.400,0:07:10.080 -and used that to organize the snippets - -0:07:05.840,0:07:14.000 -that I was putting in there and so - -0:07:10.080,0:07:16.639 -yeah this is really my workflow now - -0:07:14.000,0:07:18.960 -currently about 90 of everything I do on - -0:07:16.639,0:07:21.520 -my computer is in Emacs - -0:07:18.960,0:07:22.319 -the most notable things of course the - -0:07:21.520,0:07:26.000 -list is far - -0:07:22.319,0:07:28.160 -too long to put on one slide but I do a - -0:07:26.000,0:07:31.280 -lot of my programming in Emacs - -0:07:28.160,0:07:33.759 -mainly python and e-lisp - -0:07:31.280,0:07:35.199 -because of my ap comp sci class I have - -0:07:33.759,0:07:38.720 -to do java as well - -0:07:35.199,0:07:41.759 -and thank goodness Emacs has wonderful - -0:07:38.720,0:07:41.759 -support for that as well - -0:07:41.840,0:07:48.800 -also I do all of my school assignments - -0:07:45.840,0:07:50.400 -more or less in Emacs essay writing I do - -0:07:48.800,0:07:51.919 -an org mode and I have some template - -0:07:50.400,0:07:53.919 -files - -0:07:51.919,0:07:55.039 -template org files which I just include - -0:07:53.919,0:07:58.160 -at the top - -0:07:55.039,0:08:01.440 -and then I can export easily to latex - -0:07:58.160,0:08:04.400 -and a beautiful pdf - -0:08:01.440,0:08:05.840 -math physics same thing latex fragments - -0:08:04.400,0:08:09.599 -are a lifesaver - -0:08:05.840,0:08:13.199 -and also really pretty - -0:08:09.599,0:08:15.520 -and I take notes on basically everything - -0:08:13.199,0:08:16.319 -at first I had things separate and then - -0:08:15.520,0:08:19.360 -I started - -0:08:16.319,0:08:21.360 -sort of putting it all into onenotes.org - -0:08:19.360,0:08:24.000 -file or most of it into one - -0:08:21.360,0:08:24.960 -file and that has actually worked out - -0:08:24.000,0:08:26.479 -surprisingly well - -0:08:24.960,0:08:28.879 -especially with all the searching - -0:08:26.479,0:08:33.440 -features of agenda - -0:08:28.879,0:08:35.680 -and whatnot um and I also use mail - -0:08:33.440,0:08:37.680 -I recently made the switch probably - -0:08:35.680,0:08:40.479 -about one or two months ago - -0:08:37.680,0:08:40.959 -and it has been one of the best switches - -0:08:40.479,0:08:44.480 -I've - -0:08:40.959,0:08:46.320 -I've ever had especially given - -0:08:44.480,0:08:47.839 -connecting to tasks all of this - -0:08:46.320,0:08:50.640 -wonderful stuff - -0:08:47.839,0:08:54.160 -just putting even more in Emacs is - -0:08:50.640,0:08:57.680 -always a good thing I found - -0:08:54.160,0:08:59.760 -so reflecting back on my journey I think - -0:08:57.680,0:09:01.440 -one of the most important things was - -0:08:59.760,0:09:04.480 -just having a reason to use it - -0:09:01.440,0:09:06.080 -when I came to Emacs I had something - -0:09:04.480,0:09:09.600 -that I was looking for - -0:09:06.080,0:09:09.839 -and as soon as I found it I delved right - -0:09:09.600,0:09:12.720 -in - -0:09:09.839,0:09:14.480 -and I I started using it for that thing - -0:09:12.720,0:09:16.959 -and so I was sort of forced to - -0:09:14.480,0:09:19.279 -take the time to read the docs and - -0:09:16.959,0:09:22.399 -figure out what functions I needed - -0:09:19.279,0:09:25.839 -to function and how - -0:09:22.399,0:09:29.519 -I was going to put my workflow - -0:09:25.839,0:09:29.519 -and also of course the desire to tinker - -0:09:30.399,0:09:36.800 -and yeah so really what's next for me - -0:09:33.519,0:09:38.640 -is just wanting to become a more active - -0:09:36.800,0:09:40.640 -member of the Emacs community - -0:09:38.640,0:09:43.760 -I want to give back and I think this - -0:09:40.640,0:09:45.920 -talk is sort of the first step to that - -0:09:43.760,0:09:48.000 -being a more active part of this - -0:09:45.920,0:09:51.040 -community that has - -0:09:48.000,0:09:54.000 -indirectly perhaps um but just like - -0:09:51.040,0:09:55.839 -really helped me become a better and - -0:09:54.000,0:09:58.880 -more organized human being - -0:09:55.839,0:10:01.920 -um I have some package ideas that I'm - -0:09:58.880,0:10:05.839 -slowly working on and yeah I just hope - -0:10:01.920,0:10:05.839 -to spread the word - -0:10:05.920,0:10:09.360 -so thank you very much for listening to - -0:10:08.000,0:10:11.360 -my lightning talk - -0:10:09.360,0:10:12.480 -if you'd like to contact me here are - -0:10:11.360,0:10:15.279 -three modes of - -0:10:12.480,0:10:17.120 -or two modes of communication I will be - -0:10:15.279,0:10:20.079 -on irc more - -0:10:17.120,0:10:20.560 -soon and you can always email me if you - -0:10:20.079,0:10:23.200 -have - -0:10:20.560,0:10:23.680 -any questions you can also search me on - -0:10:23.200,0:10:26.399 -youtube - -0:10:23.680,0:10:26.800 -pierce wong violin thank you very much - -0:10:26.399,0:10:30.000 -and - -0:10:26.800,0:10:30.000 -I hope you enjoy the rest of the - -0:10:30.040,0:10:33.040 -conference - diff --git a/2020/subtitles/emacsconf-2020--27-state-of-retro-gaming-in-emacs-chip8--vasilij-wasamasa-schneidermann-autogen.sbv b/2020/subtitles/emacsconf-2020--27-state-of-retro-gaming-in-emacs-chip8--vasilij-wasamasa-schneidermann-autogen.sbv deleted file mode 100644 index c88c3ded..00000000 --- a/2020/subtitles/emacsconf-2020--27-state-of-retro-gaming-in-emacs-chip8--vasilij-wasamasa-schneidermann-autogen.sbv +++ /dev/null @@ -1,912 +0,0 @@ -0:00:00.880,0:00:04.520 -hello everyone and welcome to my talk - -0:00:02.879,0:00:06.960 -state of retrogaming and Emacs - -0:00:04.520,0:00:08.639 -[Music] - -0:00:06.960,0:00:12.000 -first of all a little bit about myself - -0:00:08.639,0:00:13.599 -my name is neilman I'm 28 years old - -0:00:12.000,0:00:15.200 -I work as a cyber security consultant - -0:00:13.599,0:00:17.440 -msg systems and - -0:00:15.200,0:00:19.359 -test other people's web applications and - -0:00:17.440,0:00:20.160 -review the source code for security - -0:00:19.359,0:00:22.960 -problems - -0:00:20.160,0:00:25.039 -you can reach me by email I have my own - -0:00:22.960,0:00:26.480 -self-hosted git repositories - -0:00:25.039,0:00:28.480 -and I have a blog where you can - -0:00:26.480,0:00:32.160 -occasionally find new posts by me on all - -0:00:28.480,0:00:34.800 -kinds of things not just emix things - -0:00:32.160,0:00:36.480 -so but the motivation about this one I - -0:00:34.800,0:00:38.079 -found that Emacs is the ultimate - -0:00:36.480,0:00:40.160 -procrastination machine and there are - -0:00:38.079,0:00:41.200 -lots of fun demonstrations I'll go over - -0:00:40.160,0:00:44.160 -a few of them - -0:00:41.200,0:00:46.079 -for example someone made a thing to - -0:00:44.160,0:00:48.239 -order sell it for himself online so it - -0:00:46.079,0:00:50.879 -doesn't have to walk over to the shop - -0:00:48.239,0:00:51.760 -there's plenty rc bots there's some game - -0:00:50.879,0:00:53.520 -things - -0:00:51.760,0:00:55.600 -there's an emulator for the z machine - -0:00:53.520,0:00:57.600 -which you can use to play zorg - -0:00:55.600,0:00:59.039 -and so I asked myself at this point can - -0:00:57.600,0:01:01.039 -you actually emulate retro games at - -0:00:59.039,0:01:02.800 -60fps and it looked around a bit - -0:01:01.039,0:01:04.479 -and found some projects but none that - -0:01:02.800,0:01:07.360 -were actually able to - -0:01:04.479,0:01:08.000 -do it at 60fps so I set out to do my own - -0:01:07.360,0:01:09.439 -one - -0:01:08.000,0:01:11.119 -and looked out for a console that you - -0:01:09.439,0:01:13.439 -can actually emulate at that speed - -0:01:11.119,0:01:14.690 -using emax with its very very limited - -0:01:13.439,0:01:16.320 -rendering - -0:01:14.690,0:01:19.520 -[Music] - -0:01:16.320,0:01:20.560 -and here's the project chip8.el it's - -0:01:19.520,0:01:22.880 -pretty much finished - -0:01:20.560,0:01:24.000 -it clocks into under 1000 sourced lines - -0:01:22.880,0:01:26.159 -of code - -0:01:24.000,0:01:28.080 -it supports the superchip 8 extensions - -0:01:26.159,0:01:30.159 -it runs at full speed all games behave - -0:01:28.080,0:01:32.320 -okay as far as I'm concerned and - -0:01:30.159,0:01:34.479 -yeah I'm pretty happy with it it's very - -0:01:32.320,0:01:37.040 -much the hell world of emulation - -0:01:34.479,0:01:40.880 -and I might maybe do some other - -0:01:37.040,0:01:43.360 -emulation projects in the future - -0:01:40.880,0:01:45.439 -now for the section which is the longest - -0:01:43.360,0:01:46.320 -bunch of fun facts about ship a dot el - -0:01:45.439,0:01:49.759 -which I've learned - -0:01:46.320,0:01:52.240 -during this project so - -0:01:49.759,0:01:54.640 -what the hell is debate anyway first of - -0:01:52.240,0:01:56.799 -all unlike many other emulation game - -0:01:54.640,0:01:58.560 -things it's not a console but a vm - -0:01:56.799,0:02:00.000 -it was designed for easy parting of home - -0:01:58.560,0:02:02.560 -computer games - -0:02:00.000,0:02:03.680 -it wasn't terribly successful and but - -0:02:02.560,0:02:04.320 -there's still a small community of - -0:02:03.680,0:02:06.079 -enthusiasts - -0:02:04.320,0:02:09.119 -writing games for it and there are even - -0:02:06.079,0:02:11.920 -a few demos - -0:02:09.119,0:02:14.720 -this vm has system specs it has a very - -0:02:11.920,0:02:14.959 -very simple 8-bit cpu with 16 registers - -0:02:14.720,0:02:17.760 -and - -0:02:14.959,0:02:18.160 -36 fixed size instructions you have a - -0:02:17.760,0:02:20.560 -whole - -0:02:18.160,0:02:22.080 -4 kilobyte of ram you have a stack with - -0:02:20.560,0:02:24.480 -16 return addresses - -0:02:22.080,0:02:25.760 -the resolution is 64 by 32 black white - -0:02:24.480,0:02:28.000 -pixels - -0:02:25.760,0:02:29.440 -rendering is done by drawing sprites - -0:02:28.000,0:02:30.160 -these are drawn in excel mode meaning - -0:02:29.440,0:02:32.239 -that if you - -0:02:30.160,0:02:33.840 -draw a sprite and set a bit it just - -0:02:32.239,0:02:35.040 -flips over from black to white or white - -0:02:33.840,0:02:36.560 -to black - -0:02:35.040,0:02:38.239 -first one you have a modern buzz that - -0:02:36.560,0:02:40.640 -can just beep at one - -0:02:38.239,0:02:43.120 -frequency and most unusually there's a - -0:02:40.640,0:02:45.360 -hexadecimal keypad as input - -0:02:43.120,0:02:48.160 -so the keys are basically zero to nine - -0:02:45.360,0:02:48.160 -and a to f - -0:02:48.480,0:02:52.400 -so how does this whole thing work it - -0:02:50.879,0:02:53.599 -runs an unspecified speed - -0:02:52.400,0:02:54.879 -you'll probably have to do some fine - -0:02:53.599,0:02:56.080 -tune you find the speed you're happy - -0:02:54.879,0:02:58.560 -with - -0:02:56.080,0:03:01.120 -sound and delay timers exist they count - -0:02:58.560,0:03:02.879 -down at 60fps down to zero - -0:03:01.120,0:03:05.120 -this is done so that you can play a - -0:03:02.879,0:03:06.640 -sound at some specific time - -0:03:05.120,0:03:08.640 -the game itself is loaded with a fixed - -0:03:06.640,0:03:10.480 -offset into ram the program account is - -0:03:08.640,0:03:11.920 -set to exactly that offset - -0:03:10.480,0:03:13.840 -and from there it enters the game loop - -0:03:11.920,0:03:15.519 -where decodes and instruction executes - -0:03:13.840,0:03:18.130 -it for the side effects and just - -0:03:15.519,0:03:19.599 -loops and does this at infinitum - -0:03:18.130,0:03:21.920 -[Music] - -0:03:19.599,0:03:23.920 -so the game was the first thing where - -0:03:21.920,0:03:24.239 -into problems the usual game approach is - -0:03:23.920,0:03:26.640 -to - -0:03:24.239,0:03:28.239 -do stuff figure out how long to eight - -0:03:26.640,0:03:30.640 -wait for exactly that much and - -0:03:28.239,0:03:31.680 -repeat this doesn't work well in imax at - -0:03:30.640,0:03:34.959 -all because well - -0:03:31.680,0:03:37.280 -user input basically and - -0:03:34.959,0:03:39.040 -Emacs is designed to just do whatever it - -0:03:37.280,0:03:40.080 -needs to do whenever you enter use input - -0:03:39.040,0:03:42.799 -instead of - -0:03:40.080,0:03:43.440 -doing things at one specific time if you - -0:03:42.799,0:03:45.040 -try to do - -0:03:43.440,0:03:46.640 -interruptable sleep well you get - -0:03:45.040,0:03:49.440 -unpredictable behavior - -0:03:46.640,0:03:50.959 -for example can be the timer doesn't run - -0:03:49.440,0:03:52.560 -at all at next time because you've - -0:03:50.959,0:03:54.400 -accidentally cancelled it - -0:03:52.560,0:03:55.760 -if you do uninterruptable sleep it's - -0:03:54.400,0:03:56.720 -freezes instead which isn't what you - -0:03:55.760,0:03:59.360 -want either - -0:03:56.720,0:04:00.560 -so I went for timers which forced me to - -0:03:59.360,0:04:02.159 -do inversion of control - -0:04:00.560,0:04:04.080 -meaning that I have to write code in the - -0:04:02.159,0:04:06.159 -style where it's just call it - -0:04:04.080,0:04:07.200 -time and this allows this input to - -0:04:06.159,0:04:09.120 -happen and to - -0:04:07.200,0:04:11.040 -for things to progress at roughly the - -0:04:09.120,0:04:12.879 -speed I want to - -0:04:11.040,0:04:14.159 -so there's the skydiver function which - -0:04:12.879,0:04:16.000 -is called a 60fps - -0:04:14.159,0:04:17.359 -and I have to be very careful to not do - -0:04:16.000,0:04:20.479 -too much in it - -0:04:17.359,0:04:22.960 -and say this function execute cpu cycles - -0:04:20.479,0:04:23.680 -decrypt the sound delay registers and - -0:04:22.960,0:04:27.759 -redraw - -0:04:23.680,0:04:28.800 -the screen so to map this whole system - -0:04:27.759,0:04:31.199 -to mx lisp - -0:04:28.800,0:04:33.120 -I've used just integers and vectors - -0:04:31.199,0:04:35.040 -which contain even more integers - -0:04:33.120,0:04:37.759 -this is used for the ram registers - -0:04:35.040,0:04:39.120 -return stack key state screen and so on - -0:04:37.759,0:04:41.520 -and so forth basically - -0:04:39.120,0:04:42.800 -what you would do if you were writing c - -0:04:41.520,0:04:44.560 -all of this is stored in global - -0:04:42.800,0:04:46.479 -variables I'm not using any - -0:04:44.560,0:04:48.400 -lists at all and as a side effect - -0:04:46.479,0:04:50.320 -there's no constant going on at all - -0:04:48.400,0:04:51.120 -there are no extra objects created which - -0:04:50.320,0:04:53.919 -would trigger - -0:04:51.120,0:04:55.840 -garbage collection pulses this getting - -0:04:53.919,0:04:56.720 -this red was rather tricky actually and - -0:04:55.840,0:04:58.560 -there were some - -0:04:56.720,0:05:01.680 -in garbage collection problems which I - -0:04:58.560,0:05:01.680 -had to resolve over time - -0:05:01.759,0:05:05.520 -so the coding instructions for this you - -0:05:04.320,0:05:06.800 -have to know that all instructions are - -0:05:05.520,0:05:08.880 -two bytes long - -0:05:06.800,0:05:10.240 -and the arguments encoded inside them - -0:05:08.880,0:05:11.440 -for example the jump to address - -0:05:10.240,0:05:15.120 -instruction - -0:05:11.440,0:05:18.400 -is encoded as one and three hex digits - -0:05:15.120,0:05:20.800 -the type is extracted masking with f000 - -0:05:18.400,0:05:21.680 -and then shifting it by 12 bits mask - -0:05:20.800,0:05:24.000 -means the hd - -0:05:21.680,0:05:25.440 -performance binary end you can do the - -0:05:24.000,0:05:26.639 -same with the argument basement with - -0:05:25.440,0:05:29.520 -zero fff - -0:05:26.639,0:05:31.039 -and no shift if you do this long enough - -0:05:29.520,0:05:32.639 -you'll find common patterns for example - -0:05:31.039,0:05:35.280 -addresses are always encoded like this - -0:05:32.639,0:05:36.880 -using the last three nibbles in the code - -0:05:35.280,0:05:38.400 -you'll find a big count which dispatches - -0:05:36.880,0:05:40.070 -on the type and executes it for the side - -0:05:38.400,0:05:41.440 -effects - -0:05:40.070,0:05:43.440 -[Music] - -0:05:41.440,0:05:45.919 -for testing I've initially just accused - -0:05:43.440,0:05:47.280 -the rom until I fit ctrl g - -0:05:45.919,0:05:49.039 -and then use the debug command to run - -0:05:47.280,0:05:51.360 -the screen to a buffer - -0:05:49.039,0:05:52.320 -later on I found tiny roms that just - -0:05:51.360,0:05:55.680 -display a static - -0:05:52.320,0:05:57.280 -test screen for example logo and looked - -0:05:55.680,0:05:59.199 -whether it looked right - -0:05:57.280,0:06:00.960 -I added instructions as needed and went - -0:05:59.199,0:06:03.360 -through more and more and more roms and - -0:06:00.960,0:06:05.199 -later I wrote in unit test suite as a - -0:06:03.360,0:06:06.000 -safety net and this unit test suite it - -0:06:05.199,0:06:08.400 -just - -0:06:06.000,0:06:10.080 -sets up an empty emulator state executes - -0:06:08.400,0:06:10.400 -some instructions and then looks whether - -0:06:10.080,0:06:13.840 -the - -0:06:10.400,0:06:13.840 -expected side effects have happened - -0:06:14.880,0:06:19.120 -for debugging I usually use e-debug but - -0:06:17.120,0:06:20.880 -this was super ineffective because well - -0:06:19.120,0:06:22.960 -you don't really want to step through - -0:06:20.880,0:06:24.960 -big cons doing side effects for every - -0:06:22.960,0:06:26.880 -single cycle when it can take like 100 - -0:06:24.960,0:06:29.680 -cycles for things to happen - -0:06:26.880,0:06:31.360 -therefore I've set up logging and - -0:06:29.680,0:06:32.720 -whenever I locked something - -0:06:31.360,0:06:33.919 -and couldn't figure out the error I - -0:06:32.720,0:06:37.039 -compared my lock output with - -0:06:33.919,0:06:39.199 -instrumented version of another emulator - -0:06:37.039,0:06:40.880 -and if the locks diverge then I have - -0:06:39.199,0:06:42.720 -figured out where the bug lies and could - -0:06:40.880,0:06:44.479 -look deeper into it - -0:06:42.720,0:06:46.639 -future project idea might be a chip 8 - -0:06:44.479,0:06:50.720 -debugger but I doubt I'll ever - -0:06:46.639,0:06:52.639 -go into it for analysis I initially - -0:06:50.720,0:06:54.400 -wrote a disassembler which is a very - -0:06:52.639,0:06:56.160 -simple thing but super tedious - -0:06:54.400,0:06:57.599 -especially if you wanted to add advanced - -0:06:56.160,0:06:59.120 -functionality for example analysis or - -0:06:57.599,0:07:00.000 -thinking of what part is data what had - -0:06:59.120,0:07:01.840 -this code - -0:07:00.000,0:07:03.360 -and I had this great idea for using the - -0:07:01.840,0:07:05.120 -radari 2 framework - -0:07:03.360,0:07:06.479 -and adding analysis and disassembly - -0:07:05.120,0:07:08.400 -plug-in for it - -0:07:06.479,0:07:10.319 -so I looked into this found okay here - -0:07:08.400,0:07:12.160 -where you can write plugins in c - -0:07:10.319,0:07:13.520 -but also in python so I wrote one in - -0:07:12.160,0:07:15.039 -python and then the scout there's - -0:07:13.520,0:07:17.440 -actually existing one in core which you - -0:07:15.039,0:07:19.599 -have to enable explicitly by passing its - -0:07:17.440,0:07:21.840 -argument so I've tried it and found it's - -0:07:19.599,0:07:23.680 -not exactly as good as my own one so - -0:07:21.840,0:07:26.610 -improved this one and submitted pull - -0:07:23.680,0:07:28.080 -requests until it was at the same level - -0:07:26.610,0:07:30.160 -[Music] - -0:07:28.080,0:07:31.360 -rendering was the trickiest part of this - -0:07:30.160,0:07:34.319 -whole thing because - -0:07:31.360,0:07:35.759 -well I decided against using a library - -0:07:34.319,0:07:37.120 -not like there would have been any - -0:07:35.759,0:07:39.599 -usable library for this - -0:07:37.120,0:07:41.680 -my usual approach of accelerating svg - -0:07:39.599,0:07:45.120 -file was too expensive it just created - -0:07:41.680,0:07:47.360 -too much garbage and took too long time - -0:07:45.120,0:07:49.599 -I then tried creating mutating strings - -0:07:47.360,0:07:52.639 -this was either either too expensive - -0:07:49.599,0:07:55.039 -just like svgs or too complicated I - -0:07:52.639,0:07:57.280 -tried changing svg tiles which created - -0:07:55.039,0:07:59.520 -gaps between the lines - -0:07:57.280,0:08:00.720 -then I tried to create an xpm file which - -0:07:59.520,0:08:02.400 -was backed by a bull vector - -0:08:00.720,0:08:04.400 -administrating this bull vector - -0:08:02.400,0:08:06.879 -but the image caching effect made it - -0:08:04.400,0:08:10.000 -just every nth frame to appear which - -0:08:06.879,0:08:11.440 -wasn't good either then I had the idea - -0:08:10.000,0:08:13.280 -to just use plain text - -0:08:11.440,0:08:14.800 -and paint the individual characters with - -0:08:13.280,0:08:17.120 -a different background color this - -0:08:14.800,0:08:18.479 -this had perfect perfect performance - -0:08:17.120,0:08:20.000 -there were many optimization attempts - -0:08:18.479,0:08:21.840 -until I got there and it was - -0:08:20.000,0:08:23.199 -very very stressful I wasn't sure - -0:08:21.840,0:08:26.160 -whether I would ever get to accept the - -0:08:23.199,0:08:28.560 -performance at all - -0:08:26.160,0:08:30.319 -for sound you only need to a single beep - -0:08:28.560,0:08:31.280 -so technically it shouldn't be difficult - -0:08:30.319,0:08:33.519 -to emulate it - -0:08:31.280,0:08:34.880 -however doing this is hard because Emacs - -0:08:33.519,0:08:37.200 -officially only supports synchronous - -0:08:34.880,0:08:39.039 -playback of sounds - -0:08:37.200,0:08:41.360 -but there's also emax process which you - -0:08:39.039,0:08:43.519 -can launch in asynchronous way - -0:08:41.360,0:08:45.279 -so I looked into it and found that - -0:08:43.519,0:08:46.640 -employee has a slave mode and mpv - -0:08:45.279,0:08:50.880 -supports listing on the - -0:08:46.640,0:08:54.000 -fifo for commands so I've created a pipe - -0:08:50.880,0:08:55.519 -started a past mpv in loop mode and - -0:08:54.000,0:08:58.000 -always send in pause and pause command - -0:08:55.519,0:09:01.839 -to the fifo and that way I could control - -0:08:58.000,0:09:01.839 -when to start beeping and stop beeping - -0:09:02.640,0:09:07.200 -so yeah that's it so far was a very - -0:09:05.760,0:09:09.279 -educational experience - -0:09:07.200,0:09:10.320 -I have tried out a bunch of games which - -0:09:09.279,0:09:12.640 -were - -0:09:10.320,0:09:14.320 -well I almost say the worst ports of - -0:09:12.640,0:09:15.839 -classic games I've ever tried - -0:09:14.320,0:09:18.320 -it wasn't terribly fun to play them but - -0:09:15.839,0:09:21.760 -was fun to improve the emulator until - -0:09:18.320,0:09:23.279 -well things worked good enough - -0:09:21.760,0:09:25.120 -and I've learned a lot about how - -0:09:23.279,0:09:27.760 -computers work at this level - -0:09:25.120,0:09:28.880 -so maybe maybe I'll in the future make - -0:09:27.760,0:09:31.920 -another emulator - -0:09:28.880,0:09:34.000 -but uh I'm not sure whether anything - -0:09:31.920,0:09:36.560 -more advanced like intel 8080 emulator - -0:09:34.000,0:09:37.839 -will actually run mix fast enough - -0:09:36.560,0:09:39.200 -but it's still an interesting idea - -0:09:37.839,0:09:39.600 -because then you could actually have an - -0:09:39.200,0:09:41.680 -os - -0:09:39.600,0:09:43.120 -inside Emacs and fulfill that one - -0:09:41.680,0:09:45.440 -specific meme - -0:09:43.120,0:09:47.279 -but if I try to do most serious stuff - -0:09:45.440,0:09:48.000 -I'll probably use chicken scheme which - -0:09:47.279,0:09:49.920 -is my - -0:09:48.000,0:09:53.279 -preferred language for serious projects - -0:09:49.920,0:09:57.839 -and writing neso gamer emulator - -0:09:53.279,0: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.sbv b/2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.sbv deleted file mode 100644 index eafeb121..00000000 --- a/2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.sbv +++ /dev/null @@ -1,4992 +0,0 @@ -0:00:08.559,0:00:10.880 -okay - -0:00:12.960,0:00:18.000 -so I'm gonna start with my just my demo - -0:00:14.960,0:00:31.840 -Emacs here eric we're ready - -0:00:18.000,0:00:35.440 -oh we are live - -0:00:31.840,0:00:39.200 -okay so you're starting then - -0:00:35.440,0:00:41.760 -I guess I'll start right now here we go - -0:00:39.200,0:00:43.440 -so I'm a windows user as we talked about - -0:00:41.760,0:00:46.719 -yesterday - -0:00:43.440,0:00:47.440 -I'm gonna try to uh start Emacs for you - -0:00:46.719,0:00:48.960 -now - -0:00:47.440,0:00:52.879 -and I've kind of got it pinned to this - -0:00:48.960,0:00:55.760 -thing but mostly what I actually do - -0:00:52.879,0:01:00.160 -is grab a file explorer and head to my - -0:00:55.760,0:01:00.160 -desktop where I have all sorts of Emacs - -0:01:00.559,0:01:04.160 -eric can you make sure that your vlc is - -0:01:05.960,0:01:08.960 -muted - -0:01:10.840,0:01:13.840 -okay - -0:01:21.840,0:01:27.840 -give me a second please - -0:01:39.360,0:01:44.000 -I do okay all right we should be we - -0:01:42.079,0:01:44.560 -should be working again now my apologies - -0:01:44.000,0:01:46.560 -for that - -0:01:44.560,0:01:47.759 -all right handling technical problems in - -0:01:46.560,0:01:50.079 -real time is - -0:01:47.759,0:01:52.079 -uh what Emacs is all about as we're - -0:01:50.079,0:01:53.360 -coding we're constantly making errors - -0:01:52.079,0:01:54.560 -and fixing them and - -0:01:53.360,0:01:56.159 -learning from the kinds of errors that - -0:01:54.560,0:01:57.759 -we make and adjusting the editor to be - -0:01:56.159,0:02:00.719 -easier to use - -0:01:57.759,0:02:02.640 -so today we'll try to build on uh some - -0:02:00.719,0:02:05.600 -of the ideas we introduced yesterday - -0:02:02.640,0:02:07.280 -around how a community can help us learn - -0:02:05.600,0:02:10.479 -Emacs faster - -0:02:07.280,0:02:13.040 -and how we can think broadly - -0:02:10.479,0:02:14.160 -about the people in our team when we - -0:02:13.040,0:02:16.080 -decide how - -0:02:14.160,0:02:18.000 -what kind of Emacs configuration we're - -0:02:16.080,0:02:19.680 -going to have going for our project - -0:02:18.000,0:02:22.239 -so I'm just going to fire up my normal - -0:02:19.680,0:02:25.440 -Emacs config now so that we get - -0:02:22.239,0:02:29.120 -uh hopefully a nice pretty demo or uh - -0:02:25.440,0:02:30.959 -at least some slides and for safety - -0:02:29.120,0:02:33.360 -we're going to avoid the server because - -0:02:30.959,0:02:35.280 -I hate it when it crashes - -0:02:33.360,0:02:37.840 -it's a little less stable under windows - -0:02:35.280,0:02:37.840 -I think - -0:02:41.120,0:02:44.800 -and well uh while this starts up I'll - -0:02:43.360,0:02:47.200 -just briefly introduce - -0:02:44.800,0:02:49.519 -my lifelong friend and eric uh elm - -0:02:47.200,0:02:51.120 -salzer who's hanging in the wings and - -0:02:49.519,0:02:53.840 -waiting impatiently for us to be able to - -0:02:51.120,0:02:53.840 -start our slides - -0:02:54.400,0:02:57.280 -hello everybody - -0:02:58.560,0:03:02.000 -so you've heard plenty from me already - -0:03:00.720,0:03:05.760 -this conference - -0:03:02.000,0:03:09.120 -um I suppose - -0:03:05.760,0:03:10.720 -uh so I'm just gonna uh - -0:03:09.120,0:03:12.400 -so eric and I have worked things out so - -0:03:10.720,0:03:14.159 -that he'll do most of the talking today - -0:03:12.400,0:03:14.879 -I'll drive us through some code parts - -0:03:14.159,0:03:16.239 -but - -0:03:14.879,0:03:18.000 -the hope is that we'll just focus a - -0:03:16.239,0:03:20.000 -little more on the game and if you have - -0:03:18.000,0:03:21.840 -questions about the game at all please - -0:03:20.000,0:03:24.879 -don't hesitate to ask those as well as - -0:03:21.840,0:03:24.879 -your Emacs questions - -0:03:28.480,0:03:33.840 -and I think we're starting out welcome - -0:03:34.959,0:03:40.400 -and let's cut away here so we can show - -0:03:37.680,0:03:40.400 -some faces - -0:03:41.200,0:03:47.840 -I lost you eric why would you do that - -0:03:45.040,0:03:47.840 -there he is - -0:03:48.319,0:03:53.280 -and let's just do one more thing because - -0:03:50.239,0:03:55.439 -that's just kind of offensive - -0:03:53.280,0:03:59.360 -I'm gonna kill off that cute wallpaper - -0:03:55.439,0:04:02.640 -we all were playing with yesterday - -0:03:59.360,0:04:04.480 -although that's not so bad anymore - -0:04:02.640,0:04:07.360 -oh that's terrible it's got to come back - -0:04:04.480,0:04:07.360 -I'm sorry everybody - -0:04:11.120,0:04:15.840 -oh my dear all right - -0:04:16.720,0:04:22.400 -and we just opened Emacs so I have to - -0:04:19.040,0:04:22.400 -open my slideshow - -0:04:25.040,0:04:30.320 -and there we are - -0:04:28.479,0:04:32.560 -okay eric I think I'm about as ready as - -0:04:30.320,0:04:35.520 -I get - -0:04:32.560,0:04:37.840 -cool well uh let's begin here welcome to - -0:04:35.520,0:04:40.560 -the dungeon everybody - -0:04:37.840,0:04:40.560 -I'm eric and this - -0:04:41.199,0:04:45.120 -london is that we've been working on for - -0:04:43.199,0:04:48.240 -about a year now - -0:04:45.120,0:04:52.000 -um the dungeon - -0:04:48.240,0:04:54.000 -game is based on - -0:04:52.000,0:04:56.160 -a tradition of gaming that came out of - -0:04:54.000,0:04:57.520 -the university of minnesota back in like - -0:04:56.160,0:05:00.639 -the 1950s - -0:04:57.520,0:05:03.680 -as far as we can tell and it - -0:05:00.639,0:05:05.199 -is a predecessor an ancestor of most of - -0:05:03.680,0:05:07.680 -the commercial role-playing games - -0:05:05.199,0:05:08.720 -that you have heard of or maybe tried - -0:05:07.680,0:05:10.800 -out from - -0:05:08.720,0:05:11.919 -various stores and friends when I have - -0:05:10.800,0:05:14.240 -you - -0:05:11.919,0:05:15.759 -so one of the first things we want to - -0:05:14.240,0:05:17.039 -talk about is what is it that sets - -0:05:15.759,0:05:19.440 -dungeon apart - -0:05:17.039,0:05:20.800 -why is it you know what is it about this - -0:05:19.440,0:05:22.880 -game that makes us want to - -0:05:20.800,0:05:25.039 -continue bringing it forward when there - -0:05:22.880,0:05:26.800 -are so many games - -0:05:25.039,0:05:28.479 -already commercially available that are - -0:05:26.800,0:05:32.400 -descended from it - -0:05:28.479,0:05:36.479 -um dungeon is kind of a - -0:05:32.400,0:05:39.280 -simpler game like we - -0:05:36.479,0:05:40.400 -don't a lot of the mechanics that you - -0:05:39.280,0:05:42.240 -think of about like - -0:05:40.400,0:05:44.560 -what is it that defines your character - -0:05:42.240,0:05:48.080 -stats and skills and attributes - -0:05:44.560,0:05:51.199 -we just don't deal with in dungeon um - -0:05:48.080,0:05:54.720 -but dungeon - -0:05:51.199,0:05:59.560 -the simplicity of it allows it um - -0:05:54.720,0:06:01.840 -to be a view over creativity more than - -0:05:59.560,0:06:04.720 -um - -0:06:01.840,0:06:07.039 -so that's kind of why we like it but - -0:06:04.720,0:06:07.039 -also - -0:06:16.639,0:06:24.000 -so when we look at it as kind of like - -0:06:20.800,0:06:26.880 -uh a technology problem whoops - -0:06:24.000,0:06:27.919 -when we try to hey home uh I'm sorry I - -0:06:26.880,0:06:30.560 -got ahead of us I'll - -0:06:27.919,0:06:30.560 -I'll cut back - -0:06:32.160,0:06:37.600 -I I thought we were doing fine - -0:06:35.520,0:06:40.000 -okay well then I'll I'll just yeah - -0:06:37.600,0:06:40.000 -either way - -0:06:40.319,0:06:46.479 -so we've been friends since um - -0:06:43.360,0:06:49.840 -it was our parents basically - -0:06:46.479,0:06:53.120 -um our parents are friends uh and - -0:06:49.840,0:07:02.479 -we learn this game from our parents - -0:06:53.120,0:07:04.560 -um specifically um - -0:07:02.479,0:07:06.400 -uh yeah that's where that's that's - -0:07:04.560,0:07:09.599 -that's my q in right - -0:07:06.400,0:07:13.759 -so um yeah my my - -0:07:09.599,0:07:15.120 -my folks uh and and eric's folks were - -0:07:13.759,0:07:17.360 -were really tight they used to run - -0:07:15.120,0:07:20.400 -science fiction conventions together - -0:07:17.360,0:07:21.840 -and yeah we our play - -0:07:20.400,0:07:23.520 -featured you know imaginative - -0:07:21.840,0:07:25.360 -role-playing usually we would find ways - -0:07:23.520,0:07:28.639 -to work the computers in - -0:07:25.360,0:07:30.479 -to things and uh uh - -0:07:28.639,0:07:34.160 -I don't I don't know I I hardly have - -0:07:30.479,0:07:34.160 -memories uh that proceed eric - -0:07:35.000,0:07:44.240 -um also it turns out we're both - -0:07:37.840,0:07:47.280 -kind of nervous uh we've been um - -0:07:44.240,0:07:49.039 -back in the early 80s and - -0:07:47.280,0:07:51.360 -for as long as we've been friends - -0:07:49.039,0:07:52.800 -basically we've also been into playing - -0:07:51.360,0:07:55.440 -with computers - -0:07:52.800,0:07:55.840 -um over the years we've worked with many - -0:07:55.440,0:07:59.120 -many - -0:07:55.840,0:07:59.120 -different systems we've played - -0:08:11.360,0:08:17.919 -like um so we - -0:08:14.560,0:08:20.800 -also always thought like - -0:08:17.919,0:08:22.639 -how is it that we can use these cool - -0:08:20.800,0:08:27.840 -computers - -0:08:22.639,0:08:27.840 -to build this dungeons - -0:08:28.319,0:08:35.039 -right that's certainly what we did um - -0:08:32.080,0:08:35.839 -so after some decades of bike shedding - -0:08:35.039,0:08:37.360 -where we saw - -0:08:35.839,0:08:39.039 -really a lot of changes in the - -0:08:37.360,0:08:40.800 -technology field - -0:08:39.039,0:08:42.880 -cell phones were invented smartphones - -0:08:40.800,0:08:44.720 -were invented text messaging in - -0:08:42.880,0:08:47.120 -particular had a dramatic - -0:08:44.720,0:08:48.640 -impact on on what we thought dungeon - -0:08:47.120,0:08:49.519 -would have to be able to do to be more - -0:08:48.640,0:08:54.720 -fun - -0:08:49.519,0:08:58.480 -than scribbling in in graph paper - -0:08:54.720,0:09:01.519 -um yeah either way - -0:08:58.480,0:09:04.399 -we've been using linux since the mid 90s - -0:09:01.519,0:09:06.160 -um I don't remember exactly when I did - -0:09:04.399,0:09:09.279 -my first linux install - -0:09:06.160,0:09:12.560 -but uh I really - -0:09:09.279,0:09:13.279 -liked it from the get-go and um I think - -0:09:12.560,0:09:23.360 -it was - -0:09:13.279,0:09:26.320 -you know um - -0:09:23.360,0:09:28.800 -uh and I'll add I remember the day that - -0:09:26.320,0:09:32.560 -I learned about the formation of gnu - -0:09:28.800,0:09:33.440 -it um it had a life I I mean I read lots - -0:09:32.560,0:09:36.880 -of licenses I - -0:09:33.440,0:09:38.480 -I think a lot of us have written our own - -0:09:36.880,0:09:41.600 -swag license code - -0:09:38.480,0:09:42.800 -and uh I definitely credit the formation - -0:09:41.600,0:09:46.240 -of gnu to my - -0:09:42.800,0:09:46.240 -being interested in thinking about that - -0:09:48.640,0:09:53.040 -right I am working the slides here okay - -0:09:50.720,0:09:55.200 -well um - -0:09:53.040,0:09:56.080 -so yeah this is your turn I already - -0:09:55.200,0:09:58.720 -mentioned uh - -0:09:56.080,0:10:00.399 -jeff yesterday so you're turning to take - -0:09:58.720,0:10:03.519 -it for a few slides - -0:10:00.399,0:10:04.240 -okay well I mean you know along the - -0:10:03.519,0:10:07.200 -learning - -0:10:04.240,0:10:08.560 -linux we started learning the various - -0:10:07.200,0:10:11.680 -tools that were available - -0:10:08.560,0:10:14.000 -through the new free software movement - -0:10:11.680,0:10:14.720 -and um it didn't take very long before - -0:10:14.000,0:10:18.240 -we got - -0:10:14.720,0:10:21.040 -into using Emacs um and when we were - -0:10:18.240,0:10:24.000 -working as software developers um back - -0:10:21.040,0:10:25.680 -in the 90s we both were using Emacs in - -0:10:24.000,0:10:28.959 -an office environment with - -0:10:25.680,0:10:33.360 -some other developers and it I mean - -0:10:28.959,0:10:33.360 -it was obviously a very powerful - -0:10:40.560,0:10:48.000 -um yeah I'm not going to go on at length - -0:10:43.120,0:10:48.000 -about my love for Emacs here so um - -0:10:48.880,0:10:52.480 -so we yeah so we put together a project - -0:10:52.000,0:10:54.240 -and - -0:10:52.480,0:10:56.320 -and each time we rehearse this eric - -0:10:54.240,0:10:58.000 -introduces it with it's my story to tell - -0:10:56.320,0:10:59.360 -but since our flow is already to hell - -0:10:58.000,0:11:00.880 -and we're just having a conversation - -0:10:59.360,0:11:03.920 -with you today - -0:11:00.880,0:11:06.399 -um I'll just jump in and say - -0:11:03.920,0:11:08.160 -from a project standpoint the the - -0:11:06.399,0:11:09.839 -project owes its inception - -0:11:08.160,0:11:12.079 -to a tremendous number of people in - -0:11:09.839,0:11:14.000 -fandom that you know - -0:11:12.079,0:11:15.680 -uh encouraged us to just do crazy - -0:11:14.000,0:11:18.160 -projects and - -0:11:15.680,0:11:18.800 -in this case to our friends that were - -0:11:18.160,0:11:21.360 -hanging out - -0:11:18.800,0:11:22.560 -with us on discord all the time while we - -0:11:21.360,0:11:25.200 -played different games - -0:11:22.560,0:11:26.640 -and uh through that and while I was - -0:11:25.200,0:11:31.839 -fooling with Emacs is - -0:11:26.640,0:11:31.839 -generally other people played games uh - -0:11:34.000,0:11:37.200 -kind of the pieces fell into place and - -0:11:35.680,0:11:38.320 -we were all there so we could talk about - -0:11:37.200,0:11:41.040 -it and the idea got - -0:11:38.320,0:11:42.800 -exciting again and we started going back - -0:11:41.040,0:11:44.480 -to all the places that we had - -0:11:42.800,0:11:46.640 -had trouble with it in the past and it - -0:11:44.480,0:11:48.000 -really did seem to add up we built proof - -0:11:46.640,0:11:50.240 -of concepts to do - -0:11:48.000,0:11:51.440 -hard stuff quickly and I guess we'll - -0:11:50.240,0:11:54.320 -probably head into that - -0:11:51.440,0:11:54.320 -that area now - -0:11:54.880,0:11:57.040 -so - -0:12:03.360,0:12:11.839 -and there was a slide about all of - -0:12:06.800,0:12:11.839 -the problems - -0:12:31.360,0:12:37.279 -hey there hey - -0:12:34.959,0:12:38.800 -um yeah go ahead and continue I just got - -0:12:37.279,0:12:40.639 -a phone call I think from leo so I'm - -0:12:38.800,0:12:44.480 -gonna mute - -0:12:40.639,0:12:47.600 -okay so um what we did in - -0:12:44.480,0:12:49.680 -in the project was basically come up - -0:12:47.600,0:12:51.440 -with our minimum play testable candidate - -0:12:49.680,0:12:52.000 -we listed all of the things that we need - -0:12:51.440,0:12:56.240 -to be able - -0:12:52.000,0:12:59.040 -to make the project do in order to - -0:12:56.240,0:12:59.519 -recreate the dungeon experience that we - -0:12:59.040,0:13:01.279 -had - -0:12:59.519,0:13:04.720 -with paper and dice sitting around a - -0:13:01.279,0:13:04.720 -table when we were kids - -0:13:05.600,0:13:07.839 -and - -0:13:09.680,0:13:13.839 -I mean we you know it took a while for - -0:13:12.079,0:13:16.079 -us to kind of - -0:13:13.839,0:13:18.000 -tease apart the problem in a way where - -0:13:16.079,0:13:19.120 -we could actually list out all of the - -0:13:18.000,0:13:20.959 -features like - -0:13:19.120,0:13:23.920 -what are the problems we have to solve - -0:13:20.959,0:13:23.920 -and how do we solve them - -0:13:27.760,0:13:33.040 -so creating any free software any - -0:13:30.959,0:13:36.000 -self-organizing free software project - -0:13:33.040,0:13:37.200 -is is challenging to start with and - -0:13:36.000,0:13:38.480 -we're generally - -0:13:37.200,0:13:40.320 -people with a bunch of other - -0:13:38.480,0:13:40.560 -responsibilities by the time we get to - -0:13:40.320,0:13:44.000 -it - -0:13:40.560,0:13:47.040 -so it's it's not just hey - -0:13:44.000,0:13:47.680 -you know the general herding cats it's - -0:13:47.040,0:13:49.120 -it's - -0:13:47.680,0:13:51.040 -you know trying to make it a part of - -0:13:49.120,0:13:54.399 -your life to - -0:13:51.040,0:13:57.680 -uh that being kind of a - -0:13:54.399,0:14:00.480 -you know challenging battle we we - -0:13:57.680,0:14:02.639 -kind of aligned on some some principles - -0:14:00.480,0:14:04.079 -that we wanted to adhere to - -0:14:02.639,0:14:05.680 -once we started taking the project - -0:14:04.079,0:14:09.519 -seriously - -0:14:05.680,0:14:12.720 -like pre you know particularly - -0:14:09.519,0:14:15.199 -recognizing gnu in specific as we focus - -0:14:12.720,0:14:16.480 -on giving back to the community - -0:14:15.199,0:14:18.240 -taking what we learned as pearl - -0:14:16.480,0:14:22.079 -programmers and - -0:14:18.240,0:14:24.320 -uh you know bringing that spirit forward - -0:14:22.079,0:14:26.399 -into into our work and maybe - -0:14:24.320,0:14:27.120 -specifically support making sure that we - -0:14:26.399,0:14:30.639 -can - -0:14:27.120,0:14:31.760 -um you know write uh functions for the - -0:14:30.639,0:14:35.199 -game - -0:14:31.760,0:14:38.079 -um in pearl if we want to - -0:14:35.199,0:14:40.320 -and then to use the game as a vehicle to - -0:14:38.079,0:14:42.560 -make people look beyond - -0:14:40.320,0:14:42.560 -the - -0:14:43.360,0:14:49.600 -typically open source or sorry typically - -0:14:46.800,0:14:52.160 -uh nominally open source at best - -0:14:49.600,0:14:54.160 -generally pretty closed world of - -0:14:52.160,0:14:55.440 -computer gaming a lot of windows users - -0:14:54.160,0:14:57.519 -out there a lot of free - -0:14:55.440,0:14:59.760 -non-free communication tools and a lot - -0:14:57.519,0:15:01.839 -of uh - -0:14:59.760,0:15:03.360 -you know a lot of ground to cover from a - -0:15:01.839,0:15:05.920 -free software perspective - -0:15:03.360,0:15:07.360 -so what can Emacs do from a gaming - -0:15:05.920,0:15:12.160 -standpoint to - -0:15:07.360,0:15:14.880 -to open that up - -0:15:12.160,0:15:16.720 -and not to mention the hubris of the you - -0:15:14.880,0:15:18.399 -know the two of us with a few friends - -0:15:16.720,0:15:19.440 -basically deciding to take on what - -0:15:18.399,0:15:21.839 -amounts to a - -0:15:19.440,0:15:24.720 -huge project um you know we're - -0:15:21.839,0:15:27.839 -essentially a year in now and we haven't - -0:15:24.720,0:15:30.000 -really gotten over halfway to our - -0:15:27.839,0:15:32.880 -minimum playtestable candidate - -0:15:30.000,0:15:34.320 -um it's a it's a work in progress we've - -0:15:32.880,0:15:36.800 -got a long row to go - -0:15:34.320,0:15:38.399 -there's at least 50 items on the things - -0:15:36.800,0:15:40.320 -that we think are critical to - -0:15:38.399,0:15:43.279 -to be able to introduce it to my younger - -0:15:40.320,0:15:43.279 -kids for example - -0:15:44.720,0:15:49.279 -um okay so we're in the accomplishments - -0:15:48.399,0:15:50.959 -section - -0:15:49.279,0:15:52.639 -so we're supposed to be talking about - -0:15:50.959,0:15:55.920 -the things that we have - -0:15:52.639,0:15:58.880 -succeeded in doing in our first year um - -0:15:55.920,0:16:01.199 -we have succeeded in working with data - -0:15:58.880,0:16:04.480 -in org documents using org mode - -0:16:01.199,0:16:05.360 -tables to store the data that we're - -0:16:04.480,0:16:09.279 -going to use - -0:16:05.360,0:16:12.519 -in the various parts of our game - -0:16:09.279,0:16:14.160 -um and we've had a lot of success with - -0:16:12.519,0:16:16.639 -svg.el - -0:16:14.160,0:16:17.279 -uh it started withdrawing maps and we - -0:16:16.639,0:16:19.440 -have - -0:16:17.279,0:16:21.440 -another talk about our mapping - -0:16:19.440,0:16:23.759 -specifically coming up next so we'll - -0:16:21.440,0:16:25.199 -put off some of that discussion for a - -0:16:23.759,0:16:28.720 -separate talk - -0:16:25.199,0:16:32.320 -um but we've also succeeded in - -0:16:28.720,0:16:35.680 -um getting into a bunch of different - -0:16:32.320,0:16:38.160 -elements of the game where uh - -0:16:35.680,0:16:38.959 -we're you know making a lot of progress - -0:16:38.160,0:16:41.920 -using this - -0:16:38.959,0:16:43.759 -drawing engine we developed to also draw - -0:16:41.920,0:16:45.279 -this other thing and also draw this - -0:16:43.759,0:16:46.079 -other thing and also draw this other - -0:16:45.279,0:16:49.519 -thing and it's - -0:16:46.079,0:16:52.560 -um you know we kind of backed into - -0:16:49.519,0:16:54.720 -we've got this aesthetic and we're - -0:16:52.560,0:16:57.839 -using it to draw interfaces for all of - -0:16:54.720,0:16:57.839 -the different parts of the game - -0:17:03.120,0:17:06.959 -so let's talk let's talk a little bit - -0:17:05.600,0:17:10.880 -about what - -0:17:06.959,0:17:13.360 -uh what works now um - -0:17:10.880,0:17:14.640 -first of all there's the mapping part - -0:17:13.360,0:17:18.480 -that eric mentioned - -0:17:14.640,0:17:20.880 -and we'll jump here into um we'll start - -0:17:18.480,0:17:22.160 -opening up some files and looking around - -0:17:20.880,0:17:25.520 -um but then - -0:17:22.160,0:17:26.959 -also later uh we'll we'll fire up an eye - -0:17:25.520,0:17:28.400 -elm and look at some of the - -0:17:26.959,0:17:30.240 -some of the other proofs of concept so - -0:17:28.400,0:17:32.240 -hopefully we can - -0:17:30.240,0:17:34.320 -pivot the second talk more toward the - -0:17:32.240,0:17:35.520 -demos as as we skip some of the - -0:17:34.320,0:17:39.120 -interactive stuff that might be - -0:17:35.520,0:17:39.120 -mentioned in the slides that we go by - -0:17:43.200,0:17:50.080 -so maps - -0:17:46.880,0:17:53.120 -visual battle board um - -0:17:50.080,0:17:54.160 -the battle board I'm just gonna I'm just - -0:17:53.120,0:18:01.840 -gonna skip it eric - -0:17:54.160,0:18:01.840 -we'll hit it in the next one okay - -0:18:02.000,0:18:04.480 -hang on - -0:18:08.480,0:18:11.840 -okay so I'm just going to go ahead and - -0:18:09.919,0:18:13.760 -open up uh maps and - -0:18:11.840,0:18:15.039 -let you talk from the from the svg - -0:18:13.760,0:18:16.480 -process itself - -0:18:15.039,0:18:20.080 -because that's the interesting part to - -0:18:16.480,0:18:20.080 -me that uh to me - -0:18:22.240,0:18:28.640 -okay talk about the svg - -0:18:26.080,0:18:30.640 -process like what what are you thinking - -0:18:28.640,0:18:33.760 -exactly we want to talk about how - -0:18:30.640,0:18:37.919 -we turn our data into an image or - -0:18:33.760,0:18:39.760 -what what are you hoping for yeah so - -0:18:37.919,0:18:41.200 -I mean did you did you want to talk more - -0:18:39.760,0:18:45.679 -from from the - -0:18:41.200,0:18:47.039 -svg the hand-drawn svg graphics at all - -0:18:45.679,0:18:49.760 -I thought we were going to save that - -0:18:47.039,0:18:52.000 -stuff for the passing talk okay - -0:18:49.760,0:18:53.440 -right now if you want yeah I mean so - -0:18:52.000,0:18:56.559 -we've got about - -0:18:53.440,0:18:58.400 -uh 10 minutes before the turn where we - -0:18:56.559,0:19:00.400 -thought we would first take any - -0:18:58.400,0:19:02.320 -questions that are hanging out there - -0:19:00.400,0:19:04.799 -I unfortunately closed the ether pad but - -0:19:02.320,0:19:08.480 -I can open it again real quick - -0:19:04.799,0:19:11.440 -and or you can jump - -0:19:08.480,0:19:12.320 -jump into the to the pathing stuff now - -0:19:11.440,0:19:13.760 -or I can just - -0:19:12.320,0:19:15.440 -throw up an animal and we can start the - -0:19:13.760,0:19:18.880 -demos so - -0:19:15.440,0:19:19.840 -let me invite uh almond or sasha back in - -0:19:18.880,0:19:22.160 -if you guys - -0:19:19.840,0:19:22.960 -or leo if any of you want to join the - -0:19:22.160,0:19:25.840 -conversation - -0:19:22.960,0:19:27.120 -make a suggestion as to how we balance - -0:19:25.840,0:19:29.840 -between the remaining time - -0:19:27.120,0:19:32.480 -the rest of what we have left starts in - -0:19:29.840,0:19:35.120 -on toward the technical so especially - -0:19:32.480,0:19:36.840 -if there would be questions uh questions - -0:19:35.120,0:19:39.840 -about the game right now that would be - -0:19:36.840,0:19:39.840 -awesome - -0:19:40.160,0:19:43.600 -and I'm gonna get seated again - -0:19:48.720,0:19:53.200 -I'm not sure if I talk over the stream - -0:19:51.200,0:19:54.720 -um if you'll hear it because I'm just - -0:19:53.200,0:19:59.520 -watching your stream - -0:19:54.720,0:19:59.520 -but I can try writing an irc um - -0:20:01.200,0:20:07.360 -sure yeah questions would be cool um or - -0:20:04.640,0:20:08.559 -um yeah well eric why don't you just go - -0:20:07.360,0:20:09.120 -ahead and start walking us through the - -0:20:08.559,0:20:11.440 -hand - -0:20:09.120,0:20:12.960 -hand-drawn svg stuff just a little bit - -0:20:11.440,0:20:14.640 -because I think - -0:20:12.960,0:20:17.120 -if that isn't interesting to people we - -0:20:14.640,0:20:21.120 -can just preempt for a question - -0:20:17.120,0:20:24.080 -okay so historically when we - -0:20:21.120,0:20:25.840 -um decided to actually start writing - -0:20:24.080,0:20:26.720 -code one of the very first things we - -0:20:25.840,0:20:30.080 -wanted to do - -0:20:26.720,0:20:31.919 -was the maps because initially it seemed - -0:20:30.080,0:20:33.840 -like the maps were going to be one of - -0:20:31.919,0:20:35.760 -the biggest challenges - -0:20:33.840,0:20:38.000 -in terms of how do we get a text editor - -0:20:35.760,0:20:42.159 -to draw pictures for us - -0:20:38.000,0:20:45.280 -um we pretty quickly decided we wanted - -0:20:42.159,0:20:48.559 -to work with svgs because it allowed us - -0:20:45.280,0:20:52.159 -to leverage the power of Emacs as a text - -0:20:48.559,0:20:56.080 -editor and a text manipulator to write - -0:20:52.159,0:20:59.520 -text graphics with the svg format - -0:20:56.080,0:21:01.440 -so we did some svg graphics by hand - -0:20:59.520,0:21:02.640 -we went in and just started hand coding - -0:21:01.440,0:21:05.440 -things that looked - -0:21:02.640,0:21:07.440 -visually like the maps we used to draw - -0:21:05.440,0:21:08.960 -by hand on graph paper when - -0:21:07.440,0:21:11.280 -we were you know sitting around the - -0:21:08.960,0:21:11.280 -table - -0:21:11.360,0:21:17.840 -yep absolutely what emerged from that - -0:21:14.559,0:21:20.400 -is as we started working on um some of - -0:21:17.840,0:21:24.000 -these files this particular image is a - -0:21:20.400,0:21:26.240 -test of some 20 wide water - -0:21:24.000,0:21:28.000 -with some beaches around it and a - -0:21:26.240,0:21:29.679 -special chamber kind of off to the side - -0:21:28.000,0:21:33.760 -called a clapper - -0:21:29.679,0:21:36.559 -and this was the way we would code is by - -0:21:33.760,0:21:37.600 -sketching by hand all of these things to - -0:21:36.559,0:21:39.440 -look right - -0:21:37.600,0:21:42.080 -and then we would take that code and we - -0:21:39.440,0:21:43.919 -noticed um it became real repetitive - -0:21:42.080,0:21:45.440 -as we would go like chunk of water chunk - -0:21:43.919,0:21:46.880 -of water chunk of water - -0:21:45.440,0:21:48.559 -and we're like okay so what we really - -0:21:46.880,0:21:52.000 -need is to define a - -0:21:48.559,0:21:53.600 -set of um we called it tiles um but like - -0:21:52.000,0:21:55.760 -you could think of it as rubber stamps - -0:21:53.600,0:21:57.440 -where we write this graphics code - -0:21:55.760,0:22:00.400 -and then we're able to repeat it in - -0:21:57.440,0:22:03.039 -different places around the map - -0:22:00.400,0:22:06.880 -um you want to flip over to code view - -0:22:03.039,0:22:06.880 -and show that or do we want to move into - -0:22:07.120,0:22:12.720 -tiles code - -0:22:10.240,0:22:14.320 -so you know you can see just really - -0:22:12.720,0:22:15.200 -obviously here the only thing that's - -0:22:14.320,0:22:18.240 -changing from - -0:22:15.200,0:22:21.600 -chunk of water to chunk of water is the - -0:22:18.240,0:22:24.640 -x and y coordinates um - -0:22:21.600,0:22:26.000 -we're you know we can skip getting into - -0:22:24.640,0:22:29.360 -the svg directives - -0:22:26.000,0:22:30.640 -and how all of the path statements - -0:22:29.360,0:22:33.679 -actually work - -0:22:30.640,0:22:36.480 -but you can trust us - -0:22:33.679,0:22:39.039 -all of these d equals and there's m's - -0:22:36.480,0:22:41.039 -and h's and v's that turns out to be - -0:22:39.039,0:22:42.480 -horizontal lines and vertical lines and - -0:22:41.039,0:22:44.159 -cursor moves and it's kind of like - -0:22:42.480,0:22:46.640 -turtle graphics if anyone - -0:22:44.159,0:22:48.720 -remembers that far back and we're - -0:22:46.640,0:22:54.720 -picking up our pen and dropping it and - -0:22:48.720,0:22:56.240 -drawing lines around on our map - -0:22:54.720,0:22:58.000 -so we do have a few questions if you - -0:22:56.240,0:23:01.200 -want to take them now otherwise - -0:22:58.000,0:23:03.120 -um we can also jump in - -0:23:01.200,0:23:04.559 -let's get them while they're fresh okay - -0:23:03.120,0:23:07.520 -sounds good - -0:23:04.559,0:23:08.000 -um so we'll probably shift to question - -0:23:07.520,0:23:10.799 -and answer - -0:23:08.000,0:23:11.919 -mode for up to 15 minutes here so if you - -0:23:10.799,0:23:14.480 -do have questions - -0:23:11.919,0:23:15.679 -um maybe stack rank go ahead and sort - -0:23:14.480,0:23:17.600 -the questions - -0:23:15.679,0:23:18.960 -a little for us or comment on them to - -0:23:17.600,0:23:19.760 -let us know which ones you want to see - -0:23:18.960,0:23:21.280 -us get here - -0:23:19.760,0:23:23.600 -if we start getting a little long-winded - -0:23:21.280,0:23:26.960 -or nudges along we'll take direction - -0:23:23.600,0:23:28.799 -but thanks for your questions um I'd - -0:23:26.960,0:23:30.720 -like to see a demo as well we'll look at - -0:23:28.799,0:23:32.159 -that with the remaining time after this - -0:23:30.720,0:23:35.200 -question block - -0:23:32.159,0:23:38.720 -um more about what the game is - -0:23:35.200,0:23:40.720 -okay sure so let's let's take our - -0:23:38.720,0:23:42.799 -uh one minute each swing at what the - -0:23:40.720,0:23:45.120 -game is you wanna go first I called - -0:23:42.799,0:23:48.840 -weapons - -0:23:45.120,0:23:52.720 -okay um dungeon - -0:23:48.840,0:23:55.440 -is like role-playing games - -0:23:52.720,0:23:56.159 -but you don't really do role-playing - -0:23:55.440,0:23:57.919 -like the - -0:23:56.159,0:23:59.520 -for me the thing the core of being a - -0:23:57.919,0:24:02.080 -role-playing game is you - -0:23:59.520,0:24:03.039 -take on the role of being your character - -0:24:02.080,0:24:06.000 -and you play - -0:24:03.039,0:24:06.400 -your character and dungeon's not like - -0:24:06.000,0:24:10.320 -that - -0:24:06.400,0:24:12.640 -dungeon um you can play - -0:24:10.320,0:24:13.840 -so the dungeon party always has eight - -0:24:12.640,0:24:15.840 -characters in it - -0:24:13.840,0:24:17.679 -there's four in the front row and four - -0:24:15.840,0:24:18.720 -in the back row and you march through - -0:24:17.679,0:24:22.159 -the dungeon - -0:24:18.720,0:24:24.000 -fighting whatever you encounter and if - -0:24:22.159,0:24:25.200 -there's one player you play all eight - -0:24:24.000,0:24:27.120 -characters - -0:24:25.200,0:24:28.720 -and depending on how many players you - -0:24:27.120,0:24:30.799 -have you split up the party - -0:24:28.720,0:24:32.960 -in whatever way seems fair and equitable - -0:24:30.799,0:24:34.880 -to everybody - -0:24:32.960,0:24:36.720 -similarly I said the dungeon is kind of - -0:24:34.880,0:24:38.320 -a simple game like there's only - -0:24:36.720,0:24:40.080 -three races and there's only three - -0:24:38.320,0:24:41.760 -classes all of your characters are - -0:24:40.080,0:24:44.080 -either human elf dwarf - -0:24:41.760,0:24:44.880 -they're all a warrior a priest or a - -0:24:44.080,0:24:46.640 -wizard - -0:24:44.880,0:24:48.320 -and all of these characters have you - -0:24:46.640,0:24:51.279 -know special properties - -0:24:48.320,0:24:53.760 -and special talents that is why they - -0:24:51.279,0:24:56.240 -come together in this party of eight - -0:24:53.760,0:24:57.600 -but essentially dungeon is a game about - -0:24:56.240,0:25:00.000 -making up all of these - -0:24:57.600,0:25:01.679 -um eight characters and stomping through - -0:25:00.000,0:25:03.840 -the dungeon killing things taking their - -0:25:01.679,0:25:05.120 -stuff - -0:25:03.840,0:25:06.960 -well you're way over but I don't know - -0:25:05.120,0:25:10.080 -how much I have to add to that - -0:25:06.960,0:25:14.159 -I will just add that if if you're - -0:25:10.080,0:25:16.559 -uh if if one's passion as a dungeon - -0:25:14.159,0:25:17.120 -master is killing player characters this - -0:25:16.559,0:25:19.600 -game - -0:25:17.120,0:25:21.039 -is meant for you you don't have to build - -0:25:19.600,0:25:22.559 -your game like that - -0:25:21.039,0:25:24.400 -but that's definitely a thing that - -0:25:22.559,0:25:27.360 -people do with this game - -0:25:24.400,0:25:28.960 -um and then as eric said it just - -0:25:27.360,0:25:30.320 -encourages you to put your creativity on - -0:25:28.960,0:25:31.039 -the table to bring all the different - -0:25:30.320,0:25:33.760 -elements - -0:25:31.039,0:25:35.039 -um and this hopefully this may be clear - -0:25:33.760,0:25:36.400 -in our slides since we were a little - -0:25:35.039,0:25:36.960 -fumbling for the first few minutes of - -0:25:36.400,0:25:40.480 -the talk - -0:25:36.960,0:25:41.200 -but um there's also a kind of a player's - -0:25:40.480,0:25:43.760 -guide - -0:25:41.200,0:25:45.919 -that that I started a few years ago um - -0:25:43.760,0:25:48.400 -that's that's not super complete - -0:25:45.919,0:25:50.159 -but um but does cover some of the high - -0:25:48.400,0:25:52.320 -level basics of the game that eric's - -0:25:50.159,0:25:55.679 -been talking from - -0:25:52.320,0:25:56.960 -and I would add that some of the things - -0:25:55.679,0:25:58.480 -you know some of what makes dungeon - -0:25:56.960,0:25:59.360 -great is that there's a lot of mystery - -0:25:58.480,0:26:01.120 -about it - -0:25:59.360,0:26:02.880 -like the player's handbook doesn't tell - -0:26:01.120,0:26:06.080 -you all of the rules - -0:26:02.880,0:26:08.080 -um or like really mystery - -0:26:06.080,0:26:09.679 -and like there's mazes and there's - -0:26:08.080,0:26:12.240 -puzzles and - -0:26:09.679,0:26:12.799 -you have to figure out how things work - -0:26:12.240,0:26:14.559 -and like - -0:26:12.799,0:26:16.640 -we've got all of these treasure items in - -0:26:14.559,0:26:18.480 -there that could help you deal with a - -0:26:16.640,0:26:19.919 -particular monster if it occurs to you - -0:26:18.480,0:26:22.720 -to use it - -0:26:19.919,0:26:23.360 -and um you know like that there's a lot - -0:26:22.720,0:26:25.279 -of - -0:26:23.360,0:26:27.039 -um you don't know what's going on you're - -0:26:25.279,0:26:28.559 -dropped in the middle of this situation - -0:26:27.039,0:26:31.919 -and you have to try and survive - -0:26:28.559,0:26:33.840 -and level up and figure it out and - -0:26:31.919,0:26:35.520 -if you succeed in doing that for long - -0:26:33.840,0:26:37.520 -enough eventually you start realizing - -0:26:35.520,0:26:40.000 -that there are big picture puzzles - -0:26:37.520,0:26:41.760 -that there are you know there is more to - -0:26:40.000,0:26:43.360 -this than just killing things and taking - -0:26:41.760,0:26:46.000 -their stuff - -0:26:43.360,0:26:47.279 -and that's where the joy of designing - -0:26:46.000,0:26:49.679 -these games comes in - -0:26:47.279,0:26:51.679 -for me is like designing the mazes and - -0:26:49.679,0:26:53.200 -designing the puzzles and like - -0:26:51.679,0:26:54.240 -oh yeah and then they're going to come - -0:26:53.200,0:26:55.919 -out of this room and you know what - -0:26:54.240,0:26:58.240 -they're going to do they want to - -0:26:55.919,0:26:59.600 -go that way so I'm going to put the trap - -0:26:58.240,0:27:01.360 -right there - -0:26:59.600,0:27:03.840 -and they'll walk right into it every - -0:27:01.360,0:27:05.440 -time and then when the party does get in - -0:27:03.840,0:27:07.200 -your map and they do exactly what you - -0:27:05.440,0:27:09.279 -thought and they hit the trap it's just - -0:27:07.200,0:27:10.960 -really satisfying to watch the look on - -0:27:09.279,0:27:12.320 -their little faces as they squirm and - -0:27:10.960,0:27:13.760 -struggle to stay alive - -0:27:12.320,0:27:15.520 -yeah that's that's what I was trying to - -0:27:13.760,0:27:16.320 -get at thanks all right that was perfect - -0:27:15.520,0:27:19.200 -for me - -0:27:16.320,0:27:20.320 -all right um so so highlight your - -0:27:19.200,0:27:21.840 -question for me if you think it's - -0:27:20.320,0:27:22.960 -important we grab it here before we jump - -0:27:21.840,0:27:25.039 -into demos - -0:27:22.960,0:27:27.760 -but otherwise I think it's time to try - -0:27:25.039,0:27:27.760 -running some code - -0:27:27.919,0:27:33.840 -what say okay I say do it - -0:27:31.279,0:27:36.480 -okay so you less less camera more more - -0:27:33.840,0:27:39.120 -Emacs now - -0:27:36.480,0:27:39.840 -and hopefully I could find the right e - -0:27:39.120,0:27:42.960 -max - -0:27:39.840,0:27:48.799 -the right desktop all right there we are - -0:27:42.960,0:27:54.000 -so we'll try to fire up uh - -0:27:48.799,0:27:58.799 -and right now and I usually like to do - -0:27:54.000,0:27:58.799 -the full path to emax - -0:27:59.120,0:28:03.840 -when I'm gonna run it under minus q - -0:28:07.279,0:28:10.000 -all right - -0:28:13.120,0:28:19.360 -let's have some iom - -0:28:16.720,0:28:20.000 -all right and then I'm also going to do - -0:28:19.360,0:28:24.000 -a - -0:28:20.000,0:28:25.840 -load file on the init script that you - -0:28:24.000,0:28:30.480 -can find in the repository - -0:28:25.840,0:28:33.279 -in the Emacs user and it's uh - -0:28:30.480,0:28:33.279 -init scripts - -0:28:34.960,0:28:38.159 -uh users folder - -0:28:40.159,0:28:45.840 -user folder nice - -0:28:48.080,0:28:51.840 -and it's called init dm because that - -0:28:49.919,0:28:55.360 -happened to fit with my naming scheme - -0:28:51.840,0:28:56.320 -potentially terrible all right and with - -0:28:55.360,0:28:58.320 -that loaded - -0:28:56.320,0:29:00.159 -in theory some very basic stuff will - -0:28:58.320,0:29:02.159 -work even without us doing anything in - -0:29:00.159,0:29:04.399 -iom so I think the the last thing eric - -0:29:02.159,0:29:06.000 -was talking about was the svg code - -0:29:04.399,0:29:10.720 -behind the maps - -0:29:06.000,0:29:13.760 -um there as kind of the technical thread - -0:29:10.720,0:29:15.440 -so we'll just fire open the maps pick a - -0:29:13.760,0:29:18.480 -dungeon level - -0:29:15.440,0:29:19.840 -let's pick a pretty one okay if I show - -0:29:18.480,0:29:22.480 -this - -0:29:19.840,0:29:22.480 -yeah whatever - -0:29:23.440,0:29:30.799 -is that the surface yeah - -0:29:27.679,0:29:32.159 -and let's scale it here I think if I - -0:29:30.799,0:29:34.960 -wrap - -0:29:32.159,0:29:36.399 -like once once we got the engine up and - -0:29:34.960,0:29:39.120 -running a little bit - -0:29:36.399,0:29:42.480 -we decided to do some experimentation - -0:29:39.120,0:29:46.080 -about seeing what we could do to push - -0:29:42.480,0:29:49.360 -the limits of our tile - -0:29:46.080,0:29:50.080 -and gender so we more or less on the - -0:29:49.360,0:29:52.799 -surface - -0:29:50.080,0:29:52.799 -map I - -0:29:53.120,0:29:58.399 -basically started with almost no - -0:29:56.399,0:30:00.240 -tiles from below like the water and the - -0:29:58.399,0:30:01.279 -beaches and the general store and the - -0:30:00.240,0:30:03.679 -stairs - -0:30:01.279,0:30:05.200 -were existing tiles but then we were - -0:30:03.679,0:30:07.279 -like this is going to be a surface map - -0:30:05.200,0:30:08.399 -so we're outdoors so I want hills and I - -0:30:07.279,0:30:11.760 -want trees - -0:30:08.399,0:30:12.399 -and I want grass and um it took a little - -0:30:11.760,0:30:15.039 -while - -0:30:12.399,0:30:16.320 -playing with svg to come up with some - -0:30:15.039,0:30:18.480 -acceptable code - -0:30:16.320,0:30:19.840 -but once the like the grass gets tiled - -0:30:18.480,0:30:21.600 -out it - -0:30:19.840,0:30:23.039 -kind of you know gives the illusion of - -0:30:21.600,0:30:24.880 -grass and - -0:30:23.039,0:30:26.399 -you know these are all in my estimation - -0:30:24.880,0:30:28.640 -kind of crude graphics - -0:30:26.399,0:30:30.399 -but we're at the proof of concept stage - -0:30:28.640,0:30:31.679 -and it definitely proves that we can use - -0:30:30.399,0:30:34.640 -our graphics engine - -0:30:31.679,0:30:35.279 -to decide what we want our maps to look - -0:30:34.640,0:30:39.440 -like - -0:30:35.279,0:30:44.240 -and real quickly compose new map tiles - -0:30:39.440,0:30:46.880 -and uh stamp out a bunch of new maps - -0:30:44.240,0:30:48.640 -so now I'll uh show off one of the other - -0:30:46.880,0:30:50.559 -things so the next thing we did once we - -0:30:48.640,0:30:51.919 -once we had the maps doing - -0:30:50.559,0:30:53.600 -and we haven't gotten into the features - -0:30:51.919,0:30:54.960 -of the maps we can we can appoint time - -0:30:53.600,0:30:58.960 -to that or not - -0:30:54.960,0:31:00.720 -but um there are a number of - -0:30:58.960,0:31:02.840 -uh featured features there that we can - -0:31:00.720,0:31:05.760 -look at the - -0:31:02.840,0:31:08.640 -uh we then wanted to - -0:31:05.760,0:31:10.399 -try to see if that could make other - -0:31:08.640,0:31:11.360 -interfaces more appealing so we built - -0:31:10.399,0:31:14.320 -stuff like - -0:31:11.360,0:31:15.919 -oop that's gonna be the map again um - -0:31:14.320,0:31:18.320 -I'll just run it here through I - -0:31:15.919,0:31:20.080 -am so it's more obvious what I'm doing - -0:31:18.320,0:31:21.679 -um - -0:31:20.080,0:31:25.360 -so let's look next to the character - -0:31:21.679,0:31:25.360 -sheet oops - -0:31:26.080,0:31:35.840 -back and alt p doesn't work okay - -0:31:32.880,0:31:38.240 -that's a bummer uh that is not - -0:31:35.840,0:31:40.559 -autoloaded - -0:31:38.240,0:31:41.600 -so this this project is a bit of a mess - -0:31:40.559,0:31:43.120 -right now y'all - -0:31:41.600,0:31:45.120 -it does some stuff that's really - -0:31:43.120,0:31:47.039 -exciting to us but the code is terrible - -0:31:45.120,0:31:48.399 -and we need all the help we can get uh - -0:31:47.039,0:31:49.279 -being told what our problems are and how - -0:31:48.399,0:31:51.360 -to fix them - -0:31:49.279,0:31:52.559 -so that is if you take nothing away from - -0:31:51.360,0:31:54.799 -this talk - -0:31:52.559,0:32:00.480 -uh take away from it that we could use - -0:31:54.799,0:32:02.399 -your help - -0:32:00.480,0:32:04.640 -yeah that doubles back to uh when we - -0:32:02.399,0:32:06.320 -were talking about larry wall's cardinal - -0:32:04.640,0:32:07.440 -virtues of programming like we - -0:32:06.320,0:32:09.760 -definitely - -0:32:07.440,0:32:10.640 -took on some hubris thinking we could do - -0:32:09.760,0:32:13.519 -this - -0:32:10.640,0:32:14.799 -and we might not be wrong but um we - -0:32:13.519,0:32:16.799 -could do it easier with - -0:32:14.799,0:32:18.240 -more hands you know many hands make - -0:32:16.799,0:32:21.760 -light work all right - -0:32:18.240,0:32:23.360 -I'll bite yeah - -0:32:21.760,0:32:24.799 -and the character she won't load for us - -0:32:23.360,0:32:26.960 -today I had some problems with my - -0:32:24.799,0:32:29.360 -version control I had to revert my thing - -0:32:26.960,0:32:31.200 -I threw all my local changes in a stash - -0:32:29.360,0:32:32.080 -and it's it's a terrible mess let's look - -0:32:31.200,0:32:37.519 -at stuff I - -0:32:32.080,0:32:40.559 -tested already today uh before - -0:32:37.519,0:32:43.760 -you got the battle board available - -0:32:40.559,0:32:45.760 -let's find out first we'll load library - -0:32:43.760,0:32:48.000 -it - -0:32:45.760,0:32:57.440 -uh in fact actually your basic require - -0:32:48.000,0:33:00.480 -should work - -0:32:57.440,0:33:02.640 -no uh I can try load library - -0:33:00.480,0:33:03.760 -uh you know what let's forg I'm just - -0:33:02.640,0:33:04.960 -gonna go ahead and give it to you as a - -0:33:03.760,0:33:09.919 -lab beast - -0:33:04.960,0:33:11.600 -since that's probably more fun to watch - -0:33:09.919,0:33:15.919 -we'll take it from my own inet - -0:33:11.600,0:33:15.919 -this is more likely to be healthy - -0:33:16.640,0:33:20.880 -since only some of the time uh first we - -0:33:19.840,0:33:24.799 -have to - -0:33:20.880,0:33:28.559 -uh ctrl x alt I d m - -0:33:24.799,0:33:31.760 -all right and having then loaded - -0:33:28.559,0:33:34.080 -the init control u f9 - -0:33:31.760,0:33:35.200 -should give me the maps and we can - -0:33:34.080,0:33:37.200 -verify - -0:33:35.200,0:33:38.640 -things work in a basic way just by - -0:33:37.200,0:33:41.679 -changing level - -0:33:38.640,0:33:41.679 -let's look at something else - -0:33:43.200,0:33:47.360 -um I mentioned there were a number of - -0:33:46.399,0:33:51.600 -bindings - -0:33:47.360,0:33:54.080 -show them briefly we wrote our own - -0:33:51.600,0:33:56.640 -functions to handle movement some of - -0:33:54.080,0:33:59.679 -those in svg.el the left - -0:33:56.640,0:34:02.640 -uh left and right movements didn't - -0:33:59.679,0:34:03.120 -didn't seem to work quite quite likely - -0:34:02.640,0:34:06.720 -coding - -0:34:03.120,0:34:09.760 -of course - -0:34:06.720,0:34:11.760 -um all right enough - -0:34:09.760,0:34:13.040 -so let's let's see if battleboard works - -0:34:11.760,0:34:15.760 -now - -0:34:13.040,0:34:17.040 -I really thought that was on f7 up - -0:34:15.760,0:34:19.679 -that's the character sheet - -0:34:17.040,0:34:22.159 -sweet that's why you stay out of user - -0:34:19.679,0:34:22.159 -bindings - -0:34:24.879,0:34:33.919 -so that looks a little better - -0:34:28.079,0:34:35.919 -so let's talk about the character sheet - -0:34:33.919,0:34:38.000 -yeah - -0:34:35.919,0:34:39.839 -so the character sheet was our first big - -0:34:38.000,0:34:42.560 -uh repurposing - -0:34:39.839,0:34:44.159 -of the engine that we couldn't do uh the - -0:34:42.560,0:34:49.839 -battle board program - -0:34:44.159,0:34:49.839 -that uh let's see if that runs now too - -0:34:53.599,0:34:57.359 -uh it's not interactive if it does - -0:35:00.880,0:35:03.839 -good - -0:35:04.960,0:35:07.119 -no - -0:35:08.480,0:35:13.040 -try let cemex guess no joy all right I'm - -0:35:11.760,0:35:14.079 -not sure what's up with the battle board - -0:35:13.040,0:35:15.280 -eric - -0:35:14.079,0:35:17.119 -we haven't messed with that one for a - -0:35:15.280,0:35:18.880 -while in fact um - -0:35:17.119,0:35:21.040 -we had discussed using its code as an - -0:35:18.880,0:35:22.640 -example so maybe we'll debug it with you - -0:35:21.040,0:35:25.359 -um I'll certainly check for questions - -0:35:22.640,0:35:28.079 -first um - -0:35:25.359,0:35:31.280 -the uh so the character sheet which is - -0:35:28.079,0:35:34.800 -not scaling ideally here - -0:35:31.280,0:35:34.800 -see if reloading it does anything - -0:35:35.680,0:35:40.960 -nope not as far as I can tell assuming - -0:35:39.440,0:35:42.800 -you don't have this scale implemented - -0:35:40.960,0:35:44.960 -for character sheet - -0:35:42.800,0:35:46.800 -that's right there's everything in scale - -0:35:44.960,0:35:49.599 -it take in order to get what you were - -0:35:46.800,0:35:49.599 -looking at there - -0:35:54.079,0:36:02.240 -all right this uh - -0:35:58.640,0:36:05.440 -this whole thing is hard-coded - -0:36:02.240,0:36:09.040 -basically to the gills except - -0:36:05.440,0:36:10.640 -for things like this this program - -0:36:09.040,0:36:11.040 -represents a re-implementation of the - -0:36:10.640,0:36:14.880 -draw - -0:36:11.040,0:36:18.640 -engine using um all of the same things - -0:36:14.880,0:36:18.640 -let's see that's selected so - -0:36:19.599,0:36:23.119 -uh we'll just try bringing up a map - -0:36:21.680,0:36:26.320 -again - -0:36:23.119,0:36:28.560 -there's one and you'll notice um dm - -0:36:26.320,0:36:29.839 -map doesn't know anything about the new - -0:36:28.560,0:36:31.599 -draw engine - -0:36:29.839,0:36:33.520 -and there are a couple of places where - -0:36:31.599,0:36:36.480 -the new draw engine is still - -0:36:33.520,0:36:37.440 -hooked in to the s for example - -0:36:36.480,0:36:39.680 -particularly - -0:36:37.440,0:36:41.119 -the sizing of the graph paper background - -0:36:39.680,0:36:44.240 -so I've started the work - -0:36:41.119,0:36:47.040 -in dmdraw.el - -0:36:44.240,0:36:47.440 -of trying to show how exactly we did - -0:36:47.040,0:36:50.160 -this - -0:36:47.440,0:36:51.760 -removing the how did we get data out of - -0:36:50.160,0:36:53.280 -org mode that I talked about yesterday - -0:36:51.760,0:36:56.480 -with our etl flows - -0:36:53.280,0:36:58.960 -and just focusing on - -0:36:56.480,0:37:00.160 -how did we solve the problem of - -0:36:58.960,0:37:01.839 -predicated drawing - -0:37:00.160,0:37:05.200 -which I realized we didn't really talk - -0:37:01.839,0:37:07.760 -about so should I jump into that - -0:37:05.200,0:37:09.280 -yeah I guess uh how are we on time we - -0:37:07.760,0:37:11.359 -have time for detours - -0:37:09.280,0:37:12.800 -um yeah it looks like we could spend two - -0:37:11.359,0:37:15.599 -or three minutes on that and then - -0:37:12.800,0:37:17.680 -uh come back for the questions cool do - -0:37:15.599,0:37:20.480 -it - -0:37:17.680,0:37:20.800 -and I'm just gonna peek into my org mode - -0:37:20.480,0:37:23.200 -by - -0:37:20.800,0:37:24.960 -into my chat conference and I don't see - -0:37:23.200,0:37:25.520 -anybody talking to me from the organizer - -0:37:24.960,0:37:26.560 -channel - -0:37:25.520,0:37:28.800 -so I'm going to assume that's a good - -0:37:26.560,0:37:32.079 -guess - -0:37:28.800,0:37:34.160 -um all right so let's let's go ahead and - -0:37:32.079,0:37:37.760 -play with the map a little then that is - -0:37:34.160,0:37:39.440 -uh pretty fun and and uh so much fun - -0:37:37.760,0:37:41.760 -that we had to curtail play sessions in - -0:37:39.440,0:37:44.000 -order to keep working on the project - -0:37:41.760,0:37:44.000 -um - -0:37:45.119,0:37:51.839 -so uh I'll - -0:37:48.480,0:37:55.920 -I'll do the - -0:37:51.839,0:37:59.839 -um we'll try to find something different - -0:37:55.920,0:37:59.839 -from any gif I've shared here right - -0:38:01.040,0:38:05.760 -so here we are in a random go ahead eric - -0:38:03.359,0:38:08.240 -you phil - -0:38:05.760,0:38:10.000 -oh okay so what what what corwin is - -0:38:08.240,0:38:13.359 -doing here is he's about to put the - -0:38:10.000,0:38:16.800 -the map into play mode um - -0:38:13.359,0:38:19.920 -which is going to turn on the fog of war - -0:38:16.800,0:38:23.040 -and then we're gonna use - -0:38:19.920,0:38:24.560 -the fog of war and the the play mode to - -0:38:23.040,0:38:26.240 -kind of reveal the map - -0:38:24.560,0:38:28.160 -one square at a time like we would - -0:38:26.240,0:38:29.920 -during a play session - -0:38:28.160,0:38:31.280 -so we'll just drop the party randomly - -0:38:29.920,0:38:33.839 -somewhere onto this map - -0:38:31.280,0:38:36.079 -looks like we're on alpha maze level - -0:38:33.839,0:38:38.800 -three here - -0:38:36.079,0:38:38.800 -and um - -0:38:40.800,0:38:50.480 -uh-oh then we'll walk around a little - -0:38:46.320,0:38:52.160 -okay there we go we're halfway there - -0:38:50.480,0:38:53.520 -I'll have to I'll have to do a full - -0:38:52.160,0:38:55.920 -redraw - -0:38:53.520,0:38:58.480 -uh the sketch the sketching stuff has - -0:38:55.920,0:39:00.240 -has has broken things here like I said - -0:38:58.480,0:39:01.599 -the two aren't separated once I run them - -0:39:00.240,0:39:03.520 -in the same instance they're not - -0:39:01.599,0:39:05.359 -predictable - -0:39:03.520,0:39:07.040 -okay so let me elaborate here when he - -0:39:05.359,0:39:10.560 -says the sketching stuff - -0:39:07.040,0:39:13.520 -the current um focus of our work is to - -0:39:10.560,0:39:14.320 -turn all of this map stuff we've got - -0:39:13.520,0:39:17.920 -into - -0:39:14.320,0:39:20.880 -a basically a wysiwyg map editor - -0:39:17.920,0:39:22.160 -where we can get into the tiles and - -0:39:20.880,0:39:24.480 -we'll be able to - -0:39:22.160,0:39:26.560 -select the tile and basically rubber - -0:39:24.480,0:39:29.680 -stamp it into a map - -0:39:26.560,0:39:30.000 -graphically and then save the map file - -0:39:29.680,0:39:33.280 -out - -0:39:30.000,0:39:36.720 -and load it back in later so that um - -0:39:33.280,0:39:38.480 -we're able to you know just pound out - -0:39:36.720,0:39:42.000 -these maps real fast - -0:39:38.480,0:39:43.200 -um using a graphical editor rather than - -0:39:42.000,0:39:45.440 -having to hand code - -0:39:43.200,0:39:47.839 -every symbol and every square of the - -0:39:45.440,0:39:47.839 -tables - -0:39:48.000,0:39:51.839 -so the process of doing that um - -0:39:52.960,0:39:56.720 -things are a mess we've got covers off - -0:39:54.800,0:39:58.720 -there's wires hanging out - -0:39:56.720,0:40:01.040 -um different stuff works on different - -0:39:58.720,0:40:01.040 -days - -0:40:03.119,0:40:07.119 -well I will say in our defense this is - -0:40:05.200,0:40:07.520 -exactly why we staged a complicated - -0:40:07.119,0:40:09.680 -thing - -0:40:07.520,0:40:11.119 -and uh probably we should have just gone - -0:40:09.680,0:40:14.160 -with that instead of - -0:40:11.119,0:40:17.760 -trying to give you uh the experience - -0:40:14.160,0:40:19.200 -of of of what it's like uh to use Emacs - -0:40:17.760,0:40:21.359 -to do this which is - -0:40:19.200,0:40:23.280 -which is sort of the last minute thought - -0:40:21.359,0:40:25.119 -there and my apologies for that - -0:40:23.280,0:40:27.200 -if that's made it harder to follow the - -0:40:25.119,0:40:28.240 -thread let's check back now for - -0:40:27.200,0:40:30.000 -questions - -0:40:28.240,0:40:32.079 -and see if anybody wants to redirect at - -0:40:30.000,0:40:32.079 -all - -0:40:36.640,0:40:40.800 -so yep this so what you're looking at - -0:40:39.599,0:40:44.880 -all uses prog - -0:40:40.800,0:40:47.760 -pragmatic svg uh - -0:40:44.880,0:40:49.119 -svg generation uh for question number - -0:40:47.760,0:40:52.000 -four there have you played with - -0:40:49.119,0:40:55.119 -generating svgs pragmatically in Emacs - -0:40:52.000,0:40:55.680 -that is what the maps are doing um in - -0:40:55.119,0:40:58.480 -terms - -0:40:55.680,0:41:00.400 -of uh uh we should have been maybe more - -0:40:58.480,0:41:01.680 -explicit about that we started hand - -0:41:00.400,0:41:05.119 -coding things and - -0:41:01.680,0:41:06.400 -once we got the idea of what the code - -0:41:05.119,0:41:09.359 -was going to look like - -0:41:06.400,0:41:10.000 -we switched to doing it programmatically - -0:41:09.359,0:41:12.880 -so - -0:41:10.000,0:41:14.640 -um we were going to open up maybe now if - -0:41:12.880,0:41:15.839 -we've got time we can get into the tile - -0:41:14.640,0:41:18.640 -set real quick - -0:41:15.839,0:41:20.560 -sure we definitely didn't do any of the - -0:41:18.640,0:41:23.040 -pathing slides and so now we've skipped - -0:41:20.560,0:41:25.040 -over some stuff we were going to present - -0:41:23.040,0:41:26.880 -yeah that's right we skipped a whole - -0:41:25.040,0:41:28.160 -bunch of slides and I can certainly uh - -0:41:26.880,0:41:30.640 -go back to them they're open here - -0:41:28.160,0:41:30.640 -obviously - -0:41:31.040,0:41:34.480 -um right I was just showing off the - -0:41:33.599,0:41:36.880 -sketching - -0:41:34.480,0:41:38.000 -tool uh briefly in that context but I - -0:41:36.880,0:41:40.000 -think you're right let's - -0:41:38.000,0:41:41.280 -we can jump over to the actually I - -0:41:40.000,0:41:42.000 -should finish with this now having - -0:41:41.280,0:41:45.119 -teased it - -0:41:42.000,0:41:47.119 -so let's do the same thing here ctrl h m - -0:41:45.119,0:41:48.560 -and you'll see in this case there are - -0:41:47.119,0:41:52.160 -very few keyboard - -0:41:48.560,0:41:55.359 -key bindings that are set up um even - -0:41:52.160,0:41:59.280 -this uh shift delete has a tera uh - -0:41:55.359,0:42:02.560 -or shift with uh - -0:41:59.280,0:42:05.680 -yeah control delete it would seem to be - -0:42:02.560,0:42:07.119 -so that has couple obvious bugs with it - -0:42:05.680,0:42:09.280 -right didn't pick it didn't pick up - -0:42:07.119,0:42:11.280 -those control points until I reused them - -0:42:09.280,0:42:13.760 -not clearing that stack - -0:42:11.280,0:42:14.480 -um and also should probably think about - -0:42:13.760,0:42:16.720 -whether - -0:42:14.480,0:42:18.400 -the origin should return and hey marking - -0:42:16.720,0:42:19.839 -that origin would be nice - -0:42:18.400,0:42:21.680 -so there's a tremendous amount to do - -0:42:19.839,0:42:24.400 -here this is just uh - -0:42:21.680,0:42:26.079 -showing that it is possible to use - -0:42:24.400,0:42:31.680 -essentially like a touch input - -0:42:26.079,0:42:35.119 -to um uh - -0:42:31.680,0:42:35.760 -yeah and then also we can switch over to - -0:42:35.119,0:42:39.040 -our place - -0:42:35.760,0:42:43.040 -tool and - -0:42:39.040,0:42:45.040 -um hopefully we can get a nice big menu - -0:42:43.040,0:42:48.000 -of all the tiles that eric prepared for - -0:42:45.040,0:42:48.000 -the game maps - -0:42:49.440,0:42:53.119 -uh that was probably a terrible choice - -0:42:51.680,0:42:55.839 -but there you have just a bit of - -0:42:53.119,0:42:55.839 -corridor right - -0:42:56.800,0:42:59.839 -that looks - -0:43:00.480,0:43:06.160 -uh and even the click yep and this this - -0:43:04.560,0:43:07.280 -glitch action here is the last thing I - -0:43:06.160,0:43:08.079 -was working on before I dropped - -0:43:07.280,0:43:10.079 -everything to - -0:43:08.079,0:43:13.839 -to build the decks that uh we will soon - -0:43:10.079,0:43:13.839 -share for this conference - -0:43:14.240,0:43:18.240 -so okay back to the tile sets - -0:43:19.680,0:43:23.440 -right so the way we approached drawing - -0:43:22.160,0:43:25.200 -it programmatically - -0:43:23.440,0:43:27.280 -is we broke our code up into little - -0:43:25.200,0:43:29.280 -snippets we called tiles - -0:43:27.280,0:43:32.160 -um corman's going to open up the tile - -0:43:29.280,0:43:35.280 -set here basically each tile has a name - -0:43:32.160,0:43:37.920 -and then with that name we place data - -0:43:35.280,0:43:40.640 -into different layers of the image - -0:43:37.920,0:43:41.280 -some of the layers are just svg paths - -0:43:40.640,0:43:44.880 -and - -0:43:41.280,0:43:47.920 -the data is just svg commands - -0:43:44.880,0:43:50.960 -like we saw in that handwritten code and - -0:43:47.920,0:43:54.160 -some of it is compositions of other - -0:43:50.960,0:43:56.160 -tiles so a tile can be made up of other - -0:43:54.160,0:43:58.000 -tiles - -0:43:56.160,0:43:59.599 -furthermore some of these tiles have - -0:43:58.000,0:44:02.319 -conditional code in it - -0:43:59.599,0:44:02.720 -where like some of this stuff is talking - -0:44:02.319,0:44:06.560 -about - -0:44:02.720,0:44:08.079 -elf and bang elf so the map is going to - -0:44:06.560,0:44:09.440 -be drawn differently depending - -0:44:08.079,0:44:11.200 -on whether or not there's elves in the - -0:44:09.440,0:44:16.880 -party - -0:44:11.200,0:44:18.240 -um so and that's the demo they broke - -0:44:16.880,0:44:20.000 -the engine has to make all those - -0:44:18.240,0:44:21.599 -decisions um - -0:44:20.000,0:44:23.280 -and that's what we're calling predicated - -0:44:21.599,0:44:25.200 -drawing oh there's a - -0:44:23.280,0:44:26.480 -special room here do you have any elves - -0:44:25.200,0:44:31.440 -you do so I draw - -0:44:26.480,0:44:31.440 -there is elf's way um - -0:44:32.880,0:44:36.319 -yeah so we built up the set of tiles and - -0:44:35.839,0:44:39.920 -then - -0:44:36.319,0:44:43.760 -um we basically made map files which - -0:44:39.920,0:44:47.839 -take um our map and break it up into xy - -0:44:43.760,0:44:50.240 -grids and then we drop these tiles into - -0:44:47.839,0:44:52.000 -positions on the map so we can use the - -0:44:50.240,0:44:52.480 -same tile square after square after - -0:44:52.000,0:44:54.720 -square - -0:44:52.480,0:44:55.680 -when there's a corridor north south it's - -0:44:54.720,0:44:59.119 -the same tile - -0:44:55.680,0:45:02.400 -over and over again and that makes it - -0:44:59.119,0:45:05.839 -easy to reuse the code and then also - -0:45:02.400,0:45:05.839 -when uh - -0:45:05.920,0:45:10.319 -when we go to present um the - -0:45:10.560,0:45:15.839 -what am I trying to say the the drawing - -0:45:13.520,0:45:18.000 -in in fog of war mode as we move down - -0:45:15.839,0:45:20.640 -the corridor we can just add the - -0:45:18.000,0:45:23.440 -necessary code one bit at a time to the - -0:45:20.640,0:45:24.960 -visible image so that what we're - -0:45:23.440,0:45:27.359 -displaying doesn't contain - -0:45:24.960,0:45:30.160 -any data except what the party has - -0:45:27.359,0:45:30.160 -already discovered - -0:45:30.240,0:45:34.400 -and thus we have kind of spoiler rich - -0:45:32.319,0:45:37.359 -documents sitting on the gm - -0:45:34.400,0:45:38.400 -server and then less you know and - -0:45:37.359,0:45:41.440 -spoiler-free - -0:45:38.400,0:45:44.000 -data that flows down to the org mode uh - -0:45:41.440,0:45:47.040 -files on the player system and the only - -0:45:44.000,0:45:50.160 -real challenge is making sure that the - -0:45:47.040,0:45:50.960 -the nothing that the game does can mess - -0:45:50.160,0:45:54.480 -with the - -0:45:50.960,0:45:55.280 -the the users the the players data file - -0:45:54.480,0:45:57.680 -in case they - -0:45:55.280,0:46:00.160 -might have their own notes and things in - -0:45:57.680,0:46:05.359 -it that that would be the one - -0:46:00.160,0:46:05.359 -uh you know number one thing to avoid - -0:46:06.160,0:46:09.680 -another thing we can talk about here is - -0:46:08.000,0:46:11.839 -that there are layers - -0:46:09.680,0:46:13.520 -you can see this table at the bottom has - -0:46:11.839,0:46:15.119 -tile and overlay - -0:46:13.520,0:46:17.040 -the overlay column is just going to - -0:46:15.119,0:46:20.800 -contain some actual svg - -0:46:17.040,0:46:21.599 -xml style tags um so that's where we can - -0:46:20.800,0:46:25.359 -add whatever - -0:46:21.599,0:46:26.720 -text elements or other svg like raw svg - -0:46:25.359,0:46:28.880 -tags we want - -0:46:26.720,0:46:30.560 -whereas a lot of the other layers are - -0:46:28.880,0:46:32.960 -going to be like path layers we've got - -0:46:30.560,0:46:35.359 -water layers and beach layers - -0:46:32.960,0:46:37.680 -and our plan was to have a style sheet - -0:46:35.359,0:46:38.720 -that defines how each of those layers - -0:46:37.680,0:46:40.720 -are represented - -0:46:38.720,0:46:42.160 -so like when the water gets drawn blue - -0:46:40.720,0:46:45.520 -and it's got arrows on it - -0:46:42.160,0:46:47.680 -giving it direction um all of that - -0:46:45.520,0:46:49.200 -can be customized with a style sheet to - -0:46:47.680,0:46:51.200 -change the water to be - -0:46:49.200,0:46:52.960 -whatever you want and like we have - -0:46:51.200,0:46:54.319 -beaches as yellow but maybe you like - -0:46:52.960,0:46:57.359 -beaches as red or - -0:46:54.319,0:47:01.200 -you know whatever so we also built - -0:46:57.359,0:47:04.079 -some test programs um - -0:47:01.200,0:47:05.359 -and various of the I'm not not sure what - -0:47:04.079,0:47:07.040 -kind of shape we're gonna find these in - -0:47:05.359,0:47:10.640 -but we can try running them - -0:47:07.040,0:47:12.960 -um here for example is just a - -0:47:10.640,0:47:15.119 -very basic all of using a saint using - -0:47:12.960,0:47:18.560 -the same file to define - -0:47:15.119,0:47:24.880 -the tiles and and then - -0:47:18.560,0:47:26.640 -the layout so to speak oh look at that - -0:47:24.880,0:47:28.960 -uh there's the layout okay so that - -0:47:26.640,0:47:30.960 -actually looks fine tile - -0:47:28.960,0:47:32.400 -and it's pat so this is defining a tile - -0:47:30.960,0:47:35.440 -named seas - -0:47:32.400,0:47:38.720 -and uh it's gonna have a list of tiles - -0:47:35.440,0:47:41.839 -defined above um and you'll notice also - -0:47:38.720,0:47:44.559 -that we can just sort of freely define - -0:47:41.839,0:47:46.160 -and redefine and it sort of figures out - -0:47:44.559,0:47:50.839 -oh this must still be part of the b - -0:47:46.160,0:47:53.839 -row um we could also have done - -0:47:50.839,0:47:53.839 -this - -0:48:00.000,0:48:07.839 -okay so this would this would work as - -0:48:02.160,0:48:07.839 -would this - -0:48:08.480,0:48:12.720 -one of uh early on in development when - -0:48:11.599,0:48:14.400 -we were talking about - -0:48:12.720,0:48:15.839 -getting data in and out of these org - -0:48:14.400,0:48:19.440 -tables it - -0:48:15.839,0:48:22.319 -was kind of a priority to us to - -0:48:19.440,0:48:23.040 -leave the way the data is organized open - -0:48:22.319,0:48:26.960 -to - -0:48:23.040,0:48:30.720 -the users and to the dungeon masters so - -0:48:26.960,0:48:32.559 -while we set our tile set apart from our - -0:48:30.720,0:48:35.440 -map sets - -0:48:32.559,0:48:38.319 -this clearly shows that you can cram a - -0:48:35.440,0:48:41.040 -tile set and a map into a single file - -0:48:38.319,0:48:43.040 -so in situations like the surface where - -0:48:41.040,0:48:43.760 -we're using different tiles from other - -0:48:43.040,0:48:46.559 -maps - -0:48:43.760,0:48:48.079 -maybe it makes sense to move you know - -0:48:46.559,0:48:50.559 -those tiles just into the file - -0:48:48.079,0:48:52.400 -with your map or like it's hard for us - -0:48:50.559,0:48:54.319 -to predict how other people are going to - -0:48:52.400,0:48:55.119 -want to use this when they design their - -0:48:54.319,0:48:57.359 -games - -0:48:55.119,0:48:58.160 -so we wanted to leave it as versatile as - -0:48:57.359,0:49:01.599 -possible - -0:48:58.160,0:49:02.640 -about how you can use it where it - -0:49:01.599,0:49:04.319 -matters right - -0:49:02.640,0:49:05.920 -not support every feature in the world I - -0:49:04.319,0:49:07.280 -can't count the number of times I said - -0:49:05.920,0:49:09.200 -eric eric eric - -0:49:07.280,0:49:10.800 -hey if we do it like this people will be - -0:49:09.200,0:49:14.000 -able and he just like - -0:49:10.800,0:49:14.480 -does it have to do that do we do we does - -0:49:14.000,0:49:17.920 -it like - -0:49:14.480,0:49:19.599 -do we need it right away uh - -0:49:17.920,0:49:21.040 -do you have to really rewrite everything - -0:49:19.599,0:49:24.160 -so it can all do that - -0:49:21.040,0:49:26.880 -and uh a lot of those - -0:49:24.160,0:49:28.240 -a lot of those conversations too but the - -0:49:26.880,0:49:31.200 -the key flexibilities - -0:49:28.240,0:49:32.559 -are really there people might want to - -0:49:31.200,0:49:34.160 -use a lot of different files they might - -0:49:32.559,0:49:35.760 -want to lay the tables out however they - -0:49:34.160,0:49:37.440 -want they have to be able to say hey - -0:49:35.760,0:49:39.440 -this is a table that has - -0:49:37.440,0:49:40.720 -data that's controlled by the game and - -0:49:39.440,0:49:44.079 -everything else in the file - -0:49:40.720,0:49:45.920 -is not the game's problem - -0:49:44.079,0:49:47.440 -on our table some of our tables started - -0:49:45.920,0:49:48.960 -getting really wide so we started - -0:49:47.440,0:49:51.119 -striping the tables - -0:49:48.960,0:49:52.640 -where we'll repeat the same table over - -0:49:51.119,0:49:56.400 -and over and over again to - -0:49:52.640,0:49:59.119 -get all of the columns in there without - -0:49:56.400,0:49:59.599 -making it you know a million miles wide - -0:49:59.119,0:50:01.040 -yeah - -0:49:59.599,0:50:02.640 -do you want to should I go ahead and - -0:50:01.040,0:50:06.079 -pull open like a level here - -0:50:02.640,0:50:08.319 -do you think sure just to have shown it - -0:50:06.079,0:50:09.680 -the aisle set's a great example of - -0:50:08.319,0:50:11.119 -striped tables if you - -0:50:09.680,0:50:13.839 -look down like in the level change - -0:50:11.119,0:50:13.839 -feature oh sure - -0:50:18.800,0:50:22.400 -sorry I'm not quite sitting well to my - -0:50:20.240,0:50:27.839 -keyboard here I can just readjust things - -0:50:22.400,0:50:27.839 -real quick - -0:50:30.079,0:50:35.200 -so what you know you can see here - -0:50:33.280,0:50:36.800 -like some of these tables got real wide - -0:50:35.200,0:50:40.559 -when we're stuffing svg - -0:50:36.800,0:50:44.160 -tags into them and what we - -0:50:40.559,0:50:49.359 -oh maybe it's not in these - -0:50:44.160,0:50:49.359 -I thought it was - -0:50:50.079,0:50:54.240 -special probably yeah no there it is - -0:50:52.960,0:50:56.000 -yeah - -0:50:54.240,0:50:58.720 -it was in level change it does the table - -0:50:56.000,0:51:00.640 -can you repeat okay great - -0:50:58.720,0:51:01.920 -up and down so fast I didn't realize so - -0:51:00.640,0:51:05.680 -this first table - -0:51:01.920,0:51:08.800 -we've got path and what is that stairs - -0:51:05.680,0:51:10.079 -so the stairs level is one that draws in - -0:51:08.800,0:51:11.920 -like a pink color - -0:51:10.079,0:51:13.440 -to highlight the places where you can - -0:51:11.920,0:51:15.200 -change level - -0:51:13.440,0:51:17.200 -and then if we scroll down to the second - -0:51:15.200,0:51:19.359 -half of this section - -0:51:17.200,0:51:20.960 -the second table is going to have all of - -0:51:19.359,0:51:22.800 -these same tiles in it but - -0:51:20.960,0:51:24.720 -instead of path and stairs we're going - -0:51:22.800,0:51:27.920 -to have other - -0:51:24.720,0:51:31.200 -columns can we - -0:51:27.920,0:51:31.200 -see the next table - -0:51:31.680,0:51:35.359 -there we go so the same tiles only here - -0:51:33.839,0:51:38.720 -we've got overlay - -0:51:35.359,0:51:40.319 -documentation and behavior and I guess - -0:51:38.720,0:51:41.839 -we haven't talked about this at all the - -0:51:40.319,0:51:44.880 -behavior column - -0:51:41.839,0:51:47.359 -was our concept of a way that we could - -0:51:44.880,0:51:47.359 -attach - -0:51:47.520,0:51:51.359 -functions basically to these different - -0:51:49.680,0:51:54.720 -areas of the map - -0:51:51.359,0:51:57.760 -because sometimes when you enter an area - -0:51:54.720,0:51:59.920 -we want it to do something like - -0:51:57.760,0:52:02.319 -when you enter a stairs down maybe we - -0:51:59.920,0:52:04.559 -want it to change to the next level - -0:52:02.319,0:52:06.160 -and draw the stairs up behind you and - -0:52:04.559,0:52:09.200 -draw you where you are - -0:52:06.160,0:52:11.040 -on the next level so - -0:52:09.200,0:52:12.240 -these are like hooks where we could - -0:52:11.040,0:52:16.400 -attach functions - -0:52:12.240,0:52:18.480 -or you know macros or whatever to - -0:52:16.400,0:52:22.079 -make the map have these behaviors as we - -0:52:18.480,0:52:22.079 -get further towards automation - -0:52:23.440,0:52:30.839 -cool um so that's that - -0:52:26.559,0:52:33.920 -should be pretty close to our time - -0:52:30.839,0:52:36.880 -um questions or just say goodbye - -0:52:33.920,0:52:38.559 -um yeah so there's the I'm sorry we - -0:52:36.880,0:52:40.000 -couldn't show it earlier there is the - -0:52:38.559,0:52:44.240 -battle board - -0:52:40.000,0:52:48.079 -um and so this is used just to keep - -0:52:44.240,0:52:49.319 -track of hit points so with this example - -0:52:48.079,0:52:51.680 -battle board - -0:52:49.319,0:52:53.760 -dmbattleboard.el there's there's a - -0:52:51.680,0:52:57.200 -complete example of not only - -0:52:53.760,0:53:00.480 -in a single file repub filling out the - -0:52:57.200,0:53:00.960 -the cells and the tiles but then coming - -0:53:00.480,0:53:04.640 -in - -0:53:00.960,0:53:05.280 -and keeping the org mode file in sync - -0:53:04.640,0:53:09.040 -with - -0:53:05.280,0:53:12.319 -with clicks so and I can press the star - -0:53:09.040,0:53:15.359 -key and set my damage to -1 and - -0:53:12.319,0:53:16.400 -take the damage back off I just haven't - -0:53:15.359,0:53:18.079 -spent a lot of time - -0:53:16.400,0:53:20.800 -building up fancy bindings for this - -0:53:18.079,0:53:23.119 -you'll also find that the crew - -0:53:20.800,0:53:23.839 -probably find how I figure out what was - -0:53:23.119,0:53:26.880 -clicked on - -0:53:23.839,0:53:28.000 -in the code hard but if I just assign - -0:53:26.880,0:53:32.960 -something recognizable - -0:53:28.000,0:53:32.960 -for damage and then come into - -0:53:33.520,0:53:37.040 -it will now have opened the org mode - -0:53:35.440,0:53:39.680 -file behind the scenes because it's - -0:53:37.040,0:53:39.680 -changing it - -0:53:41.280,0:53:47.599 -and we can then look at that file a - -0:53:44.640,0:53:51.040 -little bit and hopefully - -0:53:47.599,0:53:53.440 -that is un - -0:53:51.040,0:53:55.520 -uh large enough you can kind of see - -0:53:53.440,0:53:59.119 -there's our 17 damage landed - -0:53:55.520,0:54:01.200 -in armor the logic that sits behind that - -0:53:59.119,0:54:06.240 -to figure out the part of the screen - -0:54:01.200,0:54:06.240 -is not necessarily our finest work - -0:54:08.880,0:54:12.319 -uh uh but it but it does work and it's - -0:54:11.839,0:54:14.000 -one for - -0:54:12.319,0:54:15.920 -the stuff was used on the map a little - -0:54:14.000,0:54:17.520 -bit too we didn't really need to show - -0:54:15.920,0:54:19.680 -that in the demo but as you're scrolling - -0:54:17.520,0:54:22.960 -around there's like a highlighter - -0:54:19.680,0:54:24.720 -um that that you know we were drawing on - -0:54:22.960,0:54:26.160 -shaft to show you which square you've - -0:54:24.720,0:54:28.800 -got selected - -0:54:26.160,0:54:29.839 -um because we were having trouble with - -0:54:28.800,0:54:31.280 -that code - -0:54:29.839,0:54:34.160 -initially and we were sometimes - -0:54:31.280,0:54:34.160 -revealing the wrong - -0:54:36.839,0:54:40.480 -okay - -0:54:38.720,0:54:42.160 -and I don't know how we're set for time - -0:54:40.480,0:54:44.400 -but I just saw a message - -0:54:42.160,0:54:46.480 -um from trixie that she could jump on if - -0:54:44.400,0:54:47.920 -we want her oh that would be amazing - -0:54:46.480,0:54:51.520 -yeah go ahead and invite her in I'll - -0:54:47.920,0:54:51.520 -just cut to the scene as soon as she's - -0:54:51.680,0:54:56.799 -I in uh yeah so we're reaching the ask - -0:54:56.160,0:54:58.960 -me any - -0:54:56.799,0:55:01.200 -anything uh portion of the program here - -0:54:58.960,0:55:02.559 -with what uh with what time we have left - -0:55:01.200,0:55:05.200 -for your questions - -0:55:02.559,0:55:06.160 -um please correct me if we're still like - -0:55:05.200,0:55:08.799 -10 minutes - -0:55:06.160,0:55:10.000 -you know if we're if we're more than - -0:55:08.799,0:55:12.640 -like - -0:55:10.000,0:55:13.760 -15 to 20 minutes from our time but I I - -0:55:12.640,0:55:16.640 -suspect we've less weight - -0:55:13.760,0:55:17.440 -left way less than that and out of - -0:55:16.640,0:55:21.839 -respect for - -0:55:17.440,0:55:21.839 -all the other presenters um - -0:55:24.319,0:55:30.640 -oh I don't want to close that actually - -0:55:28.720,0:55:32.839 -I think I may have found an old version - -0:55:30.640,0:55:35.200 -of my slides that could have some good - -0:55:32.839,0:55:36.799 -stuff - -0:55:35.200,0:55:38.799 -it's been an event for a couple of weeks - -0:55:36.799,0:55:41.359 -here I had a break in and uh - -0:55:38.799,0:55:43.599 -my somebody got into our bank accounts - -0:55:41.359,0:55:46.880 -and - -0:55:43.599,0:55:50.079 -nasty business just a lot going on over - -0:55:46.880,0:55:50.079 -over this whole year I think - -0:55:50.720,0:55:53.839 -do we have more questions to shag or - -0:55:53.040,0:55:56.960 -where - -0:55:53.839,0:55:58.799 -sure so I think - -0:55:56.960,0:56:01.040 -there was at least one we deferred a - -0:55:58.799,0:56:03.839 -little bit uh what the game - -0:56:01.040,0:56:03.839 -is - -0:56:05.040,0:56:08.400 -uh always eight characters that can be - -0:56:06.799,0:56:10.000 -divided right that's so always eight - -0:56:08.400,0:56:12.160 -characters that can be divided between - -0:56:10.000,0:56:14.319 -the party is the classic formula - -0:56:12.160,0:56:16.240 -it actually works pretty well for a - -0:56:14.319,0:56:17.760 -conversational group remember that - -0:56:16.240,0:56:18.480 -role-playing games are about talking to - -0:56:17.760,0:56:20.000 -each other - -0:56:18.480,0:56:22.079 -and being good at them is about taking - -0:56:20.000,0:56:23.200 -excellent notes so - -0:56:22.079,0:56:24.559 -when you're sitting around with a group - -0:56:23.200,0:56:25.920 -of people and you're going to have to - -0:56:24.559,0:56:26.880 -wait for them while they dig through - -0:56:25.920,0:56:28.720 -their notes - -0:56:26.880,0:56:30.319 -and listen to all of the things they - -0:56:28.720,0:56:32.240 -find interesting to say - -0:56:30.319,0:56:34.160 -and try to reach an imaginative place - -0:56:32.240,0:56:36.160 -that you can stay together - -0:56:34.160,0:56:38.319 -while you're doing all that and working - -0:56:36.160,0:56:40.880 -in dice and remembering the rules - -0:56:38.319,0:56:43.200 -it's actually a complicated activity I - -0:56:40.880,0:56:46.240 -liken it more to a bridge game - -0:56:43.200,0:56:48.960 -than to like uh - -0:56:46.240,0:56:51.359 -you know parcheesi or perhaps even like - -0:56:48.960,0:56:52.160 -risk or access and allies or other games - -0:56:51.359,0:56:54.319 -that - -0:56:52.160,0:56:56.160 -have have definitely the strategy to - -0:56:54.319,0:56:59.839 -them but - -0:56:56.160,0:56:59.839 -I don't eric your thoughts - -0:57:00.160,0:57:06.640 -yeah I mean I think that's fair um - -0:57:03.920,0:57:08.160 -you know yes definitely the the - -0:57:06.640,0:57:09.440 -tradition is to always have eight - -0:57:08.160,0:57:12.079 -characters in the party - -0:57:09.440,0:57:13.760 -and you know one of the great things - -0:57:12.079,0:57:15.200 -about dungeon is that everybody who - -0:57:13.760,0:57:18.000 -writes their own dungeon - -0:57:15.200,0:57:19.440 -gets to write their own rules and is - -0:57:18.000,0:57:21.760 -free to change whatever - -0:57:19.440,0:57:22.720 -you want and that being said I've - -0:57:21.760,0:57:25.839 -certainly seen - -0:57:22.720,0:57:28.079 -people try to take on challenging that - -0:57:25.839,0:57:30.640 -always eight characters in a party - -0:57:28.079,0:57:32.640 -thing um I've seen people take - -0:57:30.640,0:57:34.640 -approaches like every player gets two - -0:57:32.640,0:57:36.319 -characters and then you can have a party - -0:57:34.640,0:57:38.079 -ranging from two to ten - -0:57:36.319,0:57:40.000 -or there's always going to be ten or - -0:57:38.079,0:57:43.200 -there's you know this or that or people - -0:57:40.000,0:57:45.280 -have um tried stuff and none of it has - -0:57:43.200,0:57:45.839 -really worked out very satisfactorily we - -0:57:45.280,0:57:48.319 -always - -0:57:45.839,0:57:49.680 -seem to keep coming back to our um party - -0:57:48.319,0:57:54.160 -of eight - -0:57:49.680,0:57:55.839 -yeah it's I I I I it's one of the things - -0:57:54.160,0:57:57.359 -dungeon that you can't change when you - -0:57:55.839,0:57:58.720 -write your own dungeon - -0:57:57.359,0:58:00.960 -and that's the reason it's so - -0:57:58.720,0:58:03.119 -complicated as a as a software - -0:58:00.960,0:58:04.559 -project why it's taken us decades - -0:58:03.119,0:58:08.000 -because - -0:58:04.559,0:58:11.280 -trying to model the data for example or - -0:58:08.000,0:58:14.160 -really any attempt to - -0:58:11.280,0:58:15.680 -quantify it in specific terms always - -0:58:14.160,0:58:18.880 -falls to examples - -0:58:15.680,0:58:22.079 -well you know dungeons usually have - -0:58:18.880,0:58:25.280 -elves dwarves and humans they have uh - -0:58:22.079,0:58:27.599 -priests wizards and warriors uh they - -0:58:25.280,0:58:30.000 -have eight characters in the party - -0:58:27.599,0:58:31.680 -the bell rocks are particularly nasty - -0:58:30.000,0:58:35.119 -and live in a room of some - -0:58:31.680,0:58:38.319 -specific shape um spoilers - -0:58:35.119,0:58:39.520 -uh right and we don't tell you the rules - -0:58:38.319,0:58:40.960 -and that's what you know - -0:58:39.520,0:58:42.640 -and you sit down at the table and you - -0:58:40.960,0:58:44.480 -say what's your character name and - -0:58:42.640,0:58:48.400 -what's your special power - -0:58:44.480,0:58:51.599 -and and then I say uh I - -0:58:48.400,0:58:53.839 -I I'm zelda and uh - -0:58:51.599,0:58:56.000 -I I have this bridge that I can put down - -0:58:53.839,0:58:59.040 -that always gets me across the river - -0:58:56.000,0:58:59.359 -um so let's touch on special power real - -0:58:59.040,0:59:01.119 -quick - -0:58:59.359,0:59:03.280 -since that's one of the things that is - -0:59:01.119,0:59:06.160 -kind of unique to dungeon - -0:59:03.280,0:59:06.720 -and one of the things that is the - -0:59:06.160,0:59:08.960 -biggest - -0:59:06.720,0:59:10.240 -challenge to us in trying to code a - -0:59:08.960,0:59:13.200 -system like this for - -0:59:10.240,0:59:14.319 -automated play and that's that every - -0:59:13.200,0:59:17.119 -character gets a - -0:59:14.319,0:59:18.000 -unique special power and traditionally - -0:59:17.119,0:59:19.520 -you negotiate - -0:59:18.000,0:59:21.839 -your special power with the dungeon - -0:59:19.520,0:59:24.079 -master when you create your character - -0:59:21.839,0:59:25.839 -and occasionally throughout the course - -0:59:24.079,0:59:27.359 -of the character's life their special - -0:59:25.839,0:59:29.920 -power might change - -0:59:27.359,0:59:33.280 -due to game circumstances usually it - -0:59:29.920,0:59:34.960 -improves but sometimes not - -0:59:33.280,0:59:36.960 -uh and that's those are the most fun - -0:59:34.960,0:59:39.440 -conversations right sometimes we have - -0:59:36.960,0:59:41.760 -fun gaming sessions where we barely get - -0:59:39.440,0:59:43.680 -all the characters created and started - -0:59:41.760,0:59:45.440 -because we get off into arguing about - -0:59:43.680,0:59:48.319 -the special powers no zelda special - -0:59:45.440,0:59:52.079 -powers obviously the candle come on - -0:59:48.319,0:59:52.079 -also that was link not zelda - -0:59:53.359,1:00:01.440 -I still have my t-shirt hey there she is - -0:59:56.240,1:00:05.839 -let's cut scene - -1:00:01.440,1:00:07.359 -you get video fun filters today because - -1:00:05.839,1:00:08.799 -that's what we got going on over here - -1:00:07.359,1:00:15.839 -today all right I'm gonna recut - -1:00:08.799,1:00:15.839 -everybody hang on tight - -1:00:18.079,1:00:23.200 -all right there's eric this is gonna be - -1:00:20.799,1:00:25.200 -eric for a second hope - -1:00:23.200,1:00:27.440 -no worries and welcome to the welcome to - -1:00:25.200,1:00:30.960 -the stream uh trixie horror - -1:00:27.440,1:00:32.720 -uh who is - -1:00:30.960,1:00:34.559 -uh one of our project team members - -1:00:32.720,1:00:35.440 -somebody who's learning Emacs as part of - -1:00:34.559,1:00:38.480 -the project - -1:00:35.440,1:00:40.720 -and um yeah I - -1:00:38.480,1:00:42.160 -I I particularly wanted to invite you on - -1:00:40.720,1:00:44.319 -to talk about your experience learning - -1:00:42.160,1:00:46.079 -Emacs I think you have run into - -1:00:44.319,1:00:47.839 -places where it's a pain in the butt to - -1:00:46.079,1:00:56.000 -learn Emacs and that this is a safe - -1:00:47.839,1:00:58.960 -space to talk about that - -1:00:56.000,1:01:00.640 -jump into that by saying um the Emacs - -1:00:58.960,1:01:02.880 -cheat sheet - -1:01:00.640,1:01:03.680 -um I think it's the one that canoe puts - -1:01:02.880,1:01:07.680 -out - -1:01:03.680,1:01:09.440 -is a lifesaver um a little bit of a - -1:01:07.680,1:01:12.480 -vocabulary disconnect - -1:01:09.440,1:01:13.359 -like and this actually kind of comes up - -1:01:12.480,1:01:15.200 -a lot - -1:01:13.359,1:01:18.000 -in conversation with corona and eric and - -1:01:15.200,1:01:21.920 -I but copy paste versus - -1:01:18.000,1:01:24.480 -what yank and w - -1:01:21.920,1:01:24.480 -whatever w - -1:01:27.920,1:01:31.200 -why would you even do that to us right - -1:01:30.000,1:01:33.359 -where where were you - -1:01:31.200,1:01:38.480 -when zero's park happened no I I - -1:01:33.359,1:01:39.520 -understand that makes sense what else - -1:01:38.480,1:01:41.440 -I mean you don't have to sit here and - -1:01:39.520,1:01:43.119 -rag on Emacs but we're here for that - -1:01:41.440,1:01:44.400 -that's all I'm saying - -1:01:43.119,1:01:46.799 -no I'm like that's been the biggest - -1:01:44.400,1:01:49.920 -thing like I'm - -1:01:46.799,1:01:52.319 -I'm used to like just kind of the - -1:01:49.920,1:01:53.839 -very binary nature like nope that didn't - -1:01:52.319,1:01:57.119 -work try something else - -1:01:53.839,1:01:59.200 -so as long as you're like willing to try - -1:01:57.119,1:02:02.880 -other stuff - -1:01:59.200,1:02:06.559 -like Emacs will be fine so - -1:02:02.880,1:02:08.960 -it's a tough cookie I can take it - -1:02:06.559,1:02:11.119 -worst thing that happens is you have to - -1:02:08.960,1:02:13.520 -really install it - -1:02:11.119,1:02:16.799 -throw your ignite file that you - -1:02:13.520,1:02:16.799 -hopefully have a backup of - -1:02:19.920,1:02:24.640 -all right fine um are there more - -1:02:22.079,1:02:26.480 -questions in the hopper - -1:02:24.640,1:02:27.680 -yeah if anybody does have any questions - -1:02:26.480,1:02:29.839 -up there uh - -1:02:27.680,1:02:32.000 -for hope for eric or I so just to - -1:02:29.839,1:02:34.240 -summarize I've known eric - -1:02:32.000,1:02:36.160 -I've known eric my whole life I've known - -1:02:34.240,1:02:39.599 -hope around a decade we - -1:02:36.160,1:02:44.480 -worked together on a project for - -1:02:39.599,1:02:44.480 -uh for a science fiction convention yeah - -1:02:44.559,1:02:48.960 -we got conventions and then I also - -1:02:46.880,1:02:50.799 -helped with I just wrote a bio - -1:02:48.960,1:02:53.520 -so this should like all theoretically be - -1:02:50.799,1:02:53.520 -in my head right - -1:02:53.599,1:03:00.160 -I want I refer to my own bio - -1:02:58.079,1:03:02.640 -I'm the project coordinator for dungeon - -1:03:00.160,1:03:02.640 -mode - -1:03:10.799,1:03:16.400 -um that's nice - -1:03:14.000,1:03:18.000 -we've gotten a ton of support from a lot - -1:03:16.400,1:03:20.480 -of our lifelong friends people - -1:03:18.000,1:03:22.319 -and also people that we just met maybe - -1:03:20.480,1:03:25.039 -that's a that's a great segue - -1:03:22.319,1:03:26.400 -um do throw your questions in there I'm - -1:03:25.039,1:03:27.839 -gonna fill for just a second and then - -1:03:26.400,1:03:31.920 -we'll probably cut away - -1:03:27.839,1:03:31.920 -um but uh - -1:03:32.319,1:03:36.319 -uh I mean thematically actually that's - -1:03:34.960,1:03:37.200 -that's too abrupt so we need to go - -1:03:36.319,1:03:39.119 -around the room - -1:03:37.200,1:03:40.720 -eric you had hours and hours to rehearse - -1:03:39.119,1:03:41.359 -hope kind of jumped in on the last - -1:03:40.720,1:03:43.520 -minute - -1:03:41.359,1:03:46.319 -so let's let's is it okay to pick on you - -1:03:43.520,1:03:48.880 -or do you want me to give mine - -1:03:46.319,1:03:50.000 -uh to what are you asking me to do what - -1:03:48.880,1:03:51.359 -do you what do you want people to take - -1:03:50.000,1:03:54.240 -away from this talk - -1:03:51.359,1:03:55.280 -you know as we think about dungeon and - -1:03:54.240,1:03:57.520 -sharing it's - -1:03:55.280,1:03:58.799 -sharing its tradition as we think about - -1:03:57.520,1:04:02.799 -learning Emacs - -1:03:58.799,1:04:04.880 -and like making that awesome um - -1:04:02.799,1:04:07.599 -and just you know generally what's up - -1:04:04.880,1:04:12.480 -with free software and trying to make - -1:04:07.599,1:04:15.200 -computers a tool to make people freer - -1:04:12.480,1:04:15.920 -wow that's like five questions yeah so - -1:04:15.200,1:04:18.960 -I'm gonna start - -1:04:15.920,1:04:22.240 -with jumping um I think - -1:04:18.960,1:04:25.359 -that dungeon is a lot of fun and - -1:04:22.240,1:04:27.599 -you know I'm I've played many - -1:04:25.359,1:04:28.480 -commercial role-playing games over the - -1:04:27.599,1:04:31.680 -years - -1:04:28.480,1:04:32.000 -and I've enjoyed all of them and there - -1:04:31.680,1:04:34.720 -are - -1:04:32.000,1:04:36.319 -very few of them that I've had as many - -1:04:34.720,1:04:40.160 -belly laughs and as much - -1:04:36.319,1:04:42.799 -just joy playing as from dungeon - -1:04:40.160,1:04:43.280 -and I think you know the magic of it is - -1:04:42.799,1:04:45.520 -you know - -1:04:43.280,1:04:47.200 -like any game like the real magic is the - -1:04:45.520,1:04:49.599 -people you play with and having fun with - -1:04:47.200,1:04:51.280 -your friends - -1:04:49.599,1:04:53.440 -and what I would hope that people can - -1:04:51.280,1:04:55.920 -take away from is that dungeon has the - -1:04:53.440,1:04:59.280 -ability to be that magical thing - -1:04:55.920,1:05:00.000 -and hopefully we can get our project to - -1:04:59.280,1:05:02.160 -the point - -1:05:00.000,1:05:04.960 -where it gets out of the way and lets - -1:05:02.160,1:05:07.200 -you have that fun with your friends - -1:05:04.960,1:05:08.240 -um but there's a lot of work to do we - -1:05:07.200,1:05:10.880 -could use some help - -1:05:08.240,1:05:14.480 -so if you're interested in having fun - -1:05:10.880,1:05:14.480 -come help us build this fun tool - -1:05:20.960,1:05:24.079 -all right so I just got the call that - -1:05:22.319,1:05:25.039 -we've got just about two to three - -1:05:24.079,1:05:28.160 -minutes left - -1:05:25.039,1:05:31.440 -and we should start our wrap-up - -1:05:28.160,1:05:34.240 -okay wrap up so - -1:05:31.440,1:05:35.920 -yeah um so I'll I'll see if I can charge - -1:05:34.240,1:05:38.480 -the room with some energy unless you're - -1:05:35.920,1:05:40.720 -ready to have at it hope - -1:05:38.480,1:05:42.799 -here here's here's what I want people to - -1:05:40.720,1:05:46.720 -take away - -1:05:42.799,1:05:46.720 -were you like no okay - -1:05:47.039,1:05:51.839 -I'm not getting your audio hope - -1:05:53.599,1:05:57.359 -it's okay on my end maybe I just need to - -1:05:55.839,1:05:58.880 -speak up - -1:05:57.359,1:06:00.640 -is this better let me know when I'm - -1:05:58.880,1:06:01.680 -coming through yeah you're coming - -1:06:00.640,1:06:05.359 -through now - -1:06:01.680,1:06:08.799 -okay cool oh no I - -1:06:05.359,1:06:10.559 -was gonna say go ahead I didn't okay - -1:06:08.799,1:06:12.880 -I mean I I don't know that I know what I - -1:06:10.559,1:06:13.599 -want to say either except a whole ton of - -1:06:12.880,1:06:16.480 -thank yous - -1:06:13.599,1:06:17.200 -so I will I will save those for the for - -1:06:16.480,1:06:20.880 -the literal - -1:06:17.200,1:06:24.160 -end here and instead - -1:06:20.880,1:06:27.839 -what I would say is as we build - -1:06:24.160,1:06:32.160 -our amazing innovations and - -1:06:27.839,1:06:35.119 -explore our ideas in Emacs - -1:06:32.160,1:06:36.079 -we are fighting our own ego for the will - -1:06:35.119,1:06:37.680 -to get them done - -1:06:36.079,1:06:38.960 -it's hard and we're not sure if they're - -1:06:37.680,1:06:40.000 -going to be a good idea and will it - -1:06:38.960,1:06:41.680 -excite people and part of our - -1:06:40.000,1:06:43.440 -responsibility is to excite people so - -1:06:41.680,1:06:44.240 -that they can feel good about liking - -1:06:43.440,1:06:45.680 -them - -1:06:44.240,1:06:47.359 -if you come off and you're like hey this - -1:06:45.680,1:06:47.920 -is a terrible idea it's really hard to - -1:06:47.359,1:06:49.760 -be like - -1:06:47.920,1:06:51.200 -no I love that idea it works - -1:06:49.760,1:06:55.520 -theatrically but - -1:06:51.200,1:06:55.520 -in larger groups may not scale - -1:06:55.680,1:07:00.400 -so that's a crucible for ideas and a - -1:06:58.400,1:07:03.280 -crucible for teams - -1:07:00.400,1:07:04.240 -the first part is definitely healthy the - -1:07:03.280,1:07:07.440 -second part - -1:07:04.240,1:07:08.640 -there's a lot we can we can do you know - -1:07:07.440,1:07:10.880 -having upfront - -1:07:08.640,1:07:15.440 -and and and good faith conversations on - -1:07:10.880,1:07:17.520 -that subject - -1:07:15.440,1:07:19.119 -anybody else wanted I want to weigh it - -1:07:17.520,1:07:22.960 -in after that sorry that that was more - -1:07:19.119,1:07:22.960 -of a calm down than a then a fire out - -1:07:23.200,1:07:26.000 -oh that's okay - -1:07:27.280,1:07:30.960 -I mean um the first part of this but I - -1:07:29.280,1:07:32.960 -think um - -1:07:30.960,1:07:34.880 -we would be remiss not to highlight org - -1:07:32.960,1:07:37.839 -mode a little bit - -1:07:34.880,1:07:38.480 -yeah like that's that's our bread and - -1:07:37.839,1:07:40.240 -butter - -1:07:38.480,1:07:42.720 -yeah our whole project is built on org - -1:07:40.240,1:07:46.240 -mode right and I'm just really excited - -1:07:42.720,1:07:49.680 -because like I have I don't have adhd - -1:07:46.240,1:07:51.119 -but I have like something similar and so - -1:07:49.680,1:07:54.880 -like to know that there's something that - -1:07:51.119,1:07:57.760 -exists that is like purely hierarchical - -1:07:54.880,1:07:58.559 -is incredible like I can just run a - -1:07:57.760,1:08:01.839 -report - -1:07:58.559,1:08:03.839 -basically and get all of my like - -1:08:01.839,1:08:05.760 -to-do lists that I didn't have to put in - -1:08:03.839,1:08:10.240 -one specific place - -1:08:05.760,1:08:10.240 -um and like that's kind of been - -1:08:10.559,1:08:16.480 -a complex issue for me of like - -1:08:14.559,1:08:18.080 -okay I have all these to-do lists like - -1:08:16.480,1:08:18.319 -in google keep or whatever like what do - -1:08:18.080,1:08:20.719 -I - -1:08:18.319,1:08:21.359 -do with them now so being able to like - -1:08:20.719,1:08:24.400 -pull them - -1:08:21.359,1:08:26.640 -into one list and then just cycle - -1:08:24.400,1:08:30.239 -through them is really incredible - -1:08:26.640,1:08:34.480 -and I think taking a dungeon and - -1:08:30.239,1:08:35.839 -like using it to - -1:08:34.480,1:08:37.759 -like combining it with org mode - -1:08:35.839,1:08:41.040 -basically um - -1:08:37.759,1:08:42.560 -really yeah I'm excited about it I'm - -1:08:41.040,1:08:44.159 -excited to see like what it can do for - -1:08:42.560,1:08:47.759 -player groups - -1:08:44.159,1:08:50.319 -um yeah especially - -1:08:47.759,1:08:52.319 -like I was excited about dungeon mode um - -1:08:50.319,1:08:53.920 -before the pandemic and now like I'm - -1:08:52.319,1:08:57.120 -only more enthusiastic - -1:08:53.920,1:08:58.400 -so yeah uh definitely the pandemic has - -1:08:57.120,1:08:59.120 -been the greatest thing that happened to - -1:08:58.400,1:09:02.080 -this game - -1:08:59.120,1:09:02.640 -terrible terrible as it is to say that - -1:09:02.080,1:09:05.120 -it - -1:09:02.640,1:09:06.719 -if we uh needed a hobby and it turns out - -1:09:05.120,1:09:09.839 -role-playing games are - -1:09:06.719,1:09:09.839 -a really good fit - -1:09:11.279,1:09:14.799 -so um so I think that's probably about - -1:09:13.839,1:09:18.560 -our time - -1:09:14.799,1:09:21.759 -um I'm guessing that's my call and - -1:09:18.560,1:09:23.120 -uh thank you very much thank you - -1:09:21.759,1:09:25.679 -everybody - -1:09:23.120,1:09:31.759 -we'll be around for discord and stuff - -1:09:25.679,1: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.sbv b/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo-autogen.sbv deleted file mode 100644 index 761568a6..00000000 --- a/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo-autogen.sbv +++ /dev/null @@ -1,633 +0,0 @@ -0:00:00.880,0:00:06.080 -hello and welcome to the stock - -0:00:03.760,0:00:07.919 -the title of the stock is a tour feature - -0:00:06.080,0:00:08.559 -a fast and fully featured terminal - -0:00:07.919,0:00:11.840 -emulator - -0:00:08.559,0:00:13.360 -inside new e-max so let's try to - -0:00:11.840,0:00:14.559 -understand what we mean with the pass - -0:00:13.360,0:00:17.520 -and fully featured - -0:00:14.559,0:00:18.320 -and to do that we'll compare v term with - -0:00:17.520,0:00:20.640 -the - -0:00:18.320,0:00:22.400 -packages which are built in Emacs mean - -0:00:20.640,0:00:25.199 -the term - -0:00:22.400,0:00:26.720 -so let's let's jump into the v term so - -0:00:25.199,0:00:29.679 -this is a feature buffer - -0:00:26.720,0:00:31.519 -and this is a ansi term buffer what I'm - -0:00:29.679,0:00:32.160 -going to do now is first I'm going to - -0:00:31.519,0:00:35.760 -prove you - -0:00:32.160,0:00:37.520 -what we move fast so to do that let me - -0:00:35.760,0:00:39.280 -open a large file display on screen or - -0:00:37.520,0:00:40.239 -large file this is about one megabyte of - -0:00:39.280,0:00:43.520 -data - -0:00:40.239,0:00:44.160 -and let me time that it takes about 0.6 - -0:00:43.520,0:00:47.200 -seconds - -0:00:44.160,0:00:49.760 -with feature let's do the same with - -0:00:47.200,0:00:51.520 -with ancient term well we already - -0:00:49.760,0:00:53.039 -already see the difference - -0:00:51.520,0:00:54.559 -so I will use this time to tell you - -0:00:53.039,0:00:57.360 -what's different and - -0:00:54.559,0:00:58.879 -what is v term exactly so v term is a - -0:00:57.360,0:01:01.120 -terminal emulator built - -0:00:58.879,0:01:02.719 -on top of an external library the - -0:01:01.120,0:01:05.519 -library is called libvi term - -0:01:02.719,0:01:07.200 -and is the same library used by newton - -0:01:05.519,0:01:10.000 -for their own terminal emulator - -0:01:07.200,0:01:10.799 -it's a c library and this is what gives - -0:01:10.000,0:01:15.119 -us - -0:01:10.799,0:01:17.280 -a lot of good features first the speed - -0:01:15.119,0:01:18.479 -time spent here 0.6 is essentially the - -0:01:17.280,0:01:21.520 -time that it takes to - -0:01:18.479,0:01:22.240 -one convert the emax representation of - -0:01:21.520,0:01:23.840 -like text - -0:01:22.240,0:01:26.400 -into the visa and representation of what - -0:01:23.840,0:01:28.479 -was a string and two into - -0:01:26.400,0:01:29.520 -actually displaying that and that can - -0:01:28.479,0:01:31.840 -take time - -0:01:29.520,0:01:33.680 -if there's a if there's quantification - -0:01:31.840,0:01:34.240 -involved so these are the 0.6 seconds - -0:01:33.680,0:01:36.960 -there - -0:01:34.240,0:01:37.920 -as we say in the in ancestor that's much - -0:01:36.960,0:01:39.920 -much - -0:01:37.920,0:01:41.680 -more time it's much slower so the - -0:01:39.920,0:01:42.880 -terminal will feel much snappier much - -0:01:41.680,0:01:46.079 -faster - -0:01:42.880,0:01:47.840 -but that's not the main benefit or the - -0:01:46.079,0:01:48.799 -only benefit of using this external - -0:01:47.840,0:01:52.320 -library - -0:01:48.799,0:01:55.439 -feature the second big benefit - -0:01:52.320,0:01:56.560 -is that v term has support for all the - -0:01:55.439,0:01:59.200 -escape codes - -0:01:56.560,0:02:01.119 -that exterm has support for so v term is - -0:01:59.200,0:02:03.600 -essentially as running x term - -0:02:01.119,0:02:04.799 -inside an imax buffer so let's see that - -0:02:03.600,0:02:07.119 -this for example - -0:02:04.799,0:02:08.239 -let's start by looking at the support - -0:02:07.119,0:02:09.920 -for colors - -0:02:08.239,0:02:11.840 -we have support for all the colors out - -0:02:09.920,0:02:15.040 -of the box we don't have to do anything - -0:02:11.840,0:02:15.680 -and if we did the same here well we have - -0:02:15.040,0:02:17.920 -only - -0:02:15.680,0:02:19.680 -20 colors there's a way to get all the - -0:02:17.920,0:02:23.040 -colors but it's much more involved - -0:02:19.680,0:02:26.000 -but this is not where v term shines - -0:02:23.040,0:02:27.200 -uh we can run all the commands that we - -0:02:26.000,0:02:30.480 -want - -0:02:27.200,0:02:33.040 -h top and cdu - -0:02:30.480,0:02:33.840 -everything runs here also this title - -0:02:33.040,0:02:36.400 -it's a - -0:02:33.840,0:02:37.040 -it's a fairly complicated manipulation - -0:02:36.400,0:02:40.879 -of - -0:02:37.040,0:02:42.319 -the window and it will not work here - -0:02:40.879,0:02:44.640 -it just doesn't work actually now the - -0:02:42.319,0:02:48.400 -terminal is probably messed up - -0:02:44.640,0:02:50.959 -yes so using this external library - -0:02:48.400,0:02:52.000 -removes the burden from the developers - -0:02:50.959,0:02:54.000 -of having to implement - -0:02:52.000,0:02:55.360 -support for all these cape codes we just - -0:02:54.000,0:02:58.480 -use those - -0:02:55.360,0:03:01.760 -so in many ways running veteran - -0:02:58.480,0:03:04.400 -is us running extern inside a max - -0:03:01.760,0:03:05.840 -but it's better than that because since - -0:03:04.400,0:03:08.879 -this is an e-max buffer - -0:03:05.840,0:03:09.760 -we can enjoy a lot of features from - -0:03:08.879,0:03:11.920 -Emacs - -0:03:09.760,0:03:13.200 -as well as a tighter integration with - -0:03:11.920,0:03:16.560 -e-max itself - -0:03:13.200,0:03:17.599 -for example as you see here the title of - -0:03:16.560,0:03:20.720 -my buffer - -0:03:17.599,0:03:21.760 -is from the director I'm in so let's go - -0:03:20.720,0:03:24.799 -to my tmp - -0:03:21.760,0:03:26.560 -the title will change so there's - -0:03:24.799,0:03:28.000 -information being exchanged between v - -0:03:26.560,0:03:29.760 -term and index - -0:03:28.000,0:03:32.000 -and of course the title is not the only - -0:03:29.760,0:03:34.799 -place where information is exchanged - -0:03:32.000,0:03:35.920 -I can find a file and I will be in the - -0:03:34.799,0:03:38.239 -directory - -0:03:35.920,0:03:40.000 -where my terminal is this feature is - -0:03:38.239,0:03:41.680 -also available in nc term - -0:03:40.000,0:03:43.840 -and it works also on b term and it - -0:03:41.680,0:03:44.720 -follows me so if I go to tmp I'll get - -0:03:43.840,0:03:48.000 -the tmp - -0:03:44.720,0:03:48.640 -if I ssh to a remote server it will work - -0:03:48.000,0:03:51.120 -also - -0:03:48.640,0:03:53.920 -on remote servers as well which is a - -0:03:51.120,0:03:55.760 -very nice way to edit files remotely - -0:03:53.920,0:03:57.360 -while we're working on a shelf and - -0:03:55.760,0:03:59.599 -second while vterm - -0:03:57.360,0:04:02.159 -is not an e-lisp interpreter like - -0:03:59.599,0:04:06.080 -initial what we can do is we can - -0:04:02.159,0:04:08.319 -still run inbox functions so for example - -0:04:06.080,0:04:10.159 -that requires some configuration the - -0:04:08.319,0:04:12.480 -term - -0:04:10.159,0:04:14.000 -command message I as you see there's a - -0:04:12.480,0:04:16.239 -higher so what I'm doing - -0:04:14.000,0:04:17.199 -is I'm executing the eagles function I - -0:04:16.239,0:04:19.840 -and I can drop that - -0:04:17.199,0:04:20.320 -and turn it around uh hash function to - -0:04:19.840,0:04:24.880 -run - -0:04:20.320,0:04:27.600 -a-list functions or another one file see - -0:04:24.880,0:04:28.800 -we call this feature message passing and - -0:04:27.600,0:04:30.880 -it requires - -0:04:28.800,0:04:32.000 -some configuration on the emac side as - -0:04:30.880,0:04:34.000 -well as in the shell side - -0:04:32.000,0:04:35.360 -it's important to stress what's the - -0:04:34.000,0:04:37.360 -nature of feature - -0:04:35.360,0:04:39.120 -for instance every time I'm sending a - -0:04:37.360,0:04:40.800 -key binding it's not immediately clear - -0:04:39.120,0:04:42.720 -if my intention is to send it to the - -0:04:40.800,0:04:44.320 -shell or to imax so v term implements - -0:04:42.720,0:04:46.800 -some reasonable defaults - -0:04:44.320,0:04:49.120 -but at the moment it's mainly packaged - -0:04:46.800,0:04:51.199 -to display characters on a screen - -0:04:49.120,0:04:53.600 -so for example if you're using evil the - -0:04:51.199,0:04:55.759 -editing commands in evil will not work - -0:04:53.600,0:04:57.840 -immediately there's some work to be done - -0:04:55.759,0:04:58.479 -and integration can be improved on that - -0:04:57.840,0:05:00.240 -side but - -0:04:58.479,0:05:02.240 -sometimes we really want this to behave - -0:05:00.240,0:05:05.440 -exactly like a imax buffer - -0:05:02.240,0:05:07.039 -we want to be able to search if - -0:05:05.440,0:05:08.880 -if I try to get it to search it will not - -0:05:07.039,0:05:09.360 -work I will send it to the shop so to do - -0:05:08.880,0:05:12.400 -that - -0:05:09.360,0:05:12.800 -we enabled the term copy mode so as you - -0:05:12.400,0:05:15.280 -see - -0:05:12.800,0:05:17.039 -copy mode and now this buffer is - -0:05:15.280,0:05:21.120 -essentially a fundamental buffer - -0:05:17.039,0:05:24.400 -I can move around as I can search - -0:05:21.120,0:05:25.840 -uh so it must have I - -0:05:24.400,0:05:27.120 -can do everything I want and there are - -0:05:25.840,0:05:29.600 -additional features for example I can - -0:05:27.120,0:05:31.440 -jump around - -0:05:29.600,0:05:32.639 -all the prompts and I find this - -0:05:31.440,0:05:34.400 -extremely useful - -0:05:32.639,0:05:35.919 -because I can copy update from my - -0:05:34.400,0:05:39.199 -programs or - -0:05:35.919,0:05:42.400 -what I always have to do is I have to - -0:05:39.199,0:05:43.120 -google some errors so what I do is I - -0:05:42.400,0:05:45.919 -select that - -0:05:43.120,0:05:46.880 -and I have my keybinding in maksakov and - -0:05:45.919,0:05:49.199 -I'm googling - -0:05:46.880,0:05:50.400 -what I have to google so this is very - -0:05:49.199,0:05:52.800 -nice and - -0:05:50.400,0:05:54.400 -if I now that have selected something if - -0:05:52.800,0:05:57.120 -I just press return I will - -0:05:54.400,0:05:57.440 -go back to my normal editing mode with - -0:05:57.120,0:06:00.400 -the - -0:05:57.440,0:06:01.600 -text copied so I can paste it back so - -0:06:00.400,0:06:04.160 -it's a quick way to - -0:06:01.600,0:06:06.400 -interact with copy and interact with uh - -0:06:04.160,0:06:07.840 -with the output of a buffer so finally - -0:06:06.400,0:06:10.560 -let's discuss how to actually - -0:06:07.840,0:06:12.400 -use beta let's circle back and let's go - -0:06:10.560,0:06:14.400 -and let's look at the github repo - -0:06:12.400,0:06:15.520 -where development is happening v term is - -0:06:14.400,0:06:17.919 -available in velpa - -0:06:15.520,0:06:18.960 -but since it's leveraging the power of - -0:06:17.919,0:06:20.639 -an external module - -0:06:18.960,0:06:22.000 -you must have Emacs compiled with - -0:06:20.639,0:06:25.600 -support for modules - -0:06:22.000,0:06:27.199 -and many distros like ubuntu debian - -0:06:25.600,0:06:29.840 -that's not there so you have to get - -0:06:27.199,0:06:30.160 -Emacs with support for modules compiling - -0:06:29.840,0:06:32.000 -or - -0:06:30.160,0:06:33.840 -getting images somewhere else and also - -0:06:32.000,0:06:34.400 -the first time you are going to use this - -0:06:33.840,0:06:37.440 -which - -0:06:34.400,0:06:40.319 -works only on mac or - -0:06:37.440,0:06:41.759 -new linux systems Emacs will try to find - -0:06:40.319,0:06:43.680 -and compile this module - -0:06:41.759,0:06:45.440 -so it's important this requirement is - -0:06:43.680,0:06:47.600 -important if you're using windows - -0:06:45.440,0:06:49.199 -well that's not it's not available and - -0:06:47.600,0:06:52.560 -will not work - -0:06:49.199,0:06:53.440 -so to conclude I want to just advertise - -0:06:52.560,0:06:56.240 -this page - -0:06:53.440,0:06:57.120 -if you have problems look at the issues - -0:06:56.240,0:06:59.039 -and - -0:06:57.120,0:07:00.800 -open unusual in case we'll try to help - -0:06:59.039,0:07:02.639 -you we are very excited about feature - -0:07:00.800,0:07:10.319 -and I think it's a transformative - -0:07:02.639,0: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.sbv b/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--questions--gabriele-bozzola-sbozzolo-autogen.sbv deleted file mode 100644 index 50e8e376..00000000 --- a/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--questions--gabriele-bozzola-sbozzolo-autogen.sbv +++ /dev/null @@ -1,384 +0,0 @@ -0:00:01.520,0:00:05.279 -okay I mean can you hear me yep I can - -0:00:03.360,0:00:07.200 -hear you can you hear me - -0:00:05.279,0:00:08.480 -yes perfect so gabrielle uh if you want - -0:00:07.200,0:00:09.280 -to start answering questions and by the - -0:00:08.480,0:00:10.880 -way people for the - -0:00:09.280,0:00:12.400 -for the stream I'm actually on a phone - -0:00:10.880,0:00:13.360 -call right now so the quality might be a - -0:00:12.400,0:00:17.199 -little bad - -0:00:13.360,0:00:20.480 -but we're trying our best - -0:00:17.199,0:00:22.800 -hello uh thanks for attending my talk - -0:00:20.480,0:00:24.000 -I see four questions on the user product - -0:00:22.800,0:00:27.039 -I'm going to answer - -0:00:24.000,0:00:29.039 -them okay so the first one is - -0:00:27.039,0:00:31.119 -can you put your test space from up - -0:00:29.039,0:00:31.840 -somewhere uh yes they're very simple - -0:00:31.119,0:00:33.680 -skips - -0:00:31.840,0:00:35.520 -uh I'll find a way to distribute them - -0:00:33.680,0:00:37.600 -somehow - -0:00:35.520,0:00:38.800 -that's so that's an easy one the second - -0:00:37.600,0:00:40.559 -one is more difficult it's more - -0:00:38.800,0:00:44.320 -difficult it's the differences between - -0:00:40.559,0:00:47.360 -e shell and v term so I did very basic - -0:00:44.320,0:00:50.399 -level the main difference is that v - -0:00:47.360,0:00:52.800 -term is implemented with - -0:00:50.399,0:00:53.840 -as a bridge between Emacs and an - -0:00:52.800,0:00:56.079 -external library - -0:00:53.840,0:00:57.039 -which means that most of the code base - -0:00:56.079,0:01:00.320 -is actually c - -0:00:57.039,0:01:01.280 -it's not easy uh this is is a critical - -0:01:00.320,0:01:03.760 -difference - -0:01:01.280,0:01:04.320 -uh in terms of performance in terms of - -0:01:03.760,0:01:06.960 -speed - -0:01:04.320,0:01:07.360 -and all the other uh features that we - -0:01:06.960,0:01:10.400 -can - -0:01:07.360,0:01:13.119 -inherit from this library so vterm - -0:01:10.400,0:01:13.600 -is similar to a real terminal it's not - -0:01:13.119,0:01:15.840 -as - -0:01:13.600,0:01:17.040 -uh it's not like a shell it's a real - -0:01:15.840,0:01:19.600 -terminal emulator - -0:01:17.040,0:01:20.479 -that can actually uh display but - -0:01:19.600,0:01:22.960 -manipulate the - -0:01:20.479,0:01:23.520 -terminal in pretty much any way whereas - -0:01:22.960,0:01:25.759 -isha - -0:01:23.520,0:01:26.640 -is simply a way to interact with your - -0:01:25.759,0:01:29.680 -system - -0:01:26.640,0:01:31.840 -in the data page we have a more - -0:01:29.680,0:01:33.520 -complete discussion about this topic and - -0:01:31.840,0:01:34.799 -where we compare v-terms with e-shell - -0:01:33.520,0:01:38.720 -with shell with nc - -0:01:34.799,0:01:40.640 -term as well I think so - -0:01:38.720,0:01:42.000 -I think just to conclude this I think - -0:01:40.640,0:01:44.079 -eshell and v term - -0:01:42.000,0:01:45.280 -are somehow orthogonal in the sense that - -0:01:44.079,0:01:46.880 -v3 is before a - -0:01:45.280,0:01:49.439 -full complete terminal experience - -0:01:46.880,0:01:50.240 -whereas isil is more for specific tasks - -0:01:49.439,0:01:53.280 -of this - -0:01:50.240,0:01:55.759 -uh which are not like terminal uh - -0:01:53.280,0:01:56.799 -interfaces you know like page stock this - -0:01:55.759,0:01:59.759 -kind of stuff - -0:01:56.799,0:02:01.200 -uh the next question is uh is there a - -0:01:59.759,0:02:02.560 -plan to avoid compilation of the initial - -0:02:01.200,0:02:05.759 -completion steps - -0:02:02.560,0:02:08.000 -so since the term is based on again - -0:02:05.759,0:02:08.800 -on an external module we need to combine - -0:02:08.000,0:02:10.800 -this module - -0:02:08.800,0:02:11.920 -and we're using the dynamic module - -0:02:10.800,0:02:13.920 -system to - -0:02:11.920,0:02:16.239 -be able to interface with this module - -0:02:13.920,0:02:18.879 -and this requires - -0:02:16.239,0:02:20.160 -us to compile the module at least the - -0:02:18.879,0:02:23.920 -very first time you start - -0:02:20.160,0:02:26.720 -the I don't think we can do - -0:02:23.920,0:02:28.480 -without that in the near future we need - -0:02:26.720,0:02:31.599 -to compile this - -0:02:28.480,0:02:33.360 -and we must there's no way around - -0:02:31.599,0:02:36.720 -if we cannot simply distribute the - -0:02:33.360,0:02:36.720 -module um - -0:02:37.440,0:02:40.480 -if you want to think very long term - -0:02:39.519,0:02:42.959 -maybe - -0:02:40.480,0:02:43.599 -uh but I think there's no current plan - -0:02:42.959,0:02:45.760 -to - -0:02:43.599,0:02:47.280 -avoid the compilation as the very first - -0:02:45.760,0:02:50.400 -step the first time you - -0:02:47.280,0:02:50.959 -uh run vtor however all the subsequent - -0:02:50.400,0:02:54.720 -times - -0:02:50.959,0:02:57.840 -you will not have to compile peter um - -0:02:54.720,0:02:58.720 -so for question four it's uh I have a - -0:02:57.840,0:03:01.920 -nice looking problem - -0:02:58.720,0:03:04.159 -thanks uh and if - -0:03:01.920,0:03:05.599 -there's a git repo where you can see it - -0:03:04.159,0:03:08.560 -or something like that - -0:03:05.599,0:03:09.760 -so if you go to my github repo I have - -0:03:08.560,0:03:12.560 -adobe files - -0:03:09.760,0:03:13.840 -repo but look at that it's terrible it's - -0:03:12.560,0:03:16.800 -super updated - -0:03:13.840,0:03:17.519 -so I've been meaning to polish it for - -0:03:16.800,0:03:20.080 -like years - -0:03:17.519,0:03:21.760 -and I haven't got it so don't look at it - -0:03:20.080,0:03:25.200 -my font is actually extremely simple - -0:03:21.760,0:03:26.640 -I think it's the pure prompt from uh zsh - -0:03:25.200,0:03:28.799 -or fish depending - -0:03:26.640,0:03:30.640 -uh and I think I didn't do anything but - -0:03:28.799,0:03:31.360 -like maybe tweaking the colors a little - -0:03:30.640,0:03:33.280 -bit - -0:03:31.360,0:03:35.519 -okay gabriel just sorry to interject if - -0:03:33.280,0:03:37.120 -you could just take one more question - -0:03:35.519,0:03:39.440 -yes the last question is already the - -0:03:37.120,0:03:42.480 -answer which is uh will it work with - -0:03:39.440,0:03:44.480 -e max terminal so minus and w and answer - -0:03:42.480,0:03:46.239 -yes it works without any problem with - -0:03:44.480,0:03:47.760 -imax terminal so you can run a terminal - -0:03:46.239,0:03:49.680 -inside image inside of terminal - -0:03:47.760,0:03:51.200 -and you can continue paying up as much - -0:03:49.680,0:03:53.920 -as you want okay - -0:03:51.200,0:03:56.239 -I think that's it explain the question - -0:03:53.920,0:03:59.760 -oh sorry thank you - -0:03:56.239,0:04:01.519 -thanks for attending this talk - -0:03:59.760,0:04:03.360 -well thank you so much for giving it so - -0:04:01.519,0:04:07.280 -I'm in back to you - -0:04:03.360,0:04:09.519 -you are now unmuted thank you very much - -0:04:07.280,0:04:11.200 -to gabrielle for the awesome talk and - -0:04:09.519,0:04:14.319 -for taking live questions - -0:04:11.200,0:04:15.200 -and also many thanks to leo for getting - -0:04:14.319,0:04:18.720 -through to gabriel - -0:04:15.200,0:04:20.720 -via phone in the face of gabriel having - -0:04:18.720,0:04:24.160 -technical difficulties - -0:04:20.720,0:04:24.160 -with using big blue button - diff --git a/2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--grant-shangreaux-autogen.sbv b/2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--grant-shangreaux-autogen.sbv deleted file mode 100644 index 8b6fdc13..00000000 --- a/2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--grant-shangreaux-autogen.sbv +++ /dev/null @@ -1,858 +0,0 @@ -0:00:10.480,0:00:15.040 -hello relatives - -0:00:11.519,0:00:18.960 -grant shangri is what they call me - -0:00:15.040,0:00:22.160 -and all of you I gladly take your hand - -0:00:18.960,0:00:25.199 -and shake it um - -0:00:22.160,0:00:25.199 -greetings everyone - -0:00:26.240,0:00:30.480 -today I'm going to talk about lakota - -0:00:28.560,0:00:33.680 -language and Emacs and how - -0:00:30.480,0:00:36.000 -free software and Emacs empowered me to - -0:00:33.680,0:00:38.960 -write on the computer in the language of - -0:00:36.000,0:00:38.960 -my ancestors - -0:00:39.520,0:00:45.760 -um start off the look with the story of - -0:00:42.640,0:00:48.800 -lakotiappi the lakota language - -0:00:45.760,0:00:52.160 -the lakota dakota dialect area - -0:00:48.800,0:00:55.600 -for those of you who you don't know - -0:00:52.160,0:00:56.840 -the lakota dakota people are also known - -0:00:55.600,0:00:59.760 -as the sioux - -0:00:56.840,0:01:03.120 -and the tribes cover an - -0:00:59.760,0:01:05.199 -area of roughly 10 us states and parts - -0:01:03.120,0:01:08.479 -of canada and so this language is - -0:01:05.199,0:01:10.880 -spoken over a wide range of of - -0:01:08.479,0:01:10.880 -area - -0:01:11.520,0:01:16.640 -however the us government policy - -0:01:14.400,0:01:18.640 -directly tried to silence this language - -0:01:16.640,0:01:20.960 -my father was taken to a boarding school - -0:01:18.640,0:01:23.280 -and was punished for speaking - -0:01:20.960,0:01:25.119 -his native language and so he didn't - -0:01:23.280,0:01:28.880 -teach it to his children - -0:01:25.119,0:01:29.600 -several generations of lakota and dakota - -0:01:28.880,0:01:31.600 -people - -0:01:29.600,0:01:32.640 -and other tribes all over the country - -0:01:31.600,0:01:34.560 -lost - -0:01:32.640,0:01:38.320 -lost their first language their native - -0:01:34.560,0:01:41.040 -language so today only around 2000 - -0:01:38.320,0:01:43.119 -first first language native speakers are - -0:01:41.040,0:01:44.960 -speaking lakota - -0:01:43.119,0:01:47.600 -however there's language recovery - -0:01:44.960,0:01:49.759 -projects that are empowering - -0:01:47.600,0:01:51.720 -second language learners like myself to - -0:01:49.759,0:01:54.479 -teach it to the new generation of - -0:01:51.720,0:01:57.119 -children um - -0:01:54.479,0:01:58.000 -which brings me to my story um I grew up - -0:01:57.119,0:02:00.880 -without knowing - -0:01:58.000,0:02:01.520 -my heritage um I didn't know who my - -0:02:00.880,0:02:04.719 -father was - -0:02:01.520,0:02:07.119 -both my parents were white um - -0:02:04.719,0:02:08.720 -I discovered my biological family in - -0:02:07.119,0:02:12.160 -around 2015 - -0:02:08.720,0:02:13.840 -was kind of a shock to me up until that - -0:02:12.160,0:02:15.520 -point probably the only time I'd heard - -0:02:13.840,0:02:18.720 -the lakota language was in - -0:02:15.520,0:02:20.720 -the movie dances with wolves possibly - -0:02:18.720,0:02:24.160 -some other times - -0:02:20.720,0:02:27.200 -around nebraska I'd heard it um but - -0:02:24.160,0:02:28.319 -even myself growing up you know pretty - -0:02:27.200,0:02:30.560 -close to - -0:02:28.319,0:02:32.239 -to lakota people and other native - -0:02:30.560,0:02:34.560 -american people - -0:02:32.239,0:02:36.640 -american indian people I kind of thought - -0:02:34.560,0:02:39.760 -it was just dead I thought the language - -0:02:36.640,0:02:42.000 -was not alive anymore um - -0:02:39.760,0:02:43.920 -but in 2016 my daughter began her - -0:02:42.000,0:02:46.720 -journey into this world and I - -0:02:43.920,0:02:48.239 -I was doing a lot of searching to find - -0:02:46.720,0:02:50.560 -out like what could I do - -0:02:48.239,0:02:51.920 -you know not knowing my family not - -0:02:50.560,0:02:54.080 -knowing my culture - -0:02:51.920,0:02:55.280 -what could I do to try to bring that - -0:02:54.080,0:02:58.640 -into our life - -0:02:55.280,0:03:00.720 -um and so I found out about these - -0:02:58.640,0:03:02.720 -lakota classes that were happening I - -0:03:00.720,0:03:04.560 -went up to standing rock - -0:03:02.720,0:03:06.640 -in north dakota and attended the lakota - -0:03:04.560,0:03:08.480 -summer institute for three weeks - -0:03:06.640,0:03:09.680 -and began my journey to learn the - -0:03:08.480,0:03:13.120 -language so I can - -0:03:09.680,0:03:16.400 -try to pass it on so - -0:03:13.120,0:03:16.400 -this brings us to Emacs - -0:03:16.560,0:03:20.959 -I could talk a lot more about my story - -0:03:19.200,0:03:24.640 -I'm sure there's a lot to say - -0:03:20.959,0:03:26.319 -but we're here to talk about Emacs um - -0:03:24.640,0:03:29.040 -I was already a free software user at - -0:03:26.319,0:03:31.440 -the time and at the lakota language - -0:03:29.040,0:03:33.280 -uh institute they they were they're - -0:03:31.440,0:03:34.879 -giving us software there's a dictionary - -0:03:33.280,0:03:37.360 -you could get on android - -0:03:34.879,0:03:38.560 -um there was a keyboard for android that - -0:03:37.360,0:03:41.760 -you could type with - -0:03:38.560,0:03:44.959 -they had keyboard input methods for mac - -0:03:41.760,0:03:46.720 -and windows but I'm a linux user free - -0:03:44.959,0:03:49.280 -software user - -0:03:46.720,0:03:49.760 -so I didn't have access to those things - -0:03:49.280,0:03:53.120 -as - -0:03:49.760,0:03:55.280 -as easily as I could and I do a lot of - -0:03:53.120,0:03:57.280 -my thinking and note taking in Emacs and - -0:03:55.280,0:04:01.200 -in org mode - -0:03:57.280,0:04:04.640 -and so being able to to write this - -0:04:01.200,0:04:07.680 -to to um to write things down to type - -0:04:04.640,0:04:08.720 -on my own computer uh was was pretty - -0:04:07.680,0:04:11.360 -important to me - -0:04:08.720,0:04:12.799 -and I wasn't much of an emax hacker yet - -0:04:11.360,0:04:15.519 -at the time I had - -0:04:12.799,0:04:16.720 -barely done anything mostly just you - -0:04:15.519,0:04:20.479 -know hacked on my - -0:04:16.720,0:04:23.600 -config file but this was a real - -0:04:20.479,0:04:27.280 -chance for me to experience - -0:04:23.600,0:04:30.400 -the the benefits of free software first - -0:04:27.280,0:04:33.680 -hand and not just to benefit myself but - -0:04:30.400,0:04:33.680 -to potentially benefit - -0:04:34.080,0:04:38.800 -everyone anyone interested in learning - -0:04:36.080,0:04:38.800 -this language - -0:04:39.120,0:04:44.880 -so Emacs and - -0:04:42.880,0:04:47.520 -that free software philosophy really - -0:04:44.880,0:04:49.840 -empowered me so I began digging in - -0:04:47.520,0:04:51.520 -um I looked I began reading the the - -0:04:49.840,0:04:53.680 -manual more closely - -0:04:51.520,0:04:55.440 -as an american I'm I'm sad to say - -0:04:53.680,0:04:58.479 -there's not a lot of - -0:04:55.440,0:05:00.160 -other languages spoken or written where - -0:04:58.479,0:05:02.240 -I'm from - -0:05:00.160,0:05:04.720 -so it's not common that I that I have to - -0:05:02.240,0:05:07.600 -think about this with computers - -0:05:04.720,0:05:09.120 -I know international people you know - -0:05:07.600,0:05:11.280 -have had to come up with - -0:05:09.120,0:05:12.160 -with interesting ways to to enter their - -0:05:11.280,0:05:14.800 -text - -0:05:12.160,0:05:16.320 -and Emacs is probably a pioneer in that - -0:05:14.800,0:05:17.520 -I I'd like to know more about the - -0:05:16.320,0:05:19.840 -history of this but - -0:05:17.520,0:05:22.160 -there's a whole section in the manual on - -0:05:19.840,0:05:23.840 -international Emacs - -0:05:22.160,0:05:25.440 -and I began reading this and I was - -0:05:23.840,0:05:28.000 -talking about - -0:05:25.440,0:05:29.759 -different input methods and and how many - -0:05:28.000,0:05:31.680 -different languages were supported and - -0:05:29.759,0:05:33.680 -how you could enter the text and how it - -0:05:31.680,0:05:34.560 -supports the different characters and so - -0:05:33.680,0:05:36.639 -on - -0:05:34.560,0:05:38.880 -um I even noticed a few languages - -0:05:36.639,0:05:41.840 -support several input methods - -0:05:38.880,0:05:43.440 -that became important for me later on as - -0:05:41.840,0:05:45.280 -I was working on this - -0:05:43.440,0:05:46.720 -many many languages are already - -0:05:45.280,0:05:48.479 -supported so - -0:05:46.720,0:05:50.080 -those of you who haven't looked into - -0:05:48.479,0:05:52.639 -this yet if you press - -0:05:50.080,0:05:53.680 -control backslash it will open up a - -0:05:52.639,0:05:57.039 -selection menu - -0:05:53.680,0:05:59.120 -for you to to select um - -0:05:57.039,0:06:01.440 -your input method and you can there's - -0:05:59.120,0:06:03.120 -207 listed here - -0:06:01.440,0:06:04.639 -that's including the two that I've - -0:06:03.120,0:06:09.199 -contributed - -0:06:04.639,0:06:11.120 -um so 205 on on a vanilla Emacs - -0:06:09.199,0:06:13.840 -so that's a lot of languages supported - -0:06:11.120,0:06:17.440 -by emac Emacs but there's so many more - -0:06:13.840,0:06:19.280 -that could be um and since Emacs is free - -0:06:17.440,0:06:20.000 -software and it is what it is I knew - -0:06:19.280,0:06:22.639 -that defining - -0:06:20.000,0:06:23.039 -a new input method was surely possible - -0:06:22.639,0:06:25.440 -um - -0:06:23.039,0:06:27.120 -unfortunately the the manual didn't - -0:06:25.440,0:06:28.800 -describe it directly or at least I - -0:06:27.120,0:06:30.960 -didn't pick it up so - -0:06:28.800,0:06:32.319 -um you know the new emax hacker that I - -0:06:30.960,0:06:34.880 -was I - -0:06:32.319,0:06:37.360 -I timidly dove down into the source code - -0:06:34.880,0:06:40.479 -and discovered the quail package - -0:06:37.360,0:06:40.960 -um so back in the day apparently there - -0:06:40.479,0:06:44.240 -was - -0:06:40.960,0:06:44.240 -mule which is like the - -0:06:44.560,0:06:48.000 -multi I don't I don't know it stood for - -0:06:47.360,0:06:50.160 -something about - -0:06:48.000,0:06:51.759 -language environments and and it has - -0:06:50.160,0:06:54.960 -evolved - -0:06:51.759,0:06:58.000 -and at some point um some japanese - -0:06:54.960,0:06:59.039 -uh coders created an input method called - -0:06:58.000,0:07:03.599 -tamago - -0:06:59.039,0:07:06.720 -which means egg in japanese and uh - -0:07:03.599,0:07:08.800 -tamago evolved into quail and they - -0:07:06.720,0:07:10.720 -in the comments you can see they talk - -0:07:08.800,0:07:12.800 -about how the quail egg is eaten in - -0:07:10.720,0:07:15.280 -japan it's a smaller thing and - -0:07:12.800,0:07:16.960 -the quail mode is like a nicer version - -0:07:15.280,0:07:19.039 -of tamago I guess and - -0:07:16.960,0:07:22.639 -there's a pun saying they hoped it would - -0:07:19.039,0:07:26.240 -egg people on to create more input modes - -0:07:22.639,0:07:28.479 -and quail is quite nice I looked into it - -0:07:26.240,0:07:30.720 -and there's basically two things you use - -0:07:28.479,0:07:32.240 -quail defined package and quail define - -0:07:30.720,0:07:35.759 -rules - -0:07:32.240,0:07:35.759 -so quail defined package - -0:07:36.080,0:07:41.759 -you can see here is a function it's - -0:07:38.960,0:07:43.599 -probably a macro that takes a name - -0:07:41.759,0:07:44.879 -a language a title and some optional - -0:07:43.599,0:07:48.080 -stuff which - -0:07:44.879,0:07:48.080 -I didn't really have to deal with - -0:07:48.319,0:07:52.400 -define name is a new quail package for - -0:07:50.479,0:07:52.879 -input language title is a string to be - -0:07:52.400,0:07:54.400 -split - -0:07:52.879,0:07:56.800 -at the mode line to indicate this - -0:07:54.400,0:07:56.800 -package - -0:07:57.120,0:08:03.039 -so I began trying to do lakota input now - -0:08:00.879,0:08:04.240 -this is a whole thing on its own because - -0:08:03.039,0:08:07.680 -the lakota language - -0:08:04.240,0:08:10.800 -was never written um - -0:08:07.680,0:08:12.879 -pre-contact and post contact - -0:08:10.800,0:08:14.800 -like there's several attempts at writing - -0:08:12.879,0:08:16.960 -it and different orthographies - -0:08:14.800,0:08:19.199 -and there's drama around all of this - -0:08:16.960,0:08:19.199 -stuff - -0:08:19.360,0:08:24.160 -it's pretty common to have drama going - -0:08:21.120,0:08:26.560 -on in any american indian stuff - -0:08:24.160,0:08:28.479 -going on so as I was doing this I - -0:08:26.560,0:08:29.680 -started with the suggested lakota - -0:08:28.479,0:08:32.880 -orthography which - -0:08:29.680,0:08:35.680 -is actually called by its authors the - -0:08:32.880,0:08:36.959 -the standard lakota orthography but its - -0:08:35.680,0:08:40.880 -authors are - -0:08:36.959,0:08:43.039 -um are european - -0:08:40.880,0:08:45.040 -um the main author is a man named jan - -0:08:43.039,0:08:46.160 -ulrich and I appreciate all his work and - -0:08:45.040,0:08:49.360 -I'm grateful for - -0:08:46.160,0:08:51.040 -the materials he's made available but um - -0:08:49.360,0:08:54.160 -it's a little bit problematic because - -0:08:51.040,0:08:56.720 -it's not an orthography created by - -0:08:54.160,0:08:57.920 -our people by lakota people so there's - -0:08:56.720,0:09:00.080 -another one called the white hat - -0:08:57.920,0:09:01.839 -orthography which is created by albert - -0:09:00.080,0:09:04.480 -whitehat who's a teacher - -0:09:01.839,0:09:05.360 -um from the chichanguk tribe so I - -0:09:04.480,0:09:08.640 -created two - -0:09:05.360,0:09:10.720 -and thankfully emax lets me do that so - -0:09:08.640,0:09:11.680 -it's pretty simple quail defined package - -0:09:10.720,0:09:13.279 -I just - -0:09:11.680,0:09:15.360 -say the package I want and then all - -0:09:13.279,0:09:16.480 -these nils and t's for options I don't - -0:09:15.360,0:09:18.240 -actually know what they mean but it - -0:09:16.480,0:09:20.240 -works - -0:09:18.240,0:09:22.640 -I could look it up and then quail define - -0:09:20.240,0:09:23.600 -rules just defines mappings from ascii - -0:09:22.640,0:09:26.640 -keys to - -0:09:23.600,0:09:29.680 -the the text you want to put in so - -0:09:26.640,0:09:33.600 -for this one there's a nasal n and then - -0:09:29.680,0:09:36.640 -a dot and a macron like a wedge shape - -0:09:33.600,0:09:39.839 -for marking up the consonants - -0:09:36.640,0:09:41.760 -so that one's pretty easy and then the - -0:09:39.839,0:09:43.040 -suggested lakota orthography is a little - -0:09:41.760,0:09:45.600 -bit more difficult - -0:09:43.040,0:09:46.800 -but still pretty easy I just map a - -0:09:45.600,0:09:49.760 -sequence of keys - -0:09:46.800,0:09:51.760 -a followed by the apostrophe makes the - -0:09:49.760,0:09:53.519 -accented vowels so all of those - -0:09:51.760,0:09:55.839 -and then again we have the hot checks - -0:09:53.519,0:09:58.399 -for the guttural sounds of the language - -0:09:55.839,0:09:59.120 -and the nasal end so that's it basically - -0:09:58.399,0:10:02.480 -these two - -0:09:59.120,0:10:06.560 -definitions allow me to type - -0:10:02.480,0:10:09.279 -lakota language in Emacs um - -0:10:06.560,0:10:09.920 -and it's great it works great publishing - -0:10:09.279,0:10:11.760 -it - -0:10:09.920,0:10:13.839 -is another problematic thing I wanted to - -0:10:11.760,0:10:16.079 -use free software to do that - -0:10:13.839,0:10:17.600 -so the first thing I did was I I posted - -0:10:16.079,0:10:19.440 -on sourcehut - -0:10:17.600,0:10:20.959 -which is great it's a good alternative - -0:10:19.440,0:10:22.880 -for a git forge - -0:10:20.959,0:10:24.000 -and I got it published on melba so the - -0:10:22.880,0:10:25.760 -lakota input - -0:10:24.000,0:10:27.760 -package is available if you'd like to - -0:10:25.760,0:10:29.839 -try it out - -0:10:27.760,0:10:31.680 -and bandali one of our hosts for the - -0:10:29.839,0:10:33.200 -conference is helping me now - -0:10:31.680,0:10:35.279 -through the process of committing the - -0:10:33.200,0:10:37.120 -code to Emacs - -0:10:35.279,0:10:39.279 -because I would like to do that I would - -0:10:37.120,0:10:41.680 -like it to be available to everyone - -0:10:39.279,0:10:43.279 -through Emacs itself so that anyone who - -0:10:41.680,0:10:43.920 -wants to use it just has to download - -0:10:43.279,0:10:46.240 -Emacs - -0:10:43.920,0:10:47.120 -and there you go you can type lakota - -0:10:46.240,0:10:50.160 -language - -0:10:47.120,0:10:53.279 -so uh pila maya thank you - -0:10:50.160,0:10:55.920 -all for listening and - -0:10:53.279,0:10:58.320 -I hope to see you around in our Emacs - -0:10:55.920,0:11:04.720 -community - -0:10:58.320,0:11:04.720 -uh day - diff --git a/2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--questions--grant-shangreaux-autogen.sbv b/2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--questions--grant-shangreaux-autogen.sbv deleted file mode 100644 index 864a92c1..00000000 --- a/2020/subtitles/emacsconf-2020--31-lakota-language-and-emacs--questions--grant-shangreaux-autogen.sbv +++ /dev/null @@ -1,411 +0,0 @@ -0:00:05.120,0:00:10.080 -hello - -0:00:05.680,0:00:12.400 -can you hear me yes I can awesome - -0:00:10.080,0:00:13.200 -all right so we have a couple minutes - -0:00:12.400,0:00:15.200 -and - -0:00:13.200,0:00:17.680 -uh it seems a couple questions as well - -0:00:15.200,0:00:20.000 -so take it away - -0:00:17.680,0:00:22.640 -okay I won't share my screen unless - -0:00:20.000,0:00:25.439 -needed um - -0:00:22.640,0:00:27.599 -looks like question one advantages - -0:00:25.439,0:00:31.119 -advantages of using Emacs input methods - -0:00:27.599,0:00:32.559 -over something like x compose - -0:00:31.119,0:00:34.320 -well there's a there's a couple things - -0:00:32.559,0:00:37.360 -there one is - -0:00:34.320,0:00:39.520 -um Emacs is cross platform so - -0:00:37.360,0:00:41.520 -writing this input mode for Emacs means - -0:00:39.520,0:00:44.559 -if I do end up using - -0:00:41.520,0:00:46.480 -a non-free operating system I can still - -0:00:44.559,0:00:49.920 -use Emacs I can still type - -0:00:46.480,0:00:52.800 -in the way that I would like to um - -0:00:49.920,0:00:54.640 -I did look in I don't I actually don't - -0:00:52.800,0:00:56.719 -know what x compose is - -0:00:54.640,0:00:59.680 -I tried looking for it on my system I - -0:00:56.719,0:01:02.399 -could not find it anywhere - -0:00:59.680,0:01:02.879 -I did actually go and figure out how to - -0:01:02.399,0:01:06.080 -write a - -0:01:02.879,0:01:07.040 -x11 keyboard layout so that's also - -0:01:06.080,0:01:09.840 -available - -0:01:07.040,0:01:11.920 -in the repository that has the Emacs - -0:01:09.840,0:01:14.720 -package as well - -0:01:11.920,0:01:15.920 -and it is handy to be able to have that - -0:01:14.720,0:01:20.000 -so I can type in - -0:01:15.920,0:01:20.000 -other applications besides Emacs - -0:01:21.200,0:01:25.119 -but the main advantages for Emacs was it - -0:01:24.479,0:01:27.439 -was actually - -0:01:25.119,0:01:28.560 -much easier to discover and much easier - -0:01:27.439,0:01:31.439 -to - -0:01:28.560,0:01:33.040 -manipulate and get feedback you know as - -0:01:31.439,0:01:35.360 -I was developing it like I could just - -0:01:33.040,0:01:37.200 -evaluate the coil package - -0:01:35.360,0:01:39.680 -try it out and see if it works when I - -0:01:37.200,0:01:40.560 -was trying to do the x11 inputs I'd have - -0:01:39.680,0:01:42.799 -to log out - -0:01:40.560,0:01:43.759 -read and and relog in again to get - -0:01:42.799,0:01:46.240 -things read and - -0:01:43.759,0:01:46.799 -it was you know it doesn't have that - -0:01:46.240,0:01:50.560 -beautiful - -0:01:46.799,0:01:53.040 -interactivity the way that Emacs does so - -0:01:50.560,0:01:54.960 -for me it was a good place to start um - -0:01:53.040,0:01:56.640 -especially because - -0:01:54.960,0:01:58.079 -I had never done anything like this - -0:01:56.640,0:02:00.079 -before like developing - -0:01:58.079,0:02:03.200 -something that felt low level you know - -0:02:00.079,0:02:03.200 -like a keyboard input - -0:02:04.320,0:02:08.479 -I hope that answers your question - -0:02:06.399,0:02:09.280 -question two can you give us a demo of - -0:02:08.479,0:02:12.400 -you typing in - -0:02:09.280,0:02:17.200 -either lakota and input method sure - -0:02:12.400,0:02:17.200 -um share my screen now - -0:02:19.599,0:02:23.840 -of course I always have to select which - -0:02:21.520,0:02:23.840 -one - -0:02:32.239,0:02:37.840 -okay so control backslash opens the - -0:02:36.560,0:02:40.000 -input modes - -0:02:37.840,0:02:41.920 -although when you've selected one you - -0:02:40.000,0:02:45.680 -have it already so - -0:02:41.920,0:02:48.319 -uh yeah wash day - -0:02:45.680,0:02:50.000 -that's it is good washed it so this is - -0:02:48.319,0:02:53.360 -the suggested lakota - -0:02:50.000,0:02:56.560 -orthography or otherwise known as the - -0:02:53.360,0:02:58.800 -standard lakota orthography - -0:02:56.560,0:03:00.640 -another benefit of doing it in Emacs is - -0:02:58.800,0:03:05.840 -that I now get - -0:03:00.640,0:03:05.840 -completion on lakota words so - -0:03:06.800,0:03:10.560 -so I'm you know it's a second language - -0:03:08.800,0:03:11.440 -for me and as I'm trying to learn it - -0:03:10.560,0:03:13.760 -it's actually - -0:03:11.440,0:03:15.599 -quite useful to have company mode as a - -0:03:13.760,0:03:19.200 -bonus um - -0:03:15.599,0:03:19.200 -for typing things - -0:03:19.680,0:03:23.599 -I can show the other orthography so to - -0:03:22.239,0:03:27.200 -to get another one you do - -0:03:23.599,0:03:30.560 -the universal input control u backslash - -0:03:27.200,0:03:33.280 -and I can try the white hat orthography - -0:03:30.560,0:03:33.280 -oh yeah lost - -0:03:36.239,0:03:41.440 -what's the command for that you are now - -0:03:39.760,0:03:44.720 -unmuted - -0:03:41.440,0:03:47.840 -yeah okay you are now muted - -0:03:44.720,0:03:47.840 -thank you - -0:03:48.000,0:03:55.680 -you are now unmuted you are now muted - -0:03:52.080,0:03:58.879 -oops not quite as slick as that other - -0:03:55.680,0:04:02.799 -demo we saw the other day - -0:03:58.879,0:04:04.239 -okay so control u control backslash I - -0:04:02.799,0:04:07.200 -can select a different - -0:04:04.239,0:04:10.560 -input method um from the default so if I - -0:04:07.200,0:04:14.480 -select white hat I can type - -0:04:10.560,0:04:18.000 -wash day like that - -0:04:14.480,0:04:19.919 -so it's a different orthography here um - -0:04:18.000,0:04:21.440 -I won't go too deeply into that it's - -0:04:19.919,0:04:23.120 -hard to think and talk and type all at - -0:04:21.440,0:04:26.320 -the same time - -0:04:23.120,0:04:28.560 -um I hope that's good - -0:04:26.320,0:04:31.840 -I'm happy to do more maybe I'll put up a - -0:04:28.560,0:04:35.840 -video of of demonstrating that sometimes - -0:04:31.840,0:04:35.840 -why did I just go ahead - -0:04:36.479,0:04:42.880 -um time about for like one more question - -0:04:39.520,0:04:45.280 -okay on live yeah thank you - -0:04:42.880,0:04:46.240 -um well real quick did I write the - -0:04:45.280,0:04:48.880 -company back end - -0:04:46.240,0:04:50.639 -no that's just the automatic company - -0:04:48.880,0:04:51.280 -completion based on other things I've - -0:04:50.639,0:04:55.440 -typed - -0:04:51.280,0:04:58.080 -why did I decide on the the input method - -0:04:55.440,0:04:58.880 -that's a good question um I just did it - -0:04:58.080,0:05:03.120 -based on - -0:04:58.880,0:05:04.000 -my experience um in the x input mode you - -0:05:03.120,0:05:06.160 -type it first - -0:05:04.000,0:05:07.120 -and honestly I would love any input on - -0:05:06.160,0:05:09.280 -what's more - -0:05:07.120,0:05:10.960 -usual for these type of combining - -0:05:09.280,0:05:13.919 -letters - -0:05:10.960,0:05:15.360 -and really what I would like to do is - -0:05:13.919,0:05:17.600 -kind of confer with other - -0:05:15.360,0:05:19.440 -people from the tribe and talk to elders - -0:05:17.600,0:05:21.440 -and see - -0:05:19.440,0:05:23.600 -what feels right what what is the best - -0:05:21.440,0:05:24.800 -way to go about this - -0:05:23.600,0:05:26.960 -I don't think that it should be an - -0:05:24.800,0:05:27.919 -individual decision and in this case it - -0:05:26.960,0:05:30.880 -is because - -0:05:27.919,0:05:32.320 -I created it for myself but now that - -0:05:30.880,0:05:34.639 -I've released it to the world I think - -0:05:32.320,0:05:37.680 -there's more to think about - -0:05:34.639,0:05:38.800 -okay I guess I have to go now so we can - -0:05:37.680,0:05:42.320 -get to the next talk - -0:05:38.800,0:05:44.320 -thank you for listening okay - -0:05:42.320,0:05:45.759 -thank you very much grant for your - -0:05:44.320,0:05:50.720 -awesome talk and for - -0:05:45.759,0: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.sbv b/2020/subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.sbv deleted file mode 100644 index 814b5e8a..00000000 --- a/2020/subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.sbv +++ /dev/null @@ -1,2214 +0,0 @@ -0:00:01.839,0:00:05.759 -hello EmacsConf - -0:00:04.160,0:00:07.200 -thanks very much first of all to the - -0:00:05.759,0:00:09.440 -organizers of the conference - -0:00:07.200,0:00:10.480 -and to the audience who I hope is out - -0:00:09.440,0:00:12.080 -there somewhere - -0:00:10.480,0:00:14.240 -uh for giving me this chance to talk - -0:00:12.080,0:00:16.560 -about Emacs and some of my uh - -0:00:14.240,0:00:18.480 -my poking around with Emacs lisp my name - -0:00:16.560,0:00:20.960 -is eric abrahamson I'm not - -0:00:18.480,0:00:21.920 -a professional programmer but I use - -0:00:20.960,0:00:24.800 -Emacs all day - -0:00:21.920,0:00:26.160 -every day for writing for translating - -0:00:24.800,0:00:28.160 -for project management - -0:00:26.160,0:00:29.199 -and most importantly for email which - -0:00:28.160,0:00:32.480 -will be the - -0:00:29.199,0:00:35.440 -subject of my talk today so I'm talking - -0:00:32.480,0:00:38.320 -about object-oriented code in Emacs - -0:00:35.440,0:00:40.160 -uh most famous possibly oldest - -0:00:38.320,0:00:41.760 -definitely most notorious news reader - -0:00:40.160,0:00:44.320 -slash Emacs client - -0:00:41.760,0:00:45.440 -email client so in particular object - -0:00:44.320,0:00:49.520 -oriented code - -0:00:45.440,0:00:49.520 -in news why object-oriented code - -0:00:50.239,0:00:53.600 -the way news works is it started off as - -0:00:51.920,0:00:57.039 -a news reader so for access - -0:00:53.600,0:00:59.120 -accessing nntp servers and later on grew - -0:00:57.039,0:01:01.039 -a whole bunch of new functionality as a - -0:00:59.120,0:01:02.079 -mail client so it can talk to imap - -0:01:01.039,0:01:04.799 -servers - -0:01:02.079,0:01:06.640 -mail dealer directories uh folders on - -0:01:04.799,0:01:08.400 -your file system all kinds of stuff - -0:01:06.640,0:01:09.760 -but it presents a unified interface to - -0:01:08.400,0:01:11.040 -all those things so it's basically - -0:01:09.760,0:01:14.000 -polymorphism - -0:01:11.040,0:01:16.400 -one of the the basic fundamental - -0:01:14.000,0:01:18.720 -principles of object oriented code so - -0:01:16.400,0:01:19.920 -it's a good fit second reason is it - -0:01:18.720,0:01:22.880 -already is - -0:01:19.920,0:01:23.759 -object oriented and I'll get into what - -0:01:22.880,0:01:27.280 -that means - -0:01:23.759,0:01:28.640 -in a second so - -0:01:27.280,0:01:30.640 -the background that you should know is - -0:01:28.640,0:01:32.560 -that most of this code was written in - -0:01:30.640,0:01:34.880 -the 90s - -0:01:32.560,0:01:36.159 -Emacs lisp has only grown sort of - -0:01:34.880,0:01:38.640 -official - -0:01:36.159,0:01:41.200 -object orientation support libraries - -0:01:38.640,0:01:43.840 -over the past 10 years or so - -0:01:41.200,0:01:44.799 -from about 2010 to the present so what - -0:01:43.840,0:01:48.640 -does - -0:01:44.799,0:01:50.560 -news do so the basics of - -0:01:48.640,0:01:52.240 -object orientation in most languages are - -0:01:50.560,0:01:53.759 -you you define - -0:01:52.240,0:01:55.840 -a class of some sort and then you - -0:01:53.759,0:01:58.079 -instantiate that class and these - -0:01:55.840,0:02:00.320 -class instances have two things they - -0:01:58.079,0:02:01.759 -have data attributes or - -0:02:00.320,0:02:04.799 -slots or members or whatever you're - -0:02:01.759,0:02:07.280 -going to call them and they have - -0:02:04.799,0:02:08.399 -methods which operate on individual - -0:02:07.280,0:02:11.120 -instances - -0:02:08.399,0:02:12.879 -so you could say that you create or - -0:02:11.120,0:02:13.920 -instantiate an instance of a class in - -0:02:12.879,0:02:16.239 -that instance - -0:02:13.920,0:02:17.120 -owns two things that owns its set of - -0:02:16.239,0:02:20.239 -attributes - -0:02:17.120,0:02:23.280 -and it owns some methods which - -0:02:20.239,0:02:26.720 -also work on the on the instance - -0:02:23.280,0:02:29.040 -so both in nurse's existing code and in - -0:02:26.720,0:02:30.080 -the more standard object oriented Emacs - -0:02:29.040,0:02:32.480 -lisp libraries - -0:02:30.080,0:02:34.080 -this relationship is turned on its head - -0:02:32.480,0:02:37.599 -a little bit - -0:02:34.080,0:02:40.239 -in that data slots and - -0:02:37.599,0:02:41.360 -uh and instance methods are defined - -0:02:40.239,0:02:42.959 -outside of the - -0:02:41.360,0:02:45.040 -class or the instances themselves so - -0:02:42.959,0:02:46.879 -they are top level definitions - -0:02:45.040,0:02:48.319 -so we'll get to what that means in the - -0:02:46.879,0:02:49.840 -in the newer libraries um - -0:02:48.319,0:02:51.760 -in a bit but uh first I want to talk - -0:02:49.840,0:02:54.319 -about how news does this and in order to - -0:02:51.760,0:02:57.440 -do that we are going to go deep into - -0:02:54.319,0:02:59.879 -the darkest corner of the new co source - -0:02:57.440,0:03:02.879 -code tree to a library called - -0:02:59.879,0:03:05.040 -nno.l very cryptically - -0:03:02.879,0:03:06.800 -titled uh library and when we open it up - -0:03:05.040,0:03:09.519 -we find - -0:03:06.800,0:03:11.040 -a library with no code comments and - -0:03:09.519,0:03:12.800 -almost no doc strings - -0:03:11.040,0:03:14.159 -almost as if lars was a little ashamed - -0:03:12.800,0:03:16.000 -not ashamed but knew he was doing - -0:03:14.159,0:03:19.040 -something a little bit crazy - -0:03:16.000,0:03:21.040 -and didn't want anyone to see so - -0:03:19.040,0:03:22.400 -this file contains the the object - -0:03:21.040,0:03:24.480 -oriented mechanism - -0:03:22.400,0:03:25.760 -whereby you can define different kinds - -0:03:24.480,0:03:27.280 -of back ends for news - -0:03:25.760,0:03:29.760 -and then those back ends can be - -0:03:27.280,0:03:32.480 -instantiated as individual - -0:03:29.760,0:03:33.360 -servers and as you define these backends - -0:03:32.480,0:03:36.000 -you're supposed to use - -0:03:33.360,0:03:36.640 -two macros which you can see here one is - -0:03:36.000,0:03:39.599 -called def - -0:03:36.640,0:03:41.280 -vu and one is called defu and if you - -0:03:39.599,0:03:43.280 -look at the definitions the definitions - -0:03:41.280,0:03:45.440 -look pretty simple here def vu basically - -0:03:43.280,0:03:49.040 -turns into a def var - -0:03:45.440,0:03:52.239 -and foo turns into a defund - -0:03:49.040,0:03:55.760 -and along with those basic definitions - -0:03:52.239,0:03:58.720 -the library also does some registration - -0:03:55.760,0:04:00.080 -memoization caching of those variables - -0:03:58.720,0:04:01.840 -it saves them in the structure - -0:04:00.080,0:04:03.360 -for later use so that we know that those - -0:04:01.840,0:04:05.280 -are meant to be - -0:04:03.360,0:04:06.640 -uh attributes and methods that are used - -0:04:05.280,0:04:08.000 -with instances - -0:04:06.640,0:04:09.280 -with server instances but you can see - -0:04:08.000,0:04:10.560 -that there's no server instance - -0:04:09.280,0:04:13.200 -definition here there's no - -0:04:10.560,0:04:14.239 -like no nothing these are top level - -0:04:13.200,0:04:18.160 -these are top level - -0:04:14.239,0:04:18.639 -definitions so really data attributes - -0:04:18.160,0:04:22.000 -for - -0:04:18.639,0:04:23.840 -new servers and - -0:04:22.000,0:04:25.440 -methods or functions that operate on - -0:04:23.840,0:04:28.400 -those instances are completely - -0:04:25.440,0:04:29.600 -separate mechanisms they don't really - -0:04:28.400,0:04:31.680 -have anything to do with each other they - -0:04:29.600,0:04:36.560 -don't belong to the same data structures - -0:04:31.680,0:04:36.560 -so how do they work follow me - -0:04:37.120,0:04:41.360 -aka methods and attributes these are all - -0:04:39.520,0:04:44.479 -the things I just said - -0:04:41.360,0:04:47.360 -so when you define a - -0:04:44.479,0:04:47.360 -a backend type - -0:04:48.560,0:04:52.400 -in noose what you get is this a - -0:04:51.199,0:04:54.080 -definition a list - -0:04:52.400,0:04:55.520 -and it'll say there is such a back end - -0:04:54.080,0:04:58.880 -as nnml - -0:04:55.520,0:04:59.520 -and these are its uh data attributes - -0:04:58.880,0:05:01.840 -that any - -0:04:59.520,0:05:02.960 -given instance can have and then these - -0:05:01.840,0:05:04.960 -are - -0:05:02.960,0:05:06.880 -the functions or methods that are - -0:05:04.960,0:05:08.960 -defined to operate on - -0:05:06.880,0:05:11.440 -an instance of this backend so a server - -0:05:08.960,0:05:13.360 -that belongs to the nnml - -0:05:11.440,0:05:15.120 -backend so at least we have this data - -0:05:13.360,0:05:16.880 -here so that's that's handy we don't you - -0:05:15.120,0:05:18.000 -don't really touch that that's like very - -0:05:16.880,0:05:20.560 -very very deep - -0:05:18.000,0:05:22.560 -um use code that doesn't really come up - -0:05:20.560,0:05:25.280 -even as a - -0:05:22.560,0:05:26.479 -even as a bug squasher or whatever we - -0:05:25.280,0:05:27.280 -don't touch that very often but there - -0:05:26.479,0:05:30.400 -they are and that's - -0:05:27.280,0:05:32.080 -that's how they work now the next thing - -0:05:30.400,0:05:34.000 -that obviously you want to know is okay - -0:05:32.080,0:05:35.039 -where are if I've started up news where - -0:05:34.000,0:05:37.199 -are my servers - -0:05:35.039,0:05:39.199 -uh where are these server objects since - -0:05:37.199,0:05:41.840 -this is object oriented - -0:05:39.199,0:05:43.199 -programming and the weird thing that you - -0:05:41.840,0:05:45.199 -will eventually - -0:05:43.199,0:05:46.880 -figure out in some cases after years of - -0:05:45.199,0:05:49.199 -poking around in the new source code - -0:05:46.880,0:05:50.320 -is that servers do not exist in an - -0:05:49.199,0:05:53.440 -ontological - -0:05:50.320,0:05:55.440 -philosophical sense as objects the - -0:05:53.440,0:05:57.039 -primary data structures of noose are - -0:05:55.440,0:05:58.960 -groups - -0:05:57.039,0:06:00.720 -and in sort of an object-oriented - -0:05:58.960,0:06:01.759 -hierarchical you know mindset you'd - -0:06:00.720,0:06:03.759 -think well - -0:06:01.759,0:06:05.759 -groups belong to servers so servers must - -0:06:03.759,0:06:08.000 -exist but they don't - -0:06:05.759,0:06:09.360 -each group and here you can see some - -0:06:08.000,0:06:11.199 -examples of groups - -0:06:09.360,0:06:13.039 -these are basically the data structures - -0:06:11.199,0:06:14.960 -that represent a group each group also - -0:06:13.039,0:06:17.039 -has a little entry here that - -0:06:14.960,0:06:18.000 -that tells you what server it belongs to - -0:06:17.039,0:06:20.479 -and each group - -0:06:18.000,0:06:23.120 -replicates that data uh saying which - -0:06:20.479,0:06:24.479 -server it belongs to and so when - -0:06:23.120,0:06:26.160 -nurse is going through doing its - -0:06:24.479,0:06:27.680 -business uh trying to figure out what's - -0:06:26.160,0:06:29.840 -like updating mail from the groups or - -0:06:27.680,0:06:31.600 -whatever almost every time - -0:06:29.840,0:06:32.960 -it will cycle through all the list of - -0:06:31.600,0:06:34.960 -groups it'll - -0:06:32.960,0:06:36.720 -it'll look at all the server definitions - -0:06:34.960,0:06:38.160 -and it will categorize the groups by - -0:06:36.720,0:06:41.120 -server - -0:06:38.160,0:06:42.160 -which which is just weird because you're - -0:06:41.120,0:06:43.840 -sort of looking for okay where does the - -0:06:42.160,0:06:44.479 -server exist it doesn't exist it's put - -0:06:43.840,0:06:48.319 -together - -0:06:44.479,0:06:50.400 -every time uh out of out of code - -0:06:48.319,0:06:51.840 -elsewhere in the news code base - -0:06:50.400,0:06:54.080 -specifically from these group - -0:06:51.840,0:06:55.199 -these group definitions and so this is - -0:06:54.080,0:06:58.080 -very odd because - -0:06:55.199,0:06:58.720 -in in some sense like here this one its - -0:06:58.080,0:07:02.240 -server is - -0:06:58.720,0:07:03.919 -nnml and an empty string so there's a - -0:07:02.240,0:07:04.479 -certain sense here in which this server - -0:07:03.919,0:07:06.400 -is not - -0:07:04.479,0:07:07.759 -really an object at all what it is is a - -0:07:06.400,0:07:08.560 -set of instructions for how to find - -0:07:07.759,0:07:11.199 -messages - -0:07:08.560,0:07:12.800 -and this set of instructions is go to - -0:07:11.199,0:07:15.440 -the default place where the user - -0:07:12.800,0:07:16.000 -might have their mail and expect to find - -0:07:15.440,0:07:18.080 -messages - -0:07:16.000,0:07:19.840 -there in an nml format which is - -0:07:18.080,0:07:22.479 -basically just one message per - -0:07:19.840,0:07:23.840 -um per file and any number of groups - -0:07:22.479,0:07:25.440 -could have those same instructions uh - -0:07:23.840,0:07:26.720 -but they're not it's not really a thing - -0:07:25.440,0:07:28.639 -it's really just a - -0:07:26.720,0:07:30.240 -it's more of a procedural instruction - -0:07:28.639,0:07:31.919 -and on the other end of the spectrum you - -0:07:30.240,0:07:33.599 -might have an nni map - -0:07:31.919,0:07:35.840 -server which very much is a thing it has - -0:07:33.599,0:07:37.759 -its own it has its own server its own - -0:07:35.840,0:07:40.240 -port its own authentication - -0:07:37.759,0:07:41.360 -system so some of the servers are more - -0:07:40.240,0:07:42.400 -like things some of the servers are more - -0:07:41.360,0:07:45.520 -like instructions - -0:07:42.400,0:07:47.280 -as news works right now um these - -0:07:45.520,0:07:48.879 -most of the servers are treated like - -0:07:47.280,0:07:50.879 -just instruction sets - -0:07:48.879,0:07:53.120 -and and there's no place where you can - -0:07:50.879,0:07:55.360 -go and find them there's no one central - -0:07:53.120,0:07:56.160 -uh variable that defines them all so how - -0:07:55.360,0:07:57.520 -do the - -0:07:56.160,0:07:59.520 -um so we'll talk about the methods in a - -0:07:57.520,0:08:02.639 -second how do the data attributes work - -0:07:59.520,0:08:04.479 -uh put very crudely um - -0:08:02.639,0:08:05.919 -your servers when they're put together - -0:08:04.479,0:08:08.080 -uh they are okay they are - -0:08:05.919,0:08:08.960 -kept in a variable and it's called nno - -0:08:08.080,0:08:11.120 -nno - -0:08:08.960,0:08:12.960 -state a list and there's a concept to - -0:08:11.120,0:08:16.560 -this of the current server - -0:08:12.960,0:08:19.039 -so when we go here let's go back to - -0:08:16.560,0:08:20.560 -our nnno definition a list so when we - -0:08:19.039,0:08:22.240 -have an nnml - -0:08:20.560,0:08:24.400 -server say we have one here and it's - -0:08:22.240,0:08:26.639 -just this blank string - -0:08:24.400,0:08:28.879 -these are all when you define that in - -0:08:26.639,0:08:31.919 -your own uh server definition code - -0:08:28.879,0:08:32.399 -you can put in different values for all - -0:08:31.919,0:08:35.760 -of these - -0:08:32.399,0:08:37.039 -various attributes and when noose comes - -0:08:35.760,0:08:38.959 -when it comes time for news to operate - -0:08:37.039,0:08:40.640 -on this server in particular ask it to - -0:08:38.959,0:08:42.080 -you know open a group or get new mail - -0:08:40.640,0:08:45.360 -what it will do is it will take - -0:08:42.080,0:08:45.920 -that particular server's data from these - -0:08:45.360,0:08:47.600 -symbols - -0:08:45.920,0:08:49.600 -and it will copy all that information - -0:08:47.600,0:08:51.760 -into the global devfars - -0:08:49.600,0:08:53.120 -so for the time that you are operating - -0:08:51.760,0:08:55.920 -on this particular server - -0:08:53.120,0:08:56.800 -its individual data becomes the values - -0:08:55.920,0:08:59.360 -of these global - -0:08:56.800,0:09:00.560 -variables which when you realize what's - -0:08:59.360,0:09:02.080 -happening is sort of terrifying you - -0:09:00.560,0:09:04.480 -think oh my god - -0:09:02.080,0:09:05.760 -but at the same time it's actually kind - -0:09:04.480,0:09:07.279 -of impressive and it's amazing that it - -0:09:05.760,0:09:09.120 -works as well as it does - -0:09:07.279,0:09:10.880 -I'm actually a little bit in awe of the - -0:09:09.120,0:09:12.560 -of the code in this in this library I - -0:09:10.880,0:09:15.760 -think it's pretty impressive - -0:09:12.560,0:09:18.320 -so as you nno change server - -0:09:15.760,0:09:20.080 -uh this function here these values get - -0:09:18.320,0:09:21.440 -copied into the global value into the - -0:09:20.080,0:09:22.399 -global variables and then as you go on - -0:09:21.440,0:09:24.000 -the next server - -0:09:22.399,0:09:26.399 -that gets you know cleaned out and - -0:09:24.000,0:09:29.680 -recopied there are a few - -0:09:26.399,0:09:32.000 -um a few other slot types - -0:09:29.680,0:09:33.440 -or attribute types which do because all - -0:09:32.000,0:09:34.720 -of these attributes see they all start - -0:09:33.440,0:09:37.920 -with the nml - -0:09:34.720,0:09:40.560 -or in this case and in folder prefix - -0:09:37.920,0:09:41.760 -but there are a few slot types that all - -0:09:40.560,0:09:43.279 -servers need for - -0:09:41.760,0:09:45.920 -for instance their most recent status - -0:09:43.279,0:09:46.640 -message a status symbol like open denied - -0:09:45.920,0:09:48.080 -whatever - -0:09:46.640,0:09:49.680 -and that data is sort of scattered - -0:09:48.080,0:09:51.200 -around the rest of the news - -0:09:49.680,0:09:53.440 -code base in various variables or - -0:09:51.200,0:09:55.440 -various places - -0:09:53.440,0:09:56.560 -so that's that sort of just contributes - -0:09:55.440,0:09:57.360 -to the confusion when you're trying to - -0:09:56.560,0:10:00.720 -figure out why - -0:09:57.360,0:10:03.839 -things are going wrong so that is our - -0:10:00.720,0:10:05.440 -um nnoo which is and - -0:10:03.839,0:10:07.360 -sort of how the attributes and these - -0:10:05.440,0:10:09.120 -global variables work - -0:10:07.360,0:10:10.480 -if we want to talk about defu and the - -0:10:09.120,0:10:19.839 -methods we - -0:10:10.480,0:10:19.839 -go to - -0:10:20.800,0:10:25.600 -and so this is the place where all the - -0:10:23.200,0:10:27.200 -server level methods are defined - -0:10:25.600,0:10:29.279 -and what we have here are things like - -0:10:27.200,0:10:32.640 -here's an example there's closed server - -0:10:29.279,0:10:36.320 -this closed server is given a - -0:10:32.640,0:10:38.079 -a server as a an argument - -0:10:36.320,0:10:40.560 -it looks at the server and basically it - -0:10:38.079,0:10:42.079 -finds the proper function to call on - -0:10:40.560,0:10:45.120 -this particular server - -0:10:42.079,0:10:45.600 -using the function new skip function by - -0:10:45.120,0:10:48.959 -taking - -0:10:45.600,0:10:49.760 -the sort of latter half of this function - -0:10:48.959,0:10:52.079 -symbol - -0:10:49.760,0:10:53.440 -and pasting it together with the symbol - -0:10:52.079,0:10:56.800 -that represents the back end so - -0:10:53.440,0:10:59.600 -if you were calling this on an nni map - -0:10:56.800,0:11:01.279 -server your skip function would look at - -0:10:59.600,0:11:02.240 -your imap server look at closed server I - -0:11:01.279,0:11:05.120 -knew what - -0:11:02.240,0:11:05.120 -it would come up with - -0:11:07.839,0:11:11.920 -server sure enough there's an imac close - -0:11:10.240,0:11:12.240 -server and it'll call this code and then - -0:11:11.920,0:11:14.000 -it'll - -0:11:12.240,0:11:15.279 -it'll go and do its other bookkeeping - -0:11:14.000,0:11:18.320 -another sort of - -0:11:15.279,0:11:19.279 -surrounding code and so that's not that - -0:11:18.320,0:11:22.640 -actually works pretty well - -0:11:19.279,0:11:24.959 -uh as as things go uh defu - -0:11:22.640,0:11:26.800 -makes a record that this this function - -0:11:24.959,0:11:28.320 -exists and nus gets function get - -0:11:26.800,0:11:29.600 -function looks on that cache finds the - -0:11:28.320,0:11:30.959 -function and calls it - -0:11:29.600,0:11:32.560 -now what's particularly confusing is - -0:11:30.959,0:11:33.360 -that you don't actually even have to use - -0:11:32.560,0:11:35.519 -defu - -0:11:33.360,0:11:38.399 -so whoever wrote and then mail gear - -0:11:35.519,0:11:39.920 -which is a weird library - -0:11:38.399,0:11:41.600 -said to heck with you I'm not using any - -0:11:39.920,0:11:43.120 -of these - -0:11:41.600,0:11:45.839 -any of this machinery I'm going to do it - -0:11:43.120,0:11:49.680 -myself so we have - -0:11:45.839,0:11:52.320 -def structs to hold uh the instance - -0:11:49.680,0:11:53.040 -data and then we have just plain old - -0:11:52.320,0:11:55.680 -defense - -0:11:53.040,0:11:57.279 -for things like animal your close server - -0:11:55.680,0:11:59.279 -request close all of these - -0:11:57.279,0:12:00.320 -these server level uh variables and it - -0:11:59.279,0:12:03.360 -just turns out that - -0:12:00.320,0:12:05.839 -news in its belt and suspenders - -0:12:03.360,0:12:07.279 -approach to uh to coding it'll actually - -0:12:05.839,0:12:10.320 -just go out if it can't find - -0:12:07.279,0:12:12.160 -the memoized function it'll just go out - -0:12:10.320,0:12:14.240 -and say has anybody defined a function - -0:12:12.160,0:12:16.000 -that looks like this pattern and then - -0:12:14.240,0:12:17.920 -and then melder says yes I did and then - -0:12:16.000,0:12:19.920 -we call it and then we go so it's just - -0:12:17.920,0:12:21.440 -it's fine it works it just adds to the - -0:12:19.920,0:12:24.240 -confusion why - -0:12:21.440,0:12:25.440 -why does it work we don't know sometimes - -0:12:24.240,0:12:26.880 -the only thing worse than not knowing - -0:12:25.440,0:12:30.000 -why something doesn't work is - -0:12:26.880,0:12:30.560 -not knowing why something does work um - -0:12:30.000,0:12:31.920 -and then - -0:12:30.560,0:12:33.680 -a last little bit I want to touch on - -0:12:31.920,0:12:35.440 -here is inheritance which is another - -0:12:33.680,0:12:38.480 -sort of cornerstone of object-oriented - -0:12:35.440,0:12:40.160 -coding as far as I can tell only uh - -0:12:38.480,0:12:41.920 -the only inheritance that goes on is in - -0:12:40.160,0:12:45.519 -something called nn male - -0:12:41.920,0:12:48.399 -which provides sort of common functions - -0:12:45.519,0:12:49.360 -for back ends that keep their mail on - -0:12:48.399,0:12:52.000 -your - -0:12:49.360,0:12:53.680 -local machine and you can spool it you - -0:12:52.000,0:12:55.440 -can delete it you can you know you own - -0:12:53.680,0:12:56.160 -the messages it's not like an nntp - -0:12:55.440,0:12:59.040 -server - -0:12:56.160,0:13:00.160 -and so a lot of those male deer nnml - -0:12:59.040,0:13:02.959 -whatever - -0:13:00.160,0:13:04.079 -a lot of those have sort of similar code - -0:13:02.959,0:13:07.600 -which they - -0:13:04.079,0:13:09.600 -which they share via this nn mail - -0:13:07.600,0:13:12.959 -you call it an abstract parent class I - -0:13:09.600,0:13:15.440 -guess so if you have something like nnml - -0:13:12.959,0:13:16.720 -it has a request scan uh when it goes - -0:13:15.440,0:13:18.800 -into request scan - -0:13:16.720,0:13:21.760 -it ends up calling nnmail.newmail and it - -0:13:18.800,0:13:23.279 -says I am calling this as an nml server - -0:13:21.760,0:13:24.959 -and here are some of my callback - -0:13:23.279,0:13:26.000 -functions and my variables that I would - -0:13:24.959,0:13:28.000 -like you to use - -0:13:26.000,0:13:30.120 -when you are getting your email so in - -0:13:28.000,0:13:33.120 -this way the code is sort of you know - -0:13:30.120,0:13:35.680 -inter-interleaved between the the child - -0:13:33.120,0:13:37.120 -class and the parent class even though - -0:13:35.680,0:13:39.440 -we're not talking in terms of classes - -0:13:37.120,0:13:42.160 -here at all really - -0:13:39.440,0:13:42.959 -so that's how noose works right now I - -0:13:42.160,0:13:45.519 -hope that's clear - -0:13:42.959,0:13:46.560 -it certainly wasn't to me and I still - -0:13:45.519,0:13:48.079 -have to go refresh my - -0:13:46.560,0:13:50.079 -memory I'd like to talk a little bit - -0:13:48.079,0:13:51.600 -about sort of the newer - -0:13:50.079,0:13:54.240 -libraries that are available now for - -0:13:51.600,0:13:56.959 -doing object-oriented code - -0:13:54.240,0:13:59.279 -uh as I mentioned I think earlier nno - -0:13:56.959,0:14:00.320 -the copyright headers for 1996 so that's - -0:13:59.279,0:14:02.639 -pretty venerable - -0:14:00.320,0:14:05.519 -coincidentally around the same time eric - -0:14:02.639,0:14:08.320 -ludlum started developing e-I-e-I-o - -0:14:05.519,0:14:09.360 -which is a which is sort of inspired by - -0:14:08.320,0:14:12.720 -a common lisp's - -0:14:09.360,0:14:14.240 -common lisp object system um I got a - -0:14:12.720,0:14:14.959 -very good introduction to that from this - -0:14:14.240,0:14:16.399 -book - -0:14:14.959,0:14:18.000 -practical common lisp which I would - -0:14:16.399,0:14:20.079 -encourage you to look at if you haven't - -0:14:18.000,0:14:22.320 -which you probably have anyway - -0:14:20.079,0:14:23.920 -e-I-e-I-o was incorporated into Emacs in - -0:14:22.320,0:14:27.839 -2010 - -0:14:23.920,0:14:30.240 -so that yeah e-I-e-I-o provides um - -0:14:27.839,0:14:32.079 -the deaf class statements it provides - -0:14:30.240,0:14:32.639 -deaf generics deaf methods all that sort - -0:14:32.079,0:14:34.800 -of stuff - -0:14:32.639,0:14:36.320 -sort of a common lisp object-oriented - -0:14:34.800,0:14:38.399 -code - -0:14:36.320,0:14:39.760 -at some point stephan monier's money - -0:14:38.399,0:14:41.199 -money another name I haven't pronounced - -0:14:39.760,0:14:43.839 -it all out - -0:14:41.199,0:14:45.120 -started either cleaning up that code or - -0:14:43.839,0:14:46.959 -for one reason or another writing a - -0:14:45.120,0:14:48.000 -re-implementation of generic functions - -0:14:46.959,0:14:51.440 -which was added - -0:14:48.000,0:14:51.920 -uh in 2015 and then throughout this time - -0:14:51.440,0:14:54.639 -another - -0:14:51.920,0:14:55.760 -sort of object-oriented style - -0:14:54.639,0:14:58.160 -declaration is - -0:14:55.760,0:15:00.000 -defstruct which started off in the cl - -0:14:58.160,0:15:01.600 -libraries - -0:15:00.000,0:15:02.959 -implemented with vectors later was - -0:15:01.600,0:15:04.639 -implemented with records so they're - -0:15:02.959,0:15:06.720 -easier to target - -0:15:04.639,0:15:08.399 -anyway that's another option so how - -0:15:06.720,0:15:09.279 -would we this is I'm probably out of - -0:15:08.399,0:15:13.040 -time already but - -0:15:09.279,0:15:13.040 -we're only getting to the part - -0:15:13.839,0:15:17.920 -the whole point of this is how would we - -0:15:15.760,0:15:19.920 -rewrite someone news's code to use these - -0:15:17.920,0:15:21.760 -newer libraries - -0:15:19.920,0:15:23.839 -if we didn't have to support third party - -0:15:21.760,0:15:26.639 -libraries this wouldn't be that hard - -0:15:23.839,0:15:28.160 -but out there noose is really up on uh - -0:15:26.639,0:15:30.240 -you know backwards compatibility and not - -0:15:28.160,0:15:33.040 -breaking people's stuff and you know - -0:15:30.240,0:15:34.240 -multi-decade support for things so there - -0:15:33.040,0:15:35.759 -are people out there who have written - -0:15:34.240,0:15:38.480 -third-party libraries - -0:15:35.759,0:15:40.000 -um defining new backends for you can use - -0:15:38.480,0:15:41.759 -like hacker news or whatever as - -0:15:40.000,0:15:43.199 -a as a server so we want to be able to - -0:15:41.759,0:15:44.240 -support those if you didn't have to - -0:15:43.199,0:15:46.079 -support those it'd be fine you'd - -0:15:44.240,0:15:47.440 -re-implement you'd use generic functions - -0:15:46.079,0:15:48.560 -you'd use either structure classes - -0:15:47.440,0:15:51.040 -whatever but we got a - -0:15:48.560,0:15:52.000 -it's a little bit tricky to support - -0:15:51.040,0:15:54.320 -these other people's - -0:15:52.000,0:15:56.079 -libraries so one of the things we can do - -0:15:54.320,0:15:59.279 -is rewrite the defu - -0:15:56.079,0:16:00.079 -so if you remember defu is the thing - -0:15:59.279,0:16:03.120 -that uh - -0:16:00.079,0:16:04.800 -or sorry uh defu - -0:16:03.120,0:16:07.040 -is the thing that defines methods that - -0:16:04.800,0:16:10.160 -operate on object answers - -0:16:07.040,0:16:10.639 -instances and we can uh rewrite that to - -0:16:10.160,0:16:13.440 -use - -0:16:10.639,0:16:14.240 -cldef generic and that's this is fairly - -0:16:13.440,0:16:15.440 -fairly simple - -0:16:14.240,0:16:17.759 -it looks like a lot of code it's not a - -0:16:15.440,0:16:20.320 -lot of good for instance we have the - -0:16:17.759,0:16:21.199 -new closed server code that we looked at - -0:16:20.320,0:16:22.720 -earlier - -0:16:21.199,0:16:24.560 -and we have this phone call and the new - -0:16:22.720,0:16:28.720 -skip function so this would look - -0:16:24.560,0:16:30.240 -like using generic functions and methods - -0:16:28.720,0:16:32.959 -it would look like this we'd have - -0:16:30.240,0:16:34.560 -a generic def generic which is just a - -0:16:32.959,0:16:36.320 -sort of a declaration - -0:16:34.560,0:16:37.680 -and a doc string and then we have those - -0:16:36.320,0:16:40.320 -implementations - -0:16:37.680,0:16:42.399 -so we can see what the original code - -0:16:40.320,0:16:44.720 -does here is it first says okay what - -0:16:42.399,0:16:45.839 -type is our our is our argument here and - -0:16:44.720,0:16:48.560 -if it's a string - -0:16:45.839,0:16:50.160 -then go and get the proper s the proper - -0:16:48.560,0:16:52.480 -method definition - -0:16:50.160,0:16:53.920 -from that string so the way we do that - -0:16:52.480,0:16:56.000 -with methods is we - -0:16:53.920,0:16:57.440 -we say if the server is a string so if - -0:16:56.000,0:16:58.720 -it matches this type - -0:16:57.440,0:17:00.320 -then what we're going to do is just - -0:16:58.720,0:17:02.160 -recall we're going to call this function - -0:17:00.320,0:17:05.199 -all over again - -0:17:02.160,0:17:06.400 -using uh basically the same code here - -0:17:05.199,0:17:07.600 -the same code that takes a string and - -0:17:06.400,0:17:10.640 -gets the object so - -0:17:07.600,0:17:11.600 -this does this can add extra function - -0:17:10.640,0:17:12.880 -calls - -0:17:11.600,0:17:14.880 -depending on how you've written the rest - -0:17:12.880,0:17:16.640 -of your code um but this is sort of the - -0:17:14.880,0:17:19.679 -canonical way of doing this - -0:17:16.640,0:17:20.559 -uh using methods then our next part here - -0:17:19.679,0:17:22.000 -is - -0:17:20.559,0:17:24.559 -nishkit function we're going to get a - -0:17:22.000,0:17:26.079 -function called closed server - -0:17:24.559,0:17:27.360 -the difference here is that all these - -0:17:26.079,0:17:28.000 -functions are all going to be called - -0:17:27.360,0:17:29.360 -close - -0:17:28.000,0:17:31.120 -news close server they're not going to - -0:17:29.360,0:17:32.799 -be called news like nni my - -0:17:31.120,0:17:34.400 -closed server and ntp close server - -0:17:32.799,0:17:36.160 -they're all going to have the same name - -0:17:34.400,0:17:37.440 -and what we do is uh we have an around - -0:17:36.160,0:17:40.640 -method - -0:17:37.440,0:17:43.679 -for any server that is a const which is - -0:17:40.640,0:17:45.520 -which is as close as we care to get uh - -0:17:43.679,0:17:46.799 -for you know zeroing in on the type that - -0:17:45.520,0:17:48.559 -we're looking for - -0:17:46.799,0:17:50.480 -we put in a round method on that so that - -0:17:48.559,0:17:51.679 -we can call the next method which we'll - -0:17:50.480,0:17:53.440 -call the more specific - -0:17:51.679,0:17:55.600 -method and then we have our other - -0:17:53.440,0:17:57.280 -bookkeeping code to clean up you know - -0:17:55.600,0:17:58.640 -set up tear down code we'll go around - -0:17:57.280,0:18:00.080 -that - -0:17:58.640,0:18:02.080 -and then in one of the back-end - -0:18:00.080,0:18:04.320 -definitions for instance in an imap - -0:18:02.080,0:18:05.760 -we have another news closed server thing - -0:18:04.320,0:18:08.880 -this looks at the server - -0:18:05.760,0:18:10.799 -and it says is this server a list that - -0:18:08.880,0:18:12.480 -starts with a symbol and an imap and if - -0:18:10.799,0:18:13.679 -it is then we're almost guaranteed that - -0:18:12.480,0:18:15.840 -this is what we wanted - -0:18:13.679,0:18:17.600 -and then this is where we would insert - -0:18:15.840,0:18:18.960 -all the rest of the code from anonymous - -0:18:17.600,0:18:20.799 -closed server - -0:18:18.960,0:18:22.880 -where we'd re-redefine that to look like - -0:18:20.799,0:18:26.080 -this so it's not that hard - -0:18:22.880,0:18:28.720 -theoretically so what we would do - -0:18:26.080,0:18:29.679 -is take the defu macro macro and then - -0:18:28.720,0:18:32.240 -rewrite that - -0:18:29.679,0:18:33.039 -so that it actually defines a cl def - -0:18:32.240,0:18:35.520 -method like - -0:18:33.039,0:18:36.320 -one of these now there's a couple of - -0:18:35.520,0:18:38.960 -these things - -0:18:36.320,0:18:41.200 -unfortunately it's not that easy get rid - -0:18:38.960,0:18:43.490 -of you - -0:18:41.200,0:18:46.400 -a couple of these things - -0:18:43.490,0:18:49.039 -[Music] - -0:18:46.400,0:18:49.919 -that don't use their server as the first - -0:18:49.039,0:18:52.400 -argument - -0:18:49.919,0:18:53.280 -or any of the arguments or it's an - -0:18:52.400,0:18:54.720 -optional argument - -0:18:53.280,0:18:56.640 -and we need the server to be in there to - -0:18:54.720,0:18:58.799 -dispatch on its type - -0:18:56.640,0:19:00.080 -if the server doesn't show up as a as a - -0:18:58.799,0:19:01.760 -required - -0:19:00.080,0:19:03.600 -argument we're not going to be able to - -0:19:01.760,0:19:07.440 -locate the the proper - -0:19:03.600,0:19:10.640 -function call so in the case of - -0:19:07.440,0:19:12.080 -noose request group here we start with - -0:19:10.640,0:19:12.720 -the group it's the group that matters - -0:19:12.080,0:19:14.960 -and we get - -0:19:12.720,0:19:16.240 -the newscommand method as an optional - -0:19:14.960,0:19:18.559 -argument - -0:19:16.240,0:19:20.480 -so that's not cool we don't want that so - -0:19:18.559,0:19:21.360 -what we need instead is something that - -0:19:20.480,0:19:23.840 -looks like this - -0:19:21.360,0:19:25.360 -what we're going to do with uh this is - -0:19:23.840,0:19:26.640 -gonna be just terrible terrible code but - -0:19:25.360,0:19:28.160 -hopefully it won't get used very often - -0:19:26.640,0:19:30.559 -it's gonna be really embarrassing - -0:19:28.160,0:19:31.520 -um defu what's what definitely was gonna - -0:19:30.559,0:19:33.200 -have to do is - -0:19:31.520,0:19:34.559 -say okay is this a function that doesn't - -0:19:33.200,0:19:35.360 -have the server as the first argument - -0:19:34.559,0:19:36.960 -and if it does - -0:19:35.360,0:19:38.400 -it's gonna say oh it's news request - -0:19:36.960,0:19:39.280 -group what happens has to happen with - -0:19:38.400,0:19:40.799 -news request group - -0:19:39.280,0:19:43.200 -is we take the news command method and - -0:19:40.799,0:19:46.240 -we're going to move it up to the front - -0:19:43.200,0:19:47.520 -to the first argument here and it's - -0:19:46.240,0:19:48.720 -either going to be - -0:19:47.520,0:19:50.840 -it's either going to be given or it's - -0:19:48.720,0:19:52.080 -going to be nil because it's it is - -0:19:50.840,0:19:54.320 -optional - -0:19:52.080,0:19:55.760 -okay I briefly edited the space time - -0:19:54.320,0:19:56.400 -continuum there to conceal the fact that - -0:19:55.760,0:19:57.679 -I had - -0:19:56.400,0:19:59.440 -actually not finished writing the code - -0:19:57.679,0:20:02.159 -that I was supposed to write anyway - -0:19:59.440,0:20:02.960 -um so now we have once we've reordered - -0:20:02.159,0:20:04.320 -the - -0:20:02.960,0:20:05.760 -the arguments to the function then we - -0:20:04.320,0:20:06.880 -have to check our various possible - -0:20:05.760,0:20:08.640 -values one is - -0:20:06.880,0:20:10.080 -uh that the server was not passed in in - -0:20:08.640,0:20:12.400 -which case we recall - -0:20:10.080,0:20:13.840 -request group with the server um the - -0:20:12.400,0:20:15.360 -other is that it's just a string in - -0:20:13.840,0:20:16.559 -which case we do that and then this is - -0:20:15.360,0:20:18.559 -sort of the the normal - -0:20:16.559,0:20:20.720 -the normal case that we would expect to - -0:20:18.559,0:20:21.039 -cons so that's not that bad it's not you - -0:20:20.720,0:20:23.760 -know - -0:20:21.039,0:20:24.480 -it's not beautiful um I would be sort of - -0:20:23.760,0:20:26.159 -ashamed to - -0:20:24.480,0:20:28.000 -let anybody see that particular macro - -0:20:26.159,0:20:30.640 -but I think that it would work okay - -0:20:28.000,0:20:31.440 -now the more difficult thing is going to - -0:20:30.640,0:20:34.640 -be - -0:20:31.440,0:20:37.600 -the data variables so - -0:20:34.640,0:20:39.360 -the equivalent of def vu because our two - -0:20:37.600,0:20:41.039 -options for defining classes here are - -0:20:39.360,0:20:41.919 -def struct and def class both of which - -0:20:41.039,0:20:45.280 -required you - -0:20:41.919,0:20:46.960 -to define the slots inside this macro - -0:20:45.280,0:20:49.039 -itself - -0:20:46.960,0:20:51.280 -so defu is top level um how do we get - -0:20:49.039,0:20:55.039 -the top level this top level macro - -0:20:51.280,0:20:56.240 -uh to insert slot names into these - -0:20:55.039,0:20:58.960 -definitions it's - -0:20:56.240,0:21:00.240 -it's possible that it'll be um that I - -0:20:58.960,0:21:03.039 -could monkey patch - -0:21:00.240,0:21:04.799 -uh an existing struct or an existing - -0:21:03.039,0:21:05.280 -class to add a new slot into it that - -0:21:04.799,0:21:07.760 -sounds - -0:21:05.280,0:21:09.600 -ugly the other option would be to give - -0:21:07.760,0:21:11.520 -it a server variable slot which is just - -0:21:09.600,0:21:13.760 -a generalized bucket - -0:21:11.520,0:21:15.520 -that holds anything that gets defined - -0:21:13.760,0:21:16.720 -via def loop - -0:21:15.520,0:21:18.799 -I don't like either of those solutions - -0:21:16.720,0:21:22.480 -but I'm I don't see any other - -0:21:18.799,0:21:25.520 -any other way of doing that so we re - -0:21:22.480,0:21:27.440 -rewrite the nno declare macro to either - -0:21:25.520,0:21:29.840 -be a destructor or a def class - -0:21:27.440,0:21:31.039 -and we rewrite the def boom macro to - -0:21:29.840,0:21:33.039 -somehow - -0:21:31.039,0:21:34.480 -associate that variable name the symbol - -0:21:33.039,0:21:36.159 -with the with the resulting class - -0:21:34.480,0:21:37.760 -definition - -0:21:36.159,0:21:39.600 -then the last question is do we use - -0:21:37.760,0:21:41.600 -structure classes - -0:21:39.600,0:21:43.200 -they both got their their strengths and - -0:21:41.600,0:21:46.480 -their weaknesses - -0:21:43.200,0:21:47.520 -the nice thing is that I mean I've got - -0:21:46.480,0:21:49.600 -how many servers you're going to have - -0:21:47.520,0:21:51.919 -really I've got I think less than 10 - -0:21:49.600,0:21:52.960 -uh truly deranged mine might have as as - -0:21:51.919,0:21:55.440 -many as - -0:21:52.960,0:21:56.480 -50 let's double that to 100 100 of - -0:21:55.440,0:21:58.400 -anything is not going to matter it - -0:21:56.480,0:22:00.159 -doesn't matter what we use - -0:21:58.400,0:22:02.720 -death structures are simpler they're - -0:22:00.159,0:22:05.600 -lighter weight they're defined on top of - -0:22:02.720,0:22:06.960 -the direct the c records so you know - -0:22:05.600,0:22:08.559 -that's nice - -0:22:06.960,0:22:10.320 -the slots don't carry very much - -0:22:08.559,0:22:11.760 -information with them there's no type - -0:22:10.320,0:22:14.480 -information there's no doc string for - -0:22:11.760,0:22:16.559 -the slots themselves - -0:22:14.480,0:22:17.919 -they can also only do single inheritance - -0:22:16.559,0:22:21.120 -which some might say - -0:22:17.919,0:22:22.640 -was an advantage def class each slot - -0:22:21.120,0:22:24.000 -gets a lot more information associated - -0:22:22.640,0:22:24.480 -with it with it which I think can be - -0:22:24.000,0:22:27.120 -nice - -0:22:24.480,0:22:28.799 -it can do multiple inheritance if you're - -0:22:27.120,0:22:30.720 -going to go there - -0:22:28.799,0:22:32.640 -they are heavier weight in particular - -0:22:30.720,0:22:34.080 -their printed representation is gross - -0:22:32.640,0:22:35.840 -it's enormous - -0:22:34.080,0:22:37.520 -so if you see one show up in a back - -0:22:35.840,0:22:38.240 -trace or in your messages buffer can - -0:22:37.520,0:22:39.520 -really - -0:22:38.240,0:22:41.360 -it can really blow that up and make it - -0:22:39.520,0:22:43.200 -hard to read this of course won't be an - -0:22:41.360,0:22:46.240 -issue because our code won't have any - -0:22:43.200,0:22:48.320 -errors in it um my argument for multiple - -0:22:46.240,0:22:51.280 -inheritance here is that I can imagine - -0:22:48.320,0:22:52.720 -new servers falling into sort of like a - -0:22:51.280,0:22:56.240 -little two by two matrix of - -0:22:52.720,0:22:56.799 -of parent classes one being news versus - -0:22:56.240,0:23:00.320 -mail - -0:22:56.799,0:23:00.720 -so news the messages belong to somebody - -0:23:00.320,0:23:02.080 -else - -0:23:00.720,0:23:03.840 -you can't touch them you can't delete - -0:23:02.080,0:23:06.000 -them mail meaning - -0:23:03.840,0:23:08.960 -the messages are under your command - -0:23:06.000,0:23:11.039 -either a local mail dealer a remote imap - -0:23:08.960,0:23:12.640 -you're allowed to spool them copy them - -0:23:11.039,0:23:13.919 -delete them at will - -0:23:12.640,0:23:16.400 -and then the other sort of line of the - -0:23:13.919,0:23:19.760 -matrix would be a local file system - -0:23:16.400,0:23:20.559 -versus some kind of a you know server - -0:23:19.760,0:23:23.280 -port - -0:23:20.559,0:23:24.960 -remote access and that second the server - -0:23:23.280,0:23:26.880 -port remote access thing might require - -0:23:24.960,0:23:28.559 -authentication it might require a keep - -0:23:26.880,0:23:30.159 -alive for a connection - -0:23:28.559,0:23:31.600 -um it's there's going to be a process - -0:23:30.159,0:23:32.400 -there rather than just file system - -0:23:31.600,0:23:33.840 -commands - -0:23:32.400,0:23:35.360 -so I could see if I was going to do - -0:23:33.840,0:23:36.240 -multiple inheritance that's what I would - -0:23:35.360,0:23:39.039 -do those two - -0:23:36.240,0:23:40.400 -those two possible parent classes anyway - -0:23:39.039,0:23:41.520 -that's as far as I've gotten - -0:23:40.400,0:23:43.279 -I thought that I would be able to write - -0:23:41.520,0:23:44.720 -more of this code before I did this talk - -0:23:43.279,0:23:46.720 -but instead I spent the whole time - -0:23:44.720,0:23:48.320 -messing with video codecs but that's - -0:23:46.720,0:23:49.440 -where we're at and I'm going to cut - -0:23:48.320,0:23:50.960 -myself off now - -0:23:49.440,0:23:53.440 -I hope there are questions I hope I'm - -0:23:50.960,0:23:55.919 -there to to answer your questions - -0:23:53.440,0:23:57.120 -and thanks very much again to everyone - -0:23:55.919,0:23:59.279 -involved - -0:23:57.120,0:23:59.279 -bye - diff --git a/2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.sbv b/2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.sbv deleted file mode 100644 index c5edf2c6..00000000 --- a/2020/subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.sbv +++ /dev/null @@ -1,1707 +0,0 @@ -0:00:01.680,0:00:08.000 -you are now unmuted - -0:00:04.480,0:00:11.280 -okay can you guys hear me yeah - -0:00:08.000,0:00:14.480 -can you guys hear me sir yep I can and - -0:00:11.280,0:00:17.199 -we're live so take it away okay - -0:00:14.480,0:00:18.400 -so um hello everyone my name is ferming - -0:00:17.199,0:00:20.960 -I'm a programmer - -0:00:18.400,0:00:22.400 -a math student from spain I've been - -0:00:20.960,0:00:24.960 -using me e-max for - -0:00:22.400,0:00:26.000 -two years now more or less and today I'm - -0:00:24.960,0:00:28.320 -going to talk about - -0:00:26.000,0:00:29.199 -a maxima computer algebra system in 2 - -0:00:28.320,0:00:32.239 -max - -0:00:29.199,0:00:34.239 -so let's talk about what is maxima - -0:00:32.239,0:00:36.079 -well maxim is a system for manipulation - -0:00:34.239,0:00:37.920 -of symbolic and numerical expression - -0:00:36.079,0:00:39.440 -and it's similar in some regard to - -0:00:37.920,0:00:42.160 -octave - -0:00:39.440,0:00:45.039 -and it's also free software is derived - -0:00:42.160,0:00:47.120 -from the maxima from the 60 from the m80 - -0:00:45.039,0:00:48.320 -and it's written in common lisp which is - -0:00:47.120,0:00:50.719 -a language that I really - -0:00:48.320,0:00:51.600 -like I enjoy writing it so for me it's a - -0:00:50.719,0:00:55.039 -plus - -0:00:51.600,0:00:57.039 -okay so let's talk about the initial - -0:00:55.039,0:00:59.280 -support for maxima when I first started - -0:00:57.039,0:01:00.320 -using it I looked for support into Emacs - -0:00:59.280,0:01:03.120 -and I found that - -0:01:00.320,0:01:04.640 -there's two major modes in the main - -0:01:03.120,0:01:07.200 -repository of maxima - -0:01:04.640,0:01:09.280 -for remax the first one is imaxima which - -0:01:07.200,0:01:12.000 -I don't know too much about it - -0:01:09.280,0:01:13.439 -and the second one is maxima dot l which - -0:01:12.000,0:01:16.640 -is the one I took first - -0:01:13.439,0:01:18.080 -and it was pretty nice has like a major - -0:01:16.640,0:01:21.280 -mode a minor mode - -0:01:18.080,0:01:23.040 -a nice ripple but it also has some - -0:01:21.280,0:01:25.040 -disadvantage - -0:01:23.040,0:01:26.479 -and the first one is that is quite - -0:01:25.040,0:01:29.600 -outdated I think - -0:01:26.479,0:01:30.960 -it was from the 2007 - -0:01:29.600,0:01:33.280 -so it's not tested with the current - -0:01:30.960,0:01:35.520 -email version and the second one - -0:01:33.280,0:01:36.320 -is that it doesn't use modern e-max - -0:01:35.520,0:01:38.640 -capability - -0:01:36.320,0:01:40.479 -I'm talking for example about the last - -0:01:38.640,0:01:44.720 -or more latex preview - -0:01:40.479,0:01:46.079 -from the last a max 27.1 I think - -0:01:44.720,0:01:47.920 -and that's why is that they know - -0:01:46.079,0:01:49.600 -integrated with common third party - -0:01:47.920,0:01:51.520 -extension I'm talking about company for - -0:01:49.600,0:01:55.360 -example third party - -0:01:51.520,0:01:57.280 -yeah you know the alpa melba packages - -0:01:55.360,0:01:58.719 -so uh this stock is going to be divided - -0:01:57.280,0:02:00.799 -in two parts the first one is going to - -0:01:58.719,0:02:03.040 -be how I maximize my date today - -0:02:00.799,0:02:03.840 -in max exercise don't worry it's going - -0:02:03.040,0:02:06.000 -to be - -0:02:03.840,0:02:07.680 -quite easy and the second one is going - -0:02:06.000,0:02:10.560 -to be why for the package - -0:02:07.680,0:02:13.200 -and the list improvement that I did and - -0:02:10.560,0:02:14.480 -a couple of things more maybe the future - -0:02:13.200,0:02:16.720 -and where's the package right now if you - -0:02:14.480,0:02:19.440 -can use it so - -0:02:16.720,0:02:21.360 -let's talk about the workflow so right - -0:02:19.440,0:02:23.040 -out of the box it has like an - -0:02:21.360,0:02:24.400 -orimal support I didn't write this it - -0:02:23.040,0:02:27.680 -was already - -0:02:24.400,0:02:30.319 -in Emacs - -0:02:27.680,0:02:32.720 -so that's pretty nice let's go with a - -0:02:30.319,0:02:34.480 -simple example - -0:02:32.720,0:02:36.000 -okay so this is an array of three - -0:02:34.480,0:02:37.920 -equations and three variables - -0:02:36.000,0:02:39.840 -so it's a system that can be solved and - -0:02:37.920,0:02:42.560 -the solution is unique - -0:02:39.840,0:02:44.120 -um so we're going to solve it right - -0:02:42.560,0:02:47.519 -let's go - -0:02:44.120,0:02:48.080 -solutions okay here's how you define a - -0:02:47.519,0:02:52.400 -variable - -0:02:48.080,0:02:52.400 -in it's called solve okay - -0:02:52.640,0:03:00.400 -it's called implicit explicit - -0:02:56.480,0:03:03.680 -sorry okay and now an array of - -0:03:00.400,0:03:05.760 -our variables actually okay - -0:03:03.680,0:03:07.599 -so first of all we have to send this - -0:03:05.760,0:03:10.400 -variable to the maxima - -0:03:07.599,0:03:11.200 -repo with we can do that with ctrl c - -0:03:10.400,0:03:14.480 -control c - -0:03:11.200,0:03:19.200 -or with the maxima send line - -0:03:14.480,0:03:20.560 -okay so let's um let's put the maxima - -0:03:19.200,0:03:23.680 -buffer right here - -0:03:20.560,0:03:25.360 -okay let's so um - -0:03:23.680,0:03:27.040 -right now we can get the solution like - -0:03:25.360,0:03:29.360 -this so we call already - -0:03:27.040,0:03:30.239 -uh we call this line right now control - -0:03:29.360,0:03:31.920 -sequence to c - -0:03:30.239,0:03:33.440 -as you can see we get like an array - -0:03:31.920,0:03:36.080 -inside an array because - -0:03:33.440,0:03:38.799 -uh let's see why we get this so we can - -0:03:36.080,0:03:42.239 -call maxima - -0:03:38.799,0:03:44.879 -help a point this will open a - -0:03:42.239,0:03:46.000 -dock um buffer with all information - -0:03:44.879,0:03:48.799 -about the - -0:03:46.000,0:03:51.360 -solve function so we can see that this - -0:03:48.799,0:03:54.560 -list of solution equations - -0:03:51.360,0:03:56.640 -you can see it okay so but we no we know - -0:03:54.560,0:03:58.239 -that this system only have one solution - -0:03:56.640,0:04:00.400 -so we're only interested in the first - -0:03:58.239,0:04:02.080 -one we can do this like pretty easily - -0:04:00.400,0:04:05.120 -just to take the first one - -0:04:02.080,0:04:06.640 -we can send it to the buffer so this is - -0:04:05.120,0:04:09.280 -quite easy example as you can see - -0:04:06.640,0:04:10.400 -they have to completion much of the help - -0:04:09.280,0:04:12.319 -facilities that we have - -0:04:10.400,0:04:14.720 -we can also get information about the - -0:04:12.319,0:04:17.440 -symbol for example maxima - -0:04:14.720,0:04:17.840 -symbol doc and we get in the and now you - -0:04:17.440,0:04:19.840 -can see - -0:04:17.840,0:04:20.959 -correctly in the mini buffer all the - -0:04:19.840,0:04:24.080 -possible - -0:04:20.959,0:04:28.000 -um parameter of the function - -0:04:24.080,0:04:31.440 -right so let's continue - -0:04:28.000,0:04:34.880 -okay so let's go to a more well - -0:04:31.440,0:04:38.560 -complicated example to say oops - -0:04:34.880,0:04:42.400 -okay so we have this - -0:04:38.560,0:04:43.919 -equation and we want to go from -1 to 5 - -0:04:42.400,0:04:46.400 -I want to show in a nice - -0:04:43.919,0:04:47.759 -graph right first of all we begin - -0:04:46.400,0:04:51.759 -sending this line to the - -0:04:47.759,0:04:54.880 -maxima ripple hold it button again - -0:04:51.759,0:04:56.960 -okay um so this is not ideal if you want - -0:04:54.880,0:05:00.160 -to write down this equation because - -0:04:56.960,0:05:03.039 -it's quite messy what is when so - -0:05:00.160,0:05:04.479 -uh what's thing are where so we can call - -0:05:03.039,0:05:07.520 -the function maxima - -0:05:04.479,0:05:10.240 -let's say insert form okay - -0:05:07.520,0:05:11.280 -and this is more easy this basically put - -0:05:10.240,0:05:14.240 -text behind - -0:05:11.280,0:05:15.120 -and led or mode to render it and this is - -0:05:14.240,0:05:19.039 -quite easy to - -0:05:15.120,0:05:22.560 -write down you can use it like in every - -0:05:19.039,0:05:23.199 -expression so um first we have to call a - -0:05:22.560,0:05:27.280 -library - -0:05:23.199,0:05:29.199 -let's load the library library draw - -0:05:27.280,0:05:31.520 -we have also completion for local - -0:05:29.199,0:05:35.039 -variable and local - -0:05:31.520,0:05:38.240 -libraries sorry let me try to finish - -0:05:35.039,0:05:40.320 -draw okay and we send the line - -0:05:38.240,0:05:42.240 -so right now we have a leverage and we - -0:05:40.320,0:05:43.600 -should even have auto completion for the - -0:05:42.240,0:05:47.039 -library function - -0:05:43.600,0:05:50.400 -okay we have let's call draw2d - -0:05:47.039,0:05:51.199 -and now we can call implicit we should - -0:05:50.400,0:05:54.400 -have - -0:05:51.199,0:05:57.520 -okay and we can I mean put the variable - -0:05:54.400,0:05:58.639 -of equations we put the first variable d - -0:05:57.520,0:06:02.319 -minus - -0:05:58.639,0:06:05.280 -five d five five - -0:06:02.319,0:06:06.639 -the v variable the minus five and the - -0:06:05.280,0:06:09.680 -five - -0:06:06.639,0:06:11.759 -okay it should be all all good so let me - -0:06:09.680,0:06:14.639 -try to send it - -0:06:11.759,0:06:16.639 -okay you cannot see it right now because - -0:06:14.639,0:06:19.360 -I'm just sharing the maxima screen let - -0:06:16.639,0:06:23.520 -me try to change that - -0:06:19.360,0:06:27.199 -okay um - -0:06:23.520,0:06:27.199 -okay can you plot hello - -0:06:31.520,0:06:35.440 -okay so this is basically the graph that - -0:06:33.919,0:06:38.800 -I can upload generates - -0:06:35.440,0:06:41.039 -uh right now it's not integrated into - -0:06:38.800,0:06:42.240 -into the maximum package but it's a work - -0:06:41.039,0:06:46.000 -in progress - -0:06:42.240,0:06:50.160 -so let's go back to Emacs - -0:06:46.000,0:06:53.520 -uh where are you okay there you are okay - -0:06:50.160,0:06:56.639 -okay so um - -0:06:53.520,0:06:57.759 -let's continue so uh this is some of the - -0:06:56.639,0:07:00.000 -things that you can use - -0:06:57.759,0:07:01.919 -for your day-to-day programming in - -0:07:00.000,0:07:05.680 -maxima - -0:07:01.919,0:07:05.680 -let's go now with the - -0:07:05.759,0:07:08.880 -okay as you can see this is just text - -0:07:07.360,0:07:11.199 -that is render - -0:07:08.880,0:07:13.440 -okay let's go within a slide this is how - -0:07:11.199,0:07:14.400 -I use maxima a simple example you don't - -0:07:13.440,0:07:16.240 -want to - -0:07:14.400,0:07:17.919 -talk too much about it because everyone - -0:07:16.240,0:07:19.680 -use the package in a different way - -0:07:17.919,0:07:21.039 -so right now I'm going to talk about the - -0:07:19.680,0:07:23.520 -original package and - -0:07:21.039,0:07:25.120 -the way I change it right so the - -0:07:23.520,0:07:27.840 -documentation - -0:07:25.120,0:07:29.680 -of the original was great but for me it - -0:07:27.840,0:07:31.840 -wasn't embedded in the code - -0:07:29.680,0:07:33.599 -it was something sometimes hard to read - -0:07:31.840,0:07:36.319 -like it was like a big - -0:07:33.599,0:07:37.039 -chunk of comment it gave me all the - -0:07:36.319,0:07:40.400 -information - -0:07:37.039,0:07:44.240 -like um for me that's too much I prefer - -0:07:40.400,0:07:45.360 -a cohesive small comment and then a big - -0:07:44.240,0:07:47.759 -redmi will order - -0:07:45.360,0:07:48.960 -all the links and information so that's - -0:07:47.759,0:07:52.080 -one of the first thing I - -0:07:48.960,0:07:52.560 -change um then also completion I'm a big - -0:07:52.080,0:07:55.759 -fan - -0:07:52.560,0:07:58.639 -I'm used to slime so I'm I love - -0:07:55.759,0:08:00.160 -great auto completion so um the first - -0:07:58.639,0:08:01.840 -thing that I noticed that well - -0:08:00.160,0:08:04.479 -it uses an absolute function I don't - -0:08:01.840,0:08:07.039 -know if you can see correctly okay - -0:08:04.479,0:08:08.800 -comment dynamic is deprecated and it - -0:08:07.039,0:08:10.720 -also have like this - -0:08:08.800,0:08:12.720 -variable which is maximus symbol which - -0:08:10.720,0:08:16.160 -is basically a big - -0:08:12.720,0:08:19.280 -list of all the possible completions so - -0:08:16.160,0:08:20.960 -if I load the library it's not aware of - -0:08:19.280,0:08:23.039 -the new symbols or even if I - -0:08:20.960,0:08:24.240 -create a variable it's not loaded so - -0:08:23.039,0:08:26.160 -it's not dynamic - -0:08:24.240,0:08:28.319 -so I want the first thing I want is - -0:08:26.160,0:08:31.680 -dynamic completion right - -0:08:28.319,0:08:34.159 -so I improve it which wasn't that hard - -0:08:31.680,0:08:36.080 -I first of all create maximum completion - -0:08:34.159,0:08:38.479 -which we're going to see in a moment - -0:08:36.080,0:08:39.200 -and then it changes completion region so - -0:08:38.479,0:08:41.039 -this is the - -0:08:39.200,0:08:43.760 -improved version but the good thing is - -0:08:41.039,0:08:45.839 -like I decoupled the completion function - -0:08:43.760,0:08:47.600 -so I make that you can use it on your - -0:08:45.839,0:08:50.800 -own so you get a prefix - -0:08:47.600,0:08:52.560 -which is um like - -0:08:50.800,0:08:55.040 -the thing that you're going to also - -0:08:52.560,0:08:56.959 -complete you get the inferior process - -0:08:55.040,0:08:58.959 -which I'm going to talk about later but - -0:08:56.959,0:08:59.760 -basically it's a maxima process you can - -0:08:58.959,0:09:01.760 -work with - -0:08:59.760,0:09:03.040 -and you get an optional argument which - -0:09:01.760,0:09:06.399 -is fuzzy finding - -0:09:03.040,0:09:07.200 -okay so you can easily send a block here - -0:09:06.399,0:09:10.399 -what - -0:09:07.200,0:09:11.440 -uh with the propos which is a maxima - -0:09:10.399,0:09:13.839 -command that gets you - -0:09:11.440,0:09:14.959 -all the auto completion and then you - -0:09:13.839,0:09:18.240 -process the - -0:09:14.959,0:09:20.480 -the output and you return a list - -0:09:18.240,0:09:21.600 -of possible completion this function can - -0:09:20.480,0:09:24.800 -be easily put into - -0:09:21.600,0:09:26.640 -company as you can see you just - -0:09:24.800,0:09:28.560 -get maximum auxiliary inferior process - -0:09:26.640,0:09:32.080 -is a process that just - -0:09:28.560,0:09:35.360 -uses sorry I have of - -0:09:32.080,0:09:36.480 -all the apropos and the get that symbol - -0:09:35.360,0:09:39.440 -it's like uh - -0:09:36.480,0:09:41.360 -like you say auxiliary let's help me uh - -0:09:39.440,0:09:43.680 -for that dirty stuff - -0:09:41.360,0:09:44.640 -so and process manipulation let's talk - -0:09:43.680,0:09:46.959 -about - -0:09:44.640,0:09:47.920 -how the maxima process was in the - -0:09:46.959,0:09:50.720 -beginning - -0:09:47.920,0:09:52.560 -so at first it was just one process and - -0:09:50.720,0:09:54.560 -you send all of the things there - -0:09:52.560,0:09:56.320 -and you move the processor here and - -0:09:54.560,0:09:58.160 -there and - -0:09:56.320,0:09:59.600 -there was a global state right so all - -0:09:58.160,0:10:02.000 -the function depends on - -0:09:59.600,0:10:05.120 -variable global variables and I don't - -0:10:02.000,0:10:07.680 -like that approach I prefer more like a - -0:10:05.120,0:10:09.519 -shirt to say functional like you sense - -0:10:07.680,0:10:12.000 -one of things and you return - -0:10:09.519,0:10:13.440 -something so it's not like a void - -0:10:12.000,0:10:16.399 -function so to say - -0:10:13.440,0:10:18.079 -so I change it recipe uh well this is - -0:10:16.399,0:10:20.959 -the maxima start function now - -0:10:18.079,0:10:22.560 -let's just create a startup process with - -0:10:20.959,0:10:23.680 -this function which is maxima make - -0:10:22.560,0:10:26.880 -inferior - -0:10:23.680,0:10:30.000 -so this function just gets a name - -0:10:26.880,0:10:31.519 -and it return a process of maxima and - -0:10:30.000,0:10:32.240 -you can then manipulate it the way you - -0:10:31.519,0:10:35.600 -want - -0:10:32.240,0:10:36.800 -let's see a better version so this is - -0:10:35.600,0:10:39.200 -the opposite right this - -0:10:36.800,0:10:41.760 -remove an inferior process and delete - -0:10:39.200,0:10:43.440 -the process and kill the buffer - -0:10:41.760,0:10:45.519 -right so let's give an example because - -0:10:43.440,0:10:46.399 -this you can see pretty easily in this - -0:10:45.519,0:10:50.079 -example - -0:10:46.399,0:10:51.519 -so I want to go to the scratch buffer - -0:10:50.079,0:10:54.399 -which I think you can see it better - -0:10:51.519,0:10:55.760 -okay so this is the way you can get a - -0:10:54.399,0:10:58.320 -process with your name - -0:10:55.760,0:11:00.880 -and save it into a variable right let's - -0:10:58.320,0:11:02.880 -execute this so as you can see well - -0:11:00.880,0:11:03.920 -I don't know if you can see big you get - -0:11:02.880,0:11:05.839 -a process - -0:11:03.920,0:11:07.040 -let's go to it the process called my - -0:11:05.839,0:11:09.519 -maxima - -0:11:07.040,0:11:10.079 -as the buffer right and if we can you - -0:11:09.519,0:11:12.240 -can send - -0:11:10.079,0:11:14.959 -stuff to the process right we can call - -0:11:12.240,0:11:16.880 -maximus in block get a block of valid - -0:11:14.959,0:11:17.760 -maxima code and just pass the variable - -0:11:16.880,0:11:20.800 -the process - -0:11:17.760,0:11:21.519 -and we send code to the process right we - -0:11:20.800,0:11:23.440 -can - -0:11:21.519,0:11:25.760 -this is useful if you have some - -0:11:23.440,0:11:28.480 -expensive computation that you want - -0:11:25.760,0:11:29.680 -to process laser to say so the process - -0:11:28.480,0:11:32.640 -can manage it - -0:11:29.680,0:11:33.920 -and when you get the results correctly - -0:11:32.640,0:11:34.399 -you can also get the result from the - -0:11:33.920,0:11:35.920 -process - -0:11:34.399,0:11:38.000 -I mean I don't put it here but quite - -0:11:35.920,0:11:41.200 -easy and then you - -0:11:38.000,0:11:42.079 -removed in favor which is the way to get - -0:11:41.200,0:11:43.600 -rid of the process - -0:11:42.079,0:11:45.279 -and the buffer so if we call this - -0:11:43.600,0:11:48.399 -function we should get rid of the - -0:11:45.279,0:11:49.920 -this process and it works the processing - -0:11:48.399,0:11:54.160 -is no longer - -0:11:49.920,0:11:56.160 -I'm happy to continue so um - -0:11:54.160,0:11:57.680 -other things that improve the package on - -0:11:56.160,0:11:59.760 -my commitment during time - -0:11:57.680,0:12:01.360 -I'm going good okay another thing that I - -0:11:59.760,0:12:02.560 -did to the package was to add - -0:12:01.360,0:12:04.959 -continue integration and continue - -0:12:02.560,0:12:06.320 -delivery right so the package didn't - -0:12:04.959,0:12:09.440 -have any tests - -0:12:06.320,0:12:12.959 -and the code was a little bit messy so - -0:12:09.440,0:12:16.560 -I add integration a test - -0:12:12.959,0:12:19.519 -and test with the test simple framework - -0:12:16.560,0:12:20.560 -from rocky bursting the maintainer of - -0:12:19.519,0:12:23.279 -real - -0:12:20.560,0:12:24.079 -good which is a great package by the way - -0:12:23.279,0:12:25.920 -um - -0:12:24.079,0:12:28.079 -yeah this is one example of the process - -0:12:25.920,0:12:29.760 -so right now because um - -0:12:28.079,0:12:31.680 -the infrastructure of the process - -0:12:29.760,0:12:33.680 -management is decoupled - -0:12:31.680,0:12:35.200 -so I can test it pretty easily this is - -0:12:33.680,0:12:37.519 -the test function of the - -0:12:35.200,0:12:39.519 -inferior running so I can check if an - -0:12:37.519,0:12:41.440 -inferior is running right now - -0:12:39.519,0:12:43.200 -and I can just delete it after and get - -0:12:41.440,0:12:45.279 -the results - -0:12:43.200,0:12:46.959 -and I also did some integration with the - -0:12:45.279,0:12:48.639 -party packages the first one company of - -0:12:46.959,0:12:50.880 -course I love auto completion - -0:12:48.639,0:12:53.839 -the second one was hormone that was - -0:12:50.880,0:12:56.880 -already there and latex with the - -0:12:53.839,0:13:00.079 -um or logic insert form - -0:12:56.880,0:13:02.959 -and with poly mode because um let me - -0:13:00.079,0:13:03.680 -evaluate this maxima can understand lisp - -0:13:02.959,0:13:06.959 -code - -0:13:03.680,0:13:10.000 -well more or less it has like a - -0:13:06.959,0:13:11.279 -function so to say that you can send a - -0:13:10.000,0:13:13.600 -list command to the - -0:13:11.279,0:13:14.480 -maxima rebel and you can understand it - -0:13:13.600,0:13:17.839 -in some way so - -0:13:14.480,0:13:20.959 -we can go to the maxima poly - -0:13:17.839,0:13:22.800 -only maxima right you enable polymaxima - -0:13:20.959,0:13:25.519 -and it creates a polymode - -0:13:22.800,0:13:26.399 -which this is lisp code and this is - -0:13:25.519,0:13:28.639 -maxima code - -0:13:26.399,0:13:30.560 -so we can send this to the maxima ripple - -0:13:28.639,0:13:34.240 -we come to c control r which - -0:13:30.560,0:13:37.760 -it sends the um the current - -0:13:34.240,0:13:40.160 -um area region sorry - -0:13:37.760,0:13:41.839 -and we define a variable which is called - -0:13:40.160,0:13:44.000 -test and as we can see we have the - -0:13:41.839,0:13:47.360 -variable test right here so you can - -0:13:44.000,0:13:48.079 -program in lisp and you can send it to - -0:13:47.360,0:13:50.399 -maxima - -0:13:48.079,0:13:51.920 -so this is pretty good pretty nice um - -0:13:50.399,0:13:55.040 -working integration with - -0:13:51.920,0:13:57.120 -the slime mode and with swank so you can - -0:13:55.040,0:13:59.120 -actually have a completion of - -0:13:57.120,0:14:00.959 -a function inside the maximal list - -0:13:59.120,0:14:02.800 -package but - -0:14:00.959,0:14:04.399 -this is going to take quite a while - -0:14:02.800,0:14:07.360 -because it's not trivial - -0:14:04.399,0:14:09.440 -so um we're the feature of maxima right - -0:14:07.360,0:14:11.519 -now well we have fonts highlighting - -0:14:09.440,0:14:14.480 -smart indentation uh it was already in - -0:14:11.519,0:14:16.880 -the package but now it's quite better - -0:14:14.480,0:14:18.160 -great help functions right now I can - -0:14:16.880,0:14:20.800 -find the recommendation quite - -0:14:18.160,0:14:22.160 -fast and currently the menu integration - -0:14:20.800,0:14:23.120 -this is quite basic it needs to be a - -0:14:22.160,0:14:25.199 -little bit improved - -0:14:23.120,0:14:26.720 -uh latex support also completion the - -0:14:25.199,0:14:28.480 -company and maximizer process - -0:14:26.720,0:14:29.120 -integration and mini buffer I didn't - -0:14:28.480,0:14:32.880 -show you - -0:14:29.120,0:14:34.639 -but basically if you call global maxima - -0:14:32.880,0:14:36.720 -minor mode you have the minor mode you - -0:14:34.639,0:14:38.399 -call maxima mini buffer - -0:14:36.720,0:14:40.720 -how are you okay mini buffer you can - -0:14:38.399,0:14:42.720 -basically just write simple maxima - -0:14:40.720,0:14:45.920 -command and it will give you the result - -0:14:42.720,0:14:48.959 -this is like a permanent version of um - -0:14:45.920,0:14:50.560 -calc so you can do it you write the - -0:14:48.959,0:14:52.320 -command and you get the output uh way - -0:14:50.560,0:14:56.079 -more to come I have like a list - -0:14:52.320,0:14:58.880 -of issues that I put enhancement a new - -0:14:56.079,0:15:01.199 -feature that I'm going to develop - -0:14:58.880,0:15:03.120 -so uh the future under presence of the - -0:15:01.199,0:15:06.880 -package well the package is right now - -0:15:03.120,0:15:10.720 -melpa a melba stable um - -0:15:06.880,0:15:13.360 -in this 0.7.6 version - -0:15:10.720,0:15:15.279 -and I'm planning to include into the - -0:15:13.360,0:15:16.720 -known canoe alpha - -0:15:15.279,0:15:18.959 -this is the url of the package by the - -0:15:16.720,0:15:20.079 -way so you can if you go to metapod you - -0:15:18.959,0:15:22.160 -put maxima and - -0:15:20.079,0:15:23.199 -you can download it it doesn't have too - -0:15:22.160,0:15:26.639 -much dependencies - -0:15:23.199,0:15:27.120 -you aware of that um and thank you very - -0:15:26.639,0:15:28.720 -much - -0:15:27.120,0:15:30.959 -uh this is going to be my talk these are - -0:15:28.720,0:15:33.519 -my uh information - -0:15:30.959,0:15:34.000 -this is my gitlab this is my page which - -0:15:33.519,0:15:37.120 -I don't - -0:15:34.000,0:15:40.240 -love too much and this is my email - -0:15:37.120,0:15:41.839 -so um thank you very much and I will be - -0:15:40.240,0:15:44.720 -answering some questions right now - -0:15:41.839,0:15:44.720 -and happy hacking - -0:15:45.600,0:15:52.720 -you are now unmuted thank you very much - -0:15:49.600,0:15:55.759 -vermin for the great talk um okay yeah - -0:15:52.720,0:15:58.800 -let's see if you have any questions - -0:15:55.759,0:16:01.759 -uh yeah I'm reading like this um - -0:15:58.800,0:16:04.079 -so I'm a buddy october usually right now - -0:16:01.759,0:16:04.079 -okay - -0:16:04.560,0:16:08.639 -maxima over october yep there are a - -0:16:06.880,0:16:11.519 -couple questions - -0:16:08.639,0:16:12.160 -wow maxima we're okay I don't want to I - -0:16:11.519,0:16:13.940 -don't know - -0:16:12.160,0:16:15.680 -october that much um - -0:16:13.940,0:16:17.839 -[Music] - -0:16:15.680,0:16:18.880 -like I use it like a couple of times but - -0:16:17.839,0:16:24.000 -I'm not happy - -0:16:18.880,0:16:27.120 -and I found the octave packets to be - -0:16:24.000,0:16:31.519 -quite a little bit harder to understand - -0:16:27.120,0:16:33.839 -and also that - -0:16:31.519,0:16:35.680 -it didn't have too much features like I - -0:16:33.839,0:16:37.839 -prefer the maximum used to - -0:16:35.680,0:16:38.880 -maybe octave is better I don't I'm not - -0:16:37.839,0:16:40.800 -100 sure - -0:16:38.880,0:16:42.079 -I know that you can use it for similar - -0:16:40.800,0:16:45.920 -stuff but - -0:16:42.079,0:16:45.920 -that's it so sorry - -0:16:47.120,0:16:54.079 -okay I'm in a little bit of a rush sorry - -0:16:50.959,0:16:56.399 -let me drink a little blue okay - -0:16:54.079,0:16:56.399 -okay - -0:17:00.639,0:17:08.000 -okay how does maxima compare to sagemath - -0:17:05.280,0:17:08.000 -in imax - -0:17:08.959,0:17:17.439 -I mean I don't know what is sage - -0:17:13.360,0:17:18.079 -math I'm sorry um so I cannot answer - -0:17:17.439,0:17:21.839 -your question - -0:17:18.079,0:17:25.039 -with your question I think um - -0:17:21.839,0:17:26.720 -sorry but I mean maxima is ready in - -0:17:25.039,0:17:28.000 -combo list that's just a preference for - -0:17:26.720,0:17:31.120 -me because I like - -0:17:28.000,0:17:35.520 -lisp dialect and common lisp is - -0:17:31.120,0:17:35.520 -interesting um - -0:17:36.400,0:17:42.720 -yeah do you plan to - -0:17:40.480,0:17:43.840 -I mean a maximum organization for maxima - -0:17:42.720,0:17:47.360 -code block - -0:17:43.840,0:17:50.720 -yes I want to improve the um - -0:17:47.360,0:17:52.000 -of maxima package but I didn't have - -0:17:50.720,0:17:54.400 -enough time and I want to - -0:17:52.000,0:17:57.200 -clear a little bit of the code because - -0:17:54.400,0:17:57.200 -still right now - -0:17:58.000,0:18:02.080 -the code is quite messy in some areas - -0:18:00.080,0:18:03.520 -because I pretty much implement first - -0:18:02.080,0:18:05.600 -the base function I want to - -0:18:03.520,0:18:07.120 -build on top of so right now it's quite - -0:18:05.600,0:18:07.919 -usable but I still have something that I - -0:18:07.120,0:18:11.120 -want to improve - -0:18:07.919,0:18:14.799 -so when I finish that I will - -0:18:11.120,0:18:16.640 -improve the normal version I think - -0:18:14.799,0:18:18.640 -it's maximizing to get into into your - -0:18:16.640,0:18:21.200 -opinion yes I - -0:18:18.640,0:18:21.919 -I think that the creator of maxima like - -0:18:21.200,0:18:26.400 -have this - -0:18:21.919,0:18:26.400 -lisp mine and probably - -0:18:26.640,0:18:30.559 -that they if you go to a symbol you get - -0:18:29.520,0:18:33.520 -all the information - -0:18:30.559,0:18:36.480 -and that reflects that you can actually - -0:18:33.520,0:18:40.000 -write your program of maxima into - -0:18:36.480,0:18:40.799 -um into lisp literally because they have - -0:18:40.000,0:18:42.480 -a command - -0:18:40.799,0:18:44.880 -so I think that is quite easy to get - -0:18:42.480,0:18:48.240 -into some university use it for - -0:18:44.880,0:18:51.200 -um first um - -0:18:48.240,0:18:53.039 -years so it's quite easy and I think - -0:18:51.200,0:18:56.640 -with my package you can use it - -0:18:53.039,0:18:58.960 -like pretty pretty easily just create a - -0:18:56.640,0:19:00.880 -file and you can start typing and - -0:18:58.960,0:19:04.400 -maximize quite easy to install also - -0:19:00.880,0:19:07.600 -so I think yeah it's crazy and - -0:19:04.400,0:19:10.080 -the page should restart I don't know why - -0:19:07.600,0:19:10.080 -sorry - -0:19:18.320,0:19:25.440 -strict in fixed lisp syntax - -0:19:22.559,0:19:26.240 -you're talking about the maxima itself - -0:19:25.440,0:19:27.760 -syntax - -0:19:26.240,0:19:30.160 -or I don't understand the question - -0:19:27.760,0:19:30.160 -correctly - -0:19:32.240,0:19:35.440 -well I'm going to go to the next - -0:19:33.679,0:19:37.360 -question is there - -0:19:35.440,0:19:38.880 -support for images in maximum mode not - -0:19:37.360,0:19:43.840 -right now - -0:19:38.880,0:19:43.840 -the way I want to implement some imax - -0:19:45.280,0:19:51.280 -things uh is there support for - -0:19:49.120,0:19:53.360 -but right now it doesn't have like a if - -0:19:51.280,0:19:55.600 -you could want to have a new plot - -0:19:53.360,0:19:56.720 -um inside you buffer right now it's not - -0:19:55.600,0:19:59.360 -possible so - -0:19:56.720,0:20:01.200 -that's the thing that I maximized that - -0:19:59.360,0:20:03.520 -maxima.l still doesn't - -0:20:01.200,0:20:04.720 -do which university you start to use - -0:20:03.520,0:20:08.799 -maxima um - -0:20:04.720,0:20:11.840 -in this aragosa university from spain - -0:20:08.799,0:20:12.640 -they used to maximize the um thing in - -0:20:11.840,0:20:16.400 -the engineer - -0:20:12.640,0:20:18.320 -and in the math also so I'm 100 sure - -0:20:16.400,0:20:19.679 -right now but when I started - -0:20:18.320,0:20:22.559 -are you planning to option your package - -0:20:19.679,0:20:25.440 -into maxima um I don't know about that - -0:20:22.559,0:20:26.320 -because uh maybe can be a little bit - -0:20:25.440,0:20:30.720 -messy - -0:20:26.320,0:20:32.960 -um because the maxima ripple is more - -0:20:30.720,0:20:33.360 -built around like maxima itself and they - -0:20:32.960,0:20:37.600 -don't - -0:20:33.360,0:20:42.240 -update the interfaces that much - -0:20:37.600,0:20:45.360 -I have no problem like it's okay it just - -0:20:42.240,0:20:46.320 -you have to um if you want to push you - -0:20:45.360,0:20:48.480 -can push in other - -0:20:46.320,0:20:49.520 -repository I mean it's just changed the - -0:20:48.480,0:20:52.880 -file another way - -0:20:49.520,0:20:54.080 -but also the test um is going to be a - -0:20:52.880,0:20:55.200 -little bit harder because I think - -0:20:54.080,0:20:59.120 -they're using - -0:20:55.200,0:21:01.200 -search for and I'm using - -0:20:59.120,0:21:02.159 -git lab continue integration within the - -0:21:01.200,0:21:06.799 -jury - -0:21:02.159,0:21:09.679 -so yeah I don't think that now unmuted - -0:21:06.799,0:21:09.679 -yeah it will be nice - -0:21:10.799,0:21:14.840 -okay um it's possible to include - -0:21:12.799,0:21:16.480 -maximizing or false similar to jupiter - -0:21:14.840,0:21:19.919 -notebooks - -0:21:16.480,0:21:23.280 -um I mean you can uh use maximize your - -0:21:19.919,0:21:26.320 -or files and you have maximum l mod - -0:21:23.280,0:21:31.520 -integrated and you can like create put - -0:21:26.320,0:21:34.400 -that code into a buffer and then - -0:21:31.520,0:21:36.159 -uh edited correctly but it is now not it - -0:21:34.400,0:21:37.679 -doesn't have like all the features like - -0:21:36.159,0:21:40.480 -other languages because - -0:21:37.679,0:21:42.320 -right now uh as my understanding is - -0:21:40.480,0:21:45.440 -quite basic so I still have some - -0:21:42.320,0:21:47.679 -still needs some some stuff some work - -0:21:45.440,0:21:47.679 -around - -0:21:47.919,0:21:51.760 -okay I think that's it - -0:21:52.320,0:21:55.440 -you are now unmuted - -0:21:56.320,0:22:01.919 -yep so that's it uh thank you very much - -0:21:59.600,0:22:04.640 -fermin for your live talk and for you - -0:22:01.919,0:22:07.679 -know the live q a - -0:22:04.640,0:22:09.840 -thank you all amazing uh max conf - -0:22:07.679,0:22:10.720 -cheers thank you it's thanks to you all - -0:22:09.840,0:22:16.240 -you guys - -0:22:10.720,0:22:16.240 -it's awesome okay thank you cheers bye - -0:22:16.840,0:22:19.840 -bye - diff --git a/2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.sbv b/2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.sbv deleted file mode 100644 index 44941159..00000000 --- a/2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.sbv +++ /dev/null @@ -1,1713 +0,0 @@ -0:00:03.600,0:00:06.720 -hello - -0:00:04.560,0:00:08.000 -hopefully everyone is staying safe and - -0:00:06.720,0:00:10.000 -staying home - -0:00:08.000,0:00:12.000 -I feel very grateful to live in a world - -0:00:10.000,0:00:13.759 -today that technology and free software - -0:00:12.000,0:00:16.080 -can be leveraged to connect people in - -0:00:13.759,0:00:17.840 -such disconnected and difficult times - -0:00:16.080,0:00:19.920 -and to have an online conference like - -0:00:17.840,0:00:22.960 -this hopefully you've all - -0:00:19.920,0:00:24.720 -enjoyed this year's Emacs con so far - -0:00:22.960,0:00:26.880 -many thanks to all the people that made - -0:00:24.720,0:00:30.000 -this possible - -0:00:26.880,0:00:30.960 -anyways welcome to my talk extend Emacs - -0:00:30.000,0:00:34.079 -to modern gui - -0:00:30.960,0:00:35.920 -applications with eaf the imax - -0:00:34.079,0:00:38.320 -application framework - -0:00:35.920,0:00:39.840 -this will be my first ever talk so - -0:00:38.320,0:00:43.280 -apologies for my - -0:00:39.840,0:00:46.559 -inexperience let us begin - -0:00:43.280,0:00:47.840 -about me my name is matthew zing you can - -0:00:46.559,0:00:50.640 -also call me mt - -0:00:47.840,0:00:51.440 -or mindu I'm a chinese canadian living - -0:00:50.640,0:00:54.239 -in toronto - -0:00:51.440,0:00:56.079 -ontario offline I'm an undergrad - -0:00:54.239,0:00:57.760 -studying mathematics at the university - -0:00:56.079,0:01:00.480 -of urudu - -0:00:57.760,0:01:03.039 -online I mean one of the admins of the - -0:01:00.480,0:01:06.320 -Emacs china - -0:01:03.039,0:01:08.080 -the largest Emacs forum in china so - -0:01:06.320,0:01:10.960 -to all chinese listen to my talk right - -0:01:08.080,0:01:14.320 -now feel free to check it out - -0:01:10.960,0:01:17.280 -and this is a link to my github profile - -0:01:14.320,0:01:18.240 -to my projects I'm involving one's me - -0:01:17.280,0:01:20.159 -max which is - -0:01:18.240,0:01:21.840 -I'm the author of a user-friendly - -0:01:20.159,0:01:22.799 -full-featured image configuration - -0:01:21.840,0:01:25.040 -distribution - -0:01:22.799,0:01:26.880 -it is what I'm using right now as well - -0:01:25.040,0:01:29.119 -as the imax application filter - -0:01:26.880,0:01:30.400 -which I help to maintain along with the - -0:01:29.119,0:01:33.040 -other other - -0:01:30.400,0:01:35.360 -lazy cat which of course is today's - -0:01:33.040,0:01:35.360 -topic - -0:01:35.759,0:01:40.960 -so as you might all might have already - -0:01:38.720,0:01:43.600 -noticed I'm currently using Emacs - -0:01:40.960,0:01:45.360 -and oh and opening navigating closing - -0:01:43.600,0:01:46.159 -all these websites that are rendered - -0:01:45.360,0:01:49.200 -properly - -0:01:46.159,0:01:51.840 -or within Emacs it's all thanks to the - -0:01:49.200,0:01:54.000 -ef project - -0:01:51.840,0:01:55.920 -so we're living in a society that's - -0:01:54.000,0:01:59.520 -heavily dependent on the internet - -0:01:55.920,0:02:01.200 -and multimedia it is unavoidable to run - -0:01:59.520,0:02:02.880 -to some occasion that you need to - -0:02:01.200,0:02:04.799 -open a fancy website that uses - -0:02:02.880,0:02:08.239 -javascript and css - -0:02:04.799,0:02:11.120 -or you need to watch some videos however - -0:02:08.239,0:02:11.840 -due to the nature and history of Emacs - -0:02:11.120,0:02:13.840 -it cannot - -0:02:11.840,0:02:16.400 -render all these modern graphics - -0:02:13.840,0:02:19.360 -effectively and efficiently - -0:02:16.400,0:02:20.400 -Emacs is solely a text-based editing - -0:02:19.360,0:02:23.520 -environment - -0:02:20.400,0:02:25.680 -and I argue that this is not a bad thing - -0:02:23.520,0:02:27.760 -in fact it is one of the reasons that me - -0:02:25.680,0:02:29.760 -and I believe many of you as well - -0:02:27.760,0:02:30.879 -are attracted to Emacs in the first - -0:02:29.760,0:02:33.760 -place - -0:02:30.879,0:02:35.680 -unfortunately this results in us having - -0:02:33.760,0:02:37.040 -to open a dedicated web browser to - -0:02:35.680,0:02:38.879 -browse the internet - -0:02:37.040,0:02:41.440 -open a dedicated video player to watch - -0:02:38.879,0:02:42.640 -some videos or a pdf render to read some - -0:02:41.440,0:02:45.200 -documents - -0:02:42.640,0:02:46.000 -so far ems cannot do all these tasks on - -0:02:45.200,0:02:48.080 -its own - -0:02:46.000,0:02:51.519 -but can only be achieved using other - -0:02:48.080,0:02:55.840 -external applications - -0:02:51.519,0:02:58.640 -so the other the author manatee lazy cat - -0:02:55.840,0:03:00.560 -or lazy cat in short didn't want to use - -0:02:58.640,0:03:03.120 -all these external applications - -0:03:00.560,0:03:04.159 -he wanted to have an uninterrupted e-max - -0:03:03.120,0:03:07.280 -experience - -0:03:04.159,0:03:10.080 -he wanted to truly live in e-max - -0:03:07.280,0:03:11.040 -however it would be a lot of work to - -0:03:10.080,0:03:13.519 -build this - -0:03:11.040,0:03:16.239 -modern application from scratch there's - -0:03:13.519,0:03:18.800 -simply no time or research to do that - -0:03:16.239,0:03:20.400 -so lazy car without utilizing existing - -0:03:18.800,0:03:22.319 -applications - -0:03:20.400,0:03:24.959 -and to try to make it collaborate with - -0:03:22.319,0:03:26.000 -Emacs there are many solutions available - -0:03:24.959,0:03:28.560 -one of it - -0:03:26.000,0:03:30.159 -is the e-max x windows manager and I'm - -0:03:28.560,0:03:33.360 -sure a lot of you already know that - -0:03:30.159,0:03:35.200 -the exwm however it didn't work for him - -0:03:33.360,0:03:37.440 -because although ux doubling opens the - -0:03:35.200,0:03:38.239 -door to use other applications within - -0:03:37.440,0:03:40.879 -Emacs - -0:03:38.239,0:03:41.519 -it as a fine window manager cannot - -0:03:40.879,0:03:43.920 -modify - -0:03:41.519,0:03:45.040 -customize or extend other software from - -0:03:43.920,0:03:46.799 -Emacs - -0:03:45.040,0:03:48.480 -for example it cannot modify the - -0:03:46.799,0:03:49.599 -behavior when you press a key in - -0:03:48.480,0:03:52.159 -chromium or - -0:03:49.599,0:03:54.000 -pdf viewer therefore it cannot utilize - -0:03:52.159,0:03:57.360 -the rich emax ecosystem that's been - -0:03:54.000,0:04:00.720 -growing for almost 40 years - -0:03:57.360,0:04:03.760 -on the other hand in the ef browser so - -0:04:00.720,0:04:07.200 -if you mx ef open - -0:04:03.760,0:04:09.840 -browser with history you can see - -0:04:07.200,0:04:11.920 -on the lower half of my screen a list of - -0:04:09.840,0:04:14.560 -histories sorted by my personal - -0:04:11.920,0:04:16.560 -most visited sites and you can search - -0:04:14.560,0:04:19.440 -for a site that you've been - -0:04:16.560,0:04:21.840 -into or search for some keyword and in a - -0:04:19.440,0:04:24.240 -search engine - -0:04:21.840,0:04:25.919 -so this is all achieved by utilizing the - -0:04:24.240,0:04:29.120 -popular completion framework in the - -0:04:25.919,0:04:29.120 -Emacs ecosystem - -0:04:29.280,0:04:33.680 -so this car decided to develop a - -0:04:31.120,0:04:36.960 -solution of its own in 2018 - -0:04:33.680,0:04:40.000 -namely the eaf project so I joined the - -0:04:36.960,0:04:40.000 -development last year - -0:04:40.840,0:04:47.880 -2019 ef is - -0:04:44.000,0:04:49.759 -a highly customizable and extensible - -0:04:47.880,0:04:52.160 -reapplication framework that extends - -0:04:49.759,0:04:57.840 -imax to graphical capabilities using pi - -0:04:52.160,0:05:02.479 -qd5 and it is not a window manager - -0:04:57.840,0:05:03.440 -alright so in the readme you can see a - -0:05:02.479,0:05:05.600 -list of gifs - -0:05:03.440,0:05:06.720 -showcasing all the available ef - -0:05:05.600,0:05:09.520 -applications - -0:05:06.720,0:05:10.960 -a browser a markdown premier a video - -0:05:09.520,0:05:14.240 -player - -0:05:10.960,0:05:16.160 -a pdf viewer and more today I don't have - -0:05:14.240,0:05:16.560 -enough time to demonstrate each one of - -0:05:16.160,0:05:18.720 -them - -0:05:16.560,0:05:21.120 -but I will select a couple applications - -0:05:18.720,0:05:24.240 -to show you - -0:05:21.120,0:05:27.840 -so since we are already using ef browser - -0:05:24.240,0:05:29.600 -we'll start with this besides using the - -0:05:27.840,0:05:32.000 -classic control n control p - -0:05:29.600,0:05:33.840 -you can also use the vim style xjkl to - -0:05:32.000,0:05:36.320 -move up or down - -0:05:33.840,0:05:37.280 -also meta shift comma or g to the - -0:05:36.320,0:05:39.120 -beginning of page - -0:05:37.280,0:05:41.199 -when that shift period or capital g to - -0:05:39.120,0:05:44.320 -the end of page - -0:05:41.199,0:05:46.479 -limiting and surfing keys linear and - -0:05:44.320,0:05:48.400 -surfing keys are popular keyboard-based - -0:05:46.479,0:05:50.479 -browsing techniques in chrome - -0:05:48.400,0:05:52.720 -and they've imported here as well you - -0:05:50.479,0:05:53.039 -can press f to toggle markers pointing - -0:05:52.720,0:05:55.280 -to - -0:05:53.039,0:05:56.960 -all the links in the current page say I - -0:05:55.280,0:05:59.680 -want to visit the wiki - -0:05:56.960,0:06:02.400 -which comes very very handy when you - -0:05:59.680,0:06:04.720 -want to configure ef to your liking - -0:06:02.400,0:06:05.440 -so you see the marker on top of wiki is - -0:06:04.720,0:06:08.479 -dd - -0:06:05.440,0:06:10.240 -press dd and you enter and now - -0:06:08.479,0:06:13.680 -you will navigate it to this link so you - -0:06:10.240,0:06:13.680 -don't need to use your mouse at all - -0:06:13.840,0:06:17.680 -so a full list of key bindings can be - -0:06:16.560,0:06:20.560 -found when you - -0:06:17.680,0:06:21.199 -control hm just as any other max major - -0:06:20.560,0:06:22.960 -mode - -0:06:21.199,0:06:25.600 -so you don't have to remember everything - -0:06:22.960,0:06:28.560 -all the key bindings I said to you - -0:06:25.600,0:06:30.960 -so this is a global binding application - -0:06:28.560,0:06:34.319 -to every other ef application as well - -0:06:30.960,0:06:36.720 -so you can find it under the week or or - -0:06:34.319,0:06:37.600 -you can find it under the wiki in the - -0:06:36.720,0:06:40.639 -key binding - -0:06:37.600,0:06:44.240 -section so press f again and use - -0:06:40.639,0:06:45.600 -ns press enter now you're in the key - -0:06:44.240,0:06:47.520 -binding web page - -0:06:45.600,0:06:49.280 -you can see all of the key buttons - -0:06:47.520,0:06:53.919 -available in every - -0:06:49.280,0:06:56.479 -es application and you can try them out - -0:06:53.919,0:06:57.360 -and you can customize your key bindings - -0:06:56.479,0:07:00.240 -using ef - -0:06:57.360,0:07:02.960 -bank key you can customize control n as - -0:07:00.240,0:07:05.759 -in the web page to - -0:07:02.960,0:07:06.639 -to scroll up in the ef pdf viewer or you - -0:07:05.759,0:07:09.599 -can unbind - -0:07:06.639,0:07:10.000 -an existing binding using using yet bank - -0:07:09.599,0:07:14.800 -key - -0:07:10.000,0:07:14.800 -binder to new so it doesn't bind to - -0:07:14.840,0:07:20.319 -anything - -0:07:16.160,0:07:22.479 -okay so here comes the important part - -0:07:20.319,0:07:25.440 -if you want to customize ef you should - -0:07:22.479,0:07:28.840 -visit the customization page in the wiki - -0:07:25.440,0:07:30.240 -so now I press meta b to go back in - -0:07:28.840,0:07:32.960 -history and - -0:07:30.240,0:07:34.080 -go to the customization package press f - -0:07:32.960,0:07:36.639 -press a d - -0:07:34.080,0:07:37.360 -enter and now we're in the customization - -0:07:36.639,0:07:39.280 -page - -0:07:37.360,0:07:42.400 -so the first customization option you - -0:07:39.280,0:07:42.400 -see is dark mode - -0:07:42.639,0:07:46.720 -let's say if you want to turn on the doc - -0:07:44.479,0:07:48.479 -mode for ef browser - -0:07:46.720,0:07:49.919 -and you don't want to use your mouse to - -0:07:48.479,0:07:53.360 -do all this stuff - -0:07:49.919,0:07:55.840 -you press c and you can select - -0:07:53.360,0:07:58.240 -c to toggle the correct browsing you can - -0:07:55.840,0:08:01.280 -see a lot of markers available - -0:07:58.240,0:08:02.720 -pop um again but they're not they're not - -0:08:01.280,0:08:03.599 -on top of links but instead of - -0:08:02.720,0:08:05.360 -paragraphs - -0:08:03.599,0:08:06.639 -you select the paragraph or your choice - -0:08:05.360,0:08:10.240 -in this case you want - -0:08:06.639,0:08:12.720 -ls which comes here - -0:08:10.240,0:08:15.120 -and then you just you just move the - -0:08:12.720,0:08:18.800 -cursor like what you always do - -0:08:15.120,0:08:23.280 -in Emacs and now you select everything - -0:08:18.800,0:08:25.680 -and use meta w to - -0:08:23.280,0:08:26.479 -excuse me metadata to copy the taste the - -0:08:25.680,0:08:29.199 -text - -0:08:26.479,0:08:30.960 -now we made a shift column to evaluate - -0:08:29.199,0:08:35.120 -what we just copied - -0:08:30.960,0:08:38.320 -and set that to true and - -0:08:35.120,0:08:42.159 -press r or f5 to refresh the page - -0:08:38.320,0:08:44.880 -voila we have the dark mode enabled - -0:08:42.159,0:08:46.160 -so there are well let's take a toggle - -0:08:44.880,0:08:49.360 -back off for now - -0:08:46.160,0:08:51.600 -now we made our shift column again - -0:08:49.360,0:08:53.519 -and we find the the one we just used and - -0:08:51.600,0:08:56.880 -change it back to false - -0:08:53.519,0:08:59.120 -and refresh the page back in the light - -0:08:56.880,0:08:59.120 -mode - -0:08:59.360,0:09:03.680 -so there are many other customization - -0:09:02.160,0:09:05.920 -options available you can either - -0:09:03.680,0:09:08.000 -evaluate like what we just did or add it - -0:09:05.920,0:09:11.680 -to your Emacs configuration file - -0:09:08.000,0:09:14.399 -so in this wiki you can have you can - -0:09:11.680,0:09:16.320 -you can make the ef browser to to - -0:09:14.399,0:09:20.160 -continue where you left off - -0:09:16.320,0:09:22.800 -similar to the chromium setting - -0:09:20.160,0:09:23.839 -and you can make yes the default browser - -0:09:22.800,0:09:26.720 -Emacs by - -0:09:23.839,0:09:27.680 -aliasing aliasing browse web to your - -0:09:26.720,0:09:30.399 -open browser - -0:09:27.680,0:09:31.200 -or or set the browse url browser - -0:09:30.399,0:09:33.519 -function to - -0:09:31.200,0:09:34.480 -open browser there's just some tricks - -0:09:33.519,0:09:37.920 -and there are also - -0:09:34.480,0:09:41.680 -uh an experimental app blocker currently - -0:09:37.920,0:09:44.720 -take in place and so therefore it can - -0:09:41.680,0:09:47.279 -block some elements but not all so - -0:09:44.720,0:09:48.240 -we we really encourage people to help us - -0:09:47.279,0:09:51.440 -test out and - -0:09:48.240,0:09:54.560 -add more conditions in - -0:09:51.440,0:09:55.760 -so you can so the ef browser is able to - -0:09:54.560,0:09:57.680 -download - -0:09:55.760,0:09:59.920 -any files from the internet and it will - -0:09:57.680,0:10:04.000 -be downloaded using - -0:09:59.920,0:10:06.079 -a area too and - -0:10:04.000,0:10:07.200 -you can also customize the ef browser - -0:10:06.079,0:10:11.120 -download path - -0:10:07.200,0:10:14.399 -using ef set so it's a function that we - -0:10:11.120,0:10:15.040 -defined similar to set the normal set we - -0:10:14.399,0:10:16.480 -know - -0:10:15.040,0:10:18.160 -so by default the download file is - -0:10:16.480,0:10:19.600 -stored in your home directory slash - -0:10:18.160,0:10:20.800 -downloads - -0:10:19.600,0:10:22.720 -and you can change that whenever you - -0:10:20.800,0:10:26.079 -want you can also disable - -0:10:22.720,0:10:28.959 -saving browsing history so remember - -0:10:26.079,0:10:30.480 -when I press when I use mx you have open - -0:10:28.959,0:10:32.079 -browser's history I see all the - -0:10:30.480,0:10:33.680 -histories here but if you want more - -0:10:32.079,0:10:35.360 -privacy you don't want that to be - -0:10:33.680,0:10:36.560 -available at all you can turn it off - -0:10:35.360,0:10:38.720 -easily with ef - -0:10:36.560,0:10:40.640 -set queue and set that remember history - -0:10:38.720,0:10:42.399 -to false - -0:10:40.640,0:10:43.839 -you can also say your default search - -0:10:42.399,0:10:47.200 -engine so - -0:10:43.839,0:10:50.480 -so right now we have google although - -0:10:47.200,0:10:53.600 -not not really good but google and also - -0:10:50.480,0:10:57.360 -go which is a better search engine - -0:10:53.600,0:10:59.360 -well uh yeah ethically better search - -0:10:57.360,0:11:02.560 -engine - -0:10:59.360,0:11:05.040 -so you can also configure - -0:11:02.560,0:11:07.600 -the zoom so the default zoom of your - -0:11:05.040,0:11:10.000 -browser is 1.0 so you can convert - -0:11:07.600,0:11:11.920 -convert 3000 to 1.25 so you can so when - -0:11:10.000,0:11:14.079 -you open any web page about it will be - -0:11:11.920,0:11:17.360 -zoomed - -0:11:14.079,0:11:20.399 -by default uh you can - -0:11:17.360,0:11:22.240 -also disable javascript although I - -0:11:20.399,0:11:23.440 -personally don't really suggest you to - -0:11:22.240,0:11:26.240 -do because it will - -0:11:23.440,0:11:28.480 -basically break a lot of our features - -0:11:26.240,0:11:29.519 -because a lot of the browser browser - -0:11:28.480,0:11:33.600 -related features - -0:11:29.519,0:11:33.600 -must be implemented using javascript - -0:11:33.760,0:11:37.920 -but yeah you can do it if you really - -0:11:35.440,0:11:41.519 -want to and there also some - -0:11:37.920,0:11:45.519 -customization on ef camera - -0:11:41.519,0:11:45.519 -you can do as well yeah - -0:11:47.760,0:11:56.079 -so uh let's move on to efpd viewer - -0:11:52.399,0:11:59.440 -so now now let's open - -0:11:56.079,0:12:01.519 -the pdf file using af - -0:11:59.440,0:12:02.720 -so that's one something already here but - -0:12:01.519,0:12:06.079 -let's open it here - -0:12:02.720,0:12:08.160 -so yes open and - -0:12:06.079,0:12:11.440 -select introduction to programming in - -0:12:08.160,0:12:13.760 -e-max list - -0:12:11.440,0:12:16.800 -uh I have it already open but it's okay - -0:12:13.760,0:12:16.800 -so you have the file - -0:12:17.040,0:12:22.800 -you have other files displayed - -0:12:20.160,0:12:23.200 -you have all the pages display story yes - -0:12:22.800,0:12:27.040 -and - -0:12:23.200,0:12:29.279 -there are 273 pages in total but notice - -0:12:27.040,0:12:31.440 -like how fast it is to browse - -0:12:29.279,0:12:33.519 -all the pages it is blazingly fast - -0:12:31.440,0:12:37.040 -that's all thanks to python and - -0:12:33.519,0:12:39.839 -mupdf which you don't really get from - -0:12:37.040,0:12:39.839 -Emacs list - -0:12:40.880,0:12:44.079 -so let's say if I want to jump to page - -0:12:43.600,0:12:48.320 -50 - -0:12:44.079,0:12:48.320 -we press p and enter 50. - -0:12:48.639,0:12:55.440 -50 and here we are we are at page 50. - -0:12:53.279,0:12:58.880 -you can look at the lower right to - -0:12:55.440,0:13:02.079 -verify the page you're on - -0:12:58.880,0:13:05.120 -and you can you can - -0:13:02.079,0:13:07.839 -use I to toggle dark mode - -0:13:05.120,0:13:08.240 -as expected and let's say you want to - -0:13:07.839,0:13:11.519 -find - -0:13:08.240,0:13:15.680 -table of contents so use ctrl s - -0:13:11.519,0:13:19.360 -the image default binding for I search - -0:13:15.680,0:13:21.680 -and search for a table of contents - -0:13:19.360,0:13:23.120 -here we are it is highlighted for you - -0:13:21.680,0:13:24.240 -and you can control s for more but - -0:13:23.120,0:13:27.200 -there's only one or - -0:13:24.240,0:13:28.800 -one match one other one you ctrl g to - -0:13:27.200,0:13:30.880 -disable the highlight - -0:13:28.800,0:13:32.320 -and you see a lot of options for you to - -0:13:30.880,0:13:35.040 -go - -0:13:32.320,0:13:36.240 -okay let's say if you want to go to the - -0:13:35.040,0:13:39.519 -preface - -0:13:36.240,0:13:40.639 -so that is you press f which which is - -0:13:39.519,0:13:44.240 -also similar to - -0:13:40.639,0:13:47.760 -eef browser you press f for vimeo - -0:13:44.240,0:13:50.160 -and you see the marker now change to w - -0:13:47.760,0:13:51.279 -press wn and then you can go to the - -0:13:50.160,0:13:54.320 -prefix - -0:13:51.279,0:13:56.480 -now we'll add a prefix - -0:13:54.320,0:13:57.600 -so now you finish reading you want to - -0:13:56.480,0:13:59.440 -save your progress - -0:13:57.600,0:14:01.199 -no worries it is already saved for you - -0:13:59.440,0:14:04.240 -by ef you can safely - -0:14:01.199,0:14:07.519 -close the document using x - -0:14:04.240,0:14:10.560 -and opening again af - -0:14:07.519,0:14:14.000 -open and the file see your I - -0:14:10.560,0:14:16.560 -preface again so you're right at where - -0:14:14.000,0:14:19.440 -you let up left up - -0:14:16.560,0:14:20.480 -you can also use mx org store link or - -0:14:19.440,0:14:23.279 -ctrl cl - -0:14:20.480,0:14:24.480 -which I prefer to if you want to save a - -0:14:23.279,0:14:28.240 -particular page in - -0:14:24.480,0:14:30.320 -a orgmo file so now - -0:14:28.240,0:14:31.760 -I go back to my presentation now I don't - -0:14:30.320,0:14:35.600 -need this anymore - -0:14:31.760,0:14:39.120 -uh so you just control c control l - -0:14:35.600,0:14:41.040 -or I think mx or insert link - -0:14:39.120,0:14:42.399 -so you can find the file right here and - -0:14:41.040,0:14:44.320 -you press enter - -0:14:42.399,0:14:46.480 -and you press enter for the description - -0:14:44.320,0:14:50.720 -again and now it's right here - -0:14:46.480,0:14:54.000 -and ctrl c ctrl o to open it voila - -0:14:50.720,0:14:57.120 -you're back right so - -0:14:54.000,0:14:58.880 -let's now demonstrate the ef video - -0:14:57.120,0:15:02.639 -player - -0:14:58.880,0:15:03.279 -so mxef open if you use ef open whenever - -0:15:02.639,0:15:06.079 -you want to - -0:15:03.279,0:15:07.279 -open some file you use yet open browser - -0:15:06.079,0:15:09.920 -if you want to use some - -0:15:07.279,0:15:11.199 -actual application that's not really - -0:15:09.920,0:15:14.800 -related to a file - -0:15:11.199,0:15:15.600 -so you have open and select the video - -0:15:14.800,0:15:18.320 -you want so - -0:15:15.600,0:15:19.040 -video demo so I already have a video - -0:15:18.320,0:15:21.839 -demo - -0:15:19.040,0:15:22.720 -ready so because I recorded a video of - -0:15:21.839,0:15:26.000 -the demo - -0:15:22.720,0:15:28.079 -of the ef camera have a look so - -0:15:26.000,0:15:29.279 -let's move to the beginning hello people - -0:15:28.079,0:15:32.399 -from the future - -0:15:29.279,0:15:35.199 -this is a demo of the ef video player - -0:15:32.399,0:15:37.440 -that demos the ef camera feature - -0:15:35.199,0:15:38.639 -so as you can see on the screen of me - -0:15:37.440,0:15:40.959 -inside my camera - -0:15:38.639,0:15:42.880 -and the screen is actually with all - -0:15:40.959,0:15:46.079 -within Emacs - -0:15:42.880,0:15:49.839 -right so and you can open this - -0:15:46.079,0:15:53.040 -using here open camera - -0:15:49.839,0:15:53.600 -and which I'm already into and you can - -0:15:53.040,0:15:56.720 -press - -0:15:53.600,0:15:59.680 -p to capture a photo - -0:15:56.720,0:16:00.880 -so the photo is by default stored at - -0:15:59.680,0:16:03.920 -your home slash - -0:16:00.880,0:16:04.320 -downloads directory and you can modify - -0:16:03.920,0:16:07.839 -it - -0:16:04.320,0:16:09.519 -freely so if you go here and you can see - -0:16:07.839,0:16:13.759 -the camera stored - -0:16:09.519,0:16:16.240 -right here so why what I used here - -0:16:13.759,0:16:17.120 -so you press space to pause what I used - -0:16:16.240,0:16:20.320 -here is - -0:16:17.120,0:16:22.959 -the year so ef open this entire so - -0:16:20.320,0:16:23.839 -basically so in direct you you go to you - -0:16:22.959,0:16:26.959 -you select - -0:16:23.839,0:16:30.320 -the file that should be opened by - -0:16:26.959,0:16:32.720 -eaf and I use that so it it detects that - -0:16:30.320,0:16:35.839 -it wants to use the ef image viewer so - -0:16:32.720,0:16:39.759 -I accidentally tested if image viewer - -0:16:35.839,0:16:40.240 -before I noticed so that that that gives - -0:16:39.759,0:16:43.680 -the - -0:16:40.240,0:16:47.040 -image of the photo I just took - -0:16:43.680,0:16:47.360 -using ef camera and as you can see you - -0:16:47.040,0:16:50.720 -can - -0:16:47.360,0:16:51.600 -I can use hl the bim button to navigate - -0:16:50.720,0:16:55.920 -in the time - -0:16:51.600,0:17:00.880 -timestamp in the video and I can use - -0:16:55.920,0:17:00.880 -jk to to change the volumes of the video - -0:17:02.320,0:17:06.160 -alright so now you've seen all the basic - -0:17:05.520,0:17:08.720 -usages - -0:17:06.160,0:17:11.600 -of the ef project it comes the question - -0:17:08.720,0:17:14.559 -of what is the magic behind it - -0:17:11.600,0:17:15.919 -all right let's open the hacking page in - -0:17:14.559,0:17:20.400 -the wiki - -0:17:15.919,0:17:24.799 -the design is laid out in a diagram here - -0:17:20.400,0:17:24.799 -so and let's put it - -0:17:25.120,0:17:28.160 -side by side along with my text so you - -0:17:27.839,0:17:32.320 -can - -0:17:28.160,0:17:36.080 -go we can follow through - -0:17:32.320,0:17:39.440 -right okay let me - -0:17:36.080,0:17:39.440 -sorry let me drink some water - -0:17:42.320,0:17:48.160 -so this page in the wiki went into a lot - -0:17:46.000,0:17:49.520 -of detail - -0:17:48.160,0:17:51.679 -due to the time constraint I will just - -0:17:49.520,0:17:53.520 -rephrase some of the ideas here so for - -0:17:51.679,0:17:55.600 -anyone interested please have a look at - -0:17:53.520,0:17:58.160 -the wiki yourself - -0:17:55.600,0:17:58.720 -the easiest way to think about eaf is - -0:17:58.160,0:18:01.679 -that - -0:17:58.720,0:18:02.960 -the actual gui application is started in - -0:18:01.679,0:18:04.960 -the background - -0:18:02.960,0:18:07.120 -then the frame of the application is - -0:18:04.960,0:18:07.679 -attached to the appropriate location on - -0:18:07.120,0:18:10.720 -the - -0:18:07.679,0:18:13.440 -Emacs window so - -0:18:10.720,0:18:14.960 -you have linked qt5 with Emacs using - -0:18:13.440,0:18:17.120 -list and python - -0:18:14.960,0:18:18.640 -of the python site which is colored - -0:18:17.120,0:18:20.559 -yellow in the image - -0:18:18.640,0:18:22.960 -you have two graphics view and queue - -0:18:20.559,0:18:25.039 -graphics scene objects - -0:18:22.960,0:18:26.640 -these are used to simulate the e-max - -0:18:25.039,0:18:28.640 -window buffer design - -0:18:26.640,0:18:29.840 -where q graphics scene is similar to - -0:18:28.640,0:18:31.840 -buffers in Emacs - -0:18:29.840,0:18:34.240 -it controls the state and the content - -0:18:31.840,0:18:38.880 -details of the application - -0:18:34.240,0:18:38.880 -well q graphics view is similar to - -0:18:39.039,0:18:43.200 -geographic view is similar to imax - -0:18:41.200,0:18:45.919 -window it populates the buffer - -0:18:43.200,0:18:46.960 -to graphics scene to the full program at - -0:18:45.919,0:18:50.320 -the appropriate - -0:18:46.960,0:18:57.679 -position whenever an ef mode buffer - -0:18:50.320,0:18:59.679 -brings to a background - -0:18:57.679,0:19:00.880 -whenever an ef mode buffer brings to the - -0:18:59.679,0:19:02.559 -foreground sorry - -0:19:00.880,0:19:05.120 -a queue graphics view instance is - -0:19:02.559,0:19:06.080 -created and whenever the buffer goes to - -0:19:05.120,0:19:08.000 -the background - -0:19:06.080,0:19:09.120 -the q graphics view instance is then - -0:19:08.000,0:19:10.960 -deleted - -0:19:09.120,0:19:12.480 -while q graphics scene the actual - -0:19:10.960,0:19:14.480 -process remains running in the - -0:19:12.480,0:19:16.000 -background until the ef mode buffer is - -0:19:14.480,0:19:18.320 -killed - -0:19:16.000,0:19:19.440 -gpa compositing is used to ensure that q - -0:19:18.320,0:19:21.840 -graphics view and - -0:19:19.440,0:19:24.000 -graphics sync is synchronized real time - -0:19:21.840,0:19:25.679 -using q windows set parent function - -0:19:24.000,0:19:27.840 -the queue graphics view is attached to - -0:19:25.679,0:19:30.640 -appropriate location on the e-max frame - -0:19:27.840,0:19:32.400 -so that although great applications are - -0:19:30.640,0:19:35.760 -not running within e-max - -0:19:32.400,0:19:35.760 -they look as if they were - -0:19:36.160,0:19:41.039 -so when user types on the keyboard it is - -0:19:39.039,0:19:43.520 -first received by the Emacs ef - -0:19:41.039,0:19:45.360 -ef mode buffer and then it lifts sends - -0:19:43.520,0:19:46.240 -the event to google graphics sync using - -0:19:45.360,0:19:48.720 -dbus - -0:19:46.240,0:19:50.400 -when user clicks on the gui application - -0:19:48.720,0:19:50.799 -it is received by the queue graphics - -0:19:50.400,0:19:53.280 -view - -0:19:50.799,0:19:55.200 -and process in python ellipse can - -0:19:53.280,0:19:59.200 -communicate with python through dbus - -0:19:55.200,0:20:01.360 -in other words in other words you can - -0:19:59.200,0:20:01.760 -customize and extend Emacs not just - -0:20:01.360,0:20:04.480 -using - -0:20:01.760,0:20:05.360 -lisp and now you can use python this way - -0:20:04.480,0:20:07.039 -one can leverage - -0:20:05.360,0:20:09.600 -all the python properties like - -0:20:07.039,0:20:11.679 -multi-threading or some other stuff - -0:20:09.600,0:20:13.520 -the entire python ecosystem can be - -0:20:11.679,0:20:16.159 -utilized as well - -0:20:13.520,0:20:16.960 -such as the qt web engine that is the - -0:20:16.159,0:20:20.640 -basis for - -0:20:16.960,0:20:23.360 -our eef browser and pi mu pdf is the - -0:20:20.640,0:20:25.840 -basis for the ef pdf viewer - -0:20:23.360,0:20:28.240 -so this really opens the window to many - -0:20:25.840,0:20:31.120 -many new possibilities to extend Emacs - -0:20:28.240,0:20:31.120 -using eaf - -0:20:32.720,0:20:37.760 -all right back here we are always - -0:20:36.080,0:20:39.679 -looking for people to join the - -0:20:37.760,0:20:42.720 -development there are many many - -0:20:39.679,0:20:44.640 -more work that needs to be done like - -0:20:42.720,0:20:46.640 -such as testing and debug if there are - -0:20:44.640,0:20:47.760 -more linux distros and window managers - -0:20:46.640,0:20:51.200 -such as i3 - -0:20:47.760,0:20:52.080 -and stuff I mean you can also add new ef - -0:20:51.200,0:20:54.240 -applications - -0:20:52.080,0:20:55.440 -or debug and enhance existing af - -0:20:54.240,0:20:58.000 -applications - -0:20:55.440,0:21:00.240 -or you can port ef to native wayland - -0:20:58.000,0:21:03.840 -which I just discussed with the - -0:21:00.240,0:21:07.919 -the ems whip kit author uh a kill - -0:21:03.840,0:21:10.159 -akira tile and she he told me that like - -0:21:07.919,0:21:11.200 -really like it must really yeah it - -0:21:10.159,0:21:14.320 -doesn't really work - -0:21:11.200,0:21:16.799 -um native villain because it uses - -0:21:14.320,0:21:18.159 -x valence so it doesn't work on the pgdk - -0:21:16.799,0:21:20.559 -port of Emacs - -0:21:18.159,0:21:22.080 -so and we also need people to pour ef to - -0:21:20.559,0:21:25.600 -non-free operating systems - -0:21:22.080,0:21:28.480 -including windows and mac os - -0:21:25.600,0:21:30.080 -and that's because like debug is a linux - -0:21:28.480,0:21:31.360 -specific feature so it doesn't really - -0:21:30.080,0:21:33.039 -work on other platform - -0:21:31.360,0:21:34.640 -we need to change replace it with some - -0:21:33.039,0:21:36.720 -alternative and - -0:21:34.640,0:21:38.640 -geographic scene somehow doesn't really - -0:21:36.720,0:21:40.320 -work on mac os - -0:21:38.640,0:21:42.880 -and there are many other to-do lists - -0:21:40.320,0:21:45.039 -available so please have a look - -0:21:42.880,0:21:46.640 -if and see it's anything you want to - -0:21:45.039,0:21:49.039 -work on - -0:21:46.640,0:21:51.120 -all right so since this is a - -0:21:49.039,0:21:53.520 -pre-recorded talk I won't be able to do - -0:21:51.120,0:21:56.080 -the q a real time in the video - -0:21:53.520,0:21:57.200 -however I will be around on the - -0:21:56.080,0:22:00.559 -collaborate pad - -0:21:57.200,0:22:01.360 -and the irc imax con you must come - -0:22:00.559,0:22:04.240 -questions - -0:22:01.360,0:22:05.760 -to answer any questions it pops up and - -0:22:04.240,0:22:09.120 -you can also submit an issue - -0:22:05.760,0:22:12.640 -on the repo and you can check the wiki - -0:22:09.120,0:22:15.039 -for some other guides and tricks - -0:22:12.640,0:22:16.000 -all right thank you guys and hopefully - -0:22:15.039,0:22:18.320 -you find the - -0:22:16.000,0:22:24.320 -this year project very interesting and - -0:22:18.320,0: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.sbv b/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.sbv deleted file mode 100644 index 6c265873..00000000 --- a/2020/subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.sbv +++ /dev/null @@ -1,507 +0,0 @@ -0:00:02.800,0:00:05.600 -I can yes - -0:00:09.200,0:00:14.920 -okay um yeah so I'm uh zachary canfer - -0:00:13.120,0:00:17.520 -let's go to the - -0:00:14.920,0:00:19.119 -questions uh the first question uh why - -0:00:17.520,0:00:19.840 -do we go top to bottom for time - -0:00:19.119,0:00:23.920 -progression - -0:00:19.840,0:00:27.279 -uh and left to right uh for low to high - -0:00:23.920,0:00:30.000 -interesting I think uh so the initial - -0:00:27.279,0:00:31.599 -uh thing I was copying that initial app - -0:00:30.000,0:00:35.280 -work this way - -0:00:31.599,0:00:36.960 -um and - -0:00:35.280,0:00:38.960 -yeah I mean certainly traditional music - -0:00:36.960,0:00:43.040 -you know on a staff uh - -0:00:38.960,0:00:46.000 -does go left to right uh like this - -0:00:43.040,0:00:47.440 -um I mean going top to bottom does make - -0:00:46.000,0:00:48.960 -it easier to add more beats without - -0:00:47.440,0:00:49.920 -having to wrap but certainly that could - -0:00:48.960,0:00:52.239 -be managed - -0:00:49.920,0:00:53.760 -um yeah I I had not really thought about - -0:00:52.239,0:00:55.199 -it but it is definitely something worth - -0:00:53.760,0:00:59.840 -looking into - -0:00:55.199,0:00:59.840 -uh yeah you are now unmuted - -0:01:02.480,0:01:06.960 -ah good point thank you let me go ahead - -0:01:05.680,0:01:13.840 -and do that - -0:01:06.960,0:01:13.840 -uh the entire screen - -0:01:14.240,0:01:18.320 -okay so the screen share should be - -0:01:16.880,0:01:21.439 -starting - -0:01:18.320,0:01:24.880 -there we go cool all right uh - -0:01:21.439,0:01:26.640 -two will be placed on the song um not - -0:01:24.880,0:01:28.080 -now I can I can make some recordings of - -0:01:26.640,0:01:30.720 -it or certainly you can try it - -0:01:28.080,0:01:33.119 -um I couldn't quite get the the - -0:01:30.720,0:01:37.040 -microphone and the webcam and everything - -0:01:33.119,0:01:40.079 -to work with the sound playing now um so - -0:01:37.040,0:01:43.520 -uh I can record some also please uh - -0:01:40.079,0:01:46.640 -I put a link at the uh here in the uh - -0:01:43.520,0:01:48.479 -etherpad https://zck.me/emacsconf2020 - -0:01:46.640,0:01:49.920 -where you can go and get the source - -0:01:48.479,0:01:51.920 -and you can try it yourself uh there's - -0:01:49.920,0:01:54.560 -no dependencies needed so it's just all - -0:01:51.920,0:01:56.880 -in Emacs um so please you know try it - -0:01:54.560,0:01:56.880 -yourself - -0:01:57.040,0:02:01.040 -any chance for an Emacs tracker or mod - -0:02:00.079,0:02:03.680 -player - -0:02:01.040,0:02:04.479 -um I don't really know what a mod player - -0:02:03.680,0:02:08.000 -or tracker - -0:02:04.479,0:02:09.679 -are but I mean I'm sure - -0:02:08.000,0:02:11.599 -that would be cool uh maybe there's one - -0:02:09.679,0:02:13.920 -on now but I don't know uh - -0:02:11.599,0:02:15.200 -my musical background so I've played - -0:02:13.920,0:02:15.840 -various instruments since about the - -0:02:15.200,0:02:18.160 -third grade - -0:02:15.840,0:02:19.520 -uh started recorder uh play cello I play - -0:02:18.160,0:02:22.560 -guitar now - -0:02:19.520,0:02:23.680 -um but yeah so just kind of random - -0:02:22.560,0:02:26.959 -instruments and - -0:02:23.680,0:02:27.280 -uh yeah I guess kind of some of those - -0:02:26.959,0:02:30.480 -things - -0:02:27.280,0:02:33.519 -influence how I think about music um - -0:02:30.480,0:02:35.360 -uh yeah um - -0:02:33.519,0:02:36.640 -are there any open source musical - -0:02:35.360,0:02:37.840 -management sample libraries that could - -0:02:36.640,0:02:41.200 -be used - -0:02:37.840,0:02:42.400 -um good question I'm sure there are um I - -0:02:41.200,0:02:43.360 -don't know any that integrate really - -0:02:42.400,0:02:44.560 -well with Emacs - -0:02:43.360,0:02:45.680 -one of the cool things that I liked - -0:02:44.560,0:02:47.440 -about this is that there are no - -0:02:45.680,0:02:49.360 -dependencies - -0:02:47.440,0:02:50.800 -you know you don't need any external - -0:02:49.360,0:02:53.040 -program to - -0:02:50.800,0:02:54.160 -uh generate the music I mean it it does - -0:02:53.040,0:02:57.280 -shell out to - -0:02:54.160,0:02:58.640 -to play um but that - -0:02:57.280,0:02:59.840 -should be able to be done on any - -0:02:58.640,0:03:03.200 -operating system as always you have - -0:02:59.840,0:03:03.200 -something that can play wav files - -0:03:03.519,0:03:06.879 -um but yeah it is interesting to kind of - -0:03:05.599,0:03:10.000 -try the different - -0:03:06.879,0:03:12.239 -uh different sounds and different - -0:03:10.000,0:03:14.400 -tones uh that you could get with - -0:03:12.239,0:03:16.959 -different instruments - -0:03:14.400,0:03:17.599 -have I written any actual songs um - -0:03:16.959,0:03:20.640 -nothing - -0:03:17.599,0:03:20.640 -super uh - -0:03:21.040,0:03:25.519 -uh well put together just I kind of just - -0:03:23.680,0:03:27.440 -been playing around with this - -0:03:25.519,0:03:29.040 -it's kind of I making this was one of - -0:03:27.440,0:03:30.080 -those things where like once I made it I - -0:03:29.040,0:03:31.280 -was like okay - -0:03:30.080,0:03:32.720 -now I can play with it and I did a - -0:03:31.280,0:03:33.920 -little bit and was like I don't know if - -0:03:32.720,0:03:37.280 -I feel like it right now - -0:03:33.920,0:03:38.720 -you know which I've I've found that to - -0:03:37.280,0:03:39.599 -be the case with some things that I've - -0:03:38.720,0:03:41.360 -implemented - -0:03:39.599,0:03:43.519 -in Emacs where it's I make it and then - -0:03:41.360,0:03:44.480 -it's the kind of some of the desire to - -0:03:43.519,0:03:46.879 -use it all the time - -0:03:44.480,0:03:47.760 -goes away but I'm sure I'll circle back - -0:03:46.879,0:03:51.040 -around - -0:03:47.760,0:03:52.400 -at some point especially kind of maybe - -0:03:51.040,0:03:54.640 -once I add in different tones or - -0:03:52.400,0:03:56.400 -something - -0:03:54.640,0:03:57.840 -I guess a similar question for - -0:03:56.400,0:04:01.120 -pre-recorded sounds yeah I mean - -0:03:57.840,0:04:02.080 -if it's part of what I did what I wrote - -0:04:01.120,0:04:04.720 -was a - -0:04:02.080,0:04:06.720 -wave generation library so if you kind - -0:04:04.720,0:04:08.400 -of have the data - -0:04:06.720,0:04:10.159 -you could use those and like chop them - -0:04:08.400,0:04:13.360 -up and take certain lengths of them - -0:04:10.159,0:04:14.959 -and make a wav file so it's not plug and - -0:04:13.360,0:04:19.120 -play right now but you could certainly - -0:04:14.959,0:04:21.040 -add those notes uh to do it - -0:04:19.120,0:04:22.720 -um any knitting midi mapping - -0:04:21.040,0:04:24.560 -possibilities um - -0:04:22.720,0:04:26.160 -I haven't looked into it but I'm sure - -0:04:24.560,0:04:28.800 -you definitely could output to midi - -0:04:26.160,0:04:30.400 -um which is another benefit of having - -0:04:28.800,0:04:31.520 -that multiple layers with the top layer - -0:04:30.400,0:04:33.360 -is just like - -0:04:31.520,0:04:35.120 -um you know if the root note is this - -0:04:33.360,0:04:36.560 -we're just two semitones up or seven - -0:04:35.120,0:04:38.160 -semitones up or whatever it is - -0:04:36.560,0:04:40.720 -uh it should be relatively simple to - -0:04:38.160,0:04:44.479 -kind of switch out that layer underneath - -0:04:40.720,0:04:45.759 -uh from wave to midi or other things - -0:04:44.479,0:04:47.520 -what were some of the challenges with - -0:04:45.759,0:04:49.759 -writing a special mode for Emacs - -0:04:47.520,0:04:51.040 -uh interested in getting into this not - -0:04:49.759,0:04:54.960 -sure where to start - -0:04:51.040,0:04:57.120 -um there uh yeah it so - -0:04:54.960,0:04:58.320 -this isn't the first mode I've written - -0:04:57.120,0:05:01.759 -um so that's right - -0:04:58.320,0:05:05.600 -certainly that helps um I actually - -0:05:01.759,0:05:08.240 -um I have a video that we recorded it - -0:05:05.600,0:05:09.039 -as part of Emacs nyc on making a major - -0:05:08.240,0:05:10.720 -mode - -0:05:09.039,0:05:12.639 -that's basically like starts from - -0:05:10.720,0:05:15.680 -nothing and kind of builds up to - -0:05:12.639,0:05:17.039 -an implementation of tic-tac-toe um - -0:05:15.680,0:05:19.600 -but so it kind of goes into printing - -0:05:17.039,0:05:21.280 -things out and buttons and making the - -0:05:19.600,0:05:22.800 -mode - -0:05:21.280,0:05:24.560 -I mean one of the best parts about Emacs - -0:05:22.800,0:05:26.479 -is because it's so - -0:05:24.560,0:05:28.479 -uh configurable and so introspectible - -0:05:26.479,0:05:30.320 -you can start pretty simply - -0:05:28.479,0:05:32.320 -and just kind of asking max about things - -0:05:30.320,0:05:34.960 -and then make one little - -0:05:32.320,0:05:36.479 -change um it's really it's not that bad - -0:05:34.960,0:05:39.039 -so uh - -0:05:36.479,0:05:40.560 -I'll try to throw a link up on that uh - -0:05:39.039,0:05:42.000 -on on that page I put up or - -0:05:40.560,0:05:44.479 -please email me for whoever asked this - -0:05:42.000,0:05:46.240 -question uh to get a link to that video - -0:05:44.479,0:05:47.919 -um or just look at look at the source - -0:05:46.240,0:05:50.479 -code of this or any other major mode - -0:05:47.919,0:05:52.880 -um it it's pretty ems breaks it makes it - -0:05:50.479,0:05:56.479 -pretty easy to extend uh - -0:05:52.880,0:05:57.600 -major modes and I think that's that's - -0:05:56.479,0:06:00.240 -the last question - -0:05:57.600,0:06:02.479 -in the ether pad so uh thanks so much - -0:06:00.240,0:06:06.720 -everybody for coming - -0:06:02.479,0:06:09.039 -you are now unmuted uh thank you so much - -0:06:06.720,0:06:12.960 -to curry for your awesome talk - -0:06:09.039,0:06:19.840 -and for doing live questions - -0:06:12.960,0:06:19.840 -thank you thank you cheers - diff --git a/2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley-autogen.sbv b/2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley-autogen.sbv deleted file mode 100644 index 803bb0c9..00000000 --- a/2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley-autogen.sbv +++ /dev/null @@ -1,459 +0,0 @@ -0:00:00.080,0:00:04.960 -hello EmacsConf this is john wigley I'm - -0:00:03.040,0:00:06.319 -one of the co-maintainers of Emacs along - -0:00:04.960,0:00:09.280 -with ellie zoretsky - -0:00:06.319,0:00:09.840 -and lars ingebrigston and I wanted to - -0:00:09.280,0:00:12.639 -give you - -0:00:09.840,0:00:14.960 -a technical update on what has been - -0:00:12.639,0:00:18.400 -happening - -0:00:14.960,0:00:20.640 -with the Emacs in the last year so - -0:00:18.400,0:00:21.600 -specifically uh we have a few notes that - -0:00:20.640,0:00:24.480 -I've gotten from - -0:00:21.600,0:00:25.840 -a call with ellie he's been in charge of - -0:00:24.480,0:00:28.000 -directing most of the - -0:00:25.840,0:00:30.160 -technical contributions on the mailing - -0:00:28.000,0:00:33.200 -list and monitoring all the patches - -0:00:30.160,0:00:35.840 -so I'm more here just as a messenger - -0:00:33.200,0:00:37.120 -he says that we have good progress and - -0:00:35.840,0:00:39.040 -support for cairo - -0:00:37.120,0:00:40.320 -this is going to be enabled by default - -0:00:39.040,0:00:42.480 -and emax 28 - -0:00:40.320,0:00:44.800 -and cairo plus half buzz is going to be - -0:00:42.480,0:00:46.879 -the preferred rendering combination - -0:00:44.800,0:00:48.719 -so cairo support is not new but in the - -0:00:46.879,0:00:51.440 -past there were a lot of bugs in the - -0:00:48.719,0:00:52.960 -code and so it was made experimental - -0:00:51.440,0:00:54.960 -so most of those bugs have been fixed - -0:00:52.960,0:00:56.320 -recently and now it becomes the default - -0:00:54.960,0:00:58.320 -and the next major version - -0:00:56.320,0:01:00.320 -which will enable several good features - -0:00:58.320,0:01:01.680 -such as color emojis if you're looking - -0:01:00.320,0:01:04.720 -forward to those - -0:01:01.680,0:01:06.560 -xft as a result is deprecated there are - -0:01:04.720,0:01:07.760 -bugs not getting fixed in that code it - -0:01:06.560,0:01:08.720 -doesn't appear to be very well - -0:01:07.760,0:01:10.960 -maintained - -0:01:08.720,0:01:13.760 -it was the most advanced font mac end - -0:01:10.960,0:01:15.920 -and emax before cairo became dependable - -0:01:13.760,0:01:17.840 -so now that we have a more a better - -0:01:15.920,0:01:19.360 -maintained and available solution in - -0:01:17.840,0:01:23.200 -cairo we're going to go from that - -0:01:19.360,0:01:23.840 -go from xft to that native compilation - -0:01:23.200,0:01:26.400 -in lisp - -0:01:23.840,0:01:28.080 -will also be landing soon it's currently - -0:01:26.400,0:01:28.799 -on a branch but there are several people - -0:01:28.080,0:01:31.040 -using it - -0:01:28.799,0:01:32.479 -they say they're very impressed it does - -0:01:31.040,0:01:35.600 -require live gcc - -0:01:32.479,0:01:37.439 -jit to be installed for it to work and - -0:01:35.600,0:01:38.960 -this means you have to have gcc 10 - -0:01:37.439,0:01:41.040 -installed - -0:01:38.960,0:01:42.240 -execution of Emacs lisp with native - -0:01:41.040,0:01:45.280 -compilation on - -0:01:42.240,0:01:46.159 -is about 2.5 times faster than the - -0:01:45.280,0:01:48.399 -bytecode - -0:01:46.159,0:01:49.439 -interpreter we don't yet have any - -0:01:48.399,0:01:51.600 -measurements on - -0:01:49.439,0:01:52.960 -memory or how it affects resources - -0:01:51.600,0:01:54.720 -besides cpu so - -0:01:52.960,0:01:56.399 -we do look forward to having more - -0:01:54.720,0:01:58.320 -numbers and analysis to see what the - -0:01:56.399,0:02:01.360 -real impact of that is going to be - -0:01:58.320,0:02:02.799 -also it may vary in compute advantage - -0:02:01.360,0:02:04.320 -based on the type of workload that - -0:02:02.799,0:02:06.240 -you're performing - -0:02:04.320,0:02:08.080 -a downside to the native compilation at - -0:02:06.240,0:02:10.720 -the moment is that it takes a long - -0:02:08.080,0:02:12.720 -time to compile even when you're doing a - -0:02:10.720,0:02:14.959 -16 core build of Emacs - -0:02:12.720,0:02:15.760 -it can still take 15 minutes to compile - -0:02:14.959,0:02:17.840 -Emacs - -0:02:15.760,0:02:19.520 -and all of its in all of its lisp code - -0:02:17.840,0:02:21.840 -with this enabled - -0:02:19.520,0:02:23.120 -also this is going to have to happen on - -0:02:21.840,0:02:25.360 -every user's machine - -0:02:23.120,0:02:27.520 -because we cannot distribute the native - -0:02:25.360,0:02:28.319 -compilation products they are specific - -0:02:27.520,0:02:29.760 -to the compo - -0:02:28.319,0:02:31.440 -to the processor that you might be - -0:02:29.760,0:02:33.920 -running on so - -0:02:31.440,0:02:35.680 -the emax distribution will remain much - -0:02:33.920,0:02:37.760 -as it is now but if you want to have the - -0:02:35.680,0:02:39.599 -benefits of natively compiled - -0:02:37.760,0:02:41.519 -core lisp files you're going to have to - -0:02:39.599,0:02:42.400 -spend that time and have gcc 10 - -0:02:41.519,0:02:45.840 -available - -0:02:42.400,0:02:48.959 -to get that compilation support um - -0:02:45.840,0:02:52.160 -the gtk only build is being prepared - -0:02:48.959,0:02:52.959 -for merging so what this does is it - -0:02:52.160,0:02:55.120 -throws away - -0:02:52.959,0:02:56.000 -most of the other tool kits that Emacs - -0:02:55.120,0:02:59.280 -was using - -0:02:56.000,0:03:01.760 -and relies only on gtk making Emacs - -0:02:59.280,0:03:03.920 -much more of a gtk application than it - -0:03:01.760,0:03:06.480 -has been - -0:03:03.920,0:03:08.480 -the main issue here is that we were - -0:03:06.480,0:03:09.360 -abusing gtk in some ways that weren't - -0:03:08.480,0:03:10.879 -really meant - -0:03:09.360,0:03:12.879 -and now we're going to be more of a - -0:03:10.879,0:03:14.080 -first club gtk will be more of a first - -0:03:12.879,0:03:17.040 -class citizen in the - -0:03:14.080,0:03:17.440 -approach and the ways that we use it and - -0:03:17.040,0:03:19.280 -and - -0:03:17.440,0:03:21.200 -be using it in the ways that the gtk - -0:03:19.280,0:03:23.360 -developers intended - -0:03:21.200,0:03:24.640 -there is going to be much more support - -0:03:23.360,0:03:27.280 -for xt mouse - -0:03:24.640,0:03:29.120 -so xt mouse allows you to use your mouse - -0:03:27.280,0:03:30.799 -inside of a terminal window - -0:03:29.120,0:03:33.120 -which you could do before but there were - -0:03:30.799,0:03:36.159 -certain aspects such as menus - -0:03:33.120,0:03:38.239 -that weren't supported so instead of - -0:03:36.159,0:03:39.840 -having kind of partial support for mouse - -0:03:38.239,0:03:42.879 -inside of an x term with xt - -0:03:39.840,0:03:44.959 -mouse you get full support this is going - -0:03:42.879,0:03:46.720 -to allow - -0:03:44.959,0:03:48.159 -changes in the way that things can be - -0:03:46.720,0:03:51.200 -bound the ways that - -0:03:48.159,0:03:53.200 -uh key bindings can the mouse events can - -0:03:51.200,0:03:56.879 -be mapped to key bindings while in - -0:03:53.200,0:03:58.480 -x terms and um yeah little by little - -0:03:56.879,0:03:59.040 -this support is being extended even - -0:03:58.480,0:04:01.599 -further - -0:03:59.040,0:04:04.080 -so we look forward to seeing that - -0:04:01.599,0:04:06.239 -develop in the near term - -0:04:04.080,0:04:08.080 -once this is merged by the way also then - -0:04:06.239,0:04:09.840 -Emacs will have mouse support in every - -0:04:08.080,0:04:12.720 -one of its available configurations - -0:04:09.840,0:04:14.680 -which has not been true until now Emacs - -0:04:12.720,0:04:17.519 -27 will be soon releasing - -0:04:14.680,0:04:19.919 -27.2 and the pretest for that should - -0:04:17.519,0:04:20.880 -begin sometime soon after Emacs comp is - -0:04:19.919,0:04:23.360 -done - -0:04:20.880,0:04:24.800 -and finally Emacs 28 is going to get - -0:04:23.360,0:04:26.479 -better emoji support - -0:04:24.800,0:04:29.120 -right now emojis are registered - -0:04:26.479,0:04:31.759 -internally within Emacs as symbols - -0:04:29.120,0:04:33.759 -which works in some ways but does not - -0:04:31.759,0:04:37.360 -support some of the special features - -0:04:33.759,0:04:40.000 -of of emojis such as different - -0:04:37.360,0:04:41.120 -skin tones for the hand emoji or face - -0:04:40.000,0:04:43.280 -emojis - -0:04:41.120,0:04:45.199 -in Emacs 28 emojis are going to have - -0:04:43.280,0:04:47.199 -their own support within the sequel - -0:04:45.199,0:04:49.360 -c code and then this is going to allow - -0:04:47.199,0:04:52.720 -those types of variations and other - -0:04:49.360,0:04:54.639 -emoji specific font setups so that is - -0:04:52.720,0:04:56.720 -everything for Emacs - -0:04:54.639,0:04:59.120 -in the future I don't have a timeline - -0:04:56.720,0:05:01.520 -for you on when 28 will be available - -0:04:59.120,0:05:02.720 -but 27 is going to keep improving until - -0:05:01.520,0:05:04.479 -we're ready to get there - -0:05:02.720,0:05:06.479 -so have fun with the rest of you max - -0:05:04.479,0:05:09.199 -conf and I hope to see you there - -0:05:06.479,0:05:09.199 -bye - diff --git a/2020/subtitles/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman-autogen.sbv b/2020/subtitles/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman-autogen.sbv deleted file mode 100644 index 1936a150..00000000 --- a/2020/subtitles/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman-autogen.sbv +++ /dev/null @@ -1,2832 +0,0 @@ -0:00:00.640,0:00:05.680 -okay so the first question is what is an - -0:00:04.160,0:00:08.800 -example of a car - -0:00:05.680,0:00:12.160 -a package currently in - -0:00:08.800,0:00:13.759 -a non-elpa repo that does not work well - -0:00:12.160,0:00:18.000 -with Emacs - -0:00:13.759,0:00:19.760 -well one of them is s dot el - -0:00:18.000,0:00:21.920 -and this is what made me aware that - -0:00:19.760,0:00:25.760 -there was an issue here that caused - -0:00:21.920,0:00:29.439 -problems well s.e.l - -0:00:25.760,0:00:31.279 -is a beautifully written package - -0:00:29.439,0:00:32.800 -that appears to be very useful for - -0:00:31.279,0:00:36.320 -people - -0:00:32.800,0:00:39.520 -and there's just one thing wrong with it - -0:00:36.320,0:00:43.680 -it gobbled up the name space - -0:00:39.520,0:00:47.039 -of symbols starting with s dash - -0:00:43.680,0:00:49.440 -and I was shocked to discover that - -0:00:47.039,0:00:51.760 -somebody who had not coordinated with - -0:00:49.440,0:00:55.360 -the Emacs developers at all - -0:00:51.760,0:00:56.800 -had implemented a package using such a - -0:00:55.360,0:00:59.760 -short prefix which - -0:00:56.800,0:01:01.520 -isn't the right way to do things oh by - -0:00:59.760,0:01:04.000 -the way the questions have moved off the - -0:01:01.520,0:01:05.360 -screen this is no good I can continue - -0:01:04.000,0:01:08.880 -answering this one - -0:01:05.360,0:01:12.159 -but I'll be stuck when this one is over - -0:01:08.880,0:01:15.040 -anyway so uh - -0:01:12.159,0:01:16.560 -and I was told that there was nothing I - -0:01:15.040,0:01:19.920 -could do about it - -0:01:16.560,0:01:22.960 -that so many users packages were using - -0:01:19.920,0:01:24.240 -swl and thus essentially using that - -0:01:22.960,0:01:28.080 -definition - -0:01:24.240,0:01:31.360 -of the s dash star symbols - -0:01:28.080,0:01:34.720 -that any attempt to use them - -0:01:31.360,0:01:38.079 -publicly or privately for anything else - -0:01:34.720,0:01:41.680 -would lead to horrible problems - -0:01:38.079,0:01:45.520 -and I don't like that - -0:01:41.680,0:01:49.040 -I decided I wanted to do something - -0:01:45.520,0:01:52.320 -a so that that wouldn't happen again - -0:01:49.040,0:01:55.119 -and b to make it unhappen - -0:01:52.320,0:01:57.840 -in that case well the way to make it - -0:01:55.119,0:02:02.240 -unhappen in that case is with a new - -0:01:57.840,0:02:05.360 -symbol renaming feature the idea is - -0:02:02.240,0:02:09.119 -you rename that file to something else - -0:02:05.360,0:02:11.520 -and then you define an s.e.l that - -0:02:09.119,0:02:13.040 -sets up symbol renaming and then loads - -0:02:11.520,0:02:16.080 -the something else - -0:02:13.040,0:02:16.400 -so it actually runs the same code it - -0:02:16.080,0:02:20.879 -just - -0:02:16.400,0:02:23.920 -doesn't globally define the symbols - -0:02:20.879,0:02:26.160 -s dash whatever but they - -0:02:23.920,0:02:28.319 -appear to work for the programs that - -0:02:26.160,0:02:32.640 -explicitly - -0:02:28.319,0:02:36.000 -require that require sdl - -0:02:32.640,0:02:38.080 -or the s package so this gets the same - -0:02:36.000,0:02:40.239 -behavior for all the programs that are - -0:02:38.080,0:02:43.360 -using that library - -0:02:40.239,0:02:47.840 -and uh doesn't interfere - -0:02:43.360,0:02:50.319 -with the global name space at all - -0:02:47.840,0:02:52.080 -however to do that we need to have a - -0:02:50.319,0:02:55.360 -package - -0:02:52.080,0:02:57.760 -s.e.l that isn't the same - -0:02:55.360,0:02:58.640 -totally a short file that's totally - -0:02:57.760,0:03:01.440 -different - -0:02:58.640,0:03:02.840 -plus we've got to have the file that - -0:03:01.440,0:03:06.239 -normally is called - -0:03:02.840,0:03:10.319 -s.e.l available but - -0:03:06.239,0:03:13.040 -uh under another name well - -0:03:10.319,0:03:14.800 -how are we going to do that we can't put - -0:03:13.040,0:03:18.879 -this into - -0:03:14.800,0:03:21.920 -into Emacs in a nice way that - -0:03:18.879,0:03:24.560 -won't make the uh won't make the - -0:03:21.920,0:03:26.480 -maintainer angry - -0:03:24.560,0:03:28.159 -of the mate to the developer of that - -0:03:26.480,0:03:32.080 -package - -0:03:28.159,0:03:34.640 -but we can do it with non-gnu - -0:03:32.080,0:03:36.239 -elpa we can put those two things into - -0:03:34.640,0:03:38.720 -non-gnu elpa - -0:03:36.239,0:03:40.720 -without any difficulty and this shows - -0:03:38.720,0:03:43.280 -one of the advantages - -0:03:40.720,0:03:45.440 -we can put files we can put packages - -0:03:43.280,0:03:48.400 -into non-gdu elpa - -0:03:45.440,0:03:49.599 -and make changes in them now in general - -0:03:48.400,0:03:51.760 -we wouldn't - -0:03:49.599,0:03:54.319 -go to the effort of making big changes - -0:03:51.760,0:03:56.400 -that's just too much to do - -0:03:54.319,0:03:58.000 -unless something's really important but - -0:03:56.400,0:04:01.120 -small changes - -0:03:58.000,0:04:04.319 -that help things fit in are - -0:04:01.120,0:04:07.120 -easy to do and - -0:04:04.319,0:04:10.319 -uh okay oh so basically the recording - -0:04:07.120,0:04:13.439 -didn't get anything until now I just saw - -0:04:10.319,0:04:14.319 -a note pop up this session is now being - -0:04:13.439,0:04:16.320 -recorded - -0:04:14.319,0:04:18.160 -I hope it's been recorded all along it - -0:04:16.320,0:04:21.280 -would be a shame to - -0:04:18.160,0:04:27.120 -spoil oh good okay - -0:04:21.280,0:04:30.479 -okay good so uh that's one of the issues - -0:04:27.120,0:04:33.840 -uh does non-gnu eopa already exist - -0:04:30.479,0:04:35.360 -or is this a sort of quote plan I don't - -0:04:33.840,0:04:37.919 -know why you have to - -0:04:35.360,0:04:40.400 -put scare quotes around the word plan - -0:04:37.919,0:04:44.160 -it's sort of in between - -0:04:40.400,0:04:45.440 -it's the creation of it is started you - -0:04:44.160,0:04:48.160 -will find - -0:04:45.440,0:04:51.520 -that there is an archive that it's - -0:04:48.160,0:04:54.880 -possible to download packages from - -0:04:51.520,0:04:57.120 -and there is a repository to put them in - -0:04:54.880,0:04:58.560 -but that's not the way it's really - -0:04:57.120,0:05:02.800 -supposed to work - -0:04:58.560,0:05:04.320 -uh this is not supposed to be like the - -0:05:02.800,0:05:07.280 -new elpa where there's - -0:05:04.320,0:05:09.039 -one repo for all the packages and thus - -0:05:07.280,0:05:11.199 -anyone who wants to edit any of them - -0:05:09.039,0:05:11.680 -anyone that we want to have edit any of - -0:05:11.199,0:05:13.280 -them - -0:05:11.680,0:05:15.440 -has got to have access to the whole - -0:05:13.280,0:05:18.560 -thing for one thing - -0:05:15.440,0:05:21.840 -some packages will make - -0:05:18.560,0:05:25.120 -an arrangement with the developers - -0:05:21.840,0:05:27.039 -and they'll assure us that they will - -0:05:25.120,0:05:28.400 -do things as things should be done and - -0:05:27.039,0:05:32.080 -then we'll - -0:05:28.400,0:05:35.919 -have their repo copied automatically - -0:05:32.080,0:05:38.160 -or in other cases say - -0:05:35.919,0:05:40.160 -copied manually with a little checking - -0:05:38.160,0:05:43.199 -every so often - -0:05:40.160,0:05:46.400 -uh and then uh in - -0:05:43.199,0:05:49.440 -other cases we'll need to have our own - -0:05:46.400,0:05:52.479 -repo for a particular package - -0:05:49.440,0:05:54.400 -but we shouldn't have a single repo for - -0:05:52.479,0:05:55.919 -all the packages we should have a repo - -0:05:54.400,0:05:57.840 -for each package - -0:05:55.919,0:06:01.120 -so that the people working on that can - -0:05:57.840,0:06:04.319 -get access to modify it - -0:06:01.120,0:06:06.080 -this has to be finished setting up - -0:06:04.319,0:06:07.680 -and we're still working out the - -0:06:06.080,0:06:11.039 -procedures - -0:06:07.680,0:06:14.400 -for instance for making the arrangements - -0:06:11.039,0:06:15.440 -with the developers of a package so that - -0:06:14.400,0:06:18.840 -we can - -0:06:15.440,0:06:20.400 -we hope uh entrust its development to - -0:06:18.840,0:06:24.240 -them and - -0:06:20.400,0:06:24.240 -rely on them directly - -0:06:24.800,0:06:29.520 -and there may be more that needs to be - -0:06:26.560,0:06:29.520 -worked on - -0:06:29.840,0:06:35.840 -oh there's so many questions - -0:06:36.639,0:06:40.880 -well I hope you the third question is - -0:06:39.280,0:06:43.680 -what are the benefits - -0:06:40.880,0:06:46.240 -I hope that people now see the benefits - -0:06:43.680,0:06:49.599 -I've described them - -0:06:46.240,0:06:51.440 -uh next question is it possible to work - -0:06:49.599,0:06:54.720 -with the melba team - -0:06:51.440,0:06:59.440 -to integrate that into Emacs - -0:06:54.720,0:07:03.759 -no because the goal doesn't make sense - -0:06:59.440,0:07:07.199 -melba the way it's done does not belong - -0:07:03.759,0:07:08.560 -inside Emacs in any sense well first of - -0:07:07.199,0:07:11.280 -all it can't literally be - -0:07:08.560,0:07:13.280 -inside Emacs we don't have copyright - -0:07:11.280,0:07:18.160 -assignments for that code - -0:07:13.280,0:07:20.560 -and to get it would be unfeasible - -0:07:18.160,0:07:21.520 -but we're not asking for copyright - -0:07:20.560,0:07:25.280 -assignments for - -0:07:21.520,0:07:27.599 -non-gnu elpa so that's - -0:07:25.280,0:07:31.440 -you might wonder could melpa be merged - -0:07:27.599,0:07:35.039 -with non-venue elpa the problem is - -0:07:31.440,0:07:38.240 -melpa doesn't modify the packages - -0:07:35.039,0:07:41.360 -it's just a place to find releases of - -0:07:38.240,0:07:44.800 -packages wherever they happen to be - -0:07:41.360,0:07:48.319 -and they put packages in with - -0:07:44.800,0:07:51.520 -only a little bit of checking - -0:07:48.319,0:07:51.919 -so no we there are a lot of packages - -0:07:51.520,0:07:55.280 -that are - -0:07:51.919,0:07:58.479 -in melpa that we'd like to get into - -0:07:55.280,0:08:00.800 -non-canoe elpa I don't know the names of - -0:07:58.479,0:08:04.160 -most of them but I expect most of them - -0:08:00.800,0:08:07.680 -would be fine to have but they've got to - -0:08:04.160,0:08:07.680 -be looked at one by one - -0:08:08.560,0:08:14.479 -there are some rules for non-glpa - -0:08:12.000,0:08:18.000 -and the only way to check them is to - -0:08:14.479,0:08:22.160 -check them on one package at a time - -0:08:18.000,0:08:25.039 -and that's going to take effort - -0:08:22.160,0:08:26.080 -now with the people who work on melba - -0:08:25.039,0:08:29.440 -want to get involved - -0:08:26.080,0:08:32.800 -of this that would be great - -0:08:29.440,0:08:33.919 -I haven't tried asking them first we've - -0:08:32.800,0:08:37.599 -got to get this thing - -0:08:33.919,0:08:40.479 -set up I doubt they would want to - -0:08:37.599,0:08:42.959 -but if they said yes that would be - -0:08:40.479,0:08:42.959 -wonderful - -0:08:44.159,0:08:55.839 -uh any thoughts of packages being - -0:08:48.399,0:08:55.839 -added I'm afraid - -0:09:00.959,0:09:03.360 -um - -0:09:05.440,0:09:08.959 -I'm afraid any thoughts of packages - -0:09:07.200,0:09:11.040 -being added as - -0:09:08.959,0:09:13.120 -some url I don't know anything about but - -0:09:11.040,0:09:16.800 -it talks about open source - -0:09:13.120,0:09:17.680 -which means I'm very unlikely to have - -0:09:16.800,0:09:20.959 -much - -0:09:17.680,0:09:24.080 -in common with whatever they say about - -0:09:20.959,0:09:27.760 -either licensing or - -0:09:24.080,0:09:29.959 -what's right and wrong uh - -0:09:27.760,0:09:31.920 -but this seems to be something about - -0:09:29.959,0:09:35.680 -disregarding licenses - -0:09:31.920,0:09:39.360 -altogether well that is basically - -0:09:35.680,0:09:43.360 -asking to lose there are reasons - -0:09:39.360,0:09:45.600 -why we developed gnu licenses to release - -0:09:43.360,0:09:48.320 -software why we have criteria - -0:09:45.600,0:09:49.519 -for which licenses make a program free - -0:09:48.320,0:09:52.640 -software - -0:09:49.519,0:09:55.519 -if the program doesn't carry a license - -0:09:52.640,0:09:56.080 -or if it carries a non-free license that - -0:09:55.519,0:09:59.760 -program - -0:09:56.080,0:10:02.839 -is not free software now you can - -0:09:59.760,0:10:04.800 -maybe get away with disregarding that - -0:10:02.839,0:10:07.600 -fact uh unless - -0:10:04.800,0:10:08.959 -somebody an author or publisher stops - -0:10:07.600,0:10:11.360 -you - -0:10:08.959,0:10:12.399 -but we're not going to take we're not - -0:10:11.360,0:10:15.200 -basically going to - -0:10:12.399,0:10:16.399 -disregard the question of whether the - -0:10:15.200,0:10:19.040 -software we - -0:10:16.399,0:10:21.360 -recommend to people really is free - -0:10:19.040,0:10:24.560 -software or not - -0:10:21.360,0:10:27.519 -that's basically uh - -0:10:24.560,0:10:29.120 -blindfolding yourself to the legal - -0:10:27.519,0:10:30.480 -situation of the software you're - -0:10:29.120,0:10:33.519 -distributing - -0:10:30.480,0:10:35.920 -it's a terrible idea uh if they - -0:10:33.519,0:10:38.640 -disregard our licenses they will hear - -0:10:35.920,0:10:40.959 -from us about it - -0:10:38.640,0:10:42.720 -and if you want to contribute to the - -0:10:40.959,0:10:46.320 -free world - -0:10:42.720,0:10:48.640 -put free licenses on your code - -0:10:46.320,0:10:50.000 -and choose good ones to get this - -0:10:48.640,0:10:53.440 -information - -0:10:50.000,0:10:57.120 -look at gnu.org slash licensing - -0:10:53.440,0:10:59.839 -in particular slash licenses - -0:10:57.120,0:11:01.120 -and one page that input that's important - -0:10:59.839,0:11:05.040 -is license - -0:11:01.120,0:11:07.360 -dash recommendations.html - -0:11:05.040,0:11:09.279 -that's where we advise you on what - -0:11:07.360,0:11:11.360 -license we would recommend you use - -0:11:09.279,0:11:15.600 -depending on the circumstances - -0:11:11.360,0:11:20.160 -there's also license dash list dot html - -0:11:15.600,0:11:22.160 -which describes a lot of licenses and - -0:11:20.160,0:11:25.040 -says which ones are free - -0:11:22.160,0:11:26.160 -which ones are compatible with the new - -0:11:25.040,0:11:28.640 -gpl - -0:11:26.160,0:11:31.519 -it's really important to use only gpl - -0:11:28.640,0:11:34.320 -compatible licenses - -0:11:31.519,0:11:35.519 -so that the various programs can be - -0:11:34.320,0:11:40.480 -combined together - -0:11:35.519,0:11:40.480 -or linked and - -0:11:40.720,0:11:44.240 -you can also get other information about - -0:11:43.120,0:11:47.040 -gnu licenses - -0:11:44.240,0:11:49.680 -and the reasons why they are written the - -0:11:47.040,0:11:49.680 -way they are - -0:11:55.279,0:11:59.760 -oh sorry I don't see the next question - -0:12:03.200,0:12:07.519 -oh why do I insist on using per and - -0:12:05.600,0:12:11.680 -purrs - -0:12:07.519,0:12:14.959 -uh I'm not happy with using - -0:12:11.680,0:12:17.440 -they which is a plural pronoun with a - -0:12:14.959,0:12:20.480 -singular antecedent - -0:12:17.440,0:12:24.800 -it's bad because it causes - -0:12:20.480,0:12:28.639 -confusion that is completely gratuitous - -0:12:24.800,0:12:33.200 -many sentences become a lot of work - -0:12:28.639,0:12:36.480 -to parse and understand if you - -0:12:33.200,0:12:39.839 -add that ambiguity that source of him of - -0:12:36.480,0:12:42.720 -regular ambiguity now - -0:12:39.839,0:12:43.680 -I do not accept the demands of other - -0:12:42.720,0:12:47.519 -people - -0:12:43.680,0:12:50.800 -in regard to changing my grammar - -0:12:47.519,0:12:54.240 -you can try to convince me but - -0:12:50.800,0:12:55.440 -no one is entitled to give me orders - -0:12:54.240,0:12:58.880 -about that - -0:12:55.440,0:13:03.200 -or state their desires and expect - -0:12:58.880,0:13:06.560 -obedience not for me and not from you - -0:13:03.200,0:13:09.839 -or anyone we are all - -0:13:06.560,0:13:13.200 -equally entitled to decide - -0:13:09.839,0:13:18.000 -how we will speak and how we won't speak - -0:13:13.200,0:13:22.880 -now I've spelled out all of these points - -0:13:18.000,0:13:26.079 -in a file called stolman.org - -0:13:22.880,0:13:26.079 -articles slash - -0:13:30.120,0:13:33.760 -genderneutrality.html - -0:13:31.600,0:13:36.000 -of course this is not a gnu project - -0:13:33.760,0:13:40.800 -policy - -0:13:36.000,0:13:40.800 -it's my own personal ideas on the - -0:13:46.839,0:13:49.839 -subject - -0:13:53.920,0:14:01.040 -if any of you feels offended - -0:13:57.120,0:14:04.320 -by my referring to you with a singular - -0:14:01.040,0:14:07.680 -gender neutral pronoun feel free - -0:14:04.320,0:14:10.720 -to ex contact me privately - -0:14:07.680,0:14:14.000 -and explain to me your reasons - -0:14:10.720,0:14:16.639 -I will pay attention to them I'll - -0:14:14.000,0:14:18.399 -think about them assuming that they're - -0:14:16.639,0:14:24.079 -not something I've already - -0:14:18.399,0:14:27.760 -considered and decided to dismiss before - -0:14:24.079,0:14:30.240 -but you must not speak to me as if I had - -0:14:27.760,0:14:30.800 -no business not obeying you because - -0:14:30.240,0:14:34.320 -that's - -0:14:30.800,0:14:37.360 -rude and it is not likely to convince me - -0:14:34.320,0:14:37.360 -to change my mind - -0:14:40.720,0:14:48.320 -I believe it is not actually - -0:14:44.240,0:14:50.560 -of stating offense to anyone - -0:14:48.320,0:14:52.880 -and the fact that somebody disagrees - -0:14:50.560,0:14:59.839 -with me does not mean I'm wrong - -0:14:52.880,0:14:59.839 -but I always can be wrong - -0:15:00.720,0:15:05.680 -when you wrote that you could add a - -0:15:02.560,0:15:07.120 -package to non your new elpa - -0:15:05.680,0:15:09.199 -are you implying that you would add - -0:15:07.120,0:15:11.120 -packages with or without package - -0:15:09.199,0:15:15.279 -maintainers knowledge - -0:15:11.120,0:15:18.000 -of course the packages we would - -0:15:15.279,0:15:19.519 -we would distribute in this way are free - -0:15:18.000,0:15:21.920 -software - -0:15:19.519,0:15:22.720 -everyone is entitled to redistribute - -0:15:21.920,0:15:26.560 -them - -0:15:22.720,0:15:26.959 -and everyone is also entitled to modify - -0:15:26.560,0:15:29.199 -them - -0:15:26.959,0:15:31.680 -and redistribute them that's part of the - -0:15:29.199,0:15:35.040 -meaning of free software - -0:15:31.680,0:15:38.320 -I have been unable to understand - -0:15:35.040,0:15:42.560 -how there came to be an idea - -0:15:38.320,0:15:45.600 -that those who redistribute packages - -0:15:42.560,0:15:49.360 -have some idea to be mere - -0:15:45.600,0:15:54.480 -some obligation to be near mirrors - -0:15:49.360,0:15:58.560 -and not modify things themselves - -0:15:54.480,0:16:01.440 -well if a package is - -0:15:58.560,0:16:03.440 -being maintained by developers who are - -0:16:01.440,0:16:06.240 -cooperating with us - -0:16:03.440,0:16:07.360 -we'll normally just leave it to them - -0:16:06.240,0:16:10.079 -after all - -0:16:07.360,0:16:10.399 -we have lots of other work to do they - -0:16:10.079,0:16:14.000 -are - -0:16:10.399,0:16:15.600 -clearly experts on the packages they've - -0:16:14.000,0:16:18.399 -developed - -0:16:15.600,0:16:22.800 -let's leave it to them if they make that - -0:16:18.399,0:16:26.480 -sort of arrangement with us but - -0:16:22.800,0:16:29.120 -that's up to them we can't insist that - -0:16:26.480,0:16:30.720 -anyone make an arrangement with us - -0:16:29.120,0:16:33.279 -but since those programs are free - -0:16:30.720,0:16:36.639 -software anyone c is - -0:16:33.279,0:16:38.880 -free to redistribute them and we will do - -0:16:36.639,0:16:38.880 -that - -0:16:41.839,0:16:51.839 -have you ever used vi or vim or - -0:16:45.519,0:16:51.839 -evil mode no - -0:16:52.079,0:16:56.800 -are there any plans to implement - -0:16:53.920,0:17:00.720 -security considerations in non-gnu - -0:16:56.800,0:17:02.959 -elpa uh we probably - -0:17:00.720,0:17:04.959 -should and this will have to be - -0:17:02.959,0:17:08.559 -implemented - -0:17:04.959,0:17:12.000 -but at the moment - -0:17:08.559,0:17:13.280 -developer Emacs maintainers will copy - -0:17:12.000,0:17:18.160 -packages - -0:17:13.280,0:17:20.160 -into it and so as long as they are - -0:17:18.160,0:17:22.480 -verifying the packages and getting the - -0:17:20.160,0:17:25.199 -packages from the right place - -0:17:22.480,0:17:25.919 -that will take care of the security once - -0:17:25.199,0:17:30.160 -there is - -0:17:25.919,0:17:33.200 -when with automatic copying in - -0:17:30.160,0:17:35.200 -will have to do something to - -0:17:33.200,0:17:38.480 -make sure that we're fetching the - -0:17:35.200,0:17:38.480 -packages securely - -0:17:40.320,0:17:44.000 -and uh some of you might be interested - -0:17:43.360,0:17:46.080 -in - -0:17:44.000,0:17:48.000 -helping to design and implement this - -0:17:46.080,0:17:52.559 -system - -0:17:48.000,0:17:56.720 -uh what distro do I use - -0:17:52.559,0:17:58.000 -uh well which distro of gnu slash linux - -0:17:56.720,0:18:01.840 -do I use - -0:17:58.000,0:18:01.840 -I use tree scale - -0:18:03.520,0:18:10.080 -I haven't tried most of the free distros - -0:18:07.200,0:18:11.120 -and the reason is it's not crucial that - -0:18:10.080,0:18:13.520 -I do so - -0:18:11.120,0:18:14.799 -we don't need me to rate the various - -0:18:13.520,0:18:17.520 -free distros on - -0:18:14.799,0:18:20.000 -practical questions because anyone can - -0:18:17.520,0:18:24.400 -do that as well as I can - -0:18:20.000,0:18:27.760 -and so you can tell people what - -0:18:24.400,0:18:29.360 -you think of using them for me what's - -0:18:27.760,0:18:32.400 -important to me - -0:18:29.360,0:18:34.160 -is to inform people of the difference - -0:18:32.400,0:18:36.799 -between the free distros - -0:18:34.160,0:18:38.799 -and the non-free distros making sure - -0:18:36.799,0:18:42.000 -people are aware that if you - -0:18:38.799,0:18:45.600 -install a non-free gnu slash linux - -0:18:42.000,0:18:46.720 -distro you'll get a free operating - -0:18:45.600,0:18:49.919 -system with - -0:18:46.720,0:18:54.160 -non-free stuff in various quantities - -0:18:49.919,0:18:56.240 -added thus you will not reach freedom - -0:18:54.160,0:18:57.520 -although you you'll make a lot of - -0:18:56.240,0:19:01.039 -progress compared - -0:18:57.520,0:19:03.919 -with using for instance windows or - -0:19:01.039,0:19:06.160 -mac os or whatever vicious thing it - -0:19:03.919,0:19:08.559 -might be - -0:19:06.160,0:19:09.760 -I'd like to I'd like to people to be - -0:19:08.559,0:19:12.799 -aware - -0:19:09.760,0:19:14.720 -of this next step towards - -0:19:12.799,0:19:16.160 -getting freedom for yourself and your - -0:19:14.720,0:19:24.480 -own computing - -0:19:16.160,0:19:26.799 -so that you can do that if you want to - -0:19:24.480,0:19:26.799 -uh - -0:19:29.039,0:19:32.799 -so who gets to make the final decision - -0:19:31.360,0:19:36.640 -regarding - -0:19:32.799,0:19:39.200 -non-gnu elpa the - -0:19:36.640,0:19:40.960 -emax maintainers are going to be in - -0:19:39.200,0:19:44.480 -charge of this - -0:19:40.960,0:19:47.760 -but because it's not - -0:19:44.480,0:19:51.360 -just a technical decision it has with - -0:19:47.760,0:19:54.960 -only technical consequences - -0:19:51.360,0:19:57.760 -but in general unless there's some - -0:19:54.960,0:20:00.720 -severe problem with the package we will - -0:19:57.760,0:20:00.720 -want to put it in - -0:20:03.600,0:20:07.440 -and I expect most packages won't have a - -0:20:06.400,0:20:09.919 -problem - -0:20:07.440,0:20:11.679 -and we can just put them in when we get - -0:20:09.919,0:20:15.919 -to them - -0:20:11.679,0:20:17.600 -won't the elpa link to non-free sites - -0:20:15.919,0:20:20.799 -like github - -0:20:17.600,0:20:24.320 -uh it's a mistake to talk about a - -0:20:20.799,0:20:24.320 -non-free site - -0:20:25.760,0:20:32.159 -because a site is not a program - -0:20:29.120,0:20:32.960 -a program is either free or non-free and - -0:20:32.159,0:20:36.480 -we have - -0:20:32.960,0:20:39.679 -clearly stated criteria for that in - -0:20:36.480,0:20:43.039 -gnu.org philosophy slash - -0:20:39.679,0:20:45.360 -free dash sw.html we have the free - -0:20:43.039,0:20:51.360 -software definition - -0:20:45.360,0:20:51.360 -but a site well their programs on it - -0:20:51.919,0:20:55.120 -but it doesn't make sense to ask whether - -0:20:54.000,0:20:58.000 -the site is - -0:20:55.120,0:20:58.880 -free or not it's too simplistic a - -0:20:58.000,0:21:02.000 -question - -0:20:58.880,0:21:05.679 -to have a meaningful answer now one - -0:21:02.000,0:21:08.799 -thing you can ask about is does the site - -0:21:05.679,0:21:11.760 -send javascript to the user's machine - -0:21:08.799,0:21:12.960 -to the user's browser and if so is that - -0:21:11.760,0:21:17.120 -javascript - -0:21:12.960,0:21:19.919 -non-free well github - -0:21:17.120,0:21:21.200 -does send non-free javascript for some - -0:21:19.919,0:21:24.240 -operations - -0:21:21.200,0:21:26.159 -so we consider it unsatisfactory as a - -0:21:24.240,0:21:29.600 -repository - -0:21:26.159,0:21:33.360 -but uh that doesn't mean linking to it - -0:21:29.600,0:21:34.720 -for is a bad thing to do regardless of - -0:21:33.360,0:21:36.640 -what the purpose is - -0:21:34.720,0:21:38.240 -for instance if the purpose is to refer - -0:21:36.640,0:21:40.799 -to some things - -0:21:38.240,0:21:42.880 -that you can access without running the - -0:21:40.799,0:21:47.039 -non-free javascript - -0:21:42.880,0:21:47.039 -then it's okay for that purpose - -0:21:47.200,0:21:52.559 -so if now that you understand the - -0:21:50.480,0:21:54.880 -details of this issue - -0:21:52.559,0:21:55.919 -you think that there is a problem with - -0:21:54.880,0:22:00.080 -the - -0:21:55.919,0:22:03.679 -link to camel there's - -0:22:00.080,0:22:06.799 -sorry a link in camel dot html - -0:22:03.679,0:22:10.880 -well report it to - -0:22:06.799,0:22:14.159 -uh bug gnu emax reported as an Emacs bug - -0:22:10.880,0:22:15.840 -but do think about the criteria I've - -0:22:14.159,0:22:18.000 -just said because maybe it's not a - -0:22:15.840,0:22:21.840 -problem - -0:22:18.000,0:22:24.559 -is it okay to use the gnu of pharaoh gpl - -0:22:21.840,0:22:27.840 -for emax packages - -0:22:24.559,0:22:27.840 -yes it is - -0:22:28.880,0:22:32.080 -uh which is your favorite programming - -0:22:31.120,0:22:35.200 -language - -0:22:32.080,0:22:38.400 -if lisp which variant - -0:22:35.200,0:22:41.760 -well I don't exactly have a - -0:22:38.400,0:22:45.120 -favorite variant but - -0:22:41.760,0:22:47.520 -when I designed Emacs lisp I - -0:22:45.120,0:22:48.799 -did the best thing I could think of at - -0:22:47.520,0:22:52.559 -the time - -0:22:48.799,0:22:55.520 -subject to the need to keep it small - -0:22:52.559,0:22:56.960 -for the first few years it was important - -0:22:55.520,0:22:59.840 -for gdu Emacs - -0:22:56.960,0:23:00.799 -to run in a machine which could only - -0:22:59.840,0:23:04.480 -give it half - -0:23:00.799,0:23:06.559 -a meg of user space - -0:23:04.480,0:23:09.200 -so there are a lot of constructs that - -0:23:06.559,0:23:12.320 -clearly were desirable to include - -0:23:09.200,0:23:15.840 -that I left out because we could - -0:23:12.320,0:23:15.840 -make it work without them - -0:23:16.880,0:23:20.640 -and then a lot of those have been added - -0:23:18.960,0:23:23.200 -since because - -0:23:20.640,0:23:37.840 -it's been a long time since we needed to - -0:23:23.200,0:23:37.840 -keep Emacs so rigorously small - -0:23:40.960,0:23:47.679 -um someone is - -0:23:44.240,0:23:51.360 -asking about the - -0:23:47.679,0:23:54.400 -fsf's repository project well - -0:23:51.360,0:23:55.440 -we agreed that there would be another - -0:23:54.400,0:23:59.919 -virtual machine - -0:23:55.440,0:24:05.840 -running one of those for the gnu project - -0:23:59.919,0:24:05.840 -but that's as far as the discussion went - -0:24:15.840,0:24:25.600 -question 17 is extremely insulting - -0:24:20.480,0:24:28.720 -I have not engaged in sexual harassment - -0:24:25.600,0:24:28.960 -don't expect me to plead guilty to such - -0:24:28.720,0:24:32.640 -a - -0:24:28.960,0:24:35.600 -nasty claim - -0:24:32.640,0:24:36.799 -people have been accusing me of many - -0:24:35.600,0:24:39.919 -things - -0:24:36.799,0:24:43.120 -some of which are - -0:24:39.919,0:24:46.559 -basically mole hills and some of which - -0:24:43.120,0:24:50.640 -are false so - -0:24:46.559,0:24:53.840 -uh I'm not going to give them - -0:24:50.640,0:24:56.400 -anything I have been bullied in a - -0:24:53.840,0:24:59.360 -horrible way - -0:24:56.400,0:24:59.360 -that was wrong - -0:24:59.679,0:25:03.520 -I would like the bullies to apologize to - -0:25:02.720,0:25:06.320 -me - -0:25:03.520,0:25:08.960 -and when I see that they're not bullying - -0:25:06.320,0:25:11.279 -I will forgive them - -0:25:08.960,0:25:14.799 -I would like to have conversations with - -0:25:11.279,0:25:17.840 -them if any of the mole hills - -0:25:14.799,0:25:20.880 -annoyed someone I'm happy to talk - -0:25:17.840,0:25:29.840 -with her and thus - -0:25:20.880,0:25:29.840 -uh help help resolve things with peace - -0:25:31.120,0:25:39.200 -and my opinion on - -0:25:35.120,0:25:42.720 -quote diversity within - -0:25:39.200,0:25:45.679 -Emacs well Emacs is - -0:25:42.720,0:25:46.480 -never going to be diverse it is extended - -0:25:45.679,0:25:49.760 -in - -0:25:46.480,0:25:53.279 -one language Emacs lisp - -0:25:49.760,0:25:55.840 -well I don't know uh we did have an idea - -0:25:53.279,0:25:58.400 -of implementing extensibility using - -0:25:55.840,0:26:01.120 -scheme and the hope was that guile - -0:25:58.400,0:26:02.960 -could be integrated with Emacs that - -0:26:01.120,0:26:05.279 -turned out to be difficult it may be - -0:26:02.960,0:26:07.520 -impossible but in principle - -0:26:05.279,0:26:11.039 -it might be a good thing that would be a - -0:26:07.520,0:26:14.960 -small amount of diversity - -0:26:11.039,0:26:16.960 -but it's not that important - -0:26:14.960,0:26:18.880 -what I think is really important for - -0:26:16.960,0:26:22.799 -developing Emacs - -0:26:18.880,0:26:27.039 -is to make it do word processing - -0:26:22.799,0:26:30.080 -I sometimes use libra office - -0:26:27.039,0:26:32.799 -and yeah I can make it do things - -0:26:30.080,0:26:34.880 -it has features for wysiwyg which are - -0:26:32.799,0:26:38.000 -very nice - -0:26:34.880,0:26:40.400 -but it's in other regards - -0:26:38.000,0:26:42.400 -it's not Emacs and it doesn't have the - -0:26:40.400,0:26:45.520 -abilities of Emacs - -0:26:42.400,0:26:45.520 -and it should - -0:26:45.600,0:26:49.039 -so I urge people to work on extending - -0:26:48.400,0:26:51.600 -Emacs - -0:26:49.039,0:27:07.840 -in that direction adding the features - -0:26:51.600,0:27:07.840 -that a word processor has to have - -0:27:13.600,0:27:21.679 -the last question I can answer is - -0:27:16.640,0:27:24.960 -18 but yes it's a very sad thing - -0:27:21.679,0:27:28.399 -how many companies - -0:27:24.960,0:27:33.200 -insist on using non-free software - -0:27:28.399,0:27:36.799 -well I would get a different kind of job - -0:27:33.200,0:27:40.320 -that's a decision I made many years ago - -0:27:36.799,0:27:42.799 -early in the gnu project - -0:27:40.320,0:27:47.440 -I decided I would not first I would not - -0:27:42.799,0:27:47.440 -get a job developing non-free software - -0:27:47.679,0:27:54.880 -and later on I decided - -0:27:50.960,0:27:57.120 -once I could stop using non-free - -0:27:54.880,0:28:00.799 -software that is once we had - -0:27:57.120,0:28:05.679 -a gnu slash linux system that we could - -0:28:00.799,0:28:05.679 -switch over to and uh - -0:28:08.320,0:28:16.240 -oh wait I thought I thought magic wand - -0:28:11.679,0:28:20.080 -time meant it was time to stop - -0:28:16.240,0:28:20.080 -but now I rather ask the question - -0:28:21.039,0:28:23.279 -uh - -0:28:27.760,0:28:35.679 -so what do you do well if I were you - -0:28:32.480,0:28:37.440 -I'd probably not work for any of those - -0:28:35.679,0:28:39.679 -companies - -0:28:37.440,0:28:40.799 -if I needed to make money I'd get a job - -0:28:39.679,0:28:43.840 -but I get some - -0:28:40.799,0:28:48.080 -other kind of job - -0:28:43.840,0:28:51.039 -that didn't involve using software - -0:28:48.080,0:28:53.600 -I would or that let me choose the - -0:28:51.039,0:28:56.880 -software I would use - -0:28:53.600,0:28:58.000 -but I would live cheaply you know the - -0:28:56.880,0:29:00.640 -less you spend - -0:28:58.000,0:29:01.120 -the less you need to make and the more - -0:29:00.640,0:29:04.720 -time - -0:29:01.120,0:29:07.200 -you can take away from your paid work - -0:29:04.720,0:29:08.640 -and the more flexibility you have in - -0:29:07.200,0:29:13.039 -which paid work - -0:29:08.640,0:29:16.399 -you can do being in a position - -0:29:13.039,0:29:19.919 -to say no to avoid being - -0:29:16.399,0:29:19.919 -desperate to say yes - -0:29:23.679,0:29:31.200 -uh strengthens your position - -0:29:27.440,0:29:33.279 -and you need that one way you can help - -0:29:31.200,0:29:36.559 -do that is by - -0:29:33.279,0:29:38.960 -not having children now that is a - -0:29:36.559,0:29:41.760 -tangent but it can't be denied that - -0:29:38.960,0:29:42.399 -raising children is very expensive I - -0:29:41.760,0:29:45.559 -have heard - -0:29:42.399,0:29:48.080 -many people say that they are - -0:29:45.559,0:29:50.880 -uncomfortable with their jobs - -0:29:48.080,0:29:52.240 -but they have to do those jobs to make - -0:29:50.880,0:29:55.440 -enough money - -0:29:52.240,0:29:59.120 -to support their children - -0:29:55.440,0:30:01.520 -well think about that be aware - -0:29:59.120,0:30:04.720 -that's likely to happen to you before - -0:30:01.520,0:30:04.720 -you make that decision - -0:30:06.159,0:30:09.840 -what would I - -0:30:10.000,0:30:16.960 -what would I change about free software - -0:30:13.279,0:30:20.880 -well since this is - -0:30:16.960,0:30:25.600 -magic I would magically find - -0:30:20.880,0:30:28.000 -a way of showing everyone why - -0:30:25.600,0:30:29.679 -most free software needs to be copy - -0:30:28.000,0:30:32.480 -lifted - -0:30:29.679,0:30:34.880 -so that our community would not - -0:30:32.480,0:30:38.640 -basically - -0:30:34.880,0:30:41.360 -submit to abuse by proprietary software - -0:30:38.640,0:30:41.360 -developers - -0:30:45.919,0:30:53.279 -of course I could go further if I could - -0:30:49.760,0:30:55.760 -magically recruit a hundred thousand - -0:30:53.279,0:30:57.919 -good programmers to do lots of work - -0:30:55.760,0:31:01.039 -improving free software - -0:30:57.919,0:31:03.279 -we might well if we could do this 20 - -0:31:01.039,0:31:06.559 -years ago we might have wiped out - -0:31:03.279,0:31:07.200 -non-free systems and then we wouldn't - -0:31:06.559,0:31:10.320 -have had - -0:31:07.200,0:31:14.480 -horrible things like - -0:31:10.320,0:31:18.000 -world wide web drm that - -0:31:14.480,0:31:20.480 -no one has the courage to resist - -0:31:18.000,0:31:22.640 -if they're desperately trying to get - -0:31:20.480,0:31:26.240 -money for anything - -0:31:22.640,0:31:29.519 -and if they need approval of companies - -0:31:26.240,0:31:32.960 -of the big companies that push for drm - -0:31:29.519,0:31:36.720 -uh then they don't dare even resist as - -0:31:32.960,0:31:36.720 -much as they can resist - -0:31:38.240,0:31:43.200 -and look what happened to the world wide - -0:31:40.880,0:31:47.279 -web consortium - -0:31:43.200,0:31:50.399 -uh they surrendered blatantly - -0:31:47.279,0:31:54.399 -and ignominiously by - -0:31:50.399,0:31:54.399 -endorsing the drm system - -0:31:55.760,0:32:00.880 -so what can you do I don't have a magic - -0:31:59.600,0:32:04.720 -wand - -0:32:00.880,0:32:06.559 -I'm a human being with the capabilities - -0:32:04.720,0:32:09.919 -I have - -0:32:06.559,0:32:12.840 -but the advantage of - -0:32:09.919,0:32:14.000 -great firmness in campaigning for free - -0:32:12.840,0:32:18.240 -software - -0:32:14.000,0:32:23.200 -and this enables me to do things - -0:32:18.240,0:32:23.200 -that no one else will do - -0:32:27.679,0:32:31.519 -what tools from pre unix days do you - -0:32:30.480,0:32:34.240 -miss - -0:32:31.519,0:32:34.880 -well I don't I don't think about them - -0:32:34.240,0:32:38.640 -with - -0:32:34.880,0:32:42.080 -missing them actually but - -0:32:38.640,0:32:46.240 -it was sort of nice to have - -0:32:42.080,0:32:49.600 -ddt as your login shell - -0:32:46.240,0:32:52.640 -so in using modern terminology - -0:32:49.600,0:32:55.519 -because that meant at any time you could - -0:32:52.640,0:32:57.519 -stop a program lotus debugging symbols - -0:32:55.519,0:32:58.799 -and start examining the data in the - -0:32:57.519,0:33:01.519 -instructions - -0:32:58.799,0:33:03.039 -you could debug it that way and then you - -0:33:01.519,0:33:06.720 -could even - -0:33:03.039,0:33:09.760 -patch in instructions to continue - -0:33:06.720,0:33:11.600 -running that job with the bug fixed - -0:33:09.760,0:33:13.919 -in fact you could even do this with the - -0:33:11.600,0:33:16.640 -system kernel - -0:33:13.919,0:33:17.840 -so that your jobs wouldn't get lost I - -0:33:16.640,0:33:20.559 -did that - -0:33:17.840,0:33:22.720 -quite a few times of course sometimes I - -0:33:20.559,0:33:25.919 -saw what was wrong and I just had to - -0:33:22.720,0:33:28.240 -fix a piece of data but sometimes - -0:33:25.919,0:33:29.679 -it took me a long time to figure out how - -0:33:28.240,0:33:32.480 -to get the system to - -0:33:29.679,0:33:34.240 -keep on going but with the work I had - -0:33:32.480,0:33:39.279 -done - -0:33:34.240,0:33:41.600 -I didn't want to lose that work - -0:33:39.279,0:33:43.039 -and so one of the first features I put - -0:33:41.600,0:33:45.840 -into gdu Emacs was - -0:33:43.039,0:33:45.840 -auto save - -0:33:47.760,0:33:54.320 -uh I'm not going to try to figure out - -0:33:50.640,0:33:56.480 -which packages I re I actually used - -0:33:54.320,0:33:59.039 -uh if I knew I would get hit by a bus - -0:33:56.480,0:34:02.320 -tomorrow - -0:33:59.039,0:34:05.039 -uh say because of a fortune teller - -0:34:02.320,0:34:06.240 -no a fortune teller doesn't give you any - -0:34:05.039,0:34:10.159 -knowledge it's just - -0:34:06.240,0:34:13.760 -superstitious uh hand waving - -0:34:10.159,0:34:16.480 -so assuming that I - -0:34:13.760,0:34:18.879 -talked that I got a reading from a - -0:34:16.480,0:34:23.119 -fortune teller which is - -0:34:18.879,0:34:25.040 -implausible enough to begin with uh - -0:34:23.119,0:34:28.320 -that wouldn't give me any knowledge - -0:34:25.040,0:34:32.879 -about what was going to happen to me - -0:34:28.320,0:34:34.960 -oh by the way fortune tellers generally - -0:34:32.879,0:34:36.879 -play back to you facts that they've - -0:34:34.960,0:34:40.480 -discovered about you - -0:34:36.879,0:34:43.440 -together with cold reading which means - -0:34:40.480,0:34:44.639 -they say things calculated to make it - -0:34:43.440,0:34:49.119 -appear that they know - -0:34:44.639,0:34:52.399 -more than they do or things that are - -0:34:49.119,0:34:55.679 -uh that sound wise to anyone - -0:34:52.399,0:34:58.800 -so you can say the same thing to - -0:34:55.679,0:35:02.000 -uh say 100 people - -0:34:58.800,0:35:05.359 -and 80 or 90 of them will say boy that - -0:35:02.000,0:35:05.359 -was really accurate - -0:35:06.480,0:35:14.880 -but what if for some reason - -0:35:10.400,0:35:14.880 -uh about - -0:35:15.119,0:35:18.560 -what what advice would I give for - -0:35:17.440,0:35:22.079 -stewardship of - -0:35:18.560,0:35:25.359 -Emacs well basically - -0:35:22.079,0:35:28.480 -focus on - -0:35:25.359,0:35:29.280 -keeping the community strong in - -0:35:28.480,0:35:32.640 -defending - -0:35:29.280,0:35:34.400 -freedom if you have a choice between - -0:35:32.640,0:35:36.079 -keeping the community strong in - -0:35:34.400,0:35:38.800 -defending freedom - -0:35:36.079,0:35:40.720 -and getting more people to participate - -0:35:38.800,0:35:43.839 -in the development - -0:35:40.720,0:35:44.400 -you've got to choose the freedom it is - -0:35:43.839,0:35:48.400 -very - -0:35:44.400,0:35:52.320 -easy for free software projects to - -0:35:48.400,0:35:55.359 -subordinate freedom to other criteria - -0:35:52.320,0:35:58.079 -and once that happens it's - -0:35:55.359,0:35:58.720 -easy for those who don't care much about - -0:35:58.079,0:36:00.800 -freedom - -0:35:58.720,0:36:02.640 -such as sometimes companies that might - -0:36:00.800,0:36:08.160 -offer you some money - -0:36:02.640,0:36:10.560 -to purchase your soul - -0:36:08.160,0:36:14.240 -not that there are really things that - -0:36:10.560,0:36:16.560 -exist called souls it's a metaphor but - -0:36:14.240,0:36:18.800 -it's an important metaphor for something - -0:36:16.560,0:36:20.880 -important - -0:36:18.800,0:36:24.320 -people in the community have to be - -0:36:20.880,0:36:27.280 -thinking about freedom - -0:36:24.320,0:36:30.240 -when they make decisions about what is - -0:36:27.280,0:36:30.240 -wise to do - -0:36:31.839,0:36:39.839 -the decision to devel to set up non-glpa - -0:36:36.480,0:36:41.520 -has a drawback it was a compromise now a - -0:36:39.839,0:36:44.560 -lot of people will - -0:36:41.520,0:36:46.240 -tell you that I am uncompromising and - -0:36:44.560,0:36:48.720 -say that that's a flaw - -0:36:46.240,0:36:50.320 -well they're wrong I make little - -0:36:48.720,0:36:53.040 -compromises - -0:36:50.320,0:36:55.359 -very often and occasionally I make a - -0:36:53.040,0:36:58.880 -medium-sized compromise - -0:36:55.359,0:36:59.359 -the compromise is in the past we wanted - -0:36:58.880,0:37:01.599 -to get - -0:36:59.359,0:37:02.400 -copyright assignments for the packages - -0:37:01.599,0:37:06.240 -in gnu - -0:37:02.400,0:37:09.119 -elpa so that we could move them into - -0:37:06.240,0:37:11.200 -core Emacs and of course sometimes we - -0:37:09.119,0:37:14.480 -move packages in the other direction - -0:37:11.200,0:37:16.160 -that way we are where we distribute a - -0:37:14.480,0:37:18.160 -given package - -0:37:16.160,0:37:20.720 -is something we can decide purely - -0:37:18.160,0:37:20.720 -technically - -0:37:20.880,0:37:26.800 -and however make insisting on getting - -0:37:25.200,0:37:28.640 -copyright assignments for all the - -0:37:26.800,0:37:32.079 -packages in gnu elpa - -0:37:28.640,0:37:35.119 -meant that we had to say sorry no - -0:37:32.079,0:37:38.560 -we will not install that packages in - -0:37:35.119,0:37:41.520 -packaging dewey lpa unless the - -0:37:38.560,0:37:44.079 -authors sign copyright assignments and - -0:37:41.520,0:37:47.520 -sometimes that's a lot of trouble - -0:37:44.079,0:37:50.160 -well non-glpa - -0:37:47.520,0:37:51.520 -won't require copyright assignments if - -0:37:50.160,0:37:54.560 -there's a free package - -0:37:51.520,0:37:57.200 -we can make whatever changes presumably - -0:37:54.560,0:38:00.560 -small otherwise we would probably say - -0:37:57.200,0:38:04.560 -we don't have time but and then - -0:38:00.560,0:38:05.599 -put it in but it does have the drawback - -0:38:04.560,0:38:07.680 -that - -0:38:05.599,0:38:09.119 -we in general we won't be able to move - -0:38:07.680,0:38:12.960 -those packages - -0:38:09.119,0:38:14.960 -into core Emacs without - -0:38:12.960,0:38:19.839 -getting the legal papers then that we - -0:38:14.960,0:38:19.839 -didn't get before - -0:38:20.160,0:38:27.599 -how do you see the future of gdu Emacs - -0:38:24.320,0:38:29.839 -uh I don't see the future - -0:38:27.599,0:38:31.680 -I used to say that my crystal ball is - -0:38:29.839,0:38:35.680 -cloudy today - -0:38:31.680,0:38:39.040 -unfortunately that has another - -0:38:35.680,0:38:41.200 -meaning which is quite ironic uh we - -0:38:39.040,0:38:44.800 -certainly don't want - -0:38:41.200,0:38:48.480 -our lives to be - -0:38:44.800,0:38:51.119 -somewhere in a cloud because - -0:38:48.480,0:38:51.599 -that clouds your mind and then people - -0:38:51.119,0:38:54.240 -start - -0:38:51.599,0:38:56.880 -cheating you and taking advantage of you - -0:38:54.240,0:39:00.160 -and it's horrible - -0:38:56.880,0:39:02.720 -but uh I don't see the future I just - -0:39:00.160,0:39:03.839 -can be sure from the past that there - -0:39:02.720,0:39:07.599 -will be - -0:39:03.839,0:39:10.720 -challenges where some of the people - -0:39:07.599,0:39:12.960 -involved want to make a big compromise - -0:39:10.720,0:39:16.880 -that isn't worth it - -0:39:12.960,0:39:18.079 -and they some they may even get the - -0:39:16.880,0:39:21.200 -impression that it's - -0:39:18.079,0:39:24.480 -up to them well actually - -0:39:21.200,0:39:27.440 -Emacs has appointed maintainers just as - -0:39:24.480,0:39:29.280 -every gdu package does and they are the - -0:39:27.440,0:39:30.480 -ones in charge of developing that - -0:39:29.280,0:39:34.400 -package - -0:39:30.480,0:39:38.200 -and this is for a good reason - -0:39:34.400,0:39:39.760 -because the appointed maintainers take - -0:39:38.200,0:39:42.240 -responsibility - -0:39:39.760,0:39:44.079 -to carry out the gnu project policies - -0:39:42.240,0:39:46.160 -and most important of all - -0:39:44.079,0:39:47.520 -are the ones that make the whole system - -0:39:46.160,0:39:52.160 -work together - -0:39:47.520,0:39:52.160 -and the ethical standards - -0:39:52.640,0:39:57.839 -to respect freedom and defend freedom - -0:39:59.920,0:40:04.960 -is there any plan to move more packages - -0:40:02.240,0:40:08.480 -from core Emacs into elpa - -0:40:04.960,0:40:11.440 -uh I don't know uh - -0:40:08.480,0:40:12.720 -whether there is a plan I suppose if - -0:40:11.440,0:40:15.680 -there's a plan - -0:40:12.720,0:40:16.960 -we probably would have done it if there - -0:40:15.680,0:40:19.839 -had been a plan - -0:40:16.960,0:40:20.319 -some have been moved I don't see this as - -0:40:19.839,0:40:22.400 -a - -0:40:20.319,0:40:24.160 -fundamentally important issue it's a - -0:40:22.400,0:40:26.640 -matter of what's convenient for - -0:40:24.160,0:40:29.599 -the users and their advantages and - -0:40:26.640,0:40:32.800 -disadvantages to each choice - -0:40:29.599,0:40:35.760 -what is your opinion on higher education - -0:40:32.800,0:40:36.720 -uh requiring non-free software for - -0:40:35.760,0:40:40.400 -instance - -0:40:36.720,0:40:43.440 -well I wouldn't I wouldn't - -0:40:40.400,0:40:49.119 -matriculate in a school which did that - -0:40:43.440,0:40:49.119 -unless I saw a way I could refuse - -0:40:50.960,0:40:57.760 -now of course I do this - -0:40:54.960,0:41:00.240 -because I can get away with it and - -0:40:57.760,0:41:04.960 -therefore my doing it is extremely - -0:41:00.240,0:41:08.400 -important to show somebody does resist - -0:41:04.960,0:41:09.359 -I don't expect most people who support - -0:41:08.400,0:41:12.319 -free school - -0:41:09.359,0:41:13.599 -who advocate free software to go that - -0:41:12.319,0:41:17.760 -far - -0:41:13.599,0:41:21.040 -uh I published an article in the spring - -0:41:17.760,0:41:24.640 -entitled saying no even once - -0:41:21.040,0:41:25.359 -is helping saying no to non-free - -0:41:24.640,0:41:29.040 -software - -0:41:25.359,0:41:32.240 -even once because - -0:41:29.040,0:41:34.640 -the more you do it the more you help but - -0:41:32.240,0:41:36.640 -even doing it a little in a way that - -0:41:34.640,0:41:39.920 -other people notice - -0:41:36.640,0:41:43.440 -is starting to help so - -0:41:39.920,0:41:45.119 -uh please don't think that your choices - -0:41:43.440,0:41:48.480 -are either - -0:41:45.119,0:41:52.240 -be as firm and stubborn as I am - -0:41:48.480,0:41:56.240 -or just give up and let yourself drift - -0:41:52.240,0:41:58.079 -helplessly as if you had no volition - -0:41:56.240,0:42:00.720 -there are a lot of points in between - -0:41:58.079,0:42:04.079 -there and you can surely - -0:42:00.720,0:42:07.839 -manage to say no some of the time - -0:42:04.079,0:42:11.040 -and show people an example of saying no - -0:42:07.839,0:42:12.720 -some of the time for instance you could - -0:42:11.040,0:42:15.520 -say to people - -0:42:12.720,0:42:16.000 -you know I hate the fact that my school - -0:42:15.520,0:42:20.400 -makes me - -0:42:16.000,0:42:22.240 -use zoom uh so whenever - -0:42:20.400,0:42:24.640 -I'm not being forced I'm not going to - -0:42:22.240,0:42:24.640 -use it - -0:42:25.760,0:42:31.200 -or I hate the fact that the only way I - -0:42:29.200,0:42:35.200 -can talk to that group of people - -0:42:31.200,0:42:38.400 -is resume but when - -0:42:35.200,0:42:40.079 -but for anything else I will feel better - -0:42:38.400,0:42:42.880 -about myself if I don't - -0:42:40.079,0:42:44.000 -see lots of ways to say no some of the - -0:42:42.880,0:42:47.040 -time - -0:42:44.000,0:42:50.960 -and yield some of the time - -0:42:47.040,0:42:53.920 -and when you try saying no occasionally - -0:42:50.960,0:42:56.400 -you may just develop the ability to say - -0:42:53.920,0:42:58.800 -no more often - -0:42:56.400,0:43:00.640 -now whether you would ever get to be as - -0:42:58.800,0:43:04.480 -stubborn as I am - -0:43:00.640,0:43:08.480 -I don't know but what I find is that - -0:43:04.480,0:43:12.480 -I like the fact that I've never made - -0:43:08.480,0:43:15.839 -this kind of compromise - -0:43:12.480,0:43:19.319 -I feel I have a reputation to maintain - -0:43:15.839,0:43:21.119 -nobody's forcing me but I get - -0:43:19.319,0:43:24.319 -satisfaction - -0:43:21.119,0:43:26.400 -out of maintaining out of being able to - -0:43:24.319,0:43:29.280 -continue to say - -0:43:26.400,0:43:29.280 -I will not - -0:43:30.880,0:43:40.480 -you are now unmuted and that also - -0:43:34.480,0:43:43.520 -can happen at various different levels - -0:43:40.480,0:43:46.640 -so you can get that satisfaction - -0:43:43.520,0:43:54.400 -of fully maintaining a refusal - -0:43:46.640,0:43:57.040 -that applies only to certain areas - -0:43:54.400,0:43:58.880 -citizens uh noon already let's maybe - -0:43:57.040,0:43:59.599 -take one or two more questions and then - -0:43:58.880,0:44:03.200 -break for - -0:43:59.599,0:44:06.000 -the lunch break okay thank you - -0:44:03.200,0:44:07.440 -how often do you personally use Emacs as - -0:44:06.000,0:44:10.640 -the - -0:44:07.440,0:44:14.960 -lowest question now uh - -0:44:10.640,0:44:14.960 -well I use it most of the day - -0:44:16.640,0:44:20.160 -I occasionally do use other things in - -0:44:18.880,0:44:21.599 -fact I occasionally edit with - -0:44:20.160,0:44:24.240 -libreoffice - -0:44:21.599,0:44:25.280 -I occasionally use media players I - -0:44:24.240,0:44:27.520 -occasionally - -0:44:25.280,0:44:27.520 -uh - -0:44:29.040,0:44:34.000 -I occasionally ssh to a machine and type - -0:44:32.480,0:44:35.440 -some commands on it - -0:44:34.000,0:44:38.240 -which occasionally includes running - -0:44:35.440,0:44:38.240 -Emacs on it - -0:44:42.319,0:44:47.520 -I read pdf files a lot - -0:44:45.760,0:44:49.599 -would be nice if you could get those - -0:44:47.520,0:44:52.240 -into Emacs so that I could read them - -0:44:49.599,0:44:55.040 -with Emacs commands - -0:44:52.240,0:44:56.160 -and I maybe even edit them with the max - -0:44:55.040,0:44:59.440 -commands - -0:44:56.160,0:45:02.960 -when they can be edited I use - -0:44:59.440,0:45:07.680 -uh journal sometimes - -0:45:02.960,0:45:07.680 -to write on a pdf file - -0:45:10.079,0:45:13.760 -are there any more interesting projects - -0:45:12.160,0:45:18.400 -you have in mind over and above - -0:45:13.760,0:45:22.079 -non-gnu elpa uh - -0:45:18.400,0:45:25.520 -I can't think of one right now well - -0:45:22.079,0:45:27.119 -there are things there are things that - -0:45:25.520,0:45:30.560 -the gnu project needs - -0:45:27.119,0:45:32.319 -doing there are packages that don't have - -0:45:30.560,0:45:35.839 -maintainers or could use - -0:45:32.319,0:45:38.880 -more maintainers uh - -0:45:35.839,0:45:42.000 -talk with maintainers at canoe.org - -0:45:38.880,0:45:44.960 -and the assistant candusences will - -0:45:42.000,0:45:47.839 -help you find a package where you can do - -0:45:44.960,0:45:47.839 -good - -0:45:48.400,0:45:52.079 -not for beginners though you got to get - -0:45:50.560,0:45:55.599 -you got to learn - -0:45:52.079,0:45:58.160 -uh a substantive substantial level of - -0:45:55.599,0:45:59.440 -capacity to develop and debug programs - -0:45:58.160,0:46:02.800 -before you can - -0:45:59.440,0:46:04.480 -be a maintainer uh have I ever looked at - -0:46:02.800,0:46:08.400 -maggot - -0:46:04.480,0:46:11.920 -uh no I haven't - -0:46:08.400,0:46:14.880 -but I believe - -0:46:11.920,0:46:16.560 -work is being done to get it put into - -0:46:14.880,0:46:21.200 -Emacs - -0:46:16.560,0:46:21.200 -and at that point I'll give it a try - -0:46:22.240,0:46:25.760 -I do not want to share my configuration - -0:46:25.200,0:46:29.520 -files - -0:46:25.760,0:46:33.599 -they're personal but - -0:46:29.520,0:46:36.880 -how about if we end this now - -0:46:33.599,0:46:38.880 -you are now unmuted sounds good to me - -0:46:36.880,0:46:41.520 -thank you very much richard for joining - -0:46:38.880,0:46:43.839 -in for live questions - -0:46:41.520,0:46:43.839 -okay - diff --git a/2020/subtitles/emacsconf-2020--40-closing-remarks-part-1-autogen.sbv b/2020/subtitles/emacsconf-2020--40-closing-remarks-part-1-autogen.sbv deleted file mode 100644 index 4681429c..00000000 --- a/2020/subtitles/emacsconf-2020--40-closing-remarks-part-1-autogen.sbv +++ /dev/null @@ -1,205 +0,0 @@ -0:00:07.359,0:00:17.920 -alrighty - -0:00:09.519,0:00:17.920 -we're all set up waiting for corbin - -0:00:19.840,0:00:22.720 -you are now muted - -0:00:22.960,0:00:28.080 -oh it might be having a kid emergency so - -0:00:26.240,0:00:30.080 -if you want we can get started with our - -0:00:28.080,0:00:31.199 -closing remarks you are now unmuted and - -0:00:30.080,0:00:35.120 -then we will - -0:00:31.199,0:00:37.760 -um you know bring corwin in when when um - -0:00:35.120,0:00:37.760 -things permit - -0:00:38.879,0:00:44.160 -let me just share the closing remarks - -0:00:42.840,0:00:46.879 -notes - -0:00:44.160,0:00:48.879 -so that we can see what that's like - -0:00:46.879,0:00:51.200 -actually - -0:00:48.879,0:00:51.200 -um - -0:00:55.440,0:01:00.719 -yeah sure I guess we can do the closing - -0:00:58.399,0:01:03.680 -remarks - -0:01:00.719,0:01:06.400 -okay not actually closing yet there - -0:01:03.680,0:01:08.479 -might be another talk after this but - -0:01:06.400,0:01:09.680 -since we have a little time before uh - -0:01:08.479,0:01:12.320 -before - -0:01:09.680,0:01:13.439 -uh cornbread comes well you know share - -0:01:12.320,0:01:14.799 -some of the interesting things we've - -0:01:13.439,0:01:18.479 -seen today - -0:01:14.799,0:01:21.840 -so uh there have been about 12 20 talks - -0:01:18.479,0:01:25.360 -21 out once once ong macros - -0:01:21.840,0:01:26.159 -happens that's all today there's 16 more - -0:01:25.360,0:01:28.560 -talks tomorrow - -0:01:26.159,0:01:30.880 -so if you thought today was lots of fun - -0:01:28.560,0:01:33.920 -be sure to tune in tomorrow as well - -0:01:30.880,0:01:36.240 -uh for reference last year's EmacsConf - -0:01:33.920,0:01:37.600 -had 30 talks many of which were lighting - -0:01:36.240,0:01:39.680 -talks this year - -0:01:37.600,0:01:41.360 -we had slightly longer talks and a lot - -0:01:39.680,0:01:43.119 -more interactivities or a lot more - -0:01:41.360,0:01:45.360 -question and answer sections - -0:01:43.119,0:01:47.040 -they're worth more than there were about - -0:01:45.360,0:01:50.079 -391 viewers - -0:01:47.040,0:01:52.320 -on the main main stream - -0:01:50.079,0:01:53.680 -and about 26 in the lower resolution - -0:01:52.320,0:01:55.680 -stream - -0:01:53.680,0:01:58.960 -last year's viewers were last year had - -0:01:55.680,0:02:01.280 -about 270 viewers at the same time so - -0:01:58.960,0:02:02.719 -the max clock is getting bigger and - -0:02:01.280,0:02:05.360 -etherpad has been working out - -0:02:02.719,0:02:07.280 -really really well uh people have been - -0:02:05.360,0:02:08.800 -using that to pose their questions - -0:02:07.280,0:02:11.120 -so I think at some point I saw there - -0:02:08.800,0:02:12.640 -were 124 people working on it and we - -0:02:11.120,0:02:17.440 -only managed to - -0:02:12.640,0:02:19.599 -accidentally erase it once so yay us - -0:02:17.440,0:02:23.840 -and yay everybody for helping thank you - -0:02:19.599,0:02:23.840 -so much - -0:02:24.319,0:02:29.200 -so yeah so the videos and other - -0:02:27.920,0:02:31.840 -resources - -0:02:29.200,0:02:33.680 -um we're planning to post uh sometime - -0:02:31.840,0:02:36.000 -over the next few weeks - -0:02:33.680,0:02:37.519 -um it actually took a couple weeks last - -0:02:36.000,0:02:39.519 -year but this year - -0:02:37.519,0:02:41.040 -I'm hoping that we can at least - -0:02:39.519,0:02:44.160 -partially partially - -0:02:41.040,0:02:45.440 -um release them much sooner um - -0:02:44.160,0:02:47.280 -you know I might be able to get around - -0:02:45.440,0:02:48.160 -to uploading some of the pre-recorded - -0:02:47.280,0:02:52.800 -talks - -0:02:48.160,0:02:52.800 -um later tonight after the conference - -0:02:53.360,0:02:57.760 -so keep an eye on emacsconf.org/2020 for that - -0:02:57.760,0:03:04.400 -Join our mailing lists which is - -0:03:01.120,0: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.sbv b/2020/subtitles/emacsconf-2020--40-closing-remarks-part-2-autogen.sbv deleted file mode 100644 index 895b219d..00000000 --- a/2020/subtitles/emacsconf-2020--40-closing-remarks-part-2-autogen.sbv +++ /dev/null @@ -1,999 +0,0 @@ -0:00:03.760,0:00:06.640 -this is the - -0:00:04.480,0:00:07.680 -closing remarks section where we get to - -0:00:06.640,0:00:09.440 -again thank people - -0:00:07.680,0:00:10.800 -and get people to share their lessons - -0:00:09.440,0:00:13.599 -learned and whatnot - -0:00:10.800,0:00:14.080 -but uh leo since you've stayed up to uh - -0:00:13.599,0:00:16.000 -to - -0:00:14.080,0:00:17.520 -say something let's let's let's turn it - -0:00:16.000,0:00:20.240 -over to you - -0:00:17.520,0:00:22.640 -oh what should I be saying I mean let me - -0:00:20.240,0:00:25.279 -just turn on the webcam first - -0:00:22.640,0:00:26.480 -and uh as you can see the day has - -0:00:25.279,0:00:28.640 -progressed I'm not - -0:00:26.480,0:00:30.080 -blasting light into my face I'm now - -0:00:28.640,0:00:32.160 -sitting instead of - -0:00:30.080,0:00:33.760 -you know standing so you can tell that - -0:00:32.160,0:00:35.920 -it's getting quite late for europe right - -0:00:33.760,0:00:35.920 -now - -0:00:38.239,0:00:42.559 -but uh yeah I'm not sure if you want me - -0:00:40.320,0:00:44.800 -to to go we've already done a little bit - -0:00:42.559,0:00:45.920 -of our closing remarks anyway before uh - -0:00:44.800,0:00:48.719 -colleen's talk - -0:00:45.920,0:00:49.120 -so yeah what do you want me to add I - -0:00:48.719,0:00:50.800 -mean we've - -0:00:49.120,0:00:52.719 -all we've all been thanking one another - -0:00:50.800,0:00:55.440 -we've been spanking the speakers - -0:00:52.719,0:00:56.800 -uh you know nothing would have been - -0:00:55.440,0:00:59.359 -possible without the efforts - -0:00:56.800,0:01:01.280 -of you know all the other organizers in - -0:00:59.359,0:01:03.039 -the team but also the speakers so - -0:01:01.280,0:01:05.040 -I'll just reiterate what corwin has been - -0:01:03.039,0:01:05.680 -telling you thank you so much for being - -0:01:05.040,0:01:07.920 -so - -0:01:05.680,0:01:09.520 -so many today I believe we've tripled - -0:01:07.920,0:01:11.360 -the amount of viewers that we had for - -0:01:09.520,0:01:14.960 -the previous imax conf - -0:01:11.360,0:01:17.600 -and that's mind-boggling to have - -0:01:14.960,0:01:19.119 -so many people have seen me to think - -0:01:17.600,0:01:20.479 -that so many people have seen me spill - -0:01:19.119,0:01:22.560 -water on myself - -0:01:20.479,0:01:24.040 -and do a fool of myself for the entire - -0:01:22.560,0:01:26.320 -day it is - -0:01:24.040,0:01:27.119 -outstandingly stupid but still thank you - -0:01:26.320,0:01:30.880 -so much - -0:01:27.119,0:01:32.640 -it's fine yeah it's this one - -0:01:30.880,0:01:34.240 -yeah this is this is going going really - -0:01:32.640,0:01:36.079 -really well um - -0:01:34.240,0:01:37.360 -but of course there's always ideas we - -0:01:36.079,0:01:39.439 -can you can try to - -0:01:37.360,0:01:41.840 -make it even even better so if you have - -0:01:39.439,0:01:43.280 -any ideas or if you have any - -0:01:41.840,0:01:44.479 -uh comments on the things that work - -0:01:43.280,0:01:45.600 -really well that you'd like us to keep - -0:01:44.479,0:01:47.040 -doing tomorrow - -0:01:45.600,0:01:49.920 -please make sure to leave them in the - -0:01:47.040,0:01:51.600 -other pad uh so the url is somewhere in - -0:01:49.920,0:01:53.200 -all the different places we put it - -0:01:51.600,0:01:55.439 -and there's a section all the way at the - -0:01:53.200,0:01:56.640 -end where you people can drop in their - -0:01:55.439,0:01:59.200 -general feedback - -0:01:56.640,0:02:01.040 -and what went well what can be improved - -0:01:59.200,0:02:01.439 -if you want to volunteer to help out - -0:02:01.040,0:02:04.240 -with - -0:02:01.439,0:02:05.439 -copying questions for example that might - -0:02:04.240,0:02:08.879 -be great - -0:02:05.439,0:02:11.920 -anyways it's all there uh and um - -0:02:08.879,0:02:11.920 -that's that's my part - -0:02:12.879,0:02:18.400 -um sorry - -0:02:16.000,0:02:20.480 -so say that again uh it's been lots of - -0:02:18.400,0:02:23.280 -fun and there's tomorrow oh my goodness - -0:02:20.480,0:02:25.680 -you're still tomorrow that's tomorrow - -0:02:23.280,0:02:25.680 -damn it - -0:02:26.720,0:02:31.680 -yeah it's so it's been a lot of fun - -0:02:30.239,0:02:35.280 -today - -0:02:31.680,0:02:38.080 -um let's see so yeah I'm - -0:02:35.280,0:02:39.280 -I guess we did go through the stats - -0:02:38.080,0:02:42.319 -before but I'll - -0:02:39.280,0:02:44.879 -also quickly add that um - -0:02:42.319,0:02:45.680 -you know I've been looking a bit of an - -0:02:44.879,0:02:47.920 -eye on the - -0:02:45.680,0:02:49.280 -server's network bandwidth usage and you - -0:02:47.920,0:02:51.920 -know today we've - -0:02:49.280,0:02:53.200 -had about 1.3 terabytes of outbound - -0:02:51.920,0:02:56.319 -traffic - -0:02:53.200,0:02:59.280 -um which is definitely something - -0:02:56.319,0:03:00.800 -and it's a record it's by by far you - -0:02:59.280,0:03:01.680 -know shattered last year's numbers we - -0:03:00.800,0:03:04.959 -had I think - -0:03:01.680,0:03:06.159 -about like 400 viewers live um peaking - -0:03:04.959,0:03:09.280 -at one point - -0:03:06.159,0:03:13.040 -um and it's very humble - -0:03:09.280,0:03:16.480 -humbling to see um like so many people - -0:03:13.040,0:03:18.080 -um you know tune in to watch talks - -0:03:16.480,0:03:20.319 -um about their favorite piece of - -0:03:18.080,0:03:23.760 -software um about Emacs - -0:03:20.319,0:03:27.280 -and um you know be part of the community - -0:03:23.760,0:03:28.239 -and you know have us be be part of the - -0:03:27.280,0:03:30.799 -community or - -0:03:28.239,0:03:32.080 -I guess um you know run this sort of an - -0:03:30.799,0:03:35.680 -event so it's been absolutely - -0:03:32.080,0:03:36.319 -awesome um I guess I can quickly get to - -0:03:35.680,0:03:38.879 -the - -0:03:36.319,0:03:40.799 -thanks if you leo or sasha don't have - -0:03:38.879,0:03:44.000 -anything else to add - -0:03:40.799,0:03:47.040 -nope all good alrighty um - -0:03:44.000,0:03:48.400 -yeah so let's see I'd like to thank the - -0:03:47.040,0:03:51.840 -free software foundation - -0:03:48.400,0:03:53.680 -especially the tech team um for - -0:03:51.840,0:03:55.599 -for their general support for letting us - -0:03:53.680,0:03:58.640 -use their big blue button - -0:03:55.599,0:04:00.640 -um yeah thank you so much it's - -0:03:58.640,0:04:02.720 -it's made a lot of difference this year - -0:04:00.640,0:04:04.000 -um you know last year for EmacsConf - -0:04:02.720,0:04:07.040 -2019 we used - -0:04:04.000,0:04:10.799 -um jitsi meat um - -0:04:07.040,0:04:13.280 -which was awesome but um - -0:04:10.799,0:04:15.599 -you know we did run into some technical - -0:04:13.280,0:04:17.840 -difficulties with it but this time - -0:04:15.599,0:04:19.519 -um you know big blue button was for the - -0:04:17.840,0:04:22.639 -most part smooth sailing - -0:04:19.519,0:04:23.919 -um so yeah thank you very much to the - -0:04:22.639,0:04:25.520 -free software foundation - -0:04:23.919,0:04:27.360 -foundation for letting us use their - -0:04:25.520,0:04:29.199 -weekly watson instance - -0:04:27.360,0:04:31.280 -allow me to just interject for a second - -0:04:29.199,0:04:33.360 -it was smooth sailing for absolutely - -0:04:31.280,0:04:35.520 -every single speaker but myself - -0:04:33.360,0:04:37.600 -well I managed to have three different - -0:04:35.520,0:04:39.440 -problems with big blue buttons so - -0:04:37.600,0:04:42.000 -I'll be fighting buggy pulse all night - -0:04:39.440,0:04:44.560 -you can be sure of that - -0:04:42.000,0:04:46.000 -please do um yeah that's that's the - -0:04:44.560,0:04:48.240 -beauty of free software I guess - -0:04:46.000,0:04:49.360 -is you know it it can be frustrating but - -0:04:48.240,0:04:51.040 -at least you know there's - -0:04:49.360,0:04:52.880 -multiple ways forward with you know - -0:04:51.040,0:04:55.840 -reporting bugs and sending patches - -0:04:52.880,0:04:56.960 -um and you know that's part of I guess - -0:04:55.840,0:04:59.360 -the message that - -0:04:56.960,0:05:01.680 -I'm I'm hoping that like you know people - -0:04:59.360,0:05:04.560 -who take away from an event like this - -0:05:01.680,0:05:05.440 -um around a community like this um you - -0:05:04.560,0:05:08.320 -know Emacs - -0:05:05.440,0:05:10.960 -you know being such an um long-standing - -0:05:08.320,0:05:13.840 -piece of free software um - -0:05:10.960,0:05:15.840 -and having this large of a community - -0:05:13.840,0:05:17.520 -around it who who's been continuing to - -0:05:15.840,0:05:20.160 -grow - -0:05:17.520,0:05:23.199 -and mature with Emacs and you know every - -0:05:20.160,0:05:26.240 -year we get new people in - -0:05:23.199,0:05:27.840 -more and more people discover Emacs um - -0:05:26.240,0:05:31.520 -you know join the community - -0:05:27.840,0:05:34.720 -or communities I should say um - -0:05:31.520,0:05:36.560 -it's just wonderful and - -0:05:34.720,0:05:38.800 -a large part of it is possible because - -0:05:36.560,0:05:42.560 -Emacs is free software um - -0:05:38.800,0:05:43.280 -so I mean at the risk of spoiling my own - -0:05:42.560,0:05:46.400 -talk - -0:05:43.280,0:05:48.000 -uh-huh I I I - -0:05:46.400,0:05:50.000 -I want to say that's that's what we're - -0:05:48.000,0:05:50.400 -going to pivot to tomorrow that's that's - -0:05:50.000,0:05:52.800 -what - -0:05:50.400,0:05:55.199 -uh welcome to the dungeon talk is really - -0:05:52.800,0:05:58.080 -about why it has to be free software - -0:05:55.199,0:05:58.960 -and as you peel the project apart I - -0:05:58.080,0:06:02.000 -think you'll see - -0:05:58.960,0:06:05.440 -eric and I have for a long time that it - -0:06:02.000,0:06:06.560 -is shameful to even think about trying - -0:06:05.440,0:06:10.240 -to put - -0:06:06.560,0:06:14.639 -some things outside of the public domain - -0:06:10.240,0:06:17.120 -right yeah exactly and I think that's a - -0:06:14.639,0:06:18.240 -good point to bring this up um this is a - -0:06:17.120,0:06:19.919 -closing remark - -0:06:18.240,0:06:22.319 -but it's only for today you know we've - -0:06:19.919,0:06:25.919 -got tomorrow a long day of events - -0:06:22.319,0:06:26.639 -um much like today um you know I say it - -0:06:25.919,0:06:28.720 -long but - -0:06:26.639,0:06:29.840 -in a way like thinking back it kind of - -0:06:28.720,0:06:34.160 -like went by like this - -0:06:29.840,0:06:37.120 -so um yeah it's gonna be a lot of fun - -0:06:34.160,0:06:38.800 -much like today was so yeah definitely - -0:06:37.120,0:06:41.039 -tune in tomorrow - -0:06:38.800,0:06:43.240 -um we're going to be starting at the - -0:06:41.039,0:06:45.919 -same time same place you know - -0:06:43.240,0:06:47.360 -live.emacsconf.org - -0:06:45.919,0:06:48.960 -for the specific mount points for - -0:06:47.360,0:06:50.000 -example you know we'll be using - -0:06:48.960,0:06:53.599 -main.webm - -0:06:50.000,0:06:57.680 -and main dash 480p dot webm - -0:06:53.599,0:07:00.000 -um I want to say thank you to sasha for - -0:06:57.680,0:07:00.800 -setting that up and getting it running - -0:07:00.000,0:07:04.240 -because - -0:07:00.800,0:07:06.960 -I remember last year um - -0:07:04.240,0:07:08.080 -you know we had a couple of people um - -0:07:06.960,0:07:11.280 -requesting - -0:07:08.080,0:07:14.000 -that you know a a lower resolution - -0:07:11.280,0:07:14.560 -stream or mount point be made available - -0:07:14.000,0:07:18.000 -um - -0:07:14.560,0:07:19.840 -because of their limited bandwidth and - -0:07:18.000,0:07:21.759 -it like when you have like free software - -0:07:19.840,0:07:25.919 -tools it's not too hard - -0:07:21.759,0:07:27.919 -um to get something like that going um - -0:07:25.919,0:07:29.199 -I mean not impossible I should say it - -0:07:27.919,0:07:32.000 -wasn't too easy - -0:07:29.199,0:07:33.120 -we did have some difficulties with it - -0:07:32.000,0:07:34.800 -today - -0:07:33.120,0:07:36.160 -I'm learning more about ffmpeg and I - -0:07:34.800,0:07:37.840 -expected to know at this point but it's - -0:07:36.160,0:07:41.599 -great - -0:07:37.840,0:07:44.720 -maybe it'll work tomorrow too yeah - -0:07:41.599,0:07:46.160 -um yeah sasha can attest to it um - -0:07:44.720,0:07:47.759 -you know there were still some king - -0:07:46.160,0:07:51.039 -spitting iron out - -0:07:47.759,0:07:51.840 -um and it's a process but you know we're - -0:07:51.039,0:07:54.879 -all learning - -0:07:51.840,0:07:58.000 -um each each of us in our own ways - -0:07:54.879,0:08:00.400 -um yeah so there's that - -0:07:58.000,0:08:02.800 -I'm very happy to have had that mount - -0:08:00.400,0:08:03.599 -points to making banks conf accessible - -0:08:02.800,0:08:06.560 -to people - -0:08:03.599,0:08:08.160 -in um you know areas of the world where - -0:08:06.560,0:08:10.160 -bandwidth may not be - -0:08:08.160,0:08:12.240 -um you know as cheap or as readily - -0:08:10.160,0:08:13.680 -available - -0:08:12.240,0:08:15.280 -or just you know someone wanting to - -0:08:13.680,0:08:17.520 -watch on their phone um - -0:08:15.280,0:08:18.560 -even here um you know in the us and - -0:08:17.520,0:08:20.160 -canada - -0:08:18.560,0:08:21.919 -data plans are not exactly cheap or - -0:08:20.160,0:08:24.960 -unlimited so - -0:08:21.919,0:08:29.520 -um yeah that's great - -0:08:24.960,0:08:31.199 -let's see yeah so - -0:08:29.520,0:08:33.599 -we are already halfway through this - -0:08:31.199,0:08:34.560 -one's uh network bandwidth usage for our - -0:08:33.599,0:08:38.839 -server - -0:08:34.560,0:08:41.360 -um for tomorrow we should save some for - -0:08:38.839,0:08:44.240 -tomorrow - -0:08:41.360,0:08:45.680 -all right yeah but for for tomorrow I'll - -0:08:44.240,0:08:47.600 -probably try bumping up the server a - -0:08:45.680,0:08:50.959 -little bit more to get us some bandwidth - -0:08:47.600,0:08:54.399 -some more bandwidth um - -0:08:50.959,0:08:56.320 -yeah um in terms of thank yous - -0:08:54.399,0:08:58.880 -um can you scroll down a little bit - -0:08:56.320,0:09:02.000 -please of course - -0:08:58.880,0:09:05.440 -uh thank you - -0:09:02.000,0:09:06.800 -right um yeah so the fsf and fsf tech - -0:09:05.440,0:09:08.320 -team again for letting us use their - -0:09:06.800,0:09:11.839 -picture button instance - -0:09:08.320,0:09:15.120 -um volunteers and organizers - -0:09:11.839,0:09:17.519 -um so there's there's me - -0:09:15.120,0:09:19.279 -um there's valvin 192 there's david - -0:09:17.519,0:09:22.399 -bremner david o'toole - -0:09:19.279,0:09:24.399 -um corwin who - -0:09:22.399,0:09:26.399 -both presented and also has been helping - -0:09:24.399,0:09:30.240 -out um - -0:09:26.399,0:09:33.600 -and especially um oops can you scroll - -0:09:30.240,0:09:36.959 -up again in the past - -0:09:33.600,0:09:40.240 -leo leo - -0:09:36.959,0:09:42.720 -um right so sorry I got distracted by - -0:09:40.240,0:09:42.720 -cool stuff - -0:09:45.680,0:09:48.880 -sorry go ahead okay go no no go ahead I - -0:09:48.160,0:09:52.480 -was just - -0:09:48.880,0:09:53.680 -being distracted um yeah we'll have some - -0:09:52.480,0:09:57.360 -time to check it out later - -0:09:53.680,0:10:00.399 -after the event today um but yeah - -0:09:57.360,0:10:02.160 -a special thank you um to to to you - -0:10:00.399,0:10:05.839 -sasha and to you leo - -0:10:02.160,0:10:08.240 -um you know for hanging out all day um - -0:10:05.839,0:10:09.120 -and helping with like you know juggling - -0:10:08.240,0:10:11.360 -everything - -0:10:09.120,0:10:12.959 -me for the most part I was just you know - -0:10:11.360,0:10:13.920 -running the stream and making sure that - -0:10:12.959,0:10:17.360 -I joined the - -0:10:13.920,0:10:18.640 -the right room um but you know a lot of - -0:10:17.360,0:10:21.680 -it was um - -0:10:18.640,0:10:23.120 -sasha um and leo doing a lot of stuff - -0:10:21.680,0:10:24.240 -behind the scenes you know doing quick - -0:10:23.120,0:10:27.360 -tech checks with - -0:10:24.240,0:10:27.680 -with the speakers to to make sure um you - -0:10:27.360,0:10:29.120 -know - -0:10:27.680,0:10:31.120 -things are generally working pretty - -0:10:29.120,0:10:34.160 -smoothly and - -0:10:31.120,0:10:37.279 -you know I'm happy to say that of course - -0:10:34.160,0:10:37.839 -except for um leo's bad luck a little - -0:10:37.279,0:10:41.040 -bit with - -0:10:37.839,0:10:42.399 -with big blue button um we didn't really - -0:10:41.040,0:10:44.160 -have any technical issue - -0:10:42.399,0:10:46.480 -other technical issues this year um - -0:10:44.160,0:10:49.360 -which is awesome compared to last year - -0:10:46.480,0:10:50.640 -um yeah and leo I do look forward to - -0:10:49.360,0:10:53.760 -those bug reports too - -0:10:50.640,0:10:56.480 -people watching you can make sure I'll - -0:10:53.760,0:11:00.560 -cc you into them so don't worry about it - -0:10:56.480,0:11:03.040 -please do um yes so - -0:11:00.560,0:11:04.480 -I'll say briefly I very much like to - -0:11:03.040,0:11:08.720 -thank our speakers - -0:11:04.480,0:11:12.560 -and um our participants um the audience - -0:11:08.720,0:11:14.160 -for hanging out with us watching and - -0:11:12.560,0:11:16.480 -you know just being a part of this - -0:11:14.160,0:11:18.160 -making Emacs conf20 - -0:11:16.480,0:11:19.920 -as awesome as it turned out as it's - -0:11:18.160,0:11:22.160 -turned out to be and - -0:11:19.920,0:11:24.160 -um I'm personally very much looking - -0:11:22.160,0:11:27.360 -forward to an awesome tomorrow as well - -0:11:24.160,0:11:29.600 -um and with that I'll basically speak - -0:11:27.360,0:11:31.440 -less and pass it on to sasha and leo to - -0:11:29.600,0:11:33.040 -conclude - -0:11:31.440,0:11:34.770 -well you're just expecting us to have - -0:11:33.040,0:11:38.880 -anything left to say after you - -0:11:34.770,0:11:41.200 -[Laughter] - -0:11:38.880,0:11:44.640 -but the fighter deals you're the lead - -0:11:41.200,0:11:48.000 -organizer you get to have the last word - -0:11:44.640,0:11:48.000 -most definitely yes - -0:11:48.320,0:11:54.000 -come on um okay I mean - -0:11:51.680,0:11:55.200 -if I start talking again if I start - -0:11:54.000,0:11:58.320 -talking again - -0:11:55.200,0:12:00.079 -also just ramp us right back up I have - -0:11:58.320,0:12:02.160 -so much positive to say about this - -0:12:00.079,0:12:04.000 -community um - -0:12:02.160,0:12:05.279 -if I'm jumping back in again it's only - -0:12:04.000,0:12:08.000 -to say thank you for - -0:12:05.279,0:12:10.560 -uh running the show for closing the show - -0:12:08.000,0:12:12.160 -for being in the show cheers - -0:12:10.560,0:12:14.160 -absolutely I mean I couldn't say it - -0:12:12.160,0:12:17.519 -better myself um - -0:12:14.160,0:12:19.839 -yeah so on that great positive note we - -0:12:17.519,0:12:21.440 -I guess we will conclude today and we'll - -0:12:19.839,0:12:24.880 -catch you all at uh - -0:12:21.440,0:12:26.160 -9am tomorrow by the way you can start - -0:12:24.880,0:12:29.839 -placing beds to know which - -0:12:26.160,0:12:29.839 -color my suit is going to be tomorrow - -0:12:30.560,0:12:39.839 -sounds good bye alrighty - -0:12:33.600,0:12:39.839 -bye guys bye - diff --git a/2020/subtitles/emacsconf-2020--41-opening-remarks-autogen.sbv b/2020/subtitles/emacsconf-2020--41-opening-remarks-autogen.sbv deleted file mode 100644 index 3ac6a74a..00000000 --- a/2020/subtitles/emacsconf-2020--41-opening-remarks-autogen.sbv +++ /dev/null @@ -1,1035 +0,0 @@ -0:00:09.360,0:00:11.280 -so we can't hear you right now just to - -0:00:10.719,0:00:15.120 -make sure - -0:00:11.280,0:00:18.560 -no now we can hello - -0:00:15.120,0:00:21.680 -hello morning good morning - -0:00:18.560,0:00:25.039 -good morning all right so looks like - -0:00:21.680,0:00:28.240 -um you can hear me let's see if the um - -0:00:25.039,0:00:28.880 -stream can hear me can someone in Emacs - -0:00:28.240,0:00:32.000 -con - -0:00:28.880,0:00:35.920 -confirm that they can hear me as well - -0:00:32.000,0:00:39.520 -yes awesome yep apparently they can - -0:00:35.920,0:00:42.399 -awesome okay great um - -0:00:39.520,0:00:42.719 -alrighty let's get started do you guys - -0:00:42.399,0:00:45.840 -wanna - -0:00:42.719,0:00:48.160 -go ahead with the opening sure - -0:00:45.840,0:00:50.160 -sasha do you want to start okay hello - -0:00:48.160,0:00:51.920 -and welcome to the second day of Emacs - -0:00:50.160,0:00:54.719 -con 2020 - -0:00:51.920,0:00:55.520 -and you could we've got a whole lot of - -0:00:54.719,0:00:57.600 -uh - -0:00:55.520,0:00:59.840 -of development talks and coding related - -0:00:57.600,0:01:02.160 -talks scheduled for today so you can - -0:00:59.840,0:01:04.559 -do a quick scan of the schedule again - -0:01:02.160,0:01:07.200 -all the times are very approximate - -0:01:04.559,0:01:08.320 -so if you happen to be earlier late for - -0:01:07.200,0:01:11.600 -something that you wanted to - -0:01:08.320,0:01:12.240 -see we'll figure it out uh we've got um - -0:01:11.600,0:01:14.560 -we've got - -0:01:12.240,0:01:15.439 -talks about the Emacs development itself - -0:01:14.560,0:01:18.799 -as well as - -0:01:15.439,0:01:19.439 -developing with Emacs uh and a couple of - -0:01:18.799,0:01:21.200 -things that - -0:01:19.439,0:01:22.960 -were more user talks but got moved to - -0:01:21.200,0:01:24.080 -the second day for timing reasons - -0:01:22.960,0:01:25.759 -because there's so much stuff on the - -0:01:24.080,0:01:27.280 -first day - -0:01:25.759,0:01:29.119 -that's uh that's our quick schedule - -0:01:27.280,0:01:31.680 -overview the schedule page has more - -0:01:29.119,0:01:32.479 -of course now how do you actually do all - -0:01:31.680,0:01:35.680 -that uh - -0:01:32.479,0:01:37.119 -leo you want to tell them yep so as - -0:01:35.680,0:01:38.320 -yesterday if you want to participate - -0:01:37.119,0:01:40.159 -well I suppose you're - -0:01:38.320,0:01:41.600 -watching the stream right now so I won't - -0:01:40.159,0:01:42.399 -go into detail as far as this is - -0:01:41.600,0:01:44.079 -concerned - -0:01:42.399,0:01:46.000 -but for the questions and for taking - -0:01:44.079,0:01:47.840 -notes we are using an after pad - -0:01:46.000,0:01:49.360 -where basically you just go onto the - -0:01:47.840,0:01:51.439 -page and you add your questions - -0:01:49.360,0:01:53.040 -under the topic which is being discussed - -0:01:51.439,0:01:54.560 -at the moment so I'm sure the people - -0:01:53.040,0:01:55.840 -will be putting the legs back in the - -0:01:54.560,0:01:57.280 -chat I'm just going to do this real - -0:01:55.840,0:02:00.880 -quick - -0:01:57.280,0:02:04.000 -there we go so now it's in the chat sir - -0:02:00.880,0:02:04.399 -we have on isc three rooms that you can - -0:02:04.000,0:02:05.840 -use - -0:02:04.399,0:02:07.439 -if you want to get in touch with us - -0:02:05.840,0:02:08.959 -first if you want to discuss whatever is - -0:02:07.439,0:02:09.679 -going on during this stream you can go - -0:02:08.959,0:02:12.560 -on - -0:02:09.679,0:02:13.760 -imax cont okay and that's where most of - -0:02:12.560,0:02:16.319 -the discussion happens - -0:02:13.760,0:02:18.239 -we also have #emacsconf-accessible - -0:02:16.319,0:02:19.920 -for the people who either can't see or - -0:02:18.239,0:02:21.520 -can't hear and you know they - -0:02:19.920,0:02:22.720 -we have lovely volunteers who have been - -0:02:21.520,0:02:23.680 -describing what has been going on - -0:02:22.720,0:02:25.599 -yesterday - -0:02:23.680,0:02:27.760 -uh and we really thank you for this - -0:02:25.599,0:02:29.760 -because it's really great for getting - -0:02:27.760,0:02:31.120 -you know more people giving the chance - -0:02:29.760,0:02:32.800 -to more people to follow the conference - -0:02:31.120,0:02:34.080 -so thank you so much for this - -0:02:32.800,0:02:36.640 -and also if you want to get in touch - -0:02:34.080,0:02:38.640 -with us the organizers either if you are - -0:02:36.640,0:02:40.319 -a speaker or if you have anything that - -0:02:38.640,0:02:42.400 -you'd like us to know about - -0:02:40.319,0:02:43.840 -something like a streaming problem or - -0:02:42.400,0:02:45.599 -audio problem or anything along those - -0:02:43.840,0:02:46.959 -lines you know - -0:02:45.599,0:02:48.480 -maybe other programs actually keep them - -0:02:46.959,0:02:49.280 -in imax conf we are looking at both - -0:02:48.480,0:02:52.160 -charts anyway - -0:02:49.280,0:02:52.560 -but to get in touch Emacsconf that oh - -0:02:52.160,0:02:56.480 -sorry - -0:02:52.560,0:02:57.120 -dash.org and also we had I don't believe - -0:02:56.480,0:02:58.720 -we have - -0:02:57.120,0:03:00.560 -we had all that much of this yesterday - -0:02:58.720,0:03:01.680 -but if you would like to continue the - -0:03:00.560,0:03:03.920 -discussion - -0:03:01.680,0:03:05.360 -with some of the speakers like you had a - -0:03:03.920,0:03:07.120 -topic that you really liked and you'd - -0:03:05.360,0:03:10.159 -like to continue talking with them - -0:03:07.120,0:03:11.120 -well we invite you to go on jitsi and to - -0:03:10.159,0:03:13.040 -create a room - -0:03:11.120,0:03:15.280 -uh all together and to have a direct - -0:03:13.040,0:03:17.280 -direct chat with the speaker - -0:03:15.280,0:03:18.560 -or whichever people might be interested - -0:03:17.280,0:03:20.640 -in the topic as well - -0:03:18.560,0:03:21.760 -okay I believe that's me I'm not sure to - -0:03:20.640,0:03:23.360 -whom I'm handing - -0:03:21.760,0:03:26.080 -the rest of the presentation is it to - -0:03:23.360,0:03:29.760 -you I mean um yeah sure I can take it - -0:03:26.080,0:03:32.480 -um all right so hello everyone welcome - -0:03:29.760,0:03:33.840 -to the second day of ux comp 2020 um - -0:03:32.480,0:03:35.360 -thank you for being here - -0:03:33.840,0:03:36.799 -today and for those of you who were - -0:03:35.360,0:03:38.239 -around yesterday thank you for being - -0:03:36.799,0:03:40.959 -around yesterday as well - -0:03:38.239,0:03:42.400 -um it was an awesome day and you know - -0:03:40.959,0:03:44.400 -like leo and sasha said - -0:03:42.400,0:03:46.560 -today I think is also very much gonna be - -0:03:44.400,0:03:49.040 -another awesome day of great talks - -0:03:46.560,0:03:49.760 -um yeah so I'm very much looking forward - -0:03:49.040,0:03:53.040 -to it - -0:03:49.760,0:03:56.560 -um so yeah the schedule is up um - -0:03:53.040,0:03:57.760 -at emacsconf.org/2020/schedule you - -0:03:56.560,0:04:00.959 -gotta scroll down - -0:03:57.760,0:04:02.640 -to the second day uh let's see people - -0:04:00.959,0:04:05.840 -tell me that my mic is quiet - -0:04:02.640,0:04:09.120 -um I guess I can on the stream - -0:04:05.840,0:04:09.599 -um I think so yeah let me double check - -0:04:09.120,0:04:12.720 -this - -0:04:09.599,0:04:14.959 -real quick okay I can also try - -0:04:12.720,0:04:17.360 -um like increasing the volume here a - -0:04:14.959,0:04:17.360 -little bit - -0:04:17.919,0:04:21.440 -okay it doesn't sound all that quiet to - -0:04:20.000,0:04:23.840 -me just because we are - -0:04:21.440,0:04:24.479 -I'm being very familiar right now so the - -0:04:23.840,0:04:27.360 -volume - -0:04:24.479,0:04:28.479 -must be quite high compared to you no - -0:04:27.360,0:04:32.240 -yeah it's it's fine um - -0:04:28.479,0:04:35.919 -okay I think it's better now um anyways - -0:04:32.240,0:04:38.479 -let's see awesome yeah so yesterday - -0:04:35.919,0:04:40.800 -um you know so the setup that I'm using - -0:04:38.479,0:04:44.400 -this year for streaming the desktop - -0:04:40.800,0:04:47.919 -and the talks is that I use the um - -0:04:44.400,0:04:52.000 -script a a script by the fsf forks which - -0:04:47.919,0:04:54.400 -they also used for liquor planet - -0:04:52.000,0:04:56.240 -and so the thing with this script is - -0:04:54.400,0:04:57.040 -that it only takes one audio source by - -0:04:56.240,0:04:59.120 -default - -0:04:57.040,0:05:01.520 -and so I have that set to the desktop - -0:04:59.120,0:05:03.440 -audio so yesterday on the spot I had to - -0:05:01.520,0:05:05.199 -improvise to how to get my own audio on - -0:05:03.440,0:05:06.880 -the stream and I used mumbo - -0:05:05.199,0:05:08.720 -but then that added a delay which was - -0:05:06.880,0:05:10.720 -pretty annoying um - -0:05:08.720,0:05:13.120 -but today this morning I figured I could - -0:05:10.720,0:05:14.240 -use pulse audio's um monitor system to - -0:05:13.120,0:05:17.039 -add myself - -0:05:14.240,0:05:18.479 -um right on this machine um so that the - -0:05:17.039,0:05:19.840 -delay is shorter and - -0:05:18.479,0:05:21.759 -seems to be working well so I'm very - -0:05:19.840,0:05:24.080 -happy about that um - -0:05:21.759,0:05:24.960 -but anyways yeah so let's get on we have - -0:05:24.080,0:05:26.880 -the schedule - -0:05:24.960,0:05:28.479 -um I'm thanking again the free software - -0:05:26.880,0:05:31.680 -foundation tech team - -0:05:28.479,0:05:33.600 -um for um you know - -0:05:31.680,0:05:35.280 -uh allowing us to use this very big - -0:05:33.600,0:05:38.720 -button uh instance - -0:05:35.280,0:05:41.039 -um that uh you know for live talks um - -0:05:38.720,0:05:42.240 -let's see um I'd like to thank all the - -0:05:41.039,0:05:45.680 -volunteers once again - -0:05:42.240,0:05:48.240 -um you know uh bavin david bremner - -0:05:45.680,0:05:49.280 -david dave o'toole who's been specially - -0:05:48.240,0:05:51.360 -helping out a lot - -0:05:49.280,0:05:53.120 -in the e-max imax conf dash accessible - -0:05:51.360,0:05:54.800 -channel with describing what's going on - -0:05:53.120,0:05:58.000 -at any given moment - -0:05:54.800,0:06:01.039 -um of course corwin - -0:05:58.000,0:06:02.639 -carl boyd and um the two folks that - -0:06:01.039,0:06:04.080 -you're seeing right beside me right now - -0:06:02.639,0:06:06.479 -uh leon sasha - -0:06:04.080,0:06:08.240 -who's been doing so much this year um - -0:06:06.479,0:06:12.479 -thank you all very much - -0:06:08.240,0:06:15.440 -um yeah let's see oh and also of course - -0:06:12.479,0:06:15.840 -our wonderful speakers and audience um - -0:06:15.440,0:06:18.000 -which - -0:06:15.840,0:06:18.880 -are basically the main thing that this - -0:06:18.000,0:06:21.199 -conference - -0:06:18.880,0:06:23.280 -is about and is centered about us people - -0:06:21.199,0:06:25.360 -talking about their experiences - -0:06:23.280,0:06:26.880 -um sharing the things they've learned or - -0:06:25.360,0:06:29.840 -they find interesting and - -0:06:26.880,0:06:31.440 -for everyone to discussing in chat um - -0:06:29.840,0:06:33.759 -yeah so it's awesome - -0:06:31.440,0:06:34.880 -uh if you scroll down a little bit on - -0:06:33.759,0:06:37.600 -the page - -0:06:34.880,0:06:38.319 -um I just want to plug the mailing list - -0:06:37.600,0:06:40.639 -right - -0:06:38.319,0:06:41.919 -yeah so we have the emacsconf-discuss - -0:06:40.639,0:06:45.039 -mailing list - -0:06:41.919,0:06:47.600 -once again um which you know is - -0:06:45.039,0:06:48.240 -we use for discussions around the - -0:06:47.600,0:06:51.039 -conference - -0:06:48.240,0:06:52.479 -including announcements before and after - -0:06:51.039,0:06:55.520 -it's a fairly quiet list - -0:06:52.479,0:06:55.840 -um so if you do like to subscribe um you - -0:06:55.520,0:06:57.199 -know - -0:06:55.840,0:06:59.440 -you won't get bombarded with emails - -0:06:57.199,0:07:01.759 -really um - -0:06:59.440,0:07:02.880 -uh yeah so that's something to consider - -0:07:01.759,0:07:04.639 -um for example you know - -0:07:02.880,0:07:06.240 -after the conference we're gonna be - -0:07:04.639,0:07:07.759 -posting all the videos - -0:07:06.240,0:07:09.440 -and um that's where I'm gonna be - -0:07:07.759,0:07:12.880 -announcing it um at least - -0:07:09.440,0:07:15.680 -in in one place one of the places um - -0:07:12.880,0:07:16.720 -yeah and I'd also like to draw attention - -0:07:15.680,0:07:19.360 -to our - -0:07:16.720,0:07:21.199 -conduct guidelines at emacsconf.org - -0:07:19.360,0:07:23.120 -conduct - -0:07:21.199,0:07:25.599 -which is a series of guidelines and - -0:07:23.120,0:07:28.800 -suggestions to to help make the event - -0:07:25.599,0:07:30.000 -you know enjoyable and um you know an - -0:07:28.800,0:07:33.280 -awesome experience for everyone - -0:07:30.000,0:07:34.639 -involved um I think um so I wasn't - -0:07:33.280,0:07:36.160 -keeping a close eye on the chat - -0:07:34.639,0:07:36.880 -yesterday because it was super busy but - -0:07:36.160,0:07:38.479 -I think - -0:07:36.880,0:07:40.240 -uh in general you know everything was - -0:07:38.479,0:07:42.319 -going pretty well pretty smoothly - -0:07:40.240,0:07:44.319 -um so thank you so much everyone for - -0:07:42.319,0:07:46.879 -keeping these in mind - -0:07:44.319,0:07:48.479 -and um yeah that's it for me let's see - -0:07:46.879,0:07:50.800 -if lee or sasha would like to add - -0:07:48.479,0:07:50.800 -anything - -0:07:51.520,0:07:54.319 -no but if you're all good to go you've - -0:07:52.879,0:07:55.680 -said everything and we've said - -0:07:54.319,0:07:59.120 -everything - -0:07:55.680,0:08:02.000 -have a great day awesome yeah um - -0:07:59.120,0:08:03.280 -uh okay someone okay so dave is asking - -0:08:02.000,0:08:06.319 -what is the hallway track - -0:08:03.280,0:08:07.520 -uh slash on conference um do either of - -0:08:06.319,0:08:08.160 -you want to explain that or should I - -0:08:07.520,0:08:10.080 -take it - -0:08:08.160,0:08:12.400 -uh basically we're gonna have our hands - -0:08:10.080,0:08:14.080 -full keeping the keeping the main track - -0:08:12.400,0:08:15.360 -running but of course - -0:08:14.080,0:08:17.280 -people have all sorts of interesting - -0:08:15.360,0:08:18.879 -conversation ideas and sometimes it's - -0:08:17.280,0:08:20.960 -nice to do it in real time or with - -0:08:18.879,0:08:23.360 -shared screens or things like that - -0:08:20.960,0:08:24.639 -so if you're having a conversation and - -0:08:23.360,0:08:28.000 -you want to have - -0:08:24.639,0:08:31.039 -more of a webcam or screen sharing thing - -0:08:28.000,0:08:32.800 -to enrich that discussion feel free to - -0:08:31.039,0:08:35.360 -set up a web conference using any of - -0:08:32.800,0:08:36.880 -your okay - -0:08:35.360,0:08:38.880 -can you do time in practice later all - -0:08:36.880,0:08:41.760 -right feel free to - -0:08:38.880,0:08:43.120 -set up your own conference c type web - -0:08:41.760,0:08:46.080 -conference thingy - -0:08:43.120,0:08:47.279 -and um and go find the people who are - -0:08:46.080,0:08:49.839 -interested in the same thing - -0:08:47.279,0:08:50.480 -and I'll do all that stuff right - -0:08:49.839,0:08:53.120 -absolutely - -0:08:50.480,0:08:53.760 -thanks sasha yeah so basically the idea - -0:08:53.120,0:08:55.360 -is that - -0:08:53.760,0:08:58.080 -so you know because of the limited time - -0:08:55.360,0:09:00.720 -we kind of have to um keep moving along - -0:08:58.080,0:09:02.240 -uh from one talk to the next and you - -0:09:00.720,0:09:04.080 -know sometimes there's a lot of awesome - -0:09:02.240,0:09:05.760 -questions or discussions going on - -0:09:04.080,0:09:08.240 -from for example you know in Emacs con - -0:09:05.760,0:09:11.440 -for like for the questions on the pad - -0:09:08.240,0:09:12.160 -um yeah so the I guess hallway track or - -0:09:11.440,0:09:15.360 -unconference - -0:09:12.160,0:09:16.160 -is basically a suggestion for those who - -0:09:15.360,0:09:19.120 -are interested - -0:09:16.160,0:09:21.120 -to for example set up a jutsu meet room - -0:09:19.120,0:09:23.519 -and then you know I'll go join there - -0:09:21.120,0:09:25.279 -and discuss the talk if you know if the - -0:09:23.519,0:09:26.240 -speaker can join after their talk - -0:09:25.279,0:09:29.519 -wonderful - -0:09:26.240,0:09:31.519 -um but if not even um you know if if - -0:09:29.519,0:09:34.000 -only like you know the audience and - -0:09:31.519,0:09:35.760 -folks you know from the emax campfire c - -0:09:34.000,0:09:37.279 -would like to join and discuss that - -0:09:35.760,0:09:40.320 -definitely works too - -0:09:37.279,0:09:42.000 -um yeah that's it um - -0:09:40.320,0:09:44.560 -I think oh one other thing that we I - -0:09:42.000,0:09:46.560 -guess wanted to mention possibly is that - -0:09:44.560,0:09:48.640 -um yesterday I think I noticed that a - -0:09:46.560,0:09:52.240 -lot of the questions were getting added - -0:09:48.640,0:09:54.560 -um like top to bottom on the pad but um - -0:09:52.240,0:09:56.000 -I think the suggestion is to put them - -0:09:54.560,0:09:58.000 -like stack them up so like - -0:09:56.000,0:09:59.360 -um add new at the new questions on the - -0:09:58.000,0:10:01.600 -top um - -0:09:59.360,0:10:03.120 -that might make it easier both for you - -0:10:01.600,0:10:05.760 -know the people - -0:10:03.120,0:10:07.120 -to who are typing the questions um but - -0:10:05.760,0:10:09.519 -also for the speaker to - -0:10:07.120,0:10:10.720 -sort of have a fixed I guess um point - -0:10:09.519,0:10:11.760 -where they're looking at for new - -0:10:10.720,0:10:13.839 -questions - -0:10:11.760,0:10:15.200 -um so don't put your questions under - -0:10:13.839,0:10:17.760 -somebody else's question - -0:10:15.200,0:10:18.640 -put it at that top level sort of you - -0:10:17.760,0:10:21.519 -know thing - -0:10:18.640,0:10:23.040 -right get your own bullet points yeah - -0:10:21.519,0:10:24.480 -and on the same topic yesterday some - -0:10:23.040,0:10:26.959 -people were a little scared - -0:10:24.480,0:10:27.839 -when all the colors were removed it was - -0:10:26.959,0:10:29.839 -me basically - -0:10:27.839,0:10:31.680 -in order to help the speakers know which - -0:10:29.839,0:10:33.680 -is the section that should be looking at - -0:10:31.680,0:10:35.200 -at the start of every presentation what - -0:10:33.680,0:10:35.760 -I will do is that I will wipe all the - -0:10:35.200,0:10:38.480 -colors - -0:10:35.760,0:10:39.360 -so all the attributions of modifications - -0:10:38.480,0:10:41.600 -to authors - -0:10:39.360,0:10:43.200 -so that the streamer sorry the speaker - -0:10:41.600,0:10:44.480 -has a little easier time finding their - -0:10:43.200,0:10:47.200 -talk in the list - -0:10:44.480,0:10:48.560 -right yeah so yeah for for speakers just - -0:10:47.200,0:10:49.360 -keep scrolling down until you hit a - -0:10:48.560,0:10:52.079 -colorful - -0:10:49.360,0:10:52.640 -colorful section um with the author - -0:10:52.079,0:10:55.600 -colors - -0:10:52.640,0:10:57.200 -and um yeah double check that um that's - -0:10:55.600,0:11:00.560 -you know it is your talk - -0:10:57.200,0:11:04.240 -um yeah with that said I think that's - -0:11:00.560,0:11:07.760 -all of it for our opening remarks right - -0:11:04.240,0:11:12.320 -um okay awesome so in that case - -0:11:07.760,0:11:14.560 -um we will start queuing up the talks - -0:11:12.320,0:11:16.959 -next up right after this opening remark - -0:11:14.560,0:11:18.880 -we have Emacs development updates by - -0:11:16.959,0:11:20.240 -um one of the co-maintainers of Emacs - -0:11:18.880,0:11:24.320 -john weekley - -0:11:20.240,0:11:27.519 -um it is a pre-recording and um - -0:11:24.320,0:11:28.399 -I don't think john is awake yet because - -0:11:27.519,0:11:31.279 -of right he's - -0:11:28.399,0:11:31.839 -probably uh still asleep but um he will - -0:11:31.279,0:11:33.920 -be - -0:11:31.839,0:11:35.120 -um looking taking a look at the - -0:11:33.920,0:11:38.160 -questions on the pad - -0:11:35.120,0:11:40.160 -later on um so yeah please keep posting - -0:11:38.160,0:11:43.279 -your questions on the path for him to - -0:11:40.160,0:11:48.800 -later look and try to answer awesome - -0:11:43.279,0:11:48.800 -so see you guys in a bit - diff --git a/2020/subtitles/emacsconf-2020--42-closing-remarks-autogen.sbv b/2020/subtitles/emacsconf-2020--42-closing-remarks-autogen.sbv deleted file mode 100644 index 47e93ed1..00000000 --- a/2020/subtitles/emacsconf-2020--42-closing-remarks-autogen.sbv +++ /dev/null @@ -1,2904 +0,0 @@ -0:00:02.240,0:00:05.359 -all right - -0:00:03.120,0:00:06.399 -in the meantime while waiting for corwin - -0:00:05.359,0:00:08.960 -wow we did it - -0:00:06.399,0:00:08.960 -look at that - -0:00:09.599,0:00:14.960 -yeah it's I mean who would have thought - -0:00:12.799,0:00:17.279 -right - -0:00:14.960,0:00:18.640 -I mean I I surely didn't when we started - -0:00:17.279,0:00:20.560 -no knowing how - -0:00:18.640,0:00:22.000 -exhausted I was at the end of the first - -0:00:20.560,0:00:24.480 -day I would have imagined - -0:00:22.000,0:00:27.519 -to survive the second day of more of - -0:00:24.480,0:00:27.519 -this same nonsense - -0:00:29.279,0:00:35.200 -um yeah it's it's been fun - -0:00:32.320,0:00:36.880 -it's been a lot of work um especially - -0:00:35.200,0:00:39.680 -for you and sasha - -0:00:36.880,0:00:41.040 -but um you know it's it's incredible I'm - -0:00:39.680,0:00:43.520 -I'm very happy - -0:00:41.040,0:00:44.399 -that um you know we managed to pull - -0:00:43.520,0:00:46.960 -through - -0:00:44.399,0:00:48.800 -um you know for two days straight not - -0:00:46.960,0:00:52.320 -one day - -0:00:48.800,0:00:54.000 -yeah well hey we did try - -0:00:52.320,0:00:55.360 -well we actually did manage to accept - -0:00:54.000,0:00:57.360 -all the top proposals - -0:00:55.360,0:00:59.039 -so if you're thinking oh I could I could - -0:00:57.360,0:00:59.840 -give an even better talk than the ones I - -0:00:59.039,0:01:01.680 -heard today - -0:00:59.840,0:01:03.440 -or yesterday please send us a talk - -0:01:01.680,0:01:04.960 -proposal for next year - -0:01:03.440,0:01:06.720 -we might be able to fit it's all in but - -0:01:04.960,0:01:09.119 -we might have to declare an Emacs week I - -0:01:06.720,0:01:09.119 -don't know - -0:01:09.840,0:01:13.200 -yeah absolutely yeah it's it's funny - -0:01:12.799,0:01:15.360 -like - -0:01:13.200,0:01:16.880 -um I remember a little bit last year but - -0:01:15.360,0:01:19.439 -also this year we kind of - -0:01:16.880,0:01:20.960 -we're trying to set up um I guess sort - -0:01:19.439,0:01:23.200 -of a procedure for - -0:01:20.960,0:01:24.720 -accepting and rejecting talks but then - -0:01:23.200,0:01:27.680 -you know we have got the actual - -0:01:24.720,0:01:28.880 -submissions and oh my god so much - -0:01:27.680,0:01:30.799 -awesome stuff - -0:01:28.880,0:01:33.280 -um I mean I definitely wouldn't have - -0:01:30.799,0:01:33.280 -been a movie - -0:01:33.360,0:01:36.720 -how can you say not anything it's emad - -0:01:35.360,0:01:38.159 -so you just throw it all in - -0:01:36.720,0:01:40.640 -including the kitchen sink and then - -0:01:38.159,0:01:42.720 -we'll sort it all out later - -0:01:40.640,0:01:44.240 -so if you went through all this the - -0:01:42.720,0:01:46.079 -entire conference and you missed some - -0:01:44.240,0:01:46.640 -interesting talks because a we started - -0:01:46.079,0:01:48.240 -early - -0:01:46.640,0:01:50.399 -because you're very excited and didn't - -0:01:48.240,0:01:53.119 -need the technical you know buffer time - -0:01:50.399,0:01:54.159 -uh or b you really had to step away at - -0:01:53.119,0:01:55.840 -some point so you must - -0:01:54.159,0:01:58.960 -talk you really wanted to recordings - -0:01:55.840,0:02:02.320 -will eventually be available - -0:01:58.960,0:02:05.360 -yes absolutely um yeah I know - -0:02:02.320,0:02:06.000 -so many people asked in the chat um you - -0:02:05.360,0:02:08.000 -know - -0:02:06.000,0:02:09.200 -is did I already miss the stock or are - -0:02:08.000,0:02:12.319 -the pre-recordings up - -0:02:09.200,0:02:15.280 -um yeah so they're not up yet but - -0:02:12.319,0:02:16.400 -um you know especially with the - -0:02:15.280,0:02:18.560 -pre-recordings that - -0:02:16.400,0:02:19.920 -those are basically um ready to be - -0:02:18.560,0:02:22.879 -uploaded so - -0:02:19.920,0:02:23.760 -you know right after we finish this talk - -0:02:22.879,0:02:26.879 -um - -0:02:23.760,0:02:29.599 -I'm going to um start uploading them - -0:02:26.879,0:02:30.480 -um because you know those are just ready - -0:02:29.599,0:02:32.720 -we have them - -0:02:30.480,0:02:33.519 -and then for the ones that were only - -0:02:32.720,0:02:36.879 -live - -0:02:33.519,0:02:40.080 -also as well as the live q a sessions um - -0:02:36.879,0:02:43.440 -we will try to process them - -0:02:40.080,0:02:45.680 -and get those up as well yes after - -0:02:43.440,0:02:49.040 -you've had some sleep - -0:02:45.680,0:02:51.920 -yeah after after some rest um - -0:02:49.040,0:02:54.879 -yeah and I'm I'm just with us oh there - -0:02:51.920,0:02:54.879 -you go hey corbin - -0:02:55.040,0:02:58.959 -um yeah I don't think we have your sound - -0:02:57.280,0:03:03.440 -yet so double check that - -0:02:58.959,0:03:05.920 -but um hi how about now yes - -0:03:03.440,0:03:07.360 -um yeah I'm just seeing the chatbot go - -0:03:05.920,0:03:09.360 -by an EmacsConf and - -0:03:07.360,0:03:12.239 -everyone is being so nice um it's just - -0:03:09.360,0:03:14.159 -making me smile - -0:03:12.239,0:03:15.360 -okay people want a question section so - -0:03:14.159,0:03:17.599 -I'm gonna add a question - -0:03:15.360,0:03:18.720 -thing and people can throw in their - -0:03:17.599,0:03:22.159 -questions - -0:03:18.720,0:03:23.840 -somewhere just telling you if you want - -0:03:22.159,0:03:26.159 -three Emacs conference per year the - -0:03:23.840,0:03:28.159 -answer is no judging by the amount of - -0:03:26.159,0:03:28.959 -stress that we've accrued all together - -0:03:28.159,0:03:30.799 -today - -0:03:28.959,0:03:32.640 -we are not ready to do this three times - -0:03:30.799,0:03:34.480 -every year the answer is - -0:03:32.640,0:03:36.000 -you're welcome to organize it and we'll - -0:03:34.480,0:03:38.159 -happily share our notes - -0:03:36.000,0:03:39.040 -um and I will take a mention of it in my - -0:03:38.159,0:03:41.200 -Emacs news - -0:03:39.040,0:03:43.920 -so please feel free to go ahead and put - -0:03:41.200,0:03:46.959 -things together yourselves - -0:03:43.920,0:03:48.400 -yeah absolutely um you know for me I - -0:03:46.959,0:03:51.680 -think once a year is - -0:03:48.400,0:03:55.040 -quite enough but um if - -0:03:51.680,0:03:56.080 -go ahead oh however if I if today leaves - -0:03:55.040,0:03:58.720 -you wanting more - -0:03:56.080,0:04:00.000 -there are emax meetups and I think there - -0:03:58.720,0:04:02.239 -are a couple of a - -0:04:00.000,0:04:04.319 -couple of them coming up in december so - -0:04:02.239,0:04:06.560 -if you check back in my talk - -0:04:04.319,0:04:08.080 -for Emacs news highlights I've linked to - -0:04:06.560,0:04:09.760 -a couple that are coming up in the next - -0:04:08.080,0:04:12.000 -couple of weeks - -0:04:09.760,0:04:12.959 -nice yeah and I think zakariya mentioned - -0:04:12.000,0:04:15.920 -that um - -0:04:12.959,0:04:17.840 -he's either participating or he runs or - -0:04:15.920,0:04:19.120 -is one of the people that runs the Emacs - -0:04:17.840,0:04:22.079 -nyc meetup - -0:04:19.120,0:04:23.759 -um yeah so definitely check that out and - -0:04:22.079,0:04:24.639 -you know all the other ones that may be - -0:04:23.759,0:04:29.120 -out there - -0:04:24.639,0:04:32.160 -um yeah for sure uh - -0:04:29.120,0:04:34.720 -yeah so so I'll jump in on there - -0:04:32.160,0:04:36.000 -on that point too I I have a lot of - -0:04:34.720,0:04:39.840 -energy for - -0:04:36.000,0:04:43.440 -um for helping people get together um - -0:04:39.840,0:04:46.880 -adam uh uh from melpa - -0:04:43.440,0:04:48.880 -suggested uh I should do some twitch - -0:04:46.880,0:04:50.320 -stuff I'll probably try that I have put - -0:04:48.880,0:04:51.360 -a couple things out there and even a few - -0:04:50.320,0:04:53.919 -people came by - -0:04:51.360,0:04:54.840 -so I I think I would agree the interest - -0:04:53.919,0:04:57.600 -is there - -0:04:54.840,0:04:59.120 -and I definitely would love to spend - -0:04:57.600,0:05:00.000 -that time talking to people that want to - -0:04:59.120,0:05:01.759 -organize - -0:05:00.000,0:05:04.160 -as well as people that are interested in - -0:05:01.759,0:05:07.120 -just learning to use Emacs as an editor - -0:05:04.160,0:05:08.880 -I think it's um I think it's a fantastic - -0:05:07.120,0:05:10.560 -journey speaking for myself as somebody - -0:05:08.880,0:05:12.080 -that um I don't - -0:05:10.560,0:05:13.759 -always have the right keystrokes right - -0:05:12.080,0:05:16.160 -at hand sometimes yeah - -0:05:13.759,0:05:17.840 -my mentor in in computer programming is - -0:05:16.160,0:05:21.440 -david dyer bennett and - -0:05:17.840,0:05:24.800 -um I started uh apprenticing with him - -0:05:21.440,0:05:28.160 -as when he was a freelancer um - -0:05:24.800,0:05:31.919 -many decades ago now and - -0:05:28.160,0:05:33.440 -you know he has a mantra that is uh - -0:05:31.919,0:05:35.280 -you know I can do that in about five - -0:05:33.440,0:05:37.840 -minutes if it's - -0:05:35.280,0:05:39.919 -the right five minutes and and that's - -0:05:37.840,0:05:43.360 -kind of the story of my life - -0:05:39.919,0:05:45.759 -um and Emacs is just a tool to - -0:05:43.360,0:05:46.560 -get the right five minutes more often no - -0:05:45.759,0:05:48.720 -matter - -0:05:46.560,0:05:49.600 -you know how can how cooperative the - -0:05:48.720,0:05:52.400 -fingers are - -0:05:49.600,0:05:52.800 -or or whether the ideas are free-flowing - -0:05:52.400,0:05:55.680 -you know - -0:05:52.800,0:05:56.800 -and getting that right environment is a - -0:05:55.680,0:05:58.720 -lot of things for a lot of different - -0:05:56.800,0:06:00.639 -people a lot of things to us on a - -0:05:58.720,0:06:04.080 -different day - -0:06:00.639,0:06:08.400 -um so yeah I have a ton of energy - -0:06:04.080,0:06:11.919 -around you know hey let's talk more - -0:06:08.400,0:06:14.560 -absolutely um yes so - -0:06:11.919,0:06:15.600 -you know I think we are everyone's - -0:06:14.560,0:06:18.080 -pretty energetic - -0:06:15.600,0:06:18.639 -oh before I forget I know I will forget - -0:06:18.080,0:06:20.800 -um - -0:06:18.639,0:06:22.400 -to speakers uh those of you who are - -0:06:20.800,0:06:24.720 -still watching right now - -0:06:22.400,0:06:26.240 -um I would very much appreciate it if - -0:06:24.720,0:06:27.520 -you could send us you know - -0:06:26.240,0:06:29.919 -any of the materials you know for - -0:06:27.520,0:06:31.600 -example the slides or any links and - -0:06:29.919,0:06:34.880 -resources to us - -0:06:31.600,0:06:38.240 -so we could add them to to the - -0:06:34.880,0:06:38.240 -EmacsConf wiki - -0:06:38.880,0:06:43.759 -or you can add them directly yourself if - -0:06:41.840,0:06:46.400 -you go to Emacsconf.org - -0:06:43.759,0:06:47.120 -edit there's instructions for basically - -0:06:46.400,0:06:50.800 -anyone - -0:06:47.120,0:06:54.000 -to edit the wiki if they like to um - -0:06:50.800,0:06:57.039 -yes so now uh back to getting - -0:06:54.000,0:06:58.800 -uh getting back to corwin's point um and - -0:06:57.039,0:07:01.520 -also what sasha mentioned - -0:06:58.800,0:07:02.800 -so um you know maybe one EmacsConf - -0:07:01.520,0:07:06.319 -might be enough - -0:07:02.800,0:07:09.840 -um for us for one year or for me but - -0:07:06.319,0:07:14.160 -um in terms of Emacs related events - -0:07:09.840,0:07:17.360 -um so this this conference was - -0:07:14.160,0:07:20.960 -uh is like you know mainly about Emacs - -0:07:17.360,0:07:22.319 -um but it's also in my opinion a - -0:07:20.960,0:07:24.160 -showcase of - -0:07:22.319,0:07:27.440 -um just how much you can do with free - -0:07:24.160,0:07:30.800 -software Emacs itself is free software - -0:07:27.440,0:07:34.400 -but um also all the tools that we used - -0:07:30.800,0:07:37.759 -um these two days for like uh streaming - -0:07:34.400,0:07:39.840 -for you know playing back to videos um - -0:07:37.759,0:07:41.440 -yeah it's all free software and anyone - -0:07:39.840,0:07:43.840 -can use and improve them - -0:07:41.440,0:07:45.440 -so um one thing that I wanted to put out - -0:07:43.840,0:07:48.960 -there before I forget - -0:07:45.440,0:07:50.000 -is that um so we have these couple of - -0:07:48.960,0:07:52.960 -servers set up - -0:07:50.000,0:07:54.639 -for streaming for imax conf and I would - -0:07:52.960,0:07:59.039 -be very much happy to - -0:07:54.639,0:08:00.319 -um help any other group basically - -0:07:59.039,0:08:03.199 -you know look into using our - -0:08:00.319,0:08:06.720 -infrastructure for - -0:08:03.199,0:08:09.360 -doing their own live event using only - -0:08:06.720,0:08:10.080 -free software so if you are interested - -0:08:09.360,0:08:12.639 -in that - -0:08:10.080,0:08:14.879 -please feel free to ping me either in - -0:08:12.639,0:08:17.840 -the max conf channel on freenode - -0:08:14.879,0:08:18.720 -um where my nick is bandali or just - -0:08:17.840,0:08:21.440 -email me at - -0:08:18.720,0:08:22.800 -bandeli gnu.org um I would be happy to - -0:08:21.440,0:08:27.840 -help you with that - -0:08:22.800,0:08:27.840 -um yeah I'll defer to others - -0:08:29.199,0:08:33.599 -we'll jump in and jump in there george I - -0:08:31.440,0:08:33.599 -mean - -0:08:34.080,0:08:37.839 -it's okay you've been you've been quiet - -0:08:35.760,0:08:39.279 -for too long now I I have this I have to - -0:08:37.839,0:08:40.640 -pick on people when there's more than - -0:08:39.279,0:08:42.000 -three people in a group - -0:08:40.640,0:08:44.000 -you know somehow that's the point of - -0:08:42.000,0:08:47.920 -wait I'm afraid somebody gets shy - -0:08:44.000,0:08:51.440 -and when it's not me I I you know - -0:08:47.920,0:08:54.080 -um so you know I I - -0:08:51.440,0:08:55.360 -uh yeah I can't thank you enough for the - -0:08:54.080,0:08:57.040 -for all you've done I mean I have a - -0:08:55.360,0:08:58.320 -whole list of thank yous here that I - -0:08:57.040,0:09:01.360 -could just start reading - -0:08:58.320,0:09:02.880 -uh but but they you know they start with - -0:09:01.360,0:09:04.480 -you and that was the abbreviated list I - -0:09:02.880,0:09:05.200 -gave at the beginning of the first talk - -0:09:04.480,0:09:06.800 -right - -0:09:05.200,0:09:08.399 -I just appreciate the sense of - -0:09:06.800,0:09:12.320 -encouragement and - -0:09:08.399,0:09:15.519 -openness that you bring to it I think - -0:09:12.320,0:09:17.120 -you know we share uh - -0:09:15.519,0:09:19.279 -taking inspiration from a lot of people - -0:09:17.120,0:09:20.800 -in the community and want to give that - -0:09:19.279,0:09:21.440 -back and that's a great thing to have in - -0:09:20.800,0:09:24.880 -common - -0:09:21.440,0:09:27.920 -around any any volunteer - -0:09:24.880,0:09:29.040 -thank you it's a it's a pleasure um to - -0:09:27.920,0:09:31.920 -be part of this - -0:09:29.040,0:09:33.600 -awesome community around Emacs um this - -0:09:31.920,0:09:36.800 -piece of free software that has been - -0:09:33.600,0:09:38.720 -around for more than 40 years as - -0:09:36.800,0:09:41.440 -impressive as that is I think more - -0:09:38.720,0:09:44.720 -impressive is a community around it - -0:09:41.440,0:09:51.839 -and all the people people around it - -0:09:44.720,0:09:51.839 -um yeah definitely - -0:09:52.640,0:09:56.240 -sorry I'm just smiling because I've - -0:09:54.560,0:09:57.760 -managed to catch a glimpse of the first - -0:09:56.240,0:10:00.560 -question that we have - -0:09:57.760,0:10:02.560 -and I'm trying to suit myself literally - -0:10:00.560,0:10:04.640 -to know how to answer this question - -0:10:02.560,0:10:08.160 -and I'm not exactly sure how to do this - -0:10:04.640,0:10:08.160 -to the best of my ability so - -0:10:11.040,0:10:14.240 -I don't know I think this at this point - -0:10:12.880,0:10:15.680 -we would like to remind all of our - -0:10:14.240,0:10:18.800 -viewers of the - -0:10:15.680,0:10:22.800 -conduct guidelines - -0:10:18.800,0:10:24.959 -try not to objectify our speakers - -0:10:22.800,0:10:25.920 -yeah that's a generally good point to - -0:10:24.959,0:10:29.680 -remember - -0:10:25.920,0:10:31.680 -um even in the closing remarks - -0:10:29.680,0:10:34.000 -because that's that's a thing I do and I - -0:10:31.680,0:10:34.320 -just wa I want to go on record saying I - -0:10:34.000,0:10:36.399 -am - -0:10:34.320,0:10:38.880 -ready to take it on any live stream any - -0:10:36.399,0:10:40.720 -day of the week please call me on that - -0:10:38.880,0:10:42.320 -it's always you it's always a new - -0:10:40.720,0:10:44.399 -experience for somebody - -0:10:42.320,0:10:46.160 -I've definitely been across lines that - -0:10:44.399,0:10:48.320 -embarrass me before and - -0:10:46.160,0:10:50.320 -I want to know about that thank you in - -0:10:48.320,0:10:52.800 -advance - -0:10:50.320,0:10:53.519 -okay so do you want to do like someone's - -0:10:52.800,0:10:55.760 -official - -0:10:53.519,0:10:56.560 -closing of people so closing up stuff - -0:10:55.760,0:10:58.000 -just in case - -0:10:56.560,0:10:59.839 -people want to know what the next steps - -0:10:58.000,0:11:02.800 -are and then we can do all the fun - -0:10:59.839,0:11:06.880 -questions and hanging out thing - -0:11:02.800,0:11:06.880 -okay um right so yeah - -0:11:07.040,0:11:11.279 -okay following up um emax meetups and - -0:11:09.680,0:11:12.640 -mention those uh if you want to keep - -0:11:11.279,0:11:14.079 -connecting with people you can do that - -0:11:12.640,0:11:16.240 -throughout the year - -0:11:14.079,0:11:18.399 -we'll figure out some kind of like list - -0:11:16.240,0:11:19.600 -on Emacs wiki or whatever that will list - -0:11:18.399,0:11:21.839 -the different meetups or you can just - -0:11:19.600,0:11:23.360 -search for emats meetup in your area - -0:11:21.839,0:11:25.680 -but of course since many of them have - -0:11:23.360,0:11:27.600 -online meetups now um Emacs news will - -0:11:25.680,0:11:29.600 -mention those whenever people remember - -0:11:27.600,0:11:31.920 -to tell me in advance - -0:11:29.600,0:11:33.440 -um okay so Emacs meetups that's the - -0:11:31.920,0:11:36.160 -thing collaborative pad - -0:11:33.440,0:11:38.079 -the either pad isn't great there is a - -0:11:36.160,0:11:40.000 -meta discussion so if you want to add - -0:11:38.079,0:11:41.760 -things that worked well or make notes of - -0:11:40.000,0:11:42.560 -things that could work even better next - -0:11:41.760,0:11:44.880 -year - -0:11:42.560,0:11:46.720 -then write it while it's fresh we'll - -0:11:44.880,0:11:49.440 -make a copy and we'll post it - -0:11:46.720,0:11:50.160 -to the wiki somewhere like we did last - -0:11:49.440,0:11:52.000 -year - -0:11:50.160,0:11:53.680 -we can also copy and paste the links - -0:11:52.000,0:11:56.079 -from the individual sections - -0:11:53.680,0:11:58.240 -into top pages so you can follow the - -0:11:56.079,0:12:00.240 -links from there - -0:11:58.240,0:12:01.680 -and if you spoke at a conference and you - -0:12:00.240,0:12:02.880 -would like to make it easier for people - -0:12:01.680,0:12:04.560 -to follow up with you - -0:12:02.880,0:12:06.079 -please let us know your follow-up - -0:12:04.560,0:12:07.040 -information and we can add it to that - -0:12:06.079,0:12:09.600 -page also - -0:12:07.040,0:12:11.120 -or it's a wiki you can edit yourself if - -0:12:09.600,0:12:12.079 -you have questions when the videos - -0:12:11.120,0:12:13.519 -finally come out - -0:12:12.079,0:12:15.360 -when you watch them after the videos - -0:12:13.519,0:12:17.120 -have come out then you can look at the - -0:12:15.360,0:12:20.000 -page for follow-up information - -0:12:17.120,0:12:22.000 -and subscribe to the mailing list low - -0:12:20.000,0:12:24.480 -traffic you can get updates like when we - -0:12:22.000,0:12:26.320 -release the photos I release the videos - -0:12:24.480,0:12:28.800 -and uh and they're ready for you to - -0:12:26.320,0:12:32.160 -check out so that's what I got for - -0:12:28.800,0:12:34.880 -next steps awesome - -0:12:32.160,0:12:35.680 -thank you sasha um do one of you guys - -0:12:34.880,0:12:39.760 -want to do - -0:12:35.680,0:12:42.800 -the um the thanks or should I do them - -0:12:39.760,0:12:44.480 -no read to you so good - -0:12:42.800,0:12:46.560 -I was gonna I was gonna say the same - -0:12:44.480,0:12:48.880 -thing you are so you go ahead - -0:12:46.560,0:12:48.880 -okay - -0:12:50.240,0:12:53.760 -thinking that that was an awesome thing - -0:12:51.920,0:12:56.079 -for for ramen to do if you would be - -0:12:53.760,0:12:56.079 -willing - -0:12:57.360,0:13:00.959 -yeah you're the lead organizer you get - -0:12:59.120,0:13:05.440 -stuck with other fun jobs - -0:13:00.959,0:13:07.360 -all the difficult stuff yeah - -0:13:05.440,0:13:08.720 -yeah you don't know dating upwards read - -0:13:07.360,0:13:12.320 -my crap if you don't want to - -0:13:08.720,0:13:14.959 -but um oh no that's - -0:13:12.320,0:13:16.399 -I definitely want to read that corbin um - -0:13:14.959,0:13:20.399 -yeah I'll pull it up - -0:13:16.399,0:13:23.279 -but um yeah before we get into that um - -0:13:20.399,0:13:25.040 -I want to read what we have here so uh - -0:13:23.279,0:13:26.079 -thank you very much to the free software - -0:13:25.040,0:13:29.040 -foundation - -0:13:26.079,0:13:29.600 -especially the tech team for lending us - -0:13:29.040,0:13:31.760 -allowing - -0:13:29.600,0:13:32.720 -us to use this very big blue button - -0:13:31.760,0:13:35.839 -instance - -0:13:32.720,0:13:38.000 -that we've used for live calls and um - -0:13:35.839,0:13:39.199 -live q a with so many of the speakers - -0:13:38.000,0:13:42.959 -this year - -0:13:39.199,0:13:43.760 -um thank you so much uh shout out to the - -0:13:42.959,0:13:47.040 -tech team - -0:13:43.760,0:13:50.240 -um especially reuben who does a lot - -0:13:47.040,0:13:53.199 -especially with big blue button um - -0:13:50.240,0:13:53.680 -and like streaming in general um but - -0:13:53.199,0:13:55.519 -also - -0:13:53.680,0:13:57.360 -the other members of the tech team like - -0:13:55.519,0:14:01.519 -ian andrew and michael - -0:13:57.360,0:14:05.920 -thank you all um next stop volunteers - -0:14:01.519,0:14:09.199 -bobbin david bremner uh dave o'toole for - -0:14:05.920,0:14:10.240 -taking um on basically writing - -0:14:09.199,0:14:15.279 -descriptive text - -0:14:10.240,0:14:18.480 -in our #emacsconf-accessible channel - -0:14:15.279,0:14:21.920 -along with uh joe corneli and - -0:14:18.480,0:14:25.199 -um sea bass or sea bass um - -0:14:21.920,0:14:27.950 -basically for transcribing talks - -0:14:25.199,0:14:29.120 -um in a way live um - -0:14:27.950,0:14:32.320 -[Music] - -0:14:29.120,0:14:35.600 -yes thank you to corwin of course - -0:14:32.320,0:14:35.920 -uh thank you to carl voight uh thank you - -0:14:35.600,0:14:39.519 -to - -0:14:35.920,0:14:42.639 -sasha and leo very much um - -0:14:39.519,0:14:44.240 -for all your hard work um this event - -0:14:42.639,0:14:45.680 -literally wouldn't have been possible - -0:14:44.240,0:14:49.279 -without all of your uh - -0:14:45.680,0:14:51.760 -guys's helps um so thank you - -0:14:49.279,0:14:52.639 -and as I told you in the chat you know - -0:14:51.760,0:14:54.800 -you would have been - -0:14:52.639,0:14:58.160 -really happy to one-man army the entire - -0:14:54.800,0:15:00.560 -thing if we hadn't been there so - -0:14:58.160,0:15:01.839 -I I don't know I may have been able to - -0:15:00.560,0:15:02.320 -but I definitely would have been happy - -0:15:01.839,0:15:05.760 -to - -0:15:02.320,0:15:07.600 -I'm much more happier this way so um - -0:15:05.760,0:15:09.519 -I guess it's the moment when we ask you - -0:15:07.600,0:15:12.560 -uh your energy level is it at - -0:15:09.519,0:15:13.120 -50 is it at 40 can you give us an - -0:15:12.560,0:15:16.399 -estimate - -0:15:13.120,0:15:19.120 -roughly um yeah which is what uh - -0:15:16.399,0:15:19.519 -corbin had mentioned um I think I'm at a - -0:15:19.120,0:15:22.320 -good - -0:15:19.519,0:15:23.040 -like 50 or 60 percent um it's just - -0:15:22.320,0:15:24.800 -blended - -0:15:23.040,0:15:27.199 -yeah definitely more than I can say last - -0:15:24.800,0:15:30.320 -for last year - -0:15:27.199,0:15:33.519 -but yes thank you um - -0:15:30.320,0:15:36.720 -thank you to um all of the - -0:15:33.519,0:15:39.279 -our awesome audience members um everyone - -0:15:36.720,0:15:42.880 -who participated in any way - -0:15:39.279,0:15:44.959 -in the conference also - -0:15:42.880,0:15:46.399 -of course a big thank you to all the - -0:15:44.959,0:15:48.720 -awesome speakers - -0:15:46.399,0:15:49.440 -for submitting all of these amazing - -0:15:48.720,0:15:52.320 -talks - -0:15:49.440,0:15:53.120 -um on a very wide range of topics from a - -0:15:52.320,0:15:56.160 -wide - -0:15:53.120,0:15:59.680 -range of backgrounds it was just awesome - -0:15:56.160,0:16:03.519 -thank you um and now corbin do you want - -0:15:59.680,0:16:03.519 -to read over your text or should I do it - -0:16:03.600,0:16:09.920 -it's entirely up to you I mean I - -0:16:07.759,0:16:11.759 -I would have to find it again but I will - -0:16:09.920,0:16:12.720 -I just have to bring the right Emacs to - -0:16:11.759,0:16:16.240 -the front here - -0:16:12.720,0:16:18.959 -my story of today yeah sure go forward - -0:16:16.240,0:16:20.480 -um I've already talked enough so I kind - -0:16:18.959,0:16:20.880 -of like the idea of putting words in - -0:16:20.480,0:16:23.600 -your mouth - -0:16:20.880,0:16:25.440 -honestly if you feel good saying go go - -0:16:23.600,0:16:27.759 -for it and that'll be good for me - -0:16:25.440,0:16:29.680 -or if we want to segue into random next - -0:16:27.759,0:16:30.720 -conversation I'm up for that too but I'm - -0:16:29.680,0:16:33.839 -conscious of - -0:16:30.720,0:16:35.600 -other people with uh um - -0:16:33.839,0:16:37.120 -young friends wandering about the house - -0:16:35.600,0:16:39.360 -and beginning to thump on things - -0:16:37.120,0:16:41.440 -I got it I probably didn't what have you - -0:16:39.360,0:16:44.399 -pasted me before - -0:16:41.440,0:16:44.800 -right that one is that what you wanted - -0:16:44.399,0:16:46.399 -yeah - -0:16:44.800,0:16:48.399 -I saw the question in there about - -0:16:46.399,0:16:50.320 -windows that's definitely a subject I'm - -0:16:48.399,0:16:51.519 -happy to talk about I think others on - -0:16:50.320,0:16:54.000 -the call have gotten - -0:16:51.519,0:16:55.600 -uh gotten some of that in in as part of - -0:16:54.000,0:16:58.800 -other conversations - -0:16:55.600,0:16:59.839 -um in brief summary it's kind of a - -0:16:58.800,0:17:03.040 -necessity thing - -0:16:59.839,0:17:06.160 -it's um - -0:17:03.040,0:17:09.280 -it's it's complicated you know it's but - -0:17:06.160,0:17:11.760 -I I guess I I can say uh - -0:17:09.280,0:17:13.280 -I'd ask you not to not to make free - -0:17:11.760,0:17:17.439 -software purity tests right - -0:17:13.280,0:17:19.839 -you know I um need windows right now - -0:17:17.439,0:17:33.840 -and so that has to be fine because I - -0:17:19.839,0:17:35.360 -want to be able to give back - -0:17:33.840,0:17:47.840 -I'm looking at it I had the wrong part - -0:17:35.360,0:17:47.840 -of the buffer open I think karen - -0:17:48.799,0:17:52.880 -let me briefly say um - -0:17:56.799,0:18:00.960 -we're using okay so I can I can talk - -0:17:58.559,0:18:04.320 -about crdt we experimented with it um - -0:18:00.960,0:18:07.039 -and I quite a bit and then eric and I - -0:18:04.320,0:18:08.880 -significantly further we uh messed up - -0:18:07.039,0:18:10.480 -some of our slides significantly getting - -0:18:08.880,0:18:12.080 -a little too ambitious with having - -0:18:10.480,0:18:14.400 -multiple people editing it - -0:18:12.080,0:18:15.360 -and letting everybody go to work on the - -0:18:14.400,0:18:17.919 -presentations - -0:18:15.360,0:18:19.679 -so we wasted we found many different - -0:18:17.919,0:18:21.360 -ways to use Emacs to waste time and - -0:18:19.679,0:18:23.840 -preparing for emax conf - -0:18:21.360,0:18:25.520 -but I'm pretty confident we have we have - -0:18:23.840,0:18:28.480 -all the good parts saved and - -0:18:25.520,0:18:28.880 -we'll just need to pull those together - -0:18:28.480,0:18:30.720 -uh - -0:18:28.880,0:18:33.600 -for you back into a single or more file - -0:18:30.720,0:18:36.000 -that we can put up with those videos - -0:18:33.600,0:18:37.919 -thanks again for bearing with us um - -0:18:36.000,0:18:43.840 -hopefully my point about - -0:18:37.919,0:18:43.840 -Emacs being there for you came across - -0:18:54.640,0:18:57.679 -oh yes I can scroll I can scroll back - -0:18:56.480,0:19:00.400 -down to your text if you like - -0:18:57.679,0:19:00.400 -okay here we go - -0:19:04.320,0:19:08.240 -uh we're figuring out carwin here's your - -0:19:06.559,0:19:10.080 -text - -0:19:08.240,0:19:11.600 -if you want to read it otherwise I'll be - -0:19:10.080,0:19:12.480 -plenty happy to read it if you want me - -0:19:11.600,0:19:15.919 -to - -0:19:12.480,0:19:18.400 -take it all right - -0:19:15.919,0:19:20.480 -obviously you had to ask the esl learner - -0:19:18.400,0:19:24.000 -so english as a second language to read - -0:19:20.480,0:19:28.960 -a chunk of text so thank you for this - -0:19:24.000,0:19:32.400 -all right okay so uh this is my call win - -0:19:28.960,0:19:35.440 -so Emacs is very very complicated - -0:19:32.400,0:19:37.200 -and using computer is hard with Emacs we - -0:19:35.440,0:19:40.160 -have an ideal opportunity to learn - -0:19:37.200,0:19:41.600 -from our errors to take on hard work - -0:19:40.160,0:19:44.160 -with diverse groups - -0:19:41.600,0:19:44.960 -and to effect lasting solutions to make - -0:19:44.160,0:19:47.600 -Emacs - -0:19:44.960,0:19:48.320 -and thereby any word of software thing - -0:19:47.600,0:19:50.799 -in practically - -0:19:48.320,0:19:52.320 -any human and spoken language easier to - -0:19:50.799,0:19:55.520 -learn and to use - -0:19:52.320,0:19:56.080 -forever life doesn't come with warning - -0:19:55.520,0:19:59.039 -labels - -0:19:56.080,0:20:00.799 -or margin notes we have a blank map and - -0:19:59.039,0:20:01.840 -an uncertain number of batteries for the - -0:20:00.799,0:20:04.159 -torch - -0:20:01.840,0:20:05.200 -but there's light in the darkness it's - -0:20:04.159,0:20:07.200 -freedom - -0:20:05.200,0:20:11.039 -it's the idea of giving to people - -0:20:07.200,0:20:11.039 -something that cannot be taken away - -0:20:12.240,0:20:15.440 -ultraman to say that that was very - -0:20:14.320,0:20:21.120 -beautiful uh - -0:20:15.440,0:20:25.760 -thank you corbin for writing that - -0:20:21.120,0:20:25.760 -okay so uh are there any questions - -0:20:26.960,0:20:29.760 -oh muted - -0:20:32.159,0:20:36.400 -I still can't I'm muted I think I'm - -0:20:34.240,0:20:40.559 -sorry - -0:20:36.400,0:20:43.120 -um what I said was thank you uh - -0:20:40.559,0:20:43.120 -just thanks - -0:20:45.600,0:20:49.760 -I just this community has really been - -0:20:48.640,0:20:52.640 -there for me it's - -0:20:49.760,0:20:52.640 -hard to learn and need - -0:20:56.080,0:21:00.000 -so yeah I keep laughing because I I see - -0:20:58.080,0:21:01.600 -things coming through the chat and I do - -0:21:00.000,0:21:02.960 -not know how to react visually - -0:21:01.600,0:21:04.640 -I'm not used to getting those types of - -0:21:02.960,0:21:08.000 -messages - -0:21:04.640,0:21:11.120 -it is very upsetting I don't know which - -0:21:08.000,0:21:13.120 -one to use I'm using my english as well - -0:21:11.120,0:21:14.320 -I'm intentionally not looking over there - -0:21:13.120,0:21:16.799 -because I'll just get dragged into - -0:21:14.320,0:21:18.080 -conversation and then this we will be on - -0:21:16.799,0:21:19.600 -live stream all night I don't know if - -0:21:18.080,0:21:21.679 -you know me at all in fact I - -0:21:19.600,0:21:24.080 -I my apologies you probably don't hi my - -0:21:21.679,0:21:27.039 -name is corwin I like to talk - -0:21:24.080,0:21:28.720 -I like to get you excited about ideas - -0:21:27.039,0:21:31.440 -that I think we agree about - -0:21:28.720,0:21:33.200 -so we can get somewhere solving an - -0:21:31.440,0:21:35.520 -important problem and there's a lot of - -0:21:33.200,0:21:37.840 -important problems in the world so - -0:21:35.520,0:21:39.600 -I have been living in a devil's paradise - -0:21:37.840,0:21:40.159 -throughout covet as people are sitting - -0:21:39.600,0:21:42.799 -at home - -0:21:40.159,0:21:44.480 -and really frustrated especially in the - -0:21:42.799,0:21:46.640 -united states where I live - -0:21:44.480,0:21:47.520 -about political and social justice - -0:21:46.640,0:21:49.760 -issues you - -0:21:47.520,0:21:50.799 -probably heard of the town where I live - -0:21:49.760,0:21:54.559 -recently - -0:21:50.799,0:21:58.000 -as a direct um - -0:21:54.559,0:22:02.400 -uh kind of crucible there right - -0:21:58.000,0:22:04.559 -um we are a troubled people - -0:22:02.400,0:22:06.320 -we're arguing about freedom it's to the - -0:22:04.559,0:22:07.280 -point where it's hard to put those words - -0:22:06.320,0:22:10.400 -down - -0:22:07.280,0:22:12.320 -without assuming people are gonna write - -0:22:10.400,0:22:15.600 -you off as a shyster - -0:22:12.320,0:22:16.640 -that's insanity we know exactly what - -0:22:15.600,0:22:20.480 -that means - -0:22:16.640,0:22:23.679 -especially in this community we uh - -0:22:20.480,0:22:26.640 -we're here because we want to - -0:22:23.679,0:22:27.200 -um because we want to make sure that - -0:22:26.640,0:22:29.280 -some - -0:22:27.200,0:22:30.880 -part of what the potential that - -0:22:29.280,0:22:32.880 -technology offers - -0:22:30.880,0:22:34.320 -is indelibly written out there that - -0:22:32.880,0:22:36.799 -nobody can take away - -0:22:34.320,0:22:38.240 -that's the bottom line on that that that - -0:22:36.799,0:22:40.240 -closing thought I mean that's where I'd - -0:22:38.240,0:22:41.919 -leave you at with Emacs conference - -0:22:40.240,0:22:43.280 -you want to make stuff that other people - -0:22:41.919,0:22:44.320 -can't take away because that's where - -0:22:43.280,0:22:47.120 -freedom - -0:22:44.320,0:22:47.120 -is hiding - -0:22:48.320,0:22:52.799 -thank you and I agree there is something - -0:22:51.360,0:22:55.039 -to be said about - -0:22:52.799,0:22:56.080 -um you know this idea of having some - -0:22:55.039,0:22:59.360 -piece of software - -0:22:56.080,0:23:01.679 -or an art form to um - -0:22:59.360,0:23:03.360 -setting it free to to live on - -0:23:01.679,0:23:04.400 -indefinitely into the future and for - -0:23:03.360,0:23:06.320 -everyone else - -0:23:04.400,0:23:07.600 -um and for people who may have not - -0:23:06.320,0:23:09.679 -already even been born - -0:23:07.600,0:23:11.280 -to you know at some point someday - -0:23:09.679,0:23:13.840 -discover it and - -0:23:11.280,0:23:15.039 -um you know start using it and making it - -0:23:13.840,0:23:18.880 -even better - -0:23:15.039,0:23:21.120 -um yeah so I think on that note - -0:23:18.880,0:23:23.039 -this might be a good note to conclude on - -0:23:21.120,0:23:24.720 -what you folks think - -0:23:23.039,0:23:26.640 -I always like to go around the room one - -0:23:24.720,0:23:28.240 -time but again I'll keep everybody on - -0:23:26.640,0:23:30.960 -the phone forever so don't - -0:23:28.240,0:23:31.860 -don't don't use my definitely I have to - -0:23:30.960,0:23:33.840 -be seconded - -0:23:31.860,0:23:38.000 -[Laughter] - -0:23:33.840,0:23:40.240 -okay um leo sasha - -0:23:38.000,0:23:41.760 -uh I was just wondering if we'd answered - -0:23:40.240,0:23:43.840 -as many questions as we could - -0:23:41.760,0:23:45.440 -from the people because I believe we've - -0:23:43.840,0:23:47.520 -answered some of them and sasha has been - -0:23:45.440,0:23:49.360 -kind enough to answer them in line - -0:23:47.520,0:23:50.960 -but maybe we wanted to take some of them - -0:23:49.360,0:23:52.080 -live especially some of the later ones - -0:23:50.960,0:23:54.320 -just to - -0:23:52.080,0:23:56.240 -send people off with a feeling that we - -0:23:54.320,0:23:58.640 -answered to the very last question that - -0:23:56.240,0:24:01.360 -they had - -0:23:58.640,0:24:03.360 -and until the sound over my head gets - -0:24:01.360,0:24:04.400 -too loud and I have to mute I'll be here - -0:24:03.360,0:24:07.039 -and then I'll uh - -0:24:04.400,0:24:09.840 -be here if I can convince the loud ones - -0:24:07.039,0:24:09.840 -to come watch with me - -0:24:10.799,0:24:14.559 -so it's really up to you I mean we I'm - -0:24:13.039,0:24:15.200 -the one crumbling right now you know I'm - -0:24:14.559,0:24:17.200 -just - -0:24:15.200,0:24:18.799 -it's pure showmanship that is keeping me - -0:24:17.200,0:24:21.120 -up right now the energy that I've been - -0:24:18.799,0:24:22.799 -accumulating over the last few days - -0:24:21.120,0:24:24.400 -but what's going to happen basically - -0:24:22.799,0:24:26.240 -when we finish this live stream - -0:24:24.400,0:24:27.840 -firstly I'm going to turn off this light - -0:24:26.240,0:24:30.000 -which has been blasting - -0:24:27.840,0:24:31.039 -a very white light in my eyes and up - -0:24:30.000,0:24:34.400 -until 11 pm - -0:24:31.039,0:24:37.120 -every single day you see this very comfy - -0:24:34.400,0:24:37.919 -uh you know so far what not I'm just - -0:24:37.120,0:24:42.240 -going to - -0:24:37.919,0:24:42.240 -crush on it right away so - -0:24:42.880,0:24:47.279 -that sounds like a good plan to me um - -0:24:45.440,0:24:50.159 -you know we've all worked hard - -0:24:47.279,0:24:51.360 -especially you all um and definitely - -0:24:50.159,0:24:54.640 -deserve some rest - -0:24:51.360,0:24:58.159 -to um you know rejuvenate our job - -0:24:54.640,0:25:01.279 -and get back into it again um - -0:24:58.159,0:25:03.520 -yeah sasha did you want to add anything - -0:25:01.279,0:25:03.520 -else - -0:25:05.919,0:25:10.880 -you just muted yourself yes you've just - -0:25:08.240,0:25:10.880 -muted yourself - -0:25:12.640,0:25:15.780 -uh yeah just answering questions at the - -0:25:14.799,0:25:17.039 -moment um - -0:25:15.780,0:25:18.400 -[Music] - -0:25:17.039,0:25:20.320 -at some point I will have to do two - -0:25:18.400,0:25:24.320 -things but in the meantime I can do - -0:25:20.320,0:25:24.320 -Emacs grown-up Emacs things wow - -0:25:25.520,0:25:28.799 -what are you saying grown-up Emacs but - -0:25:26.880,0:25:32.400 -we still had a talk by uh - -0:25:28.799,0:25:36.320 -someone today who was uh 17 I believe - -0:25:32.400,0:25:36.320 -so yeah I was very impressed by this - -0:25:36.480,0:25:40.320 -yeah it's awesome just seeing the wide - -0:25:39.039,0:25:43.600 -diversity and the wide - -0:25:40.320,0:25:45.200 -age range of people um just getting into - -0:25:43.600,0:25:48.240 -Emacs picking up - -0:25:45.200,0:25:49.840 -for all sorts of different things um - -0:25:48.240,0:25:51.440 -corbin and I had a bit of a chat about - -0:25:49.840,0:25:53.440 -this about this - -0:25:51.440,0:25:54.960 -piece of free software that is Emacs and - -0:25:53.440,0:25:58.320 -all the freedoms - -0:25:54.960,0:25:58.960 -freedoms that it grants us um but yeah - -0:25:58.320,0:26:02.080 -we could - -0:25:58.960,0:26:02.559 -go on forever and ever um yeah I really - -0:26:02.080,0:26:05.039 -can - -0:26:02.559,0:26:06.400 -and then and you know and it has to be - -0:26:05.039,0:26:07.440 -about getting something done and that's - -0:26:06.400,0:26:11.679 -where I think - -0:26:07.440,0:26:15.679 -sasha your work and organization is so - -0:26:11.679,0:26:18.799 -uh vital to us - -0:26:15.679,0:26:20.720 -we uh you know we have to direct that - -0:26:18.799,0:26:22.480 -energy into self-organizing - -0:26:20.720,0:26:24.159 -and and that's where I'd like probably - -0:26:22.480,0:26:26.159 -to focus my work - -0:26:24.159,0:26:27.200 -over the probably the next several years - -0:26:26.159,0:26:31.120 -is - -0:26:27.200,0:26:32.000 -um is is putting that thought and some - -0:26:31.120,0:26:34.720 -of the - -0:26:32.000,0:26:35.600 -uh some of the ideas that are built into - -0:26:34.720,0:26:37.200 -org mode and - -0:26:35.600,0:26:38.720 -in fact some of the implementation - -0:26:37.200,0:26:40.240 -that's built into org one and in fact - -0:26:38.720,0:26:43.440 -probably org mode - -0:26:40.240,0:26:46.159 -because hey there it is - -0:26:43.440,0:26:47.279 -to work on that yeah you should see all - -0:26:46.159,0:26:50.320 -the org scripts I wrote - -0:26:47.279,0:26:51.760 -so cool not that other people but anyway - -0:26:50.320,0:26:52.000 -we wrote this like fancy scheduling - -0:26:51.760,0:26:52.799 -thing - -0:26:52.000,0:26:55.360 -and you should check out the - -0:26:52.799,0:26:57.279 -submissions.org to to try to use it - -0:26:55.360,0:26:59.360 -because then if other people use it they - -0:26:57.279,0:27:00.720 -can improve it and then I get to use the - -0:26:59.360,0:27:04.159 -improvements next year - -0:27:00.720,0:27:06.159 -also erc ux irc clients awesome - -0:27:04.159,0:27:07.919 -so a lot of automation was a lot of fun - -0:27:06.159,0:27:10.400 -to work on absolutely - -0:27:07.919,0:27:11.440 -yeah sasha did a lot of cool automation - -0:27:10.400,0:27:13.200 -stuff this year - -0:27:11.440,0:27:15.039 -um you know around generating the - -0:27:13.200,0:27:17.200 -schedules and everything the pages in - -0:27:15.039,0:27:19.919 -the Emacs freaky with org mode - -0:27:17.200,0:27:21.039 -um and you know for the calls with uh - -0:27:19.919,0:27:24.159 -speakers - -0:27:21.039,0:27:26.720 -and coordinating in imaxcom.org - -0:27:24.159,0:27:27.600 -um or like you know updating the topics - -0:27:26.720,0:27:30.480 -all this stuff - -0:27:27.600,0:27:32.240 -she basically automated all of this um - -0:27:30.480,0:27:34.480 -which is definitely very impressive and - -0:27:32.240,0:27:37.600 -I know I'm gonna be looking into - -0:27:34.480,0:27:40.720 -um yeah definitely check out um - -0:27:37.600,0:27:43.360 -erc I'm a little biased um I - -0:27:40.720,0:27:44.320 -started sort of maintaining it a little - -0:27:43.360,0:27:47.760 -bit ago - -0:27:44.320,0:27:49.279 -but um it's been there forever and - -0:27:47.760,0:27:51.919 -you know I'm just following the - -0:27:49.279,0:27:53.120 -footsteps of giants or standing on their - -0:27:51.919,0:27:56.640 -shoulders - -0:27:53.120,0:27:59.919 -so definitely check it out um yeah - -0:27:56.640,0:28:00.559 -any uh last notes to add before we get - -0:27:59.919,0:28:03.120 -back - -0:28:00.559,0:28:04.960 -to um playing the last few demos that we - -0:28:03.120,0:28:07.600 -have - -0:28:04.960,0:28:08.480 -I just wanted to say that I'm really sad - -0:28:07.600,0:28:11.360 -for the people - -0:28:08.480,0:28:12.000 -uh viewing uh viewers right now who - -0:28:11.360,0:28:14.320 -won't get - -0:28:12.000,0:28:16.080 -the thrill of receiving a message by - -0:28:14.320,0:28:17.679 -sasha at 3am telling - -0:28:16.080,0:28:18.960 -oh I found a way to automate all the - -0:28:17.679,0:28:20.480 -talks I found a way to have this - -0:28:18.960,0:28:21.760 -schedule be generated automatically in - -0:28:20.480,0:28:23.520 -an old mode file - -0:28:21.760,0:28:25.360 -and you know I'm having my team in the - -0:28:23.520,0:28:27.760 -morning I'm waking up I see an email - -0:28:25.360,0:28:31.039 -which was unless three am and I say - -0:28:27.760,0:28:33.600 -wow impressive - -0:28:31.039,0:28:34.159 -that works like quite nicely for you um - -0:28:33.600,0:28:36.000 -leo - -0:28:34.159,0:28:37.360 -with like you know the times and time - -0:28:36.000,0:28:39.440 -zones and everything - -0:28:37.360,0:28:40.480 -and with sasha usually getting it on - -0:28:39.440,0:28:44.399 -later at night - -0:28:40.480,0:28:45.919 -um yeah you do get this bedtime right - -0:28:44.399,0:28:47.279 -wait until bedtime and then up until - -0:28:45.919,0:28:49.200 -like one or two because it's too much - -0:28:47.279,0:28:52.559 -fun - -0:28:49.200,0:28:56.240 -yeah exactly um yeah - -0:28:52.559,0:28:59.919 -so uh on that note - -0:28:56.240,0:29:03.200 -if uh there isn't much else to say then - -0:28:59.919,0:29:04.000 -I will uh thank each and every one once - -0:29:03.200,0:29:07.039 -again - -0:29:04.000,0:29:10.240 -um who was in any way - -0:29:07.039,0:29:13.520 -part of this um and helped with um - -0:29:10.240,0:29:16.640 -any of this um basically - -0:29:13.520,0:29:17.039 -um Emacs company anyway um and watched - -0:29:16.640,0:29:20.640 -it - -0:29:17.039,0:29:22.960 -helped whatever um submitted the talk um - -0:29:20.640,0:29:23.760 -I very much thank you um this wouldn't - -0:29:22.960,0:29:27.120 -have been - -0:29:23.760,0:29:30.240 -what it has been without um all of - -0:29:27.120,0:29:32.960 -you folks participation and help and - -0:29:30.240,0:29:34.720 -um just being out there and spreading - -0:29:32.960,0:29:37.760 -the gospel of Emacs - -0:29:34.720,0:29:40.799 -um yeah so - -0:29:37.760,0:29:42.399 -yep there we go leo - -0:29:40.799,0:29:44.159 -sorry someone just asked me if I was - -0:29:42.399,0:29:46.799 -still wearing jeans today so I just felt - -0:29:44.159,0:29:50.320 -obligated to show it - -0:29:46.799,0:29:51.039 -nice I never got my thanks in I I have - -0:29:50.320,0:29:54.399 -to thank - -0:29:51.039,0:29:57.760 -uh leo and uh - -0:29:54.399,0:29:58.480 -and I'll just stare at you but I I won't - -0:29:57.760,0:30:01.520 -say your name - -0:29:58.480,0:30:02.000 -yet again um for the insane work that - -0:30:01.520,0:30:06.320 -you do - -0:30:02.000,0:30:09.039 -and and and sasha um - -0:30:06.320,0:30:11.039 -you are an asset to our whole community - -0:30:09.039,0:30:13.200 -with the vibrance that you bring and the - -0:30:11.039,0:30:16.720 -the passion that you have for - -0:30:13.200,0:30:18.480 -um for community itself uh - -0:30:16.720,0:30:20.000 -I think a lot of us can say that you're - -0:30:18.480,0:30:23.919 -you're driving a lot of our work - -0:30:20.000,0:30:23.919 -in in certain ways um - -0:30:24.240,0:30:28.480 -and then I I want to thank all the - -0:30:25.919,0:30:30.399 -presenters for uh - -0:30:28.480,0:30:31.760 -for working with us to get every - -0:30:30.399,0:30:35.520 -everything scheduled - -0:30:31.760,0:30:39.279 -and also my team and project - -0:30:35.520,0:30:41.200 -um for helping uh get the project - -0:30:39.279,0:30:43.279 -actually testable we had some - -0:30:41.200,0:30:46.720 -interesting stuff to show - -0:30:43.279,0:30:49.279 -and my family for uh all that they do - -0:30:46.720,0:30:52.399 -to make it possible for me to give back - -0:30:49.279,0:30:52.399 -to free software - -0:30:56.080,0:30:59.440 -oh there's a question um someone's - -0:30:57.679,0:31:00.399 -volunteering to help just get the stream - -0:30:59.440,0:31:02.880 -recordings out - -0:31:00.399,0:31:03.600 -so it's it's up to you yeah your call - -0:31:02.880,0:31:05.760 -you want - -0:31:03.600,0:31:07.200 -them out and then you have some time to - -0:31:05.760,0:31:09.600 -prepare nice - -0:31:07.200,0:31:11.120 -cut up versions or do you want everyone - -0:31:09.600,0:31:12.960 -to hang on and then just link to like - -0:31:11.120,0:31:16.159 -the EmacsConf website - -0:31:12.960,0:31:17.679 -right right um I would very much - -0:31:16.159,0:31:20.880 -appreciate help with that - -0:31:17.679,0:31:21.919 -in fact um for last year's um live - -0:31:20.880,0:31:25.279 -recordings - -0:31:21.919,0:31:28.320 -we had someone to help us um - -0:31:25.279,0:31:30.159 -uh andrew jordy in fact who also helped - -0:31:28.320,0:31:32.559 -light a bunch of transcripts last year - -0:31:30.159,0:31:34.240 -did an awesome job um - -0:31:32.559,0:31:36.080 -yeah I really wanted to have him around - -0:31:34.240,0:31:36.720 -this year but you know circumstances - -0:31:36.080,0:31:39.279 -with - -0:31:36.720,0:31:39.840 -um everything going on around around the - -0:31:39.279,0:31:42.880 -world - -0:31:39.840,0:31:43.279 -um just didn't work out but um yeah I - -0:31:42.880,0:31:46.240 -could - -0:31:43.279,0:31:48.159 -definitely use um help with cutting up - -0:31:46.240,0:31:49.679 -the videos - -0:31:48.159,0:31:51.519 -you know for the pre-recordings that's - -0:31:49.679,0:31:52.640 -pretty trivial it's just me having to - -0:31:51.519,0:31:55.120 -upload them - -0:31:52.640,0:31:55.679 -and create the pages so I will do that - -0:31:55.120,0:31:58.320 -but - -0:31:55.679,0:31:59.279 -um to whoever asked the question if it's - -0:31:58.320,0:32:01.200 -on the pad - -0:31:59.279,0:32:03.440 -or if it's in irc sorry I missed it I - -0:32:01.200,0:32:06.240 -will go I'll look back later - -0:32:03.440,0:32:07.200 -um yeah just ping me message me or email - -0:32:06.240,0:32:10.080 -me - -0:32:07.200,0:32:12.880 -at vandalia gnu.org and um I would - -0:32:10.080,0:32:12.880 -appreciate your help - -0:32:17.840,0:32:20.880 -so have we finished the roundtable uh I - -0:32:20.159,0:32:23.760 -believe we're - -0:32:20.880,0:32:24.640 -doing the last thinking so colwin did it - -0:32:23.760,0:32:27.360 -sasha did it - -0:32:24.640,0:32:27.360 -should I go next - -0:32:27.679,0:32:31.200 -so well as you can see I've lowered - -0:32:30.320,0:32:33.360 -myself - -0:32:31.200,0:32:34.399 -ever since the last time I've spoken so - -0:32:33.360,0:32:36.640 -the dynasty started - -0:32:34.399,0:32:37.600 -starting to set in but uh yeah I just - -0:32:36.640,0:32:40.399 -wanted to - -0:32:37.600,0:32:40.880 -um rejoin everyone and just say that - -0:32:40.399,0:32:42.320 -thank you - -0:32:40.880,0:32:44.640 -so much to all the organizers who have - -0:32:42.320,0:32:45.279 -been helping us uh we've done a stellar - -0:32:44.640,0:32:47.279 -job - -0:32:45.279,0:32:48.880 -that I believe at least this year of - -0:32:47.279,0:32:51.440 -keeping things on track - -0:32:48.880,0:32:53.039 -and I hope that all of you have been - -0:32:51.440,0:32:56.240 -able to enjoy this - -0:32:53.039,0:32:58.480 -and yeah I don't have any anyone - -0:32:56.240,0:32:59.840 -in particular to thank you know uh for - -0:32:58.480,0:33:01.919 -me free software was - -0:32:59.840,0:33:02.960 -for a very long time something I did in - -0:33:01.919,0:33:04.559 -my bedroom - -0:33:02.960,0:33:06.080 -on the side of my studies and generally - -0:33:04.559,0:33:08.720 -when I was procrastinating - -0:33:06.080,0:33:10.559 -from writing that one particular essay - -0:33:08.720,0:33:13.120 -or that one particular thesis - -0:33:10.559,0:33:13.919 -you know I did my old mood stuff in the - -0:33:13.120,0:33:16.159 -background so - -0:33:13.919,0:33:17.440 -just to be able to you know join the - -0:33:16.159,0:33:19.360 -community - -0:33:17.440,0:33:21.279 -when normally I got the chance to you - -0:33:19.360,0:33:23.600 -know write some code for it and try to - -0:33:21.279,0:33:24.399 -animate to community but also to be part - -0:33:23.600,0:33:28.480 -of an event - -0:33:24.399,0:33:30.960 -that is so genuine - -0:33:28.480,0:33:31.519 -in its mission so genuine in the way - -0:33:30.960,0:33:34.799 -that - -0:33:31.519,0:33:36.399 -we got speakers together we had you know - -0:33:34.799,0:33:38.000 -we had this excitement that we wanted to - -0:33:36.399,0:33:39.360 -share and judging - -0:33:38.000,0:33:41.200 -by the reactions we've had over the - -0:33:39.360,0:33:41.840 -couple of days you know I I believe - -0:33:41.200,0:33:44.799 -we've - -0:33:41.840,0:33:45.679 -completely hit our target and as corwin - -0:33:44.799,0:33:48.320 -said yesterday I - -0:33:45.679,0:33:50.000 -am I guess I suppose a little humbled I - -0:33:48.320,0:33:50.320 -know it might sound weird for me because - -0:33:50.000,0:33:52.240 -I'm - -0:33:50.320,0:33:53.760 -from britain all the time but when we're - -0:33:52.240,0:33:56.080 -going to press stop - -0:33:53.760,0:33:56.799 -to diet you know for the broadcast I - -0:33:56.080,0:33:59.840 -think it's - -0:33:56.799,0:34:02.880 -going to start slowly dawning slowly - -0:33:59.840,0:34:06.480 -sorry french accent coming back slowly - -0:34:02.880,0:34:08.320 -dawning on me what we've done and - -0:34:06.480,0:34:09.520 -yeah it'll take me a couple of weeks to - -0:34:08.320,0:34:12.000 -recover mentally - -0:34:09.520,0:34:13.599 -spiritually physically and whatnot but I - -0:34:12.000,0:34:15.599 -believe after I'll be able to enjoy what - -0:34:13.599,0:34:20.800 -we've been able to do and for that - -0:34:15.599,0:34:24.480 -thank you so much - -0:34:20.800,0:34:25.919 -um yeah it's you're still you know kind - -0:34:24.480,0:34:29.359 -of in the moment and - -0:34:25.919,0:34:32.159 -um kind of maybe you haven't quite grabs - -0:34:29.359,0:34:33.359 -grasped at all yet but yeah I think - -0:34:32.159,0:34:36.079 -it'll - -0:34:33.359,0:34:37.599 -start hitting us all individually at - -0:34:36.079,0:34:39.119 -different points over the next couple of - -0:34:37.599,0:34:42.079 -days or weeks - -0:34:39.119,0:34:43.599 -um as we take some time to you know rest - -0:34:42.079,0:34:47.359 -up and re-energize - -0:34:43.599,0:34:50.960 -and you know keep going forward um - -0:34:47.359,0:34:53.839 -yeah so on that note if um - -0:34:50.960,0:34:54.320 -no one else has anything to add I will - -0:34:53.839,0:34:57.200 -um - -0:34:54.320,0:34:59.680 -[ __ ] you all farewell and thank you - -0:34:57.200,0:35:02.800 -everyone once again for joining us - -0:34:59.680,0:35:03.839 -and making an awesome amazing EmacsConf 2020. - -0:35:03.839,0:35:07.680 -um just quickly say we weren't sure that - -0:35:06.079,0:35:09.599 -we will be able to pull it off - -0:35:07.680,0:35:10.720 -given all the madness going on around - -0:35:09.599,0:35:13.839 -the world but - -0:35:10.720,0:35:14.880 -for us to have broken um so many of our - -0:35:13.839,0:35:17.440 -numbers and records - -0:35:14.880,0:35:18.240 -for all of them basically um you know we - -0:35:17.440,0:35:20.240 -just had - -0:35:18.240,0:35:22.320 -just about like two and a half or three - -0:35:20.240,0:35:22.960 -terabytes of streaming bandwidth usage - -0:35:22.320,0:35:25.520 -so that's - -0:35:22.960,0:35:26.400 -incredible and so many people join in so - -0:35:25.520,0:35:30.079 -many talks - -0:35:26.400,0:35:31.839 -so it's amazing thank you um - -0:35:30.079,0:35:34.040 -yes I see a question coming will the - -0:35:31.839,0:35:35.440 -ether pad be archived somewhere on - -0:35:34.040,0:35:37.920 -imageconf.org - -0:35:35.440,0:35:38.960 -um and the answer is yes I think sasha - -0:35:37.920,0:35:41.800 -is answering - -0:35:38.960,0:35:43.200 -um yes it will be linked under - -0:35:41.800,0:35:46.400 -imanxconf.org - -0:35:43.200,0:35:47.680 -2020 um that page will contain all the - -0:35:46.400,0:35:50.880 -resources about - -0:35:47.680,0:35:54.880 -everything um you know - -0:35:50.880,0:35:57.599 -uh about imsgufton20 2020 sorry - -0:35:54.880,0:35:59.119 -um yeah now you see some people saying - -0:35:57.599,0:36:02.320 -early happy birthday to me - -0:35:59.119,0:36:02.800 -um thank you so very much um I think - -0:36:02.320,0:36:05.760 -this - -0:36:02.800,0:36:06.160 -uh this conference was an incredible um - -0:36:05.760,0:36:09.200 -I guess - -0:36:06.160,0:36:12.880 -prelude to to my birthday um - -0:36:09.200,0:36:15.599 -so thank you all and on that note - -0:36:12.880,0:36:15.920 -I will end the stream and say goodbye - -0:36:15.599,0:36:19.680 -and - -0:36:15.920,0:36:23.040 -beat you very well bye - -0:36:19.680,0:36:23.839 -bye everyone and then you're going to - -0:36:23.040,0:36:27.119 -play the - -0:36:23.839,0:36:30.960 -devils yep exactly okay - -0:36:27.119,0:36:30.960 -bye bye - -- cgit v1.2.3